feat(notebooks): add list view toggle to notebooks page
Merged
LF
4mo ago+236+236+012345678901234567890123456789-6-6-0123456789
Summary
Adds a tile/list view toggle to the Notebooks page, addressing the navigation pain of large notebook collections.
- Tile view (default, unchanged): the existing visual card grid.
- List view: compact rows showing notebook name, description, source/note counts, and last updated — easier to scan when you have many notebooks.
- A segmented toggle (grid/list icons) in the page header switches between modes.
- The preference is persisted via a Zustand store (
notebook-view-storage) so it survives reloads and is shared by both the active and archived lists.
Frontend-only — no API changes. NotebookResponse already exposes source_count, note_count, updated, name, and description.
Changes
- New
notebook-view-store.ts(persisted Zustand store). - New
NotebookRow.tsx— compact row variant reusing the card's click-to-open / archive / delete behavior. NotebookList.tsxrenders the grid or the row list based on the store.- Toggle control added to
notebooks/page.tsxheader. - New
notebooks.tileView/notebooks.listViewkeys translated across all 14 locales. - CHANGELOG updated under
[Unreleased].
Verification
tsc --noEmitclean,npm run lint0 errors, locale parity test 14/14.- Verified locally with Playwright: toggling switches layouts, the active button highlights, and the list-view selection persists across a full page reload.
Closes #885