feat(app): Enable labware views for LPC Redesign #17384
Merged
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 EXEC-1102
Overview
This PR is the second half of the LPC data layer refactors. I apologize for the size of this one upfront. Because so much of the store is restructured, a lot had to change. This should be the last substantially large PR for the Redesign (outside of one that will add a ton of testing once designs are finalized). Check the Review Requests section to see which changes need feedback.
In legacy LPC flows, the labware that require LPCing and their corresponding locations are injected as steps. All labware must be LPC'd during an LPC flow, so it's not uncommon to run LPC and have something like 50+ steps.
For the Redesign, the geometric identity (the URI) of each labware drives the flow. That is, a user selects a geometric identity, and is then presented with the option to LPC the "default offset" or one of the "applied location offsets" that occurs in the run. Alternatively the user may just view labware offset information here. After selecting a specific offset for which the user wants to perform LPC, a singular "do LPC for only this offset" flow occurs. Because the robot actually does care about a labware instance for loading/unloading labware, we do keep track of one and only one
labwareId
for eachuri
, even if there are multiple labware with the sameuri
in the run.There are some rough view layer implementations that are in the spirit of the Redesign, but those changes are present to keep the flow functional. PRs that address the view layer directly will follow.
A couple caveats/known issues that aren't really issues since we're behind a FF anyway:
/labwareOffsets
resources.Screen.Recording.2025-01-30.at.1.25.04.PM.mov
I did hack the calibration requirement to access LPC (since I tested remotely), but that's not a real change.
Test Plan and Hands on Testing
Changelog
Review requests
LPCWizardState
, specificallylabwareInfo
. How do we feel about the shape ofLPCLabwareInfo
inapp/src/redux/protocol-runs/types/lpc.ts
?Risk assessment
none, behind FF