chore(openspec): archive fix-trash-counter-sync and sync main specs
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# 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-клиент (корзины в нём нет).
|
||||
Reference in New Issue
Block a user