-
Notifications
You must be signed in to change notification settings - Fork 186
refactor(app): Make waste chute warnings separate pages in 96ch calibration flow #19744
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
Conversation
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.
Good start! I do think we have to handle more cases than just the FLOWS.CALIBRATE case though. See comment below.
|
|
||
| export const AttachWasteChute = ( | ||
| props: PipetteWizardStepProps | ||
| ): JSX.Element | null => { |
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.
| ): JSX.Element | null => { | |
| ): JSX.Element => { |
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.
While these changes cover the calibration case, I'm pretty sure we also need to cover the other flow type that involves calibration: FLOWS.ATTACH.
I believe we unfortunately also need to handle the cases that involve calibration or attachment or remove + attach in getPipetteWizardStepsForProtocol, too.
Effectively, any 96ch flow that has an ATTACH step needs to be considered.
|
|
||
| export const RemoveWasteChute = ( | ||
| props: PipetteWizardStepProps | ||
| ): JSX.Element | null => { |
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.
| ): JSX.Element | null => { | |
| ): JSX.Element => { |
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.
This is really coming along. Unfortunately, there's a bug outside of your PR that's causing the functional changes introduced in this PR to break under some circumstances.
| flowType, | ||
| }, | ||
| ] | ||
| if (selectedPipette === NINETY_SIX_CHANNEL && wasteChute) { |
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.
Ah ok, so there's a bug manifesting here that was not introduced in this PR but exposed by your code. selectedPipette is specifically the user selected pipette when going through an attachment flow. The user first starts by clicking a button that says "I'm attaching a 1ch, 8ch, or 96ch" pipette. selectedPipette refers to that selection.
When we do a calibrate flow, the user doesn't select a pipette - we're just calibrating the existing pipette. This should inject the correct pipette as the selected value, but it seems that in the desktop overflow menu specifically, we don't...we just appear to be injecting a 1ch/8ch selected always. So if you have a 96ch attached with a waste chute, the user always sees the steps that aren't specific to a 96ch with a waste chute.
Fortunately, we are correctly injecting the proper value elsewhere in our code, so we just need to copy that pattern for this overflow menu.
…te page displays for 96ch
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.
One cleanup comment. I'd recommend smoke testing this PR before merging on a real robot, going through the different attach and detach 96ch cases just to be sure.
Nice work! 🚀
| if ( | ||
| left_instrument != null && | ||
| left_instrument.ok && | ||
| left_instrument.mount !== 'left' && | ||
| left_instrument.mount === 'left' && | ||
| left_instrument.data?.channels === 96 | ||
| ) { |
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.
Hm, on second thought, let's make this check:
const left_instrument = instrument[LEFT]
const right_instrument = instrument[RIGHT]
// if either instrument is not null AND has channels === 96We historically have these mount issues where the 96ch is either on the left or the right mount and it isn't super consistent which mount it's on.
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.
Good stuff. The code looks like it all should work but would give it one last smoke test if you haven't already. Thank you!
| const pipetteWizardStep = { mount, flowType, section: SECTIONS.ATTACH_PROBE } | ||
| const [showUnableToDetect, setShowUnableToDetect] = useState<boolean>(false) | ||
|
|
||
| const deckConfig = useNotifyDeckConfigurationQuery() |
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.
Let's pass deckConfig from our coordinating component to save ourselves the extra network request.
Overview
Waste chute warnings are now separate pages during 96ch calibration flow.
This was changed because there are reports that the smaller warnings on other pages were easy to miss and caused collisions in the field.
NOTE: No images for these pages per this slack conversation: slack convoTest Plan and Hands on Testing
Detach Left Pipette and Attach 96-Channel PipetteflowChangelog
Set up page includes a screwdriver because it is needed to remove the waste chute


Remove waste chute page
Re-attach waste chute page

Closes EXEC-1100