Files

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-клиент (корзины в нём нет).