-
Couldn't load subscription status.
- Fork 186
feat(protocol-designer): Make adjustments to display flex stacker in deck maps #19959
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
base: edge
Are you sure you want to change the base?
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## edge #19959 +/- ##
==========================================
+ Coverage 24.23% 24.25% +0.02%
==========================================
Files 3540 3536 -4
Lines 298344 298216 -128
Branches 39863 39861 -2
==========================================
+ Hits 72298 72341 +43
+ Misses 226028 225857 -171
Partials 18 18
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oof. Nice work that I wish we didn't have to do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! I don't see any test changes though?
| wholeDeckViewBox = adjustViewBoxForStacker | ||
| ? `${viewBoxOriginX + STACKER_VIEWBOX_ADJUSTMENTS.viewBoxOriginX} ${viewBoxOriginY + STACKER_VIEWBOX_ADJUSTMENTS.viewBoxOriginY} ${deckXDimension + STACKER_VIEWBOX_ADJUSTMENTS.deckXDimension} ${deckYDimension + STACKER_VIEWBOX_ADJUSTMENTS.deckYDimension}` | ||
| : `${viewBoxOriginX} ${viewBoxOriginY} ${deckXDimension} ${deckYDimension}` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
const base = [viewBoxOriginX, viewBoxOriginY, deckXDimension, deckYDimension] as const
const adj = [
base[0] + STACKER_VIEWBOX_ADJUSTMENTS.viewBoxOriginX,
base[1] + STACKER_VIEWBOX_ADJUSTMENTS.viewBoxOriginY,
base[2] + STACKER_VIEWBOX_ADJUSTMENTS.deckXDimension,
base[3] + STACKER_VIEWBOX_ADJUSTMENTS.deckYDimension,
] as const
const adjustedViewBox = adjustViewBoxForStacker ? adj : base
wholeDeckViewBox = `${adjustedViewBox[0]} ${adjustedViewBox[1]} ${adjustedViewBox[2]} ${adjustedViewBox[3]}`| ? deckDef.dimensions[0] + | ||
| (hasFlexStacker | ||
| ? FLEX_STACKER_FIXTURE_PADDING | ||
| : RIGHT_COLUMN_FIXTURE_PADDING) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should avoid using a nested ternary
| const _getLabwareCompatibleWithFlexStacker = ( | ||
| def: LabwareDefinition2 | ||
| ): boolean => { | ||
| return ( | ||
| RECOMMENDED_LABWARE_BY_MODULE[FLEX_STACKER_MODULE_TYPE].includes( | ||
| def.parameters.loadName | ||
| ) || | ||
| def.metadata.displayCategory === 'wellPlate' || | ||
| def.metadata.displayCategory === 'reservoir' | ||
| ) | ||
| } | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit
| const _getLabwareCompatibleWithFlexStacker = ( | |
| def: LabwareDefinition2 | |
| ): boolean => { | |
| return ( | |
| RECOMMENDED_LABWARE_BY_MODULE[FLEX_STACKER_MODULE_TYPE].includes( | |
| def.parameters.loadName | |
| ) || | |
| def.metadata.displayCategory === 'wellPlate' || | |
| def.metadata.displayCategory === 'reservoir' | |
| ) | |
| } | |
| const _getLabwareCompatibleWithFlexStacker = ( | |
| def: LabwareDefinition2 | |
| ): boolean => | |
| ( | |
| RECOMMENDED_LABWARE_BY_MODULE[FLEX_STACKER_MODULE_TYPE].includes( | |
| def.parameters.loadName | |
| ) || | |
| def.metadata.displayCategory === 'wellPlate' || | |
| def.metadata.displayCategory === 'reservoir' | |
| ) |


Overview
This PR enables you to add a flex stacker to a PD protocol, properly visualize it on all deck maps, and add compatible labware to the shuttle position.
Test Plan and Hands on Testing
With





enablePrereleaseModeon in PD, turn on the stacking feature flagAdd a stacker to your protocol, play around with the various deck maps and add/remove and move labware on the stacker shuttles
Changelog
Adjust deck thumbnail, zoomed deck map, and deck edit screens to adapt to the stacker's extra footprint (all through manual visual checking unfortunately)
Create list of Stacker recommended and compatible labware for addition in the
Review requests
Test this out!
Risk assessment
Low