Two related bugs around visible vs API order. 1. Multi-select range selection (Shift+Click, Shift+Arrow): - The previous selectRange walked the API photos array and only ADDED to the existing selection, never replacing or shrinking. So Shift+clicking to the left often "did nothing" (already-selected ids skipped) and the selection never matched the user's intended range. - Replace with a store action that walks visiblePhotoIds (the visual row-major sequence Timeline already publishes), de-dupes ids (tag-grouped views can repeat photos), and REPLACES the selection. - Track the range anchor as rangeStartId (a photo id) instead of an index so it survives filter changes and works correctly when API index != visual position. - Drop the now-redundant lastSelectedIndex / globalIndex plumbing from selectPhoto / togglePhotoSelection — call sites simplify to pass just the photo id. 2. Preview navigation after pressing Space: - The Space hotkey path called openPreview(id) without a sequence and relied on the store's fallback to whatever Timeline most recently published. Make it explicit: read visiblePhotoIds from the store snapshot at fire time and pass it through. Same effect in the happy case but eliminates any subtle publisher timing question. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5.3 KiB
5.3 KiB