2.7 KiB
2.7 KiB
Proposal
Why
Счётчик корзины в рейле альбомов (trash.count) перезагружается только при смене
маршрута и после «Очистить корзину». Любая другая операция, меняющая содержимое корзины,
не обновляет его: после удаления фото счётчик остаётся прежним, пока пользователь не
перейдёт в другой раздел. Это и есть сообщённый дефект — «при удалении фото на корзине не
меняется счётчик».
What Changes
- Рейл SHALL обновлять число элементов корзины сразу после каждого действия, меняющего её содержимое, без перезагрузки страницы: помещение фото в корзину (одиночное и пакетное), восстановление, окончательное удаление, очистка корзины и удаление альбома (его фото уходят в корзину).
- Изменения только во фронтенде: серверный
GET /api/trash/countи семантика мягкого удаления корректны и не меняются.
Capabilities
New Capabilities
Нет.
Modified Capabilities
ui-workspace: добавляется требование синхронизации счётчика корзины в рейле с операциями, меняющими содержимое корзины, без перезагрузки страницы.
Impact
- Frontend:
frontend/src/lib/stores/trash.svelte.ts(способ обновления счётчика),frontend/src/routes/(app)/albums/[id]/+page.svelte(пакетное удаление),frontend/src/lib/components/PhotoPanel.svelte(удаление из панели/просмотра),frontend/src/routes/(app)/albums/[id]/photos/[photoId]/+page.svelte(удаление в просмотре),frontend/src/routes/(app)/trash/+page.svelte(восстановление и окончательное удаление),frontend/src/lib/components/AlbumActionsDialogs.svelteиfrontend/src/routes/(app)/albums/[id]/settings/+page.svelte(удаление альбома). - Backend: не затрагивается.
- Вне объёма: синхронизация счётчика между сессиями/устройствами через SSE (событий корзины сервер не публикует) и Android-клиент (корзины в нём нет).