From d6e9223f6136815e30f007e149d5eba3ee565475 Mon Sep 17 00:00:00 2001 From: Masahiko AMANO Date: Tue, 7 Apr 2026 00:56:55 +0300 Subject: [PATCH] feat(frontend): implement trash view with restore and permanent delete - New /files/trash page: same grid as files view, deleted files only - Tap selects (no detail page for deleted files), long-press drag-selects - Trash selection bar: Restore (bulk) and Delete permanently (bulk, confirmed) - Trash icon added to files header, navigates to /files/trash - Mock: MOCK_TRASH with 6 pre-seeded files; bulk/delete now moves to trash; handlers for POST /files/{id}/restore and DELETE /files/{id}/permanent Co-Authored-By: Claude Sonnet 4.6 --- .../src/lib/components/layout/Header.svelte | 10 + frontend/src/routes/files/+page.svelte | 1 + frontend/src/routes/files/trash/+page.svelte | 405 ++++++++++++++++++ frontend/vite-mock-plugin.ts | 69 ++- 4 files changed, 482 insertions(+), 3 deletions(-) create mode 100644 frontend/src/routes/files/trash/+page.svelte diff --git a/frontend/src/lib/components/layout/Header.svelte b/frontend/src/lib/components/layout/Header.svelte index f076bc0..912a0fc 100644 --- a/frontend/src/lib/components/layout/Header.svelte +++ b/frontend/src/lib/components/layout/Header.svelte @@ -11,6 +11,7 @@ onOrderToggle: () => void; onFilterToggle: () => void; onUpload?: () => void; + onTrash?: () => void; } let { @@ -22,6 +23,7 @@ onOrderToggle, onFilterToggle, onUpload, + onTrash, }: Props = $props(); @@ -43,6 +45,14 @@ {/if} + {#if onTrash} + + {/if} +