diff --git a/app/src/pages/ProtocolDetails/Hardware.tsx b/app/src/pages/ProtocolDetails/Hardware.tsx
index c59c24e7118..a481fd9dfa8 100644
--- a/app/src/pages/ProtocolDetails/Hardware.tsx
+++ b/app/src/pages/ProtocolDetails/Hardware.tsx
@@ -19,6 +19,8 @@ import {
getModuleType,
getFixtureDisplayName,
GRIPPER_V1_2,
+ MAGNETIC_BLOCK_FIXTURES,
+ MAGNETIC_BLOCK_TYPE,
} from '@opentrons/shared-data'
import {
@@ -119,6 +121,16 @@ function HardwareItem({
)
}
+ const isMagneticBlockFixture =
+ hardware.hardwareType === 'fixture' &&
+ hardware.cutoutFixtureId != null &&
+ MAGNETIC_BLOCK_FIXTURES.includes(hardware.cutoutFixtureId)
+ let iconModuleType = null
+ if (hardware.hardwareType === 'module') {
+ iconModuleType = getModuleType(hardware.moduleModel)
+ } else if (isMagneticBlockFixture) {
+ iconModuleType = MAGNETIC_BLOCK_TYPE
+ }
return (
@@ -126,19 +138,16 @@ function HardwareItem({
- {hardware.hardwareType === 'module' && (
+ {iconModuleType != null ? (
-
+
- )}
+ ) : null}
{hardwareName}
diff --git a/app/src/pages/Protocols/hooks/index.ts b/app/src/pages/Protocols/hooks/index.ts
index a4d4923dec7..e28f80e805c 100644
--- a/app/src/pages/Protocols/hooks/index.ts
+++ b/app/src/pages/Protocols/hooks/index.ts
@@ -14,8 +14,8 @@ import {
getCutoutFixturesForModuleModel,
FLEX_MODULE_ADDRESSABLE_AREAS,
getModuleType,
- MAGNETIC_MODULE_TYPE,
FLEX_USB_MODULE_ADDRESSABLE_AREAS,
+ MAGNETIC_BLOCK_TYPE,
} from '@opentrons/shared-data'
import { getLabwareSetupItemGroups } from '../utils'
import { getProtocolUsesGripper } from '../../../organisms/ProtocolSetupInstruments/utils'
@@ -111,7 +111,8 @@ export const useRequiredProtocolHardwareFromAnalysis = (
: []
const requiredModules: ProtocolModule[] = analysis.modules
- .filter(m => getModuleType(m.model) !== MAGNETIC_MODULE_TYPE)
+ // remove magnetic blocks, they're handled by required fixtures
+ .filter(m => getModuleType(m.model) !== MAGNETIC_BLOCK_TYPE)
.map(({ location, model }) => {
const cutoutIdForSlotName = getCutoutIdForSlotName(
location.slotName,