diff --git a/app/src/assets/localization/en/protocol_command_text.json b/app/src/assets/localization/en/protocol_command_text.json index 8037b8f2778..fa7484e8c88 100644 --- a/app/src/assets/localization/en/protocol_command_text.json +++ b/app/src/assets/localization/en/protocol_command_text.json @@ -38,6 +38,8 @@ "latching_hs_latch": "Latching labware on Heater-Shaker", "left": "Left", "load_labware_to_display_location": "Load {{labware}} {{display_location}}", + "load_lid": "Loading lid", + "load_lid_stack": "Loading lid stack", "load_liquids_info_protocol_setup": "Load {{liquid}} into {{labware}}", "load_module_protocol_setup": "Load {{module}} in Slot {{slot_name}}", "load_pipette_protocol_setup": "Load {{pipette_name}} in {{mount_name}} Mount", diff --git a/app/src/organisms/ErrorRecoveryFlows/hooks/useFailedLabwareUtils.ts b/app/src/organisms/ErrorRecoveryFlows/hooks/useFailedLabwareUtils.ts index c74840ca5b0..c4b4d92a31b 100644 --- a/app/src/organisms/ErrorRecoveryFlows/hooks/useFailedLabwareUtils.ts +++ b/app/src/organisms/ErrorRecoveryFlows/hooks/useFailedLabwareUtils.ts @@ -287,7 +287,7 @@ export function getFailedCmdRelevantLabware( const failedLWURI = runRecord?.data.labware.find( labware => labware.id === recentRelevantFailedLabwareCmd?.params.labwareId )?.definitionUri - if (failedLWURI != null) { + if (failedLWURI != null && Object.keys(lwDefsByURI).includes(failedLWURI)) { return { name: getLabwareDisplayName(lwDefsByURI[failedLWURI]), nickname: labwareNickname, diff --git a/components/src/organisms/CommandText/useCommandTextString/index.ts b/components/src/organisms/CommandText/useCommandTextString/index.ts index 53ff89d170b..01754c0e71e 100644 --- a/components/src/organisms/CommandText/useCommandTextString/index.ts +++ b/components/src/organisms/CommandText/useCommandTextString/index.ts @@ -100,6 +100,8 @@ export function useCommandTextString( case 'loadLabware': case 'reloadLabware': + case 'loadLid': + case 'loadLidStack': case 'loadPipette': case 'loadModule': case 'loadLiquid': diff --git a/components/src/organisms/CommandText/useCommandTextString/utils/commandText/getLoadCommandText.ts b/components/src/organisms/CommandText/useCommandTextString/utils/commandText/getLoadCommandText.ts index e875ce989cb..d0355220f29 100644 --- a/components/src/organisms/CommandText/useCommandTextString/utils/commandText/getLoadCommandText.ts +++ b/components/src/organisms/CommandText/useCommandTextString/utils/commandText/getLoadCommandText.ts @@ -73,6 +73,13 @@ export const getLoadCommandText = ({ display_location: displayLocation, }) } + // TODO(sb, 01/29): Add full support for these commands in run log once location refactor is complete + case 'loadLid': { + return t('load_lid') + } + case 'loadLidStack': { + return t('load_lid_stack') + } case 'reloadLabware': { const { labwareId } = command.params const labware = diff --git a/shared-data/command/types/setup.ts b/shared-data/command/types/setup.ts index 554c7706977..7180abfd6f9 100644 --- a/shared-data/command/types/setup.ts +++ b/shared-data/command/types/setup.ts @@ -29,6 +29,24 @@ export interface LoadLabwareRunTimeCommand LoadLabwareCreateCommand { result?: LoadLabwareResult } +export interface LoadLidCreateCommand extends CommonCommandCreateInfo { + commandType: 'loadLid' + params: LoadLidParams +} +export interface LoadLidRunTimeCommand + extends CommonCommandRunTimeInfo, + LoadLidCreateCommand { + result?: LoadLidResult +} +export interface LoadLidStackCreateCommand extends CommonCommandCreateInfo { + commandType: 'loadLidStack' + params: LoadLidStackParams +} +export interface LoadLidStackRunTimeCommand + extends CommonCommandRunTimeInfo, + LoadLidStackCreateCommand { + result?: LoadLidStackResult +} export interface ReloadLabwareCreateCommand extends CommonCommandCreateInfo { commandType: 'reloadLabware' params: { labwareId: string } @@ -89,6 +107,8 @@ export type SetupRunTimeCommand = | LoadModuleRunTimeCommand | LoadLiquidRunTimeCommand | MoveLabwareRunTimeCommand + | LoadLidRunTimeCommand + | LoadLidStackRunTimeCommand export type SetupCreateCommand = | ConfigureNozzleLayoutCreateCommand @@ -98,6 +118,8 @@ export type SetupCreateCommand = | LoadModuleCreateCommand | LoadLiquidCreateCommand | MoveLabwareCreateCommand + | LoadLidCreateCommand + | LoadLidStackCreateCommand export type LabwareLocation = | 'offDeck' @@ -163,7 +185,6 @@ export interface MoveLabwareParams { interface MoveLabwareResult { offsetId: string } - interface LoadModuleParams { moduleId?: string location: ModuleLocation @@ -203,3 +224,30 @@ export interface ConfigureNozzleLayoutParams { pipetteId: string configurationParams: NozzleConfigurationParams } + +interface LoadLidStackParams { + location: LabwareLocation + loadName: string + namespace: string + version: number + quantity: number +} + +interface LoadLidStackResult { + stackLabwareId: string + labwareIds: string[] + definition: LabwareDefinition2 + location: LabwareLocation +} + +interface LoadLidParams { + location: LabwareLocation + loadName: string + namespace: string + version: number +} + +interface LoadLidResult { + labwareId: string + definition: LabwareDefinition2 +} diff --git a/shared-data/js/helpers/getAddressableAreasInProtocol.ts b/shared-data/js/helpers/getAddressableAreasInProtocol.ts index 9be0a547f40..9b972d0accf 100644 --- a/shared-data/js/helpers/getAddressableAreasInProtocol.ts +++ b/shared-data/js/helpers/getAddressableAreasInProtocol.ts @@ -42,7 +42,9 @@ export function getAddressableAreasInProtocol( ) { return [...acc, params.newLocation.addressableAreaName] } else if ( - commandType === 'loadLabware' && + (commandType === 'loadLabware' || + commandType === 'loadLid' || + commandType === 'loadLidStack') && params.location !== 'offDeck' && params.location !== 'systemLocation' && 'slotName' in params.location && @@ -75,7 +77,9 @@ export function getAddressableAreasInProtocol( return [...acc, ...addressableAreaNames] } else if ( - commandType === 'loadLabware' && + (commandType === 'loadLabware' || + commandType === 'loadLid' || + commandType === 'loadLidStack') && params.location !== 'offDeck' && params.location !== 'systemLocation' && 'addressableAreaName' in params.location && diff --git a/shared-data/js/helpers/getLoadedLabwareDefinitionsByUri.ts b/shared-data/js/helpers/getLoadedLabwareDefinitionsByUri.ts index 120dc760d13..4892569a318 100644 --- a/shared-data/js/helpers/getLoadedLabwareDefinitionsByUri.ts +++ b/shared-data/js/helpers/getLoadedLabwareDefinitionsByUri.ts @@ -9,7 +9,11 @@ export function getLoadedLabwareDefinitionsByUri( commands: RunTimeCommand[] ): LabwareDefinitionsByUri { return commands.reduce((acc, command) => { - if (command.commandType === 'loadLabware') { + if ( + command.commandType === 'loadLabware' || + command.commandType === 'loadLid' || + command.commandType === 'loadLidStack' + ) { const labwareDef: LabwareDefinition2 | undefined = command.result?.definition if (labwareDef == null) {