Skip to content

Commit 2072395

Browse files
authored
fix(app): correcting text, wrapping module icons, and correcting text color on camera settings (#20061)
# Overview Removed wrapping behavior of module icons in protocol card and robot card Corrected text on camera settings in run setup Updated camera enabled text to a chip ## Test Plan and Hands on Testing Smoke tested: <img width="931" height="332" alt="Screenshot 2025-11-06 at 12 35 10 PM" src="https://github.com/user-attachments/assets/696b8acd-a14f-4b32-95c6-7643240d3ee5" /> <img width="931" height="149" alt="Screenshot 2025-11-06 at 4 11 08 PM" src="https://github.com/user-attachments/assets/b37ebf6b-7a86-4b6b-95f8-98950bbbe47e" /> <img width="900" height="547" alt="Screenshot 2025-11-06 at 3 15 43 PM" src="https://github.com/user-attachments/assets/d8198898-5852-4930-9830-85385138b68c" /> <img width="913" height="564" alt="Screenshot 2025-11-06 at 3 21 59 PM" src="https://github.com/user-attachments/assets/7a5e8bcd-6cab-417a-9724-ac342613d165" /> <img width="991" height="617" alt="Screenshot 2025-11-06 at 4 19 05 PM" src="https://github.com/user-attachments/assets/d4c4266a-45b0-4c3d-874b-5078a79c564c" /> ## Risk assessment low Closes RQA-4819 Closes RQA-4825 Closes RQA-4824 Closes RQA-4830 Closes RQA-4823 Closes RQA-4835
1 parent aafa2ca commit 2072395

File tree

14 files changed

+72
-84
lines changed

14 files changed

+72
-84
lines changed

app/src/assets/localization/en/anonymous.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
"language_preference_description": "The app matches your system language unless you select another language below. You can change the language later in the app settings.",
4848
"learn_uninstalling": "Learn more about uninstalling the app",
4949
"livestream_window_title": "Robot Live Camera",
50+
"live_video_description_odd": "View real-time video of the deck in the App while running a protocol.",
5051
"loosen_screws_and_detach": "Loosen screws and detach gripper",
5152
"modal_instructions": "For step-by-step instructions on setting up your module, consult the Quickstart Guide that came in its box.",
5253
"module_calibration_failed": "<block>Module calibration was unsuccessful. Make sure the calibration adapter is fully seated on the module and try again. If you still have trouble, contact support.</block><block>{{error}}</block>",

app/src/assets/localization/en/branded.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
"language_preference_description": "The Opentrons App matches your system language unless you select another language below. You can change the language later in the app settings.",
4848
"learn_uninstalling": "Learn more about uninstalling the Opentrons App",
4949
"livestream_window_title": "Opentrons Live Camera",
50+
"live_video_description_odd": "View real-time video of the deck in the Opentrons App while running a protocol.",
5051
"loosen_screws_and_detach": "Loosen screws and detach Flex Gripper",
5152
"modal_instructions": "For step-by-step instructions on setting up your module, consult the Quickstart Guide that came in its box. You can also click the link below or scan the QR code to visit the modules section of the Opentrons Help Center.",
5253
"module_calibration_failed": "<block>Module calibration was unsuccessful. Make sure the calibration adapter is fully seated on the module and try again. If you still have trouble, contact Opentrons Support.</block><block>{{error}}</block>",

app/src/assets/localization/en/device_settings.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"are_you_sure_you_want_to_disconnect": "Are you sure you want to disconnect from {{ssid}}?",
2020
"attach_a_pipette_before_calibrating": "Attach a pipette in order to perform calibration",
2121
"authentication": "Authentication",
22-
"automatically_capture_image": "Automatically capture an image of the deck if an error occurs.",
22+
"automatically_capture_image": "Automatically capture an image of the deck in the event of an error.",
2323
"boot_scripts": "Boot scripts",
2424
"both": "Both",
2525
"brightness": "Brightness",
@@ -43,7 +43,7 @@
4343
"camera_preferences_description_long": "The deck camera offers live video monitoring during protocol runs and supports image capture.",
4444
"camera_required": "Camera is required",
4545
"camera_status": "Camera Status",
46-
"camera_status_description": "The deck camera provides live video during protocol runs, allows manual or automated image capture of the deck, and records images automatically when errors occur for easier troubleshooting.",
46+
"camera_status_description": "The deck camera offers live video monitoring during protocol runs and supports image capture—either manually, automatically, or in response to runtime errors for easier troubleshooting.",
4747
"cancel_software_update": "Cancel software update",
4848
"change_network": "Change network",
4949
"characters_max": "17 characters max",
@@ -205,7 +205,7 @@
205205
"legacy_settings": "Legacy Settings",
206206
"likely_incorrect_password": "Likely incorrect network password.",
207207
"live_video": "Live Video",
208-
"live_video_description": "View real-time video of the deck during protocol runs.",
208+
"live_video_description": "View real-time video of the deck while a running a protocol",
209209
"live_video_lc": "Live video",
210210
"mac_address": "MAC Address",
211211
"manage_oem_settings": "Manage OEM settings",

app/src/assets/localization/en/protocol_setup.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
"camera_disabled": "Camera disabled",
5050
"camera_enabled": "Camera enabled",
5151
"camera_settings": "camera settings",
52-
"camera_setup_step_description": "Set your camera preferences for this protocol run.",
52+
"camera_setup_step_description": "Review camera preferences for this protocol run.",
5353
"camera_setup_step_title": "Camera",
5454
"cancel_and_restart_to_edit": "Cancel the run and restart setup to edit",
5555
"check_locations_and_volumes": "Check locations and volumes",

app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunSetup.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,6 @@ export function ProtocolRunSetup({
418418
rightElProps: {
419419
stepKey: CAMERA_SETUP_STEP_KEY,
420420
complete: !missingSteps.includes(CAMERA_SETUP_STEP_KEY),
421-
// TODO(jh, 09-29-25): Wire this enabled/disabled state to the proper endpoint.
422421
completeText: t('camera_enabled'),
423422
incompleteText: t('check_preferences'),
424423
incompleteElement: null,
@@ -581,14 +580,14 @@ function StepRightElement(props: StepRightElementProps): JSX.Element | null {
581580
<Flex flexDirection={DIRECTION_ROW} alignItems={ALIGN_CENTER}>
582581
<Icon
583582
size="1rem"
584-
color={COLORS.yellow60}
583+
color={COLORS.grey60}
585584
marginRight={SPACING.spacing8}
586585
name="alert-circle"
587586
id={`RunSetupCard_${props.stepKey}_incompleteIcon`}
588587
/>
589588
<StyledText
590589
desktopStyle="bodyDefaultSemiBold"
591-
color={COLORS.yellow60}
590+
color={COLORS.grey60}
592591
marginRight={SPACING.spacing16}
593592
id={`RunSetupCard_${props.stepKey}_incompleteText`}
594593
>

app/src/organisms/Desktop/Devices/ProtocolRun/SetupCamera/__tests__/SetupCamera.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ describe('SetupCamera', () => {
7474

7575
screen.getByText('Camera Status')
7676
screen.getByText(
77-
'The deck camera provides live video during protocol runs, allows manual or automated image capture of the deck, and records images automatically when errors occur for easier troubleshooting.'
77+
'The deck camera offers live video monitoring during protocol runs and supports image capture—either manually, automatically, or in response to runtime errors for easier troubleshooting.'
7878
)
7979
})
8080

app/src/organisms/Desktop/Devices/ProtocolRun/SetupCamera/__tests__/SetupRunCameraSettings.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ describe('SetupRunCameraUsage', () => {
4848

4949
screen.getByText('Error Recovery')
5050
screen.getByText(
51-
'Automatically capture an image of the deck if an error occurs.'
51+
'Automatically capture an image of the deck in the event of an error.'
5252
)
5353
})
5454

app/src/organisms/Desktop/Devices/ProtocolRun/SetupCamera/index.tsx

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { useDispatch, useSelector } from 'react-redux'
33
import { useNavigate } from 'react-router-dom'
44

55
import {
6+
Chip,
67
InlineNotification,
78
PrimaryButton,
89
StyledText,
@@ -168,19 +169,9 @@ function CameraStatus({
168169
{t('camera_status')}
169170
</StyledText>
170171
{isCameraEnabled ? (
171-
<StyledText
172-
desktopStyle="captionRegular"
173-
className={styles.camera_status_enabled}
174-
>
175-
{t('enabled')}
176-
</StyledText>
172+
<Chip text={t('enabled')} type={'success'} hasIcon={false} />
177173
) : (
178-
<StyledText
179-
desktopStyle="captionRegular"
180-
className={styles.camera_status_disabled}
181-
>
182-
{t('disabled')}
183-
</StyledText>
174+
<Chip text={t('disabled')} type={'neutral'} hasIcon={false} />
184175
)}
185176
</div>
186177
<StyledText desktopStyle="bodyDefaultRegular">

app/src/organisms/Desktop/Devices/RobotCard.tsx

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ export function RobotCard(props: RobotCardProps): JSX.Element | null {
119119
<AttachedInstruments robotName={robotName} />
120120
<Flex
121121
gridGap={SPACING.spacing4}
122-
flexWrap={WRAP}
123122
justifyContent={JUSTIFY_SPACE_BETWEEN}
124123
>
125124
<AttachedModules robotName={robotName} />
@@ -151,12 +150,12 @@ function AttachedModules(props: { robotName: string }): JSX.Element | null {
151150
<Flex
152151
flexDirection={DIRECTION_COLUMN}
153152
gridGap={SPACING.spacing4}
154-
width="85px"
153+
width="100%"
155154
>
156155
<StyledText desktopStyle="bodyDefaultRegular" color={COLORS.grey60}>
157156
{t('modules')}
158157
</StyledText>
159-
<Flex flexWrap={WRAP}>
158+
<Flex>
160159
{attachedModules.map((module, i) => (
161160
<ModuleIcon
162161
key={`${String(module.moduleModel)}_${i}_${robotName}`}
@@ -218,12 +217,7 @@ function AttachedInstruments(props: { robotName: string }): JSX.Element {
218217
const leftAndRightMountsPipetteDisplayName = null
219218

220219
return (
221-
<Flex
222-
flex="1"
223-
flexDirection={DIRECTION_COLUMN}
224-
gridGap={SPACING.spacing4}
225-
minWidth="24rem"
226-
>
220+
<Flex flex="1" flexDirection={DIRECTION_COLUMN} gridGap={SPACING.spacing4}>
227221
<StyledText desktopStyle="bodyDefaultRegular" color={COLORS.grey60}>
228222
{i18n.format(t('shared:instruments'), 'capitalize')}
229223
</StyledText>

app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsCamera/__tests__/CameraStatusContainer.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ describe('CameraStatusContainer', () => {
3636
render(mockProps)
3737

3838
screen.getByText(
39-
'The deck camera provides live video during protocol runs, allows manual or automated image capture of the deck, and records images automatically when errors occur for easier troubleshooting.'
39+
'The deck camera offers live video monitoring during protocol runs and supports image capture—either manually, automatically, or in response to runtime errors for easier troubleshooting.'
4040
)
4141
})
4242

0 commit comments

Comments
 (0)