Skip to content

perf: pair Slim with DMV dead-tile skipping - #438

Open
igoroctaviano wants to merge 14 commits into
masterfrom
perf/tiled-sparse-dead-tiles
Open

perf: pair Slim with DMV dead-tile skipping#438
igoroctaviano wants to merge 14 commits into
masterfrom
perf/tiled-sparse-dead-tiles

Conversation

@igoroctaviano

Copy link
Copy Markdown
Collaborator

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-tiles via dmv-branch.

No Slim tile-pipeline changes — the performance fix lives in DMV (#284).

Test plan

  • Firebase preview builds and links DMV perf/tiled-sparse-dead-tiles
  • PanopTILs / sparse non-matching SEGs: toggle multiple segments at overview without severe jank
  • Click-to-zoom, absent segment badge, and visibility toggles still work
  • Matching-level / TILED_FULL segmentations still render correctly
  • Compare against feat: add click-to-zoom for segments #429 if needed; leave feat: add click-to-zoom for segments #429 open until a pair is chosen to merge

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.
@sonarqubecloud

Copy link
Copy Markdown

@deepsource-io

deepsource-io Bot commented Sep 11, 2026

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in a7e817f...003e695 on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

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.

@github-actions

Copy link
Copy Markdown

🔗 Firebase Preview - Linked to DMV Branch

This preview is using a linked dicom-microscopy-viewer branch:

Branch perf/tiled-sparse-dead-tiles
Commit 431be3c
Source dmv-branch

To change the DMV branch, edit dmv-branch: <branch-name> in the PR description.

@github-actions

Copy link
Copy Markdown

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

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