preview: full-screen modal replaces inline split + tags route reorg
The old SplitGrid + InlinePreview pane is replaced by a full-screen PreviewModal mounted once at the layout root. Open via Space on the focused tile or double-click; close on Esc (or X / Space again). Inside, PreviewPane renders the focused photo, RightSidebar carries the metadata, BulkActionBar reuses the existing per-photo actions, and PreviewCarousel windows ±50 thumbs around the focused index. Selection contract matches the grid: plain click reduces, shift extends the range, ⌘/Ctrl toggles, plain arrow drops the multi- selection, shift-arrow extends. New clearBulkToFirst() helper makes Esc / Clear collapse a bulk back to single-focus on its first member before the next press fully dismisses (modal closes, grid clears focus). Tags route reorganised into /tags/[category]/[[value]] with its own +layout and TagsBrowserSidebar; the old monolithic /tags/+page is trimmed to a legacy redirect. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
} from '$lib/services/photoprism';
|
||||
import { batchEdit } from '$lib/services/batch';
|
||||
import {
|
||||
clearBulkToFirst,
|
||||
clearSelection,
|
||||
focusAfter,
|
||||
selection,
|
||||
@@ -59,6 +60,10 @@
|
||||
const isArchive = $derived(filters.section === 'archive');
|
||||
|
||||
function clearAll() {
|
||||
// Mirror gridKeyNav's Esc: a multi-selection collapses back to its
|
||||
// first member (the user keeps a single-focus reference) before
|
||||
// the next Clear/Esc fully dismisses focus.
|
||||
if (clearBulkToFirst()) return;
|
||||
clearSelection();
|
||||
setFocused(null);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user