Skip to content

Commit 18f9fb4

Browse files
authored
fix(components,-protocol-designer): fix order and border radius logic for DeckLabelSet (#17230)
This PR updates the order in which elements of a module/adapter/labware stack are displayed. The correct order should be top-down, reflecting the physical orientation of the elements on the deck. Also, this PR fixes the border radii of each label in the set according to designs. Closes RQA-3736
1 parent 573c669 commit 18f9fb4

File tree

6 files changed

+32
-29
lines changed

6 files changed

+32
-29
lines changed

components/src/organisms/DeckLabelSet/index.tsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -73,17 +73,17 @@ const StyledBox = styled(Box)<StyledBoxProps>`
7373

7474
const LabelContainer = styled.div`
7575
padding-left: ${SPACING.spacing12};
76-
& > *:not(:first-child):not(:last-child) {
76+
77+
& > *:first-child {
7778
border-bottom-right-radius: ${BORDERS.borderRadius4};
78-
border-top-right-radius: ${BORDERS.borderRadius4};
7979
}
8080
81-
& > *:first-child {
81+
& > *:not(:first-child) {
82+
border-top-right-radius: ${BORDERS.borderRadius4};
8283
border-bottom-right-radius: ${BORDERS.borderRadius4};
8384
}
8485
8586
& > *:last-child {
8687
border-bottom-left-radius: ${BORDERS.borderRadius4};
87-
border-bottom-right-radius: ${BORDERS.borderRadius4};
8888
}
8989
`

protocol-designer/src/pages/Designer/DeckSetup/ModuleLabel.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,14 @@ export const ModuleLabel = (props: ModuleLabelProps): JSX.Element => {
7171
<DeckLabelSet
7272
ref={labelContainerRef}
7373
deckLabels={[
74+
...labwareInfos,
7475
{
7576
text: labelName ?? def?.displayName,
7677
isSelected,
7778
isLast,
7879
moduleModel: def?.model,
7980
isZoomed: isZoomed,
8081
},
81-
...labwareInfos,
8282
]}
8383
x={
8484
position[0] +

protocol-designer/src/pages/Designer/DeckSetup/SelectedHoveredItems.tsx

+21-20
Original file line numberDiff line numberDiff line change
@@ -106,19 +106,20 @@ export const SelectedHoveredItems = (
106106
const labwareInfos: DeckLabelProps[] = []
107107

108108
if (
109-
selectedLabwareDefUri != null &&
110-
(hoveredLabware == null || hoveredLabware !== selectedLabwareDefUri)
109+
(hoveredLabware != null ||
110+
selectedLabwareDefUri === hoveredLabware ||
111+
selectedNestedLabwareDefUri === hoveredLabware) &&
112+
hoveredLabwareDef != null
111113
) {
112-
const def =
113-
defs[selectedLabwareDefUri] ?? customLabwareDefs[selectedLabwareDefUri]
114-
const selectedLabwareLabel = {
115-
text: def.metadata.displayName,
116-
isSelected: true,
117-
isLast: hoveredLabware == null && selectedNestedLabwareDefUri == null,
114+
const hoverlLabwareLabel = {
115+
text: hoveredLabwareDef.metadata.displayName,
116+
isSelected: false,
117+
isLast: true,
118118
isZoomed: true,
119119
}
120-
labwareInfos.push(selectedLabwareLabel)
120+
labwareInfos.push(hoverlLabwareLabel)
121121
}
122+
122123
if (selectedNestedLabwareDef != null && hoveredLabware == null) {
123124
const selectedNestedLabwareLabel = {
124125
text: selectedNestedLabwareDef.metadata.displayName,
@@ -129,18 +130,18 @@ export const SelectedHoveredItems = (
129130
labwareInfos.push(selectedNestedLabwareLabel)
130131
}
131132
if (
132-
(hoveredLabware != null ||
133-
selectedLabwareDefUri === hoveredLabware ||
134-
selectedNestedLabwareDefUri === hoveredLabware) &&
135-
hoveredLabwareDef != null
133+
selectedLabwareDefUri != null &&
134+
(hoveredLabware == null || hoveredLabware !== selectedLabwareDefUri)
136135
) {
137-
const hoverLabelLabel = {
138-
text: hoveredLabwareDef.metadata.displayName,
139-
isSelected: false,
140-
isLast: true,
136+
const def =
137+
defs[selectedLabwareDefUri] ?? customLabwareDefs[selectedLabwareDefUri]
138+
const selectedLabwareLabel = {
139+
text: def.metadata.displayName,
140+
isSelected: true,
141+
isLast: hoveredLabware == null && selectedNestedLabwareDefUri == null,
141142
isZoomed: true,
142143
}
143-
labwareInfos.push(hoverLabelLabel)
144+
labwareInfos.push(selectedLabwareLabel)
144145
}
145146

146147
return (
@@ -199,6 +200,7 @@ export const SelectedHoveredItems = (
199200
slotPosition={slotPosition}
200201
moduleModel={selectedModuleModel}
201202
hoveredLabware={hoveredLabware}
203+
showLabel={selectedNestedLabwareDef == null}
202204
/>
203205
<SelectedLabwareRender
204206
labwareOnDeck={matchingSelectedNestedLabwareOnDeck}
@@ -208,8 +210,7 @@ export const SelectedHoveredItems = (
208210
hoveredLabware={hoveredLabware}
209211
nestedLabwareInfo={[
210212
{
211-
text:
212-
selectedNestedLabwareDef?.metadata.displayName ?? 'unknown name',
213+
text: selectedLabwareDef?.metadata.displayName ?? 'unknown name',
213214
isSelected: true,
214215
isLast: true,
215216
isZoomed: true,

protocol-designer/src/pages/Designer/DeckSetup/SelectedLabwareRender.tsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ interface SelectedLabwareRenderProps {
1616
hoveredLabware: string | null
1717
labwareOnDeck?: LabwareOnDeck
1818
nestedLabwareInfo?: DeckLabelProps[] | undefined
19+
showLabel?: boolean
1920
}
2021
export function SelectedLabwareRender(
2122
props: SelectedLabwareRenderProps
@@ -27,6 +28,7 @@ export function SelectedLabwareRender(
2728
moduleModel,
2829
hoveredLabware,
2930
nestedLabwareInfo,
31+
showLabel = true,
3032
} = props
3133

3234
return (labwareOnDeck != null || labwareDef != null) &&
@@ -48,9 +50,9 @@ export function SelectedLabwareRender(
4850
labwareOnDeck={labwareOnDeck}
4951
/>
5052
) : null}
51-
{labwareDef != null ? (
53+
{labwareDef != null && showLabel ? (
5254
<LabwareLabel
53-
isLast={true}
55+
isLast
5456
isSelected={true}
5557
labwareDef={labwareDef}
5658
position={slotPosition}

protocol-designer/src/pages/Designer/DeckSetup/__tests__/SelectedHoveredItems.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ describe('SelectedHoveredItems', () => {
158158
screen.getAllByText(
159159
'Fixture Opentrons Universal Flat Heater-Shaker Adapter'
160160
)
161-
).toHaveLength(3)
161+
).toHaveLength(2)
162162
})
163163
it('renders nothing when there is a hovered module but selected fixture', () => {
164164
props.hoveredModule = HEATERSHAKER_MODULE_V1

protocol-designer/src/pages/Designer/LabwareLabel.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ export const LabwareLabel = (props: LabwareLabelProps): JSX.Element => {
3030
const [labelContainerHeight, setLabelContainerHeight] = useState(0)
3131

3232
const deckLabels = [
33-
...nestedLabwareInfo,
3433
{
3534
text: labelText,
3635
isSelected: isSelected,
3736
isLast: isLast,
3837
isZoomed: designerTab === 'startingDeck',
3938
},
39+
...nestedLabwareInfo,
4040
]
4141

4242
useEffect(() => {

0 commit comments

Comments
 (0)