[ENG-2181] Advanced node search filters menu UX update - #1354
Conversation
Nodes types now start unchecked; checking one filters to it directly, so the panel no longer needs to translate an empty selection into an all-checked display or offer a separate Only shortcut.
|
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. |
|
@coderabbitai full review |
✅ Action performedFull review finished. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe node-type filter now uses selected node-type IDs directly. Any non-empty selection is active. The menu no longer provides an “Only” action or converts IDs between menu and panel representations. ChangesNode-type filter behavior
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to This localized update changes node-type filters to start unchecked and removes the redundant Only action. No actionable merge-blocking risk remains after normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Description checkExplanation The description includes the required Scope check section and documents the scope status, summary, testing, and known test gap. The scope-check command remains unchecked, but the section is otherwise complete and relevant. Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 2 files. 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 |
|
I'm not sure if this is the desired design. When we made this proposal for the Node Summoning Menu in Roam, I remember being asked specifically for the ability to make it easy to filter "all but one node", "all", or "only one." Not sure if there's any user context that's changed since then? But if it has, and we agreed on this, the code looks fine to me. |
I haven't done a design pass on the node summoning menu's filter menu so I wont comment on its implementation, but in the context of this particular filter menu for advanced node search I agree with Michaels sentiment here https://linear.app/discourse-graphs/issue/ENG-2181/advanced-node-search-filters-menu-ux-update that it's more straightforward to reverse the behavior of filters. I don't think I misinterpreted @mdroidian from that video, but tagging so he can double check my loom 😁 |
|
i'll defer to MG to review then |
|
Let's continue this discussion in Linear. |
Summary
discourseNodeTypeFilter.ts:hasActiveTypeFilteris now a plainselectedTypeIds.length > 0, andtoPanelSelectedIds/fromPanelSelectedIdsare deleted — they existed only to translate an empty selection into an "all checked" display, which no longer applies.Linear: https://linear.app/discourse-graphs/issue/ENG-2181/advanced-node-search-filters-menu-ux-update
Video
https://www.loom.com/share/8d0c7af989684c49b5c44d7003b66efe
Test plan
pnpm run check-types— no new errors (pre-existing unrelated tldraw/canvas type errors only)pnpm exec eslinton both changed files — cleanSelf-review
Checked against
STYLE_GUIDE.md:any— all hold.discourseNodeTypeFilter.tshas no unit tests (none existed before this change either). Flagging rather than adding tests unasked, since that'd be scope beyond this ticket — happy to add a follow-up if wanted.Scope check
$scope-checkagainst ENG-2181 and the final diff.Done When: Not documented — ENG-2181 has no writtenDone Whensection, only a linked Loom video (from DES-286) I don't have the ability to watch. The diff matches the plain-language request this PR was built from: default-unchecked filter checkboxes, direct per-type filtering on check, and removal of the "Only" button. No other behavior was changed.🤖 Generated with Claude Code
Summary by CodeRabbit