Persist entry list view mode and dictionary preview pin per project#2284
Persist entry list view mode and dictionary preview pin per project#2284myieye wants to merge 3 commits into
Conversation
…ject Stores entryListViewMode (simple/preview) and dictionaryPreview (show/hide/sticky) in project-scoped localStorage so they survive page refreshes. https://claude.ai/code/session_01XwVXy1GdK7kKAbbfhxKTp2
Use single $effect with untrack for one-time init from storage, matching the pattern in TasksView. Non-reactive loaded flag prevents persisting before the stored value has been read. https://claude.ai/code/session_01XwVXy1GdK7kKAbbfhxKTp2
Read the preference directly via $derived from storage, and pass the
setter through Svelte 5's bind:foo={getter, setter} syntax. Removes
the init effect, persist effect, and loaded flag.
https://claude.ai/code/session_01XwVXy1GdK7kKAbbfhxKTp2
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
The latest updates on your projects. Learn more about Argos notifications ↗︎
|
C# Unit Tests165 tests 165 ✅ 20s ⏱️ Results for commit d27916d. |
Summary
simple/preview) per project so it survives reloads.show/hide/sticky) per project, including the pin toggle.ProjectStorageinfrastructure (project-scoped localStorage viaIPreferencesService).Implementation
entryListViewModeanddictionaryPreviewprops toProjectStorage.BrowseView.svelteandEntryView.svelte, the preference is read via$derivedfrom the storage prop's reactivecurrent, with a fallback default and type guard. Writes go through Svelte 5's function-pairbind:foo={getter, setter}syntax — no effects or init flags needed.Test plan
https://claude.ai/code/session_01XwVXy1GdK7kKAbbfhxKTp2
Generated by Claude Code