Skip to content

feat(app): Show labware versions in LPC #18870

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 9, 2025
Merged

Conversation

mjhuff
Copy link
Contributor

@mjhuff mjhuff commented Jul 9, 2025

Closes EXEC-1592

Overview

Sometimes, when users start protocol setup, it appears as if labware that had offsets in the past now have missing offsets. In actuality, the protocol run utilizes a different version of labware than was previously set in LPC, and offsets are tied to labware versions.

After discussion with Product and Design, we've decided to surface labware versions, which provide some level of visual indication that helps point users to a reason why labware offsets that were present in a past run are now missing.

Protocol Setup

Screenshot 2025-07-09 at 4 34 50 PM Screenshot 2025-07-09 at 4 35 22 PM

LPC Labware List

Screenshot 2025-07-09 at 4 33 24 PM Screenshot 2025-07-09 at 4 34 23 PM

Test Plan and Hands on Testing

  • See pictures

Changelog

  • Added version copy to labware URIs in LPC.

Risk assessment

none, just copy

@mjhuff mjhuff requested review from sfoster1 and SyntaxColoring July 9, 2025 20:44
Copy link

codecov bot commented Jul 9, 2025

Codecov Report

Attention: Patch coverage is 0% with 53 lines in your changes missing coverage. Please review.

Project coverage is 25.41%. Comparing base (3c88711) to head (393f9b9).
Report is 8 commits behind head on edge.

Files with missing lines Patch % Lines
...sitionCheck/steps/HandleLabware/LPCLabwareList.tsx 0.00% 29 Missing ⚠️
.../organisms/LabwareOffsetsTable/AccordionHeader.tsx 0.00% 19 Missing ⚠️
...s/useLPCLabwareInfo/getLPCLabwareInfoFrom/index.ts 0.00% 2 Missing ⚠️
...bwarePositionCheck/__fixtures__/mockLabwareInfo.ts 0.00% 2 Missing ⚠️
app/src/organisms/LabwareOffsetsTable/index.tsx 0.00% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             edge   #18870      +/-   ##
==========================================
+ Coverage   24.34%   25.41%   +1.06%     
==========================================
  Files        3312     3333      +21     
  Lines      289304   291502    +2198     
  Branches    30805    30839      +34     
==========================================
+ Hits        70432    74085    +3653     
+ Misses     218851   217390    -1461     
- Partials       21       27       +6     
Flag Coverage Δ
app 3.10% <0.00%> (+2.11%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
app/src/redux/protocol-runs/types/lpc/labware.ts 100.00% <ø> (ø)
app/src/organisms/LabwareOffsetsTable/index.tsx 0.00% <0.00%> (ø)
...s/useLPCLabwareInfo/getLPCLabwareInfoFrom/index.ts 0.00% <0.00%> (ø)
...bwarePositionCheck/__fixtures__/mockLabwareInfo.ts 1.08% <0.00%> (-0.03%) ⬇️
.../organisms/LabwareOffsetsTable/AccordionHeader.tsx 0.00% <0.00%> (ø)
...sitionCheck/steps/HandleLabware/LPCLabwareList.tsx 0.00% <0.00%> (ø)

... and 126 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Member

@sfoster1 sfoster1 left a comment

Choose a reason for hiding this comment

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

Thanks!

Copy link
Contributor

@SyntaxColoring SyntaxColoring left a comment

Choose a reason for hiding this comment

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

Groovy!

}: AccordionHeaderProps): JSX.Element {
const { t } = useTranslation('labware_position_check')
const offsetCopy = useSelector(
selectTotalOrMissingOffsetRequiredCountForLwCopy(runId, uri, t as TFunction)
)
const isOnDevice = useSelector(getIsOnDevice)
const nameString = isOnDevice
? truncateString(lwDisplayName, 43)
Copy link
Contributor

@SyntaxColoring SyntaxColoring Jul 9, 2025

Choose a reason for hiding this comment

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

Not just here, but in general in the places where we use truncateString(), why would we truncate to a hard-coded length instead of using CSS text-overflow: ellipsis? Won't this cause problems with letter size variability? Or even just general maintainability as things in the designs get resized over time?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, it does have problems with letter size variability, which requires erring on the side of caution. I can't speak to all our usages in the app, but I generally use it in spots where designs don't sufficiently indicate how child content ought to be partitioned in a parent container (ex, the labware naming bounding box vs version bounding box).

@mjhuff mjhuff merged commit 9dac3e1 into edge Jul 9, 2025
37 of 38 checks passed
@mjhuff mjhuff deleted the app_show-labware-version-lpc branch July 9, 2025 22:15
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.

3 participants