Skip to content

feat(ui): Add LOINC to sections & headers sticky#1314

Open
rogeruiz wants to merge 5 commits into
mainfrom
rogeruiz/1277/section-table-improvements
Open

feat(ui): Add LOINC to sections & headers sticky#1314
rogeruiz wants to merge 5 commits into
mainfrom
rogeruiz/1277/section-table-improvements

Conversation

@rogeruiz
Copy link
Copy Markdown
Collaborator

@rogeruiz rogeruiz commented Jun 2, 2026

🔀 PULL REQUEST

💡 Summary

Makes the table headers for sections sticky by adding a scrollable wrapper. Also
the section code display is now showing on all sections not just custom ones.

🔗 Related Issue

✅ Acceptance Criteria

🧪 How to test

Load up the application locally. Navigate to a configuration's Sections view and
scroll to observe the sticky headers and the LOINC codes should now be visible
for all sections not just custom ones.

@rogeruiz rogeruiz self-assigned this Jun 2, 2026
@rogeruiz rogeruiz added the ux/ui Primarily client-side work with minimal server work needed. label Jun 2, 2026
@rogeruiz rogeruiz force-pushed the rogeruiz/1277/section-table-improvements branch from bafb0a8 to 28665eb Compare June 2, 2026 19:32
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

🔒 Security Scan Results

⚠️ Found 14 vulnerabilities

Severity Total
🟠 High 10
🟡 Medium 4

📦 refiner-app

No vulnerabilities found

📦 refiner-lambda

Severity Count
🟠 High 1
🟡 Medium 2

📦 refiner-ops

Severity Count
🟠 High 9
🟡 Medium 2

View detailed results: Security tab
Last updated: 2026-06-05 20:32:30 UTC

@jakewheeler
Copy link
Copy Markdown
Collaborator

jakewheeler commented Jun 3, 2026

I'm seeing double scroll bars. I'm thinking we may be missing a fixed height somewhere. Looks like maybe line 64?
Kapture 2026-06-03 at 15 24 51

currentSection={section}
sections={sectionProcessing}
disabled={disabled || isDisabledSection(section.code)}
<div className="max-h-[calc(100vh-400px)] overflow-y-auto">
Copy link
Copy Markdown
Collaborator

@fzhao99 fzhao99 Jun 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doing things this way doesn't use the full height at smaller screen sizes.

Screen.Recording.2026-06-03.at.3.28.35.PM.mov

An alternative is to remove the div and instead make the individual th elements sticky and set the relative positioning using something like -top-6 z-10 bg-white

@jakewheeler
Copy link
Copy Markdown
Collaborator

The tooltips seem to cut off. Maybe a z-index issue?
image

This fixes the double scrollbar and the tooltip overflow in the eICR sections
table. To do this, I had to split the eICR sections table into two separate
header and body tables to avoid the clipping issue. The body table also now uses
flex layout to prevent it from filling the parent container's remaining space.
This removes the double scrollbar.

Co-Authored-By: Jake Wheeler <jake.wheeler@skylight.digital>
Co-Authored-By: fzhao99 <bob@skylight.digital>
@rogeruiz
Copy link
Copy Markdown
Collaborator Author

rogeruiz commented Jun 4, 2026

Thanks @fzhao99 and @jakewheeler for your reviews. I think I've addressed
everything y'all mentioned. Let me know if anything still looks weird.

@rogeruiz rogeruiz requested a review from fzhao99 June 4, 2026 13:56
<RefineSwitch
</table>
<div className="min-h-0 flex-1 overflow-y-scroll">
<table className="w-full table-fixed">
Copy link
Copy Markdown
Collaborator

@fzhao99 fzhao99 Jun 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

breaking things into two tables like this will cause accessibility issues, since the bottom table doesn't have any semantic labeling and will get lost for screenreader users without associated header columns.

Is there a concern for keeping things in one semantic table and using sticky here like we were previously? Otherwise, this will come back to bite us when we need to submit accessibility scans at the next CDC review

Copy link
Copy Markdown
Collaborator Author

@rogeruiz rogeruiz Jun 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah fair. I did think about this but wanted to see if this tradeoff would work well. We shouldn't degrade a11y for the sake of design. I have another option that should be more accessible using CSS grid or possibly using a different technique to render a tooltip. The breaking apart was done to allow the tooltip to escape the overflow-hidden on the table.

As @fzhao99 helpfully brought up, I was potentially sacrificing accessibility in
order to avoid using Portals to render the tooltips. This refactor fixes any
potential a11y issues with the Sections table and now uses Portals to render the
tooltips in the `<body/>` tag rather than relative to where they appear in the
DOM.

Co-Authored-By: fzhao99 <bob@skylight.digital>
@rogeruiz
Copy link
Copy Markdown
Collaborator Author

rogeruiz commented Jun 5, 2026

@fzhao99 this is ready for review again.

@rogeruiz
Copy link
Copy Markdown
Collaborator Author

rogeruiz commented Jun 5, 2026

@fzhao99 this should be in a good spot to review again. thanks

Merge remote-tracking branch 'origin/main' into rogeruiz/1277/section-table-improvements
@rogeruiz rogeruiz force-pushed the rogeruiz/1277/section-table-improvements branch from 4aad65e to e4fe0dd Compare June 5, 2026 20:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dibbs-ecr-refiner ux/ui Primarily client-side work with minimal server work needed.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[TASK] Section table improvements

3 participants