From d9aa18fb4eff98f4e62a3c31e9fb79d955039bb3 Mon Sep 17 00:00:00 2001 From: Jethary Rader <66035149+jerader@users.noreply.github.com> Date: Tue, 7 May 2024 13:33:45 -0400 Subject: [PATCH] fix(protocol-designer): misc bugs with copy, ui, and liquid color error (#15116) closes AUTH-386 AUTH-387 AUTH-385 partially closes RQA-2682 --- .../components/LiquidsPage/LiquidEditForm.tsx | 7 +++--- .../AnnouncementModal/announcements.tsx | 2 +- .../CreateFileWizard/EquipmentOption.tsx | 20 +++++++++++------- .../CreateFileWizard/PipetteTipsTile.tsx | 9 ++++++++ .../__tests__/EquipmentOption.test.tsx | 1 + .../src/components/modules/ModuleDiagram.tsx | 2 +- .../src/images/modules/thermocycler.jpg | Bin 17116 -> 0 bytes .../src/images/modules/thermocycler.png | Bin 0 -> 8030 bytes .../src/localization/en/tooltip.json | 1 + .../src/steplist/formLevel/warnings.tsx | 4 ++-- 10 files changed, 30 insertions(+), 16 deletions(-) delete mode 100644 protocol-designer/src/images/modules/thermocycler.jpg create mode 100644 protocol-designer/src/images/modules/thermocycler.png diff --git a/protocol-designer/src/components/LiquidsPage/LiquidEditForm.tsx b/protocol-designer/src/components/LiquidsPage/LiquidEditForm.tsx index 13a01dcb314..7fd91633796 100644 --- a/protocol-designer/src/components/LiquidsPage/LiquidEditForm.tsx +++ b/protocol-designer/src/components/LiquidsPage/LiquidEditForm.tsx @@ -55,7 +55,7 @@ function checkColor(hex: string): boolean { const INVALID_DISPLAY_COLORS = ['#000000', '#ffffff', DEPRECATED_WHALE_GREY] -export const liquidEditFormSchema: any = Yup.object().shape({ +const liquidEditFormSchema: any = Yup.object().shape({ name: Yup.string().required('liquid name is required'), displayColor: Yup.string().test( 'disallowed-color', @@ -66,7 +66,7 @@ export const liquidEditFormSchema: any = Yup.object().shape({ } return !INVALID_DISPLAY_COLORS.includes(value) ? !checkColor(value) - : !INVALID_DISPLAY_COLORS.includes(value) + : false } ), description: Yup.string(), @@ -117,7 +117,6 @@ export function LiquidEditForm(props: LiquidEditFormProps): JSX.Element { serialize: values.serialize || false, }) } - return (
@@ -181,7 +180,7 @@ export function LiquidEditForm(props: LiquidEditFormProps): JSX.Element { fontWeight={TYPOGRAPHY.fontWeightSemiBold} marginTop={errors.name != null ? '-0.25rem' : '0rem'} > - {errors.displayColor != null ? errors.displayColor : null} + {errors.displayColor != null ? errors.displayColor.message : null}
diff --git a/protocol-designer/src/components/modals/AnnouncementModal/announcements.tsx b/protocol-designer/src/components/modals/AnnouncementModal/announcements.tsx index b10c6d75407..ed4415a099c 100644 --- a/protocol-designer/src/components/modals/AnnouncementModal/announcements.tsx +++ b/protocol-designer/src/components/modals/AnnouncementModal/announcements.tsx @@ -9,7 +9,7 @@ import { } from '@opentrons/components' import magTempCombined from '../../../images/modules/magdeck_tempdeck_combined.png' -import thermocycler from '../../../images/modules/thermocycler.jpg' +import thermocycler from '../../../images/modules/thermocycler.png' import multiSelect from '../../../images/announcements/multi_select.gif' import batchEdit from '../../../images/announcements/batch_edit.gif' import heaterShaker from '../../../images/modules/heatershaker.png' diff --git a/protocol-designer/src/components/modals/CreateFileWizard/EquipmentOption.tsx b/protocol-designer/src/components/modals/CreateFileWizard/EquipmentOption.tsx index 76b97572b47..29210f5c52f 100644 --- a/protocol-designer/src/components/modals/CreateFileWizard/EquipmentOption.tsx +++ b/protocol-designer/src/components/modals/CreateFileWizard/EquipmentOption.tsx @@ -1,7 +1,7 @@ import * as React from 'react' import { useTranslation } from 'react-i18next' import { css } from 'styled-components' -import { FLEX_ROBOT_TYPE } from '@opentrons/shared-data' +import { FLEX_ROBOT_TYPE, OT2_ROBOT_TYPE } from '@opentrons/shared-data' import { Flex, @@ -57,6 +57,7 @@ interface EquipmentOptionProps extends StyleProps { showCheckbox?: boolean disabled?: boolean multiples?: MultiplesProps + type?: 'module' | 'pipetteTip' } export function EquipmentOption(props: EquipmentOptionProps): JSX.Element { const { @@ -66,6 +67,7 @@ export function EquipmentOption(props: EquipmentOptionProps): JSX.Element { image = null, showCheckbox = false, disabled = false, + type = 'module', robotType, multiples, ...styleProps @@ -197,6 +199,14 @@ export function EquipmentOption(props: EquipmentOptionProps): JSX.Element { ) } + let optionTooltip + if (robotType === FLEX_ROBOT_TYPE && type === 'module') { + optionTooltip = t('disabled_no_space_additional_items') + } else if (robotType === OT2_ROBOT_TYPE && type === 'module') { + optionTooltip = t('disabled_you_can_add_one_type') + } else if (type === 'pipetteTip') { + optionTooltip = t('disabled_no_space_pipette') + } return ( <> {disabled ? ( - - {t( - robotType === FLEX_ROBOT_TYPE - ? 'disabled_no_space_additional_items' - : 'disabled_you_can_add_one_type' - )} - + {optionTooltip} ) : null} ) diff --git a/protocol-designer/src/components/modals/CreateFileWizard/PipetteTipsTile.tsx b/protocol-designer/src/components/modals/CreateFileWizard/PipetteTipsTile.tsx index a95c4054f2d..422c87e332e 100644 --- a/protocol-designer/src/components/modals/CreateFileWizard/PipetteTipsTile.tsx +++ b/protocol-designer/src/components/modals/CreateFileWizard/PipetteTipsTile.tsx @@ -210,7 +210,11 @@ function PipetteTipsField(props: PipetteTipsFieldProps): JSX.Element | null { ) }} width="21.75rem" + disabled={ + selectedValues.length === 3 && !selectedValues.includes(o.value) + } minHeight="4rem" + type="pipetteTip" showCheckbox /> ))} @@ -276,6 +280,11 @@ function PipetteTipsField(props: PipetteTipsFieldProps): JSX.Element | null { }} width="21.75rem" minHeight="4rem" + type="pipetteTip" + disabled={ + selectedValues.length === 3 && + !selectedValues.includes(o.value) + } showCheckbox /> ))} diff --git a/protocol-designer/src/components/modals/CreateFileWizard/__tests__/EquipmentOption.test.tsx b/protocol-designer/src/components/modals/CreateFileWizard/__tests__/EquipmentOption.test.tsx index 6b5978338d1..1c367f59e4d 100644 --- a/protocol-designer/src/components/modals/CreateFileWizard/__tests__/EquipmentOption.test.tsx +++ b/protocol-designer/src/components/modals/CreateFileWizard/__tests__/EquipmentOption.test.tsx @@ -23,6 +23,7 @@ describe('EquipmentOption', () => { isSelected: false, text: 'mockText', robotType: FLEX_ROBOT_TYPE, + type: 'module', } }) afterEach(() => { diff --git a/protocol-designer/src/components/modules/ModuleDiagram.tsx b/protocol-designer/src/components/modules/ModuleDiagram.tsx index fcc69c170bd..ad28ea58430 100644 --- a/protocol-designer/src/components/modules/ModuleDiagram.tsx +++ b/protocol-designer/src/components/modules/ModuleDiagram.tsx @@ -22,7 +22,7 @@ import magdeck_gen1 from '../../images/modules/magdeck_gen1.png' import magdeck_gen2 from '../../images/modules/magdeck_gen2.png' import tempdeck_gen1 from '../../images/modules/tempdeck_gen1.png' import temp_deck_gen_2_transparent from '../../images/modules/temp_deck_gen_2_transparent.png' -import thermocycler from '../../images/modules/thermocycler.jpg' +import thermocycler from '../../images/modules/thermocycler.png' import thermocycler_gen2 from '../../images/modules/thermocycler_gen2.png' import heater_shaker_module_transparent from '../../images/modules/heater_shaker_module_transparent.png' import mag_block from '../../images/modules/mag_block.png' diff --git a/protocol-designer/src/images/modules/thermocycler.jpg b/protocol-designer/src/images/modules/thermocycler.jpg deleted file mode 100644 index c0aa26a114cec528cd8034174215463769f2fede..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17116 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 CQslb; diff --git a/protocol-designer/src/images/modules/thermocycler.png b/protocol-designer/src/images/modules/thermocycler.png new file mode 100644 index 0000000000000000000000000000000000000000..f25ef9e8805207b3883c04b9cbe8195833a59b7c GIT binary patch literal 8030 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 gQjmfaV`vj6}907*qoM6N<$f;I$(^Z)<= literal 0 HcmV?d00001 diff --git a/protocol-designer/src/localization/en/tooltip.json b/protocol-designer/src/localization/en/tooltip.json index b3ac4786fdc..52a582f0103 100644 --- a/protocol-designer/src/localization/en/tooltip.json +++ b/protocol-designer/src/localization/en/tooltip.json @@ -6,6 +6,7 @@ "disabled_step_creation": "New steps cannot be added in Batch Edit mode.", "disabled_no_space_additional_items": "No space for this combination of staging area slots, trash, and modules.", "disabled_you_can_add_one_type": "Only one module of each type is allowed on the deck at a time", + "disabled_no_space_pipette": "Only up to 3 tipracks can be assigned", "not_enough_space_for_temp": "There is not enough space on the deck to add more temperature modules", "not_in_beta": "ⓘ Coming Soon", "missing_tiprack": "Missing a tiprack? Make sure it is added to the deck", diff --git a/protocol-designer/src/steplist/formLevel/warnings.tsx b/protocol-designer/src/steplist/formLevel/warnings.tsx index f19527d72f1..ef01d75d917 100644 --- a/protocol-designer/src/steplist/formLevel/warnings.tsx +++ b/protocol-designer/src/steplist/formLevel/warnings.tsx @@ -62,14 +62,14 @@ const belowMinDisposalVolumeWarning = (min: number): FormWarning => ({ const tipPositionedLowInTube = (): FormWarning => ({ type: 'TIP_POSITIONED_LOW_IN_TUBE', title: - 'A tuberack has an aspirate and dispense default height at 1mm and 0.5mm from the bottom of the well, which could cause liquid overflow or pipette damage. Edit tip position in advanced settings.', + 'A tuberack has an aspirate and dispense default height at 1mm from the bottom of the well, which could cause liquid overflow or pipette damage. Edit tip position in advanced settings.', dependentFields: ['aspirate_labware', 'dispense_labware'], }) const mixTipPositionedLowInTube = (): FormWarning => ({ type: 'MIX_TIP_POSITIONED_LOW_IN_TUBE', title: - 'The default mix height is 0.5mm from the bottom of the well, which could cause liquid overflow or pipette damage. Edit tip position in advanced settings.', + 'The default mix height is 1mm from the bottom of the well, which could cause liquid overflow or pipette damage. Edit tip position in advanced settings.', dependentFields: ['labware'], })