feat: Neuroglancer Views page (PR 4/6, ngviews-04-views-page) - #425
Draft
allison-truhlar wants to merge 9 commits into
Draft
feat: Neuroglancer Views page (PR 4/6, ngviews-04-views-page)#425allison-truhlar wants to merge 9 commits into
allison-truhlar wants to merge 9 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Neuroglancer Views — PR 4 of 6 (
ngviews-04-views-page)Stacked on #424 (
ngviews-03-multiselect). Read-only scope. Adds the/ngviewspage and the state layer PR 5/6 build on.What's in it
viewQueries.ts— types mirroring backendmodel.py(View/ViewLayer/ViewCreateRequest/…) + CRUD hooks for/api/neuroglancer/views(list unwraps{views:[...]}, 404→[]). MirrorsngLinkQueries.ViewsContext— provider bundling the CRUD hooks (mirrorsNGLinkContext).neuroglancerCartstored in the existing user-preference blob (no new table/endpoint), exposed via a thinCartContext(add/remove/clear, dedup on fsp+path+channel) and a standaloneuseCartCounthook for the nav badge.useNGViewsColumns— Saved Views table columns (name / layers / sharing / updated / actions). Row actions are flat menu items (Open in Neuroglancer, Copy NG link, Download JSON state via the existingdownloadTextFileutil, Rename, Delete)./ngviewspage — local-state tabs: Saved Views (TableCard) + a minimal Layer Cart shell (list + remove + clear). Rename/Delete dialogs. No page-level "New View" button — Views are created by cart checkout (PR 5) / scratch save (PR 6)./nglinks→/ngviewsredirect (legacy/ng/{key}short-link serving routes untouched).Deferred / carry items
sharing_modeis a stored label only (displayed, not enforced) — per PR 2 decisions./ngview/:read_keyviewer.Testing
pixi run test-frontend). New unit/component tests forviewQueries,CartContext,ngViewsColumns,NGViews;NavbarBadgetest updated.node-check/node-prettier-check/node-eslint-checkclean (one pre-existing unrelated lint warning).