From 59697155c81b8a241592712f9a4629f4d7a4a46f Mon Sep 17 00:00:00 2001
From: Jethary Rader <66035149+jerader@users.noreply.github.com>
Date: Thu, 11 Apr 2024 14:34:49 -0400
Subject: [PATCH] feat(protocol-designer): export and announcement modal for PD
8.1 (#14870)
closes AUTH-8 AUTH-9
---
.../cypress/integration/migrations.spec.js | 2 +-
.../components/FileSidebar/FileSidebar.tsx | 8 ++---
.../__tests__/FileSidebar.test.tsx | 7 ++++
.../AnnouncementModal/announcements.tsx | 34 +++++++++++++++++++
.../src/localization/en/alert.json | 4 +--
.../src/localization/en/modal.json | 8 +++++
protocol-designer/src/tutorial/index.ts | 3 +-
7 files changed, 58 insertions(+), 8 deletions(-)
diff --git a/protocol-designer/cypress/integration/migrations.spec.js b/protocol-designer/cypress/integration/migrations.spec.js
index 6c1d01a0ee7..303c7b91701 100644
--- a/protocol-designer/cypress/integration/migrations.spec.js
+++ b/protocol-designer/cypress/integration/migrations.spec.js
@@ -127,7 +127,7 @@ describe('Protocol fixtures migrate and match snapshots', () => {
cy.get('div')
.contains(
- 'This protocol can only run on app and robot server version 7.1 or higher'
+ 'This protocol can only run on app and robot server version 7.2.0 or higher'
)
.should('exist')
cy.get('button').contains('continue', { matchCase: false }).click()
diff --git a/protocol-designer/src/components/FileSidebar/FileSidebar.tsx b/protocol-designer/src/components/FileSidebar/FileSidebar.tsx
index e05a80e3163..31bdfa60723 100644
--- a/protocol-designer/src/components/FileSidebar/FileSidebar.tsx
+++ b/protocol-designer/src/components/FileSidebar/FileSidebar.tsx
@@ -237,9 +237,9 @@ export function v8WarningContent(t: any): JSX.Element {
return (
- {t(`hint.export_v8_protocol_7_1.body1`)}{' '}
- {t(`hint.export_v8_protocol_7_1.body2`)}
- {t(`hint.export_v8_protocol_7_1.body3`)}
+ {t(`hint.export_v8_1_protocol_7_2.body1`)}{' '}
+ {t(`hint.export_v8_1_protocol_7_2.body2`)}
+ {t(`hint.export_v8_1_protocol_7_2.body3`)}
)
@@ -350,7 +350,7 @@ export function FileSidebar(): JSX.Element {
content: React.ReactNode
} => {
return {
- hintKey: 'export_v8_protocol_7_1',
+ hintKey: 'export_v8_1_protocol_7_2',
content: v8WarningContent(t),
}
}
diff --git a/protocol-designer/src/components/FileSidebar/__tests__/FileSidebar.test.tsx b/protocol-designer/src/components/FileSidebar/__tests__/FileSidebar.test.tsx
index a9d2978b981..827af5a2aa8 100644
--- a/protocol-designer/src/components/FileSidebar/__tests__/FileSidebar.test.tsx
+++ b/protocol-designer/src/components/FileSidebar/__tests__/FileSidebar.test.tsx
@@ -74,6 +74,13 @@ describe('FileSidebar', () => {
vi.resetAllMocks()
cleanup()
})
+ it('renders the file sidebar and exports with blocking hint for exporting', () => {
+ vi.mocked(useBlockingHint).mockReturnValue(mock blocking hint
)
+ render()
+ fireEvent.click(screen.getByRole('button', { name: 'Export' }))
+ expect(vi.mocked(useBlockingHint)).toHaveBeenCalled()
+ screen.getByText('mock blocking hint')
+ })
it('renders the file sidebar and buttons work as expected with no warning upon export', () => {
render()
screen.getByText('Protocol File')
diff --git a/protocol-designer/src/components/modals/AnnouncementModal/announcements.tsx b/protocol-designer/src/components/modals/AnnouncementModal/announcements.tsx
index aab430bf549..b10c6d75407 100644
--- a/protocol-designer/src/components/modals/AnnouncementModal/announcements.tsx
+++ b/protocol-designer/src/components/modals/AnnouncementModal/announcements.tsx
@@ -265,5 +265,39 @@ export const useAnnouncements = (): Announcement[] => {
>
),
},
+ {
+ announcementKey: 'customParamsAndMultiTipAndModule8.1',
+ image: ,
+ heading: t('announcements.header', { pd: PD }),
+ message: (
+ <>
+
+ {t('announcements.customParamsAndMultiTipAndModule.body1', {
+ pd: PD,
+ })}
+
+
+ - {t('announcements.customParamsAndMultiTipAndModule.body2')}
+ -
+ }}
+ />
+
+ - {t('announcements.customParamsAndMultiTipAndModule.body4')}
+ - {t('announcements.customParamsAndMultiTipAndModule.body5')}
+
+
+ }}
+ values={{ app: APP }}
+ />
+
+ >
+ ),
+ },
]
}
diff --git a/protocol-designer/src/localization/en/alert.json b/protocol-designer/src/localization/en/alert.json
index 4548d19e57c..999c43500b0 100644
--- a/protocol-designer/src/localization/en/alert.json
+++ b/protocol-designer/src/localization/en/alert.json
@@ -53,10 +53,10 @@
"title": "Missing labware",
"body": "One or more module has no labware on it. We recommend you add labware before proceeding"
},
- "export_v8_protocol_7_1": {
+ "export_v8_1_protocol_7_2": {
"title": "Robot and app update may be required",
"body1": "This protocol can only run on app and robot server version",
- "body2": "7.1 or higher",
+ "body2": "7.2.0 or higher",
"body3": ". Please ensure your robot is updated to the correct version."
},
"change_magnet_module_model": {
diff --git a/protocol-designer/src/localization/en/modal.json b/protocol-designer/src/localization/en/modal.json
index a07cb3b1310..fd85b5a8001 100644
--- a/protocol-designer/src/localization/en/modal.json
+++ b/protocol-designer/src/localization/en/modal.json
@@ -42,6 +42,14 @@
"deckConfigAnd96Channel": {
"body1": "Introducing the {{pd}} 8.0 with deck configuration and 96-channel pipette support!",
"body2": "All protocols now require {{app}} version 7.1+ to run."
+ },
+ "customParamsAndMultiTipAndModule": {
+ "body1": "Introducing {{pd}} 8.1. Starting today, you will be able to:",
+ "body2": "Customize blowout speed and height.",
+ "body3": "Adjust horizontal position within a well when aspirating, dispensing, or mixing.",
+ "body4": "Assign up to three types of tip racks to a single pipette.",
+ "body5": "Add multiple Temperature Modules to the deck (Flex only).",
+ "body6": "All protocols require {{app}} version 7.2.0 or later to run."
}
},
"labware_selection": {
diff --git a/protocol-designer/src/tutorial/index.ts b/protocol-designer/src/tutorial/index.ts
index 58a0f522c60..ecc17f49bb4 100644
--- a/protocol-designer/src/tutorial/index.ts
+++ b/protocol-designer/src/tutorial/index.ts
@@ -11,7 +11,7 @@ type HintKey = // normal hints
| 'waste_chute_warning'
// blocking hints
| 'custom_labware_with_modules'
- | 'export_v8_protocol_7_1'
+ | 'export_v8_1_protocol_7_2'
| 'change_magnet_module_model'
// DEPRECATED HINTS (keep a record to avoid name collisions with old persisted dismissal states)
// 'export_v4_protocol'
@@ -20,5 +20,6 @@ type HintKey = // normal hints
// | 'export_v6_protocol_6_10'
// | 'export_v6_protocol_6_20'
// | 'export_v7_protocol_7_0'
+// | 'export_v8_protocol_7_1'
export { actions, rootReducer, selectors }
export type { RootState, HintKey }