You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(ui): adds repo-based collapsible grouping to Issues and PRs tabs (#6)
* feat(ui): adds repo-based collapsible grouping to Issues and PRs tabs
* perf(ui): replaces collapsedRepos createSignal<Set> with createStore
Migrates all 3 tabs (ActionsTab, IssuesTab, PullRequestsTab) from
createSignal<Set<string>> to createStore<Record<string, boolean>> for
per-repo fine-grained reactivity. Toggling one repo group no longer
re-evaluates aria-expanded, ChevronIcon rotation, and Show conditions
for all other groups.
Adds 6 new tests: aria-expanded toggle (collapse+re-expand for both
tabs), multi-page pagination, and oversized single-group behavior.
* test(ui): adds collapse-filter interaction test for IssuesTab
* fix: wraps filteredSorted/meta accessors in createMemo, fixes test gaps
* perf(ui): splits paginateGroups into pageLayout and pageGroups memos
* fix(ui): clamps stale page signal when pageCount shrinks
* test(ui): adds page-reset-on-data-shrink test for stale page fix
* fix(ui): addresses PR review findings across all 10 verified issues
- Extracts groupByRepo, computePageLayout, slicePageGroups to shared generic lib/grouping.ts, eliminating verbatim duplication between IssuesTab and PullRequestsTab
- Wraps pageCount in createMemo, consistent with commit 7749a68
- Inlines pageSize (removes unnecessary createMemo wrapper)
- Adds named isRepoCollapsed accessor in IssuesTab/PullRequestsTab, consistent with ActionsTab pattern
- Changes ChevronIcon sizeClass from createMemo to plain arrow fn, consistent with ItemRow isCompact pattern
- Adds aria-expanded to ActionsTab workflow-level toggle button
- Formats PullRequestsTab FilterChips handlers to multi-line style
- Adds unit tests for grouping boundary cases, PullRequestsTab page-reset, sort-order assertions, and ActionsTab aria-expanded tests
* fix(test): allocates dynamic port for E2E to avoid collisions
* fix(test): adds --strictPort to prevent silent port rebinding
0 commit comments