Repository navigation
chore: upgrade @databiosphere/findable-ui to v58.0.0 (#5008) - #5009
Merged
Merged
Conversation
- remove the layoutdimensionsprovider wrapper from _app (removed in v58, findable-ui #998) - remove the per-page main overrides (index and 12 content pages) and the main page prop; every page now renders the default main - scope the azul sort test locator to the exact column header name, so it skips the aria-hidden pinned table head copy added in v58 (findable-ui #1122) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: cc-claude-tools <cc-claude-tools@clevercanary.com>
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues block the findable-ui v58 upgrade and related layout and sorting-test changes.
No open issues 🎉
What changed in this PR
Upgrades the data browser to @databiosphere/findable-ui v58 and adapts its shared layout and sorting tests to the library’s changes, addressing #5008.
Changes:
- Updates the dependency to
^58.0.0, with58.0.0resolved in the lockfile. - Removes the retired layout provider and per-page
Mainoverrides in favor of the default layout. - Uses exact, accessible column-header matching in Azul sorting tests to avoid duplicate pinned headers.
| File | Description |
|---|---|
pages/terms-of-service/index.tsx |
Removes the content-page Main override. |
pages/privacy/index.tsx |
Removes the content-page Main override. |
pages/metadata/index.tsx |
Removes the content-page Main override. |
pages/guides/tsv-file-manifest-download.tsx |
Removes the guide’s Main override. |
pages/guides/individual-file-download.tsx |
Removes the guide’s Main override. |
pages/guides/index.tsx |
Removes the guides index’s Main override. |
pages/guides/data-download-via-curl.tsx |
Removes the guide’s Main override. |
pages/guides/data-download-options.tsx |
Removes the guide’s Main override. |
pages/ga-announcement/index.tsx |
Removes the announcement’s Main override. |
pages/data-dictionary/[dictionary]/index.tsx |
Removes the dictionary page’s Main override. |
pages/beta-announcement/index.tsx |
Removes the announcement’s Main override. |
pages/apis/index.tsx |
Removes the API page’s Main override. |
pages/[entityListType]/index.tsx |
Removes the obsolete styled Main import and override. |
pages/_app.tsx |
Removes LayoutDimensionsProvider and standardizes on the default Main. |
package.json |
Updates findable-ui to ^58.0.0. |
package-lock.json |
Locks findable-ui to 58.0.0. |
e2e/testFunctions.ts |
Scopes Azul sort controls to exact accessible column headers. |
Review effort: Balanced
NoopDog
approved these changes
Oct 28, 2026
NoopDog
left a comment
Collaborator
There was a problem hiding this comment.
Thanks Fran, nice cleanup of the Main overrides! Could you attach the two recordings or drop the Screenshots section?
Contributor
Author
|
Screenshots attached. |
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.
Closes #5008
What changed
@databiosphere/findable-uiis upgraded from^57.2.0to^58.0.0(lockfile:58.0.0).pages/_app.tsx: removed theLayoutDimensionsProviderwrapper, which v58 removes. Header and Footer now measure themselves and set--header-height/--footer-height.Mainoverride:IndexPage.Main = DXMaininpages/[entityListType]/index.tsx. Itsmain.stylesimport no longer exists in v58, becauseMainwas renamed toStyledMain.Page.Main = Mainon the 12 content pages: apis, beta-announcement, data-dictionary, ga-announcement, the five guides pages, metadata, privacy and terms-of-service.Main?page prop:NextPageWithComponentandAppPropsWithComponentare gone, and_apprenders the defaultMaindirectly.e2e/testFunctions.ts:testSortAzulnow finds the sort label withgetByRole("columnheader", { exact: true, name })instead of a page-wide.MuiTableSortLabel-rootfiltered by substring.Why
Mainand the defaultMainrender the sameStyledMain, so every page override was a no-op.aria-hiddencopy of the table head to keep the head pinned. The old sort locator matched both copies, so Playwright strict mode failed all 15anvil-sort.spec.tstests in chromium, firefox and webkit. I reproduced this on this branch before the fix. Role queries skiparia-hiddensubtrees. The exact name match also stops one column name matching another as a substring (for example "BioSample" and "BioSample Type"), and it matches howtestSortCatalogalready finds its sort button.Assumptions I made
yet-another-react-lightbox, v58's new optional peer dependency, is not installed. Only findable-ui'sFigureLightboxuses it, and this repo does not.Main, because both resolve to the sameStyledMain. I checked/guidesand the AnVIL data dictionary on the dev server.useLayoutSpacing,useLayoutDimensionsor the header offsets.How to verify
Definition of done from #5008, mapped to steps:
@databiosphere/findable-uiis at^58.0.0inpackage.jsonand58.0.0inpackage-lock.json: step 1.LayoutDimensionsProviderand theIndexPage.Main = DXMainoverride are removed, andnpx tsc --noEmitpasses: step 1.testSortAzulscopes its sort-label locator togetByRole("columnheader"), andanvil-sort.spec.tspasses in chromium, firefox and webkit: step 4.npm test) and e2e tests (npx playwright test) pass: steps 3 and 4.npm ci, thennpx tsc --noEmit. It should finish with no errors.grep findable-ui package.jsonshould show^58.0.0.npm run build-cc-dev:anvil-cmg,npm run build-dev:anvil-catalog,npm run build-ma-dev:hca-dcpandnpm run build-dev:lungmap. Each should succeed.npm test. All 258 tests should pass.npm run test:anvil-cmgandnpm run test:anvil-catalog.anvil-sort.spec.tsshould pass on every tab in all three browsers with no strict-mode violations. Locally: anvil-cmg 132 passed, and anvil-catalog 48 passed with 9 skipped.npm run dev:anvil-cmg, thennpm run dev:hca-dcp. In each, open an index page (the AnVIL Files tab has enough rows) and scroll:/guidesand a data dictionary page. They should look the same as onmain.Screenshots
data-browser-5008-files-index-scroll-desktop.webm
data-browser-5008-files-index-scroll-mobile.webm
🤖 Generated with Claude Code
🐦 Built with cc-claude-tools