Repository navigation
ENG-2409 Long settings pages are hard to scan: add collapsible sections and sticky headers - #1559
Open
trangdoan982 wants to merge 8 commits into
Conversation
Node type sections collapse individually or all at once, with state kept for the dialog's lifetime. Section headings stick on every settings page, and a settings search jump expands all sections before scrolling. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Entire-Checkpoint: 01M552YDYWGGAM3E59DKHH4QD9
Copy the sticky heading background from the dialog so Roam themes that restyle .bp3-dialog without .bp3-dark stay opaque and matching. Realign a collapsed stuck section on its own scroller only, and build the collapse all button only on the node page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Entire-Checkpoint: 01M55386K5C0G4VQRKR9MD21AX
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Entire-Checkpoint: 01M553DVNG21Y06NX5YBQZ7722
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Entire-Checkpoint: 01M553MEG7DZPAB3N071WTHMCP
Search jumps wait until an expanding Collapse reaches height: auto before scrolling, so the row is not missed mid-animation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Entire-Checkpoint: 01M553ZJ3WFZGKSK5BYG4FZBBW
Mark collapsed section content inert, wrap only collapsible groups in Collapse, wait on a 500ms clock rather than a frame count, and reset collapse state only for setting jumps into Grammar > Nodes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Entire-Checkpoint: 01M554EQDMB7D3FMH32V5TYS2N
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Entire-Checkpoint: 01M555TP1V9DCMNS8DDSFSKXHJ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Entire-Checkpoint: 01M555X702GD83ZXW9YBJGBCHJ
This branch was previously deployed
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.
Reviewer brief
Stacked on #1525 (Roam settings menu overhaul). Merge that first; this PR targets
roam-setting-overhaul.apps/roam/src/components/settings/components/SettingsHeadings.tsx:SettingsGroupkeeps collapsed rows mounted with BlueprintCollapseand marks theminert. When a stuck section collapses, it keeps the heading in place by adjusting only the settings scroller.StickyHeadingcopies the dialog's background, so Roam themes stay opaque and matched.apps/roam/src/components/settings/navigation/useSettingAnchorScroll.ts: the search jump now waits until every ancestorCollapsereachesheight: auto, with a 500ms limit.getNodeConfigSectionsrepeatsNodeConfig.tsx's section list and itsisSyncEnabled()condition by hand.Collapse state lives in the dialog and flows down to the node page. Search jumps reset it before scrolling.
Verification
Ran live in Roam with
dg-roam-load-extensionon slot 1 against2f843b81.inertbp3-darkprobe; injected.bp3-dialogbackgroundTests:
apps/roam/src/utils/__tests__/settingsCollapsibleSections.test.tscovers the section helpers and theSettingsGrouptoggle, itsinertstate and its keyboard handling. Rerun withpnpm -C apps/roam exec vitest run src/utils/__tests__/settingsCollapsibleSections.test.ts.Not verified: a real third-party Roam theme. The theme checks used Blueprint's
bp3-darkclass and an injected.bp3-dialogbackground.Loom video
https://www.loom.com/share/d7d764a701f046b2875609cfaa6285b8
Scope check
$scope-checkagainst the ENG ticket and final diff.Done When:Standards check
$dg-pr-adherence-checkagainst the final diff and PR metadata.Local delegated full review
$dg-delegated-full-reviewwhen no other full-review workflow is available.Fixed from review: theme-matched heading background, scroller-only realign,
inertcollapsed rows, a time-based expand wait, and functional state updates. The remaining findings are the known limits listed in Reviewer brief.🤖 Generated with Claude Code