feat: Update media selection logic for Telegram-style interaction; improve user experience for image and video selection

This commit is contained in:
k1ngsterr1
2026-01-26 18:14:11 +05:00
parent fe9bc50d32
commit 9445f11010

View File

@@ -257,29 +257,30 @@ fun MediaPickerBottomSheet(
mediaItems = mediaItems, mediaItems = mediaItems,
selectedItems = selectedItems, selectedItems = selectedItems,
onItemClick = { item -> onItemClick = { item ->
// Single tap - open editor for images, or select for videos // Telegram-style:
if (!item.isVideo) { // - Первый клик по невыбранной фото → выбрать
// Open image editor // - Клик по уже выбранной фото → открыть редактор
editingItem = item if (item.id in selectedItems) {
} else { // Уже выбрана - открываем редактор (только для изображений)
// For videos - just toggle selection if (!item.isVideo) {
selectedItems = if (item.id in selectedItems) { editingItem = item
selectedItems - item.id
} else if (selectedItems.size < maxSelection) {
selectedItems + item.id
} else { } else {
selectedItems // Для видео - снимаем выделение
selectedItems = selectedItems - item.id
}
} else {
// Не выбрана - добавляем в selection
if (selectedItems.size < maxSelection) {
selectedItems = selectedItems + item.id
} }
} }
}, },
onItemLongClick = { item -> onItemLongClick = { item ->
// Long press - toggle selection (multi-select mode) // Long press - снять выделение если выбрана
selectedItems = if (item.id in selectedItems) { if (item.id in selectedItems) {
selectedItems - item.id selectedItems = selectedItems - item.id
} else if (selectedItems.size < maxSelection) { } else if (selectedItems.size < maxSelection) {
selectedItems + item.id selectedItems = selectedItems + item.id
} else {
selectedItems
} }
}, },
isDarkTheme = isDarkTheme, isDarkTheme = isDarkTheme,