Repository navigation
OpenConceptLab/ocl_issues#2946 | Labelled Filters button; filters start open on wide screens on repo pages and repository lists - #72
Merged
Conversation
…ers start open on wide screens on repo pages and repository lists - The results toolbar's filter toggle is now a "Filters" button in the same style as Sort By and Display, with the applied-filter count, e.g. "Filters (2)". It reuses the existing search.filters key in every locale. - Repo pages and org and user repository lists start with the filter panel open at MUI's lg breakpoint and up (1200px), closed below it. - Opening or closing the panel is remembered while the page stays mounted, so a tab or version change or a window resize doesn't undo it. - Sort By and Display no longer wrap when the toolbar is narrow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TjM9dGow2KV1Gwr2dWQdph
…ag and counts reference filters The button now shows the applied-filter count, so the count it inherited has to be right: an excluded facet counted its __exclude__ marker as a second filter, and reference searches (which fetch no facets) always counted zero. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TjM9dGow2KV1Gwr2dWQdph
paynejd
commented
Oct 22, 2026
paynejd
left a comment
Member
Author
There was a problem hiding this comment.
Codex review, pass 1 (codex-cli 0.163.0, commit 97f0eee)
Verdict: findings (2 × P1)
- F1.1 (P1) SearchResults.jsx#L52: the applied-filter count it inherited counts an excluded facet's
__exclude__marker as a second filter, so excluding one value shows Filters (2). - F1.2 (P1) SearchResults.jsx#L52: on a collection's References tab the count is always zero, because reference searches fetch no facets and the count is narrowed to facet fields.
findings.json
{
"reviewer": "codex-cli 0.163.0",
"perspective": "defects",
"mode": "full",
"commit": "97f0eeed",
"verdict": "findings",
"prior": [],
"findings": [
{
"id": "F1.1",
"severity": "P1",
"tag": null,
"file": "src/components/search/SearchResults.jsx",
"line": 52,
"claim": "The new label inherits a calculation that overcounts excluded filters, leaving the applied-count criterion unmet.",
"scenario": "Exclude one datatype and apply it. The filter state contains both the selected value and __exclude__. The toolbar displays Filters (2), although only one value is filtered and the sidebar correctly counts one.",
"action": "Omit EXCLUDE_FILTER_KEY when counting facet values, as SearchFilters already does.",
"lines_delta": null,
"confidence": "high"
},
{
"id": "F1.2",
"severity": "P1",
"tag": null,
"file": "src/components/search/SearchResults.jsx",
"line": 52,
"claim": "The new Filters button never shows the applied count on collection References.",
"scenario": "Apply an inclusion_type filter on a collection's References tab. References results have facets: {}, so availableFilterFields becomes []. The inherited calculation picks no fields from appliedFilters and reports zero; the button remains Filters instead of Filters (1).",
"action": "Count applied reference filters directly without restricting them to facet fields; reference searches do not fetch facets.",
"lines_delta": null,
"confidence": "high"
}
]
}```
</details>
Member
Author
|
Responses to Codex pass 1
|
paynejd
commented
Oct 22, 2026
paynejd
left a comment
Member
Author
There was a problem hiding this comment.
Codex review, pass 2 (codex-cli 0.163.0, commit a5929ec)
Verdict: clean. F1.1 and F1.2 are resolved, and there are no new findings.
findings.json
{
"reviewer": "codex-cli 0.163.0",
"perspective": "defects",
"mode": "verify",
"commit": "a5929ecb",
"verdict": "clean",
"prior": [
{
"id": "F1.1",
"status": "resolved"
},
{
"id": "F1.2",
"status": "resolved"
}
],
"findings": []
}```
</details>
Member
Author
|
Simplification review (fresh Claude subagent, commit a5929ec) Verdict: clean. It proposed no cuts: the three pages share one hook, the pass-1 fixes are small and needed, and every remaining change maps to an acceptance criterion. Nothing was committed after the reviewed commit, so no further Codex check was needed. simplify.json{"reviewer":"claude subagent","perspective":"simplify","mode":"full","commit":"a5929ecb","verdict":"clean","prior":[],"findings":[]} |
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.
What changed
From implementer feedback: on an org's repository list, a user couldn't find any filters and tried Sort By instead. The panel started closed there, and the only way to open it was an unlabelled icon.
aria-expanded. It reuses the existingsearch.filterskey, so it's already translated in every locale: Filters / Filtros (es) / Filtros (pt-BR) / 筛选项 (zh). There are no new strings, so nothing needs pt-BR review.lgbreakpoint and above (theme.breakpoints.up('lg'), 1200px) and closed below it. The new hooksrc/hooks/useDefaultFiltersOpen.jshandles this.Search) and window resizes.Searchgets an optionalonFiltersOpenChangecallback for this. Its own toggle is otherwise unchanged.white-space: nowrap. Without it, Sort By wrapped onto two lines in a narrow toolbar (repo page at 1280px with a concept open).Unchanged. Global search still starts with the panel open at every width. It does get the labelled button, because the toolbar is shared. The URL registry keeps
defaultFiltersOpen={false}. It isn't a filterable resource, so it never shows the button anyway. Hierarchy view still has no filters and no button.Breakpoint choice. At 1600px the repo page lays out well with filters open, with the summary panel or with a concept open. Between 1200px and 1535px, a repo page with a concept open and filters open is tight: the results column is about 480px at 1280px, and display names wrap (screenshot below). Moving the threshold to
xl(1536px) changes one word in the hook. But atxl, most laptop widths (1280 to 1512px) would start closed, and those are where the original report came from.Design system. Nothing new: the button is the existing toolbar control style (
variant='contained' color='default' size='small').Screenshots
These come from a local build against public prod content: the CIEL source and the WHO org. The member photo in the WHO summary is hidden.
The
screenshots/ocl_issues-2946branch holds only these images. Delete it after review.How I verified it
npm testpasses (20/20).aria-expandedand the button text:useStateinside a React hook, and the repo's node test runner has no React renderer, so I checked it in the browser as above.closes OpenConceptLab/ocl_issues#2946
🤖 Generated with Claude Code
https://claude.ai/code/session_01TjM9dGow2KV1Gwr2dWQdph