perf: pair Slim with DMV dead-tile skipping - #438
Conversation
Add onClick handler to SegmentItem to zoom to segment's bounding box when the segment label is clicked. This is consistent with the bulk annotation zoom behavior and provides a better UX than auto-zooming on visibility toggle. Changes: - Add onClick prop to SegmentItem and SegmentList components - Add handleSegmentClick method in SlideViewer - Update dicom-microscopy-viewer types with zoomToSegment method
Add the ability to configure OIDC settings through the server selection modal UI. This allows users to connect to servers that require different authentication providers without needing to redeploy the application. Changes: - Add OIDC config textarea input in server selection modal - Add info icon with tooltip showing example JSON format - Validate JSON format and required fields (authority, clientId, scope) - Cache OIDC config in localStorage - Recreate OidcManager when OIDC config is provided - Support optional fields: grantType, authorizationEndpoint, endSessionEndpoint The OIDC configuration is optional - if not provided, the existing config from the deployment is used. If provided, it overwrites the current OIDC settings.
- Add normalizeToJson helper to convert JS object notation to JSON
(allows unquoted keys like { authority: "..." } instead of requiring
{ "authority": "..." })
- Load and apply cached OIDC config in componentDidMount
- Create new OidcManager with cached config before signIn is called
- This ensures OIDC auth flow is triggered on page reload when
custom OIDC config is saved in localStorage
- Make parseCachedOidcConfig static in App.tsx (JS-0105) - Make normalizeToJson static in Header.tsx (JS-0105) - Prefix unused onClick destructure with underscore in SegmentItem.tsx (JS-0356)
- Make isValidOidcConfig and parseOidcConfig static in Header.tsx (JS-0105) - Add @parcel/watcher to onlyBuiltDependencies in .npmrc for pnpm 11 compatibility
Show an Absent tag for segments with no frame data (segment.isAbsent), disable their visibility switch and zoom click, and skip them in show-all / auto-load so empty Segment Sequence entries are not confusing.
Keep the tag inside the card header so it no longer sits beside the title and overflows the list item.
|
|
|
Overall Grade |
Security Reliability Complexity Hygiene |
Code Review Summary
| Analyzer | Status | Updated (UTC) | Details |
|---|---|---|---|
| JavaScript | Sep 11, 2026 2:03p.m. | Review ↗ |
Important
AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.
🔗 Firebase Preview - Linked to DMV BranchThis preview is using a linked
|
|
Visit the preview URL for this PR (updated for commit 003e695): https://idc-external-006--pr438-perf-tiled-sparse-de-kqrosa7m.web.app (expires Fri, 18 Sep 2026 14:07:14 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 88aacecd98ba54d2f9c8d201a9444e43d1ad8307 |



dmv-branch: perf/tiled-sparse-dead-tiles
Paired DMV PR: ImagingDataCommons/dicom-microscopy-viewer#284
Summary
Forked from #429 (
feat/segment-click-to-zoom) so that PR can stay untouched as a rollback/compare pair.This Slim branch is the pairing vehicle for the DMV dead-tile performance work. App behavior matches #429 (click-to-zoom, absent badges, optional OIDC); Firebase preview should link DMV
perf/tiled-sparse-dead-tilesviadmv-branch.No Slim tile-pipeline changes — the performance fix lives in DMV (#284).
Test plan
perf/tiled-sparse-dead-tiles