Skip to content

feat(filters): compact filter popovers with global sort#53

Merged
wgordon17 merged 18 commits intogordon-code:mainfrom
wgordon17:worktree-compact-filter-popovers
Apr 7, 2026
Merged

feat(filters): compact filter popovers with global sort#53
wgordon17 merged 18 commits intogordon-code:mainfrom
wgordon17:worktree-compact-filter-popovers

Conversation

@wgordon17
Copy link
Copy Markdown
Member

Summary

  • Replaces inline filter pills with compact popover trigger buttons across all 3 tabs, reducing filter UI from 3 rows (~116px) to 1 row (~36px)
  • Relocates SortDropdown to the global FilterBar header and makes sort preference global, matching org/repo selector behavior
  • Adds proper accessibility (role=listbox/option, aria-selected, focus rings, label wrapping) and Kobalte Tooltip integration

wgordon17 added 18 commits April 7, 2026 11:39
- removes orphaned sortPreferences schema field, SortPreference type, and _tabId parameter
- adds globalSort to resetViewState, hoists globalSortOptions to module scope
- replaces invalid role=listbox/option ARIA with aria-pressed on filter buttons
- makes FilterBar sort props optional with Show guard
- removes Tooltip wrapper from ScopeToggle, changes Reset all to btn-xs
- inlines isValidUserFilter using local tabFilter snapshot
- removes redundant sortPref createMemo passthrough in both tabs
- adds tests for user-filter auto-reset, globalSort defaults, migration,
  scope-only active filter, stale value fallback, FilterBar sort rendering
@wgordon17 wgordon17 force-pushed the worktree-compact-filter-popovers branch from 41a8153 to 4cd3f66 Compare April 7, 2026 16:06
@wgordon17 wgordon17 merged commit 9c84fa1 into gordon-code:main Apr 7, 2026
1 check passed
@wgordon17 wgordon17 deleted the worktree-compact-filter-popovers branch April 8, 2026 17:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant