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