Skip to content
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

feat(protocol-designer): finish logic for liquid class getter #18035

Open
wants to merge 3 commits into
base: edge
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,22 @@

interface ResetSettingsModalProps {
tab: 'aspirate' | 'dispense'
onContinue: () => void
onClose: () => void
onScroll: () => void
liquidClass?: string | null
}
export function ResetSettingsModal(
props: ResetSettingsModalProps
): JSX.Element {
const { tab, liquidClass, onClose, onScroll } = props
const { tab, liquidClass, onContinue, onClose, onScroll } = props

Check warning on line 29 in protocol-designer/src/components/organisms/ResetSettingsModal.tsx

View check run for this annotation

Codecov / codecov/patch

protocol-designer/src/components/organisms/ResetSettingsModal.tsx#L29

Added line #L29 was not covered by tests
const { t, i18n } = useTranslation('protocol_steps')

// TODO: Update to check liquidClass !== 'none' for Don't use a liquid class
const isLiquidClassSelected = liquidClass !== null && liquidClass !== ''
const liquidClassName = getLiquidClassDisplayName(String(liquidClass))

const handleContinue = (): void => {
console.log('TODO: Wire up reset settings modal.')
onContinue()

Check warning on line 36 in protocol-designer/src/components/organisms/ResetSettingsModal.tsx

View check run for this annotation

Codecov / codecov/patch

protocol-designer/src/components/organisms/ResetSettingsModal.tsx#L36

Added line #L36 was not covered by tests
onClose()
onScroll()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,11 @@
getCurrentFormIsPresaved,
getDynamicFieldFormErrorsForUnsavedForm,
getFormLevelErrorsForUnsavedForm,
getLabwareEntities,
getPipetteEntities,
getSavedStepForms,
} from '../../../../step-forms/selectors'
import { getDefaultLiquidClassesValues } from '../../../../steplist/formLevel/handleFormChange/utils'
import { updateFieldsForLiquidClass } from '../../../../steplist/formLevel/handleFormChange/utils'
import { getTimelineWarningsForSelectedStep } from '../../../../top-selectors/timelineWarnings'
import {
hoverSelection,
Expand Down Expand Up @@ -142,6 +143,7 @@
false
)
const pipetteEntities = useSelector(getPipetteEntities)
const labwareEntities = useSelector(getLabwareEntities)

Check warning on line 146 in protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepFormToolbox.tsx

View check run for this annotation

Codecov / codecov/patch

protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepFormToolbox.tsx#L146

Added line #L146 was not covered by tests
const additionalEquipmentEntities = useSelector(
getAdditionalEquipmentEntities
)
Expand Down Expand Up @@ -170,6 +172,7 @@
const [confirmedFieldUpdates, setConfirmedFieldUpdates] = useState<
Record<string, any>
>({})

const fieldsChangedRequiringConfirmation = FIELDS_REQUIRING_CONFIRMATION.filter(
field => {
// if field has been updated and confirmed in modal, check its most recent confirmed value
Expand Down Expand Up @@ -284,18 +287,13 @@
})

const handleUpdateLiquidClassValues = (): void => {
const liquidClassValues = getDefaultLiquidClassesValues(
formData,
updateFieldsForLiquidClass({
propsForFields,
rawForm: formData,

Check warning on line 292 in protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepFormToolbox.tsx

View check run for this annotation

Codecov / codecov/patch

protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepFormToolbox.tsx#L290-L292

Added lines #L290 - L292 were not covered by tests
pipetteEntities,
additionalEquipmentEntities
)
if (liquidClassValues != null) {
Object.entries(liquidClassValues).forEach(([field, value]) => {
if (field in propsForFields) {
propsForFields[field].updateValue(value)
}
})
}
labwareEntities,
additionalEquipmentEntities,
})

Check warning on line 296 in protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepFormToolbox.tsx

View check run for this annotation

Codecov / codecov/patch

protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepFormToolbox.tsx#L294-L296

Added lines #L294 - L296 were not covered by tests
setToolboxStep(toolboxStep + 1)
setShowConfirmationModal(false)
handleConfirmValues()
Expand Down Expand Up @@ -357,7 +355,11 @@
if (isConfirmationRequired) {
setShowConfirmationModal(true)
} else {
handleUpdateLiquidClassValues()
if (!hasSeenAdvancedSettings) {
handleUpdateLiquidClassValues()
} else {
setToolboxStep(toolboxStep + 1)
}

Check warning on line 362 in protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepFormToolbox.tsx

View check run for this annotation

Codecov / codecov/patch

protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepFormToolbox.tsx#L358-L362

Added lines #L358 - L362 were not covered by tests
}
} else if (isMultiStepToolbox && toolboxStep < numStepFormPages - 1) {
if (!isErrorOnCurrentPage) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,13 @@
CheckboxExpandStepFormField,
InputStepFormField,
} from '../../../../../../components/molecules'
import {
getAdditionalEquipmentEntities,
getLabwareEntities,
getPipetteEntities,
} from '../../../../../../step-forms/selectors'
import { updateFieldsForLiquidClass } from '../../../../../../steplist/formLevel/handleFormChange/utils'
import { getMaxPushOutVolume } from '../../../../../../utils'
import { getPipetteEntities } from '../../../../../../step-forms/selectors'
import {
BlowoutLocationField,
BlowoutOffsetField,
Expand Down Expand Up @@ -54,6 +59,11 @@
const { t, i18n } = useTranslation(['application', 'form'])
const toolsComponentRef = useRef<HTMLDivElement | null>(null)
const enableLiquidClasses = useSelector(getEnableLiquidClasses)
const pipetteEntities = useSelector(getPipetteEntities)
const labwareEntities = useSelector(getLabwareEntities)
const additionalEquipmentEntities = useSelector(
getAdditionalEquipmentEntities
)

Check warning on line 66 in protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MixTools/SecondStepMixTools.tsx

View check run for this annotation

Codecov / codecov/patch

protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MixTools/SecondStepMixTools.tsx#L62-L66

Added lines #L62 - L66 were not covered by tests
const [showResetModal, setShowResetModal] = useState<boolean>(false)
const aspirateTab = {
text: i18n.format(t('aspirate'), 'capitalize'),
Expand Down Expand Up @@ -91,6 +101,16 @@
{showResetModal ? (
<ResetSettingsModal
tab={tab}
onContinue={() => {
updateFieldsForLiquidClass({
propsForFields,
rawForm: formData,
pipetteEntities,
labwareEntities,
additionalEquipmentEntities,
liquidHandlingAction: tab,
})
}}

Check warning on line 113 in protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MixTools/SecondStepMixTools.tsx

View check run for this annotation

Codecov / codecov/patch

protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MixTools/SecondStepMixTools.tsx#L104-L113

Added lines #L104 - L113 were not covered by tests
onClose={() => {
setShowResetModal(false)
}}
Expand Down Expand Up @@ -279,7 +299,6 @@
<ResetSettingsField
tab={tab}
onClick={() => {
console.log('TODO: wire up onClick handler')
setShowResetModal(true)
}}
/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import { useTranslation } from 'react-i18next'
import {
ALIGN_CENTER,
DIRECTION_COLUMN,
Flex,
FLEX_MAX_CONTENT,
JUSTIFY_CENTER,
SPACING,
StyledText,
TertiaryButton,
Expand All @@ -24,8 +27,14 @@ export function ResetSettingsField(
flexDirection={DIRECTION_COLUMN}
padding={`0 ${SPACING.spacing16}`}
paddingBottom={SPACING.spacing40}
justifyContent={JUSTIFY_CENTER}
alignItems={ALIGN_CENTER}
>
<TertiaryButton onClick={onClick} buttonType="white">
<TertiaryButton
onClick={onClick}
buttonType="white"
width={FLEX_MAX_CONTENT}
>
<StyledText desktopStyle="captionSemiBold">
{t(`protocol_steps:reset_settings`, { tab })}
</StyledText>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
ToggleStepFormField,
} from '../../../../../../components/molecules'
import {
getAdditionalEquipmentEntities,
getInvariantContext,
getLabwareEntities,
getPipetteEntities,
Expand Down Expand Up @@ -51,6 +52,7 @@
import type { FieldPropsByName, LiquidHandlingTab } from '../../types'
import type { FormData, StepFieldName } from '../../../../../../form-types'
import type { StepFormErrors } from '../../../../../../steplist'
import { updateFieldsForLiquidClass } from '../../../../../../steplist/formLevel/handleFormChange/utils'

const addPrefix = (prefix: string) => (fieldName: string): StepFieldName =>
`${prefix}_${fieldName}`
Expand All @@ -74,7 +76,11 @@
}: SecondStepsMoveLiquidToolsProps): JSX.Element => {
const { t, i18n } = useTranslation(['protocol_steps', 'form', 'tooltip'])
const toolsComponentRef = useRef<HTMLDivElement | null>(null)
const labwares = useSelector(getLabwareEntities)
const pipetteEntities = useSelector(getPipetteEntities)
const labwareEntities = useSelector(getLabwareEntities)
const additionalEquipmentEntities = useSelector(
getAdditionalEquipmentEntities
)

Check warning on line 83 in protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MoveLiquidTools/SecondStepsMoveLiquidTools.tsx

View check run for this annotation

Codecov / codecov/patch

protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MoveLiquidTools/SecondStepsMoveLiquidTools.tsx#L79-L83

Added lines #L79 - L83 were not covered by tests
const { trashBinEntities, wasteChuteEntities } = useSelector(
getInvariantContext
)
Expand All @@ -95,7 +101,7 @@
const destinationLabwareType =
formData.dispense_labware != null
? getTrashOrLabware(
labwares,
labwareEntities,

Check warning on line 104 in protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MoveLiquidTools/SecondStepsMoveLiquidTools.tsx

View check run for this annotation

Codecov / codecov/patch

protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MoveLiquidTools/SecondStepsMoveLiquidTools.tsx#L104

Added line #L104 was not covered by tests
wasteChuteEntities,
trashBinEntities,
formData.dispense_labware as string
Expand Down Expand Up @@ -169,7 +175,7 @@
? Number(formData.disposalVolume_volume)
: 0,
pipetteSpecs: pipetteSpec,
labwareEntities: labwares,
labwareEntities: labwareEntities,

Check warning on line 178 in protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MoveLiquidTools/SecondStepsMoveLiquidTools.tsx

View check run for this annotation

Codecov / codecov/patch

protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MoveLiquidTools/SecondStepsMoveLiquidTools.tsx#L178

Added line #L178 was not covered by tests
tiprackDefUri: formData.tipRack,
}),
[
Expand All @@ -181,7 +187,9 @@
)
const minXYDimension = isDestinationTrash
? null
: getMinXYDimension(labwares[formData[`${tab}_labware`]]?.def, ['A1'])
: getMinXYDimension(labwareEntities[formData[`${tab}_labware`]]?.def, [
'A1',
])

Check warning on line 192 in protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MoveLiquidTools/SecondStepsMoveLiquidTools.tsx

View check run for this annotation

Codecov / codecov/patch

protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MoveLiquidTools/SecondStepsMoveLiquidTools.tsx#L190-L192

Added lines #L190 - L192 were not covered by tests
const minRadiusForTouchTip =
minXYDimension != null ? round(minXYDimension / 2, 1) : null

Expand All @@ -199,6 +207,16 @@
{showResetModal ? (
<ResetSettingsModal
tab={tab}
onContinue={() => {
updateFieldsForLiquidClass({
propsForFields,
rawForm: formData,
pipetteEntities,
labwareEntities,
additionalEquipmentEntities,
liquidHandlingAction: tab,
})
}}

Check warning on line 219 in protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MoveLiquidTools/SecondStepsMoveLiquidTools.tsx

View check run for this annotation

Codecov / codecov/patch

protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MoveLiquidTools/SecondStepsMoveLiquidTools.tsx#L210-L219

Added lines #L210 - L219 were not covered by tests
onClose={() => {
setShowResetModal(false)
}}
Expand Down Expand Up @@ -581,7 +599,6 @@
<ResetSettingsField
tab={tab}
onClick={() => {
console.log('TODO: wire up onClick handler')
setShowResetModal(true)
}}
/>
Expand Down
Loading
Loading