From 18fda284d8c1e62657d5919bc06d7cf511849b6d Mon Sep 17 00:00:00 2001 From: Ed Cormany Date: Thu, 26 Sep 2024 11:55:47 -0400 Subject: [PATCH 01/18] chore: standardize top and bottom nav on API docs site (#16152) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Overview Hacking the standard opentrons.com top and bottom nav into the docs site. ## Test Plan and Hands on Testing Visual inspection between [sandbox for this branch](http://sandbox.docs.opentrons.com/docs-infra-top-nav/v2/), opentrons.com (header/footer), and `edge` [sandbox with Public Sans](http://sandbox.docs.opentrons.com/edge/v2/) (body). All on macOS. Mostly in Safari. Also tested Chrome. ## Changelog ![CSS](https://github.com/user-attachments/assets/38db406a-3dbd-4221-9d36-27ca3a78225e) - Include saved versions of our `remote-nav.html` and `remote-footer.html` files in the docs layout. - Rescope a bunch of docs CSS rules so they aren't overridden by the included HTML. - Recapitulate a bunch of the header/footer rules so they aren't overridden by the docs template. - Adjust the height of the main body container to account for the shorter header. - Hide the 🔍 button in the main nav so users don't use that search in an attempt to only search the PAPI docs. ### Follow up tasks For another PR. - Replicate on v1 docs - Replicate on OT-One docs - Replicate on hardware docs or remove hardware docs ## Review requests - Do I know what I'm doing at all? Is this approach — saving and importing static versions of the navs — the best we can do? As far as I can tell, Sphinx can't fetch and include remote resources. But maybe we could do it as part of `make -C api docs` so these don't get frozen in time again? - Is there any way to eliminate the brief appearance of the subnavs on page load? - Plz check Chrome Windows. ## Risk assessment medium. there could be whole parts of the docs site that i've broken and didn't notice. --- api/docs/static/override_sphinx.css | 173 +++- api/docs/templates/v2/layout.html | 1122 +--------------------- api/docs/templates/v2/remote-footer.html | 345 +++++++ api/docs/templates/v2/remote-nav.html | 965 +++++++++++++++++++ 4 files changed, 1461 insertions(+), 1144 deletions(-) create mode 100644 api/docs/templates/v2/remote-footer.html create mode 100644 api/docs/templates/v2/remote-nav.html diff --git a/api/docs/static/override_sphinx.css b/api/docs/static/override_sphinx.css index 10a1d091b94..8af01be9c04 100644 --- a/api/docs/static/override_sphinx.css +++ b/api/docs/static/override_sphinx.css @@ -1,26 +1,80 @@ @import url('https://fonts.googleapis.com/css?family=Public+Sans:300,400,400i,600,700'); @import url('https://fonts.googleapis.com/css2?family=Reddit+Mono:wght@200..900&display=swap'); -/* OT NAV */ +/* OT TOP NAV */ body { padding: 0; margin: 0; - font-family: "Public Sans", "sans-serif"; } -.highlight-none, .mi, .literal { - color: #048f85; +/* restate button styling */ +.text-brand-blue:hover { + --tw-text-opacity: 1; + color: rgb(0 108 250 / var(--tw-text-opacity)); +} + +.text-white:hover { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +/* hack out search button */ + +div.flex.gap-4 div.text-white.flex.items-center.h-full > button { + display: none; +} + +/* use Akko from docs site instead of from main site */ +header a.button-sm { + font-family: "AkkoPro-Regular", "Akko Pro", "Open Sans", sans-serif !important; +} + +/* OT FOOTER */ + +footer { + padding: 0; +} + +.footer-app-button:hover { + color: #E8E9EA; +} + +/* restate newsletter form styling */ + +footer input.hs-input { + margin: 0; + max-width: 100%; + width: 100%; + height: 42px; + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + font-size: 1rem; + --tw-text-opacity: 1; + color: rgb(112 112 117 / var(--tw-text-opacity)); +} + +footer .hs_submit input { + height: 40px; + min-width: 100% !important; + width: 100% !important; } /* DOCS */ +div.document .highlight-none, .mi, .literal { + color: #048f85; +} + div.document { - padding-top: 150px; + padding-top: 96px; margin-top: 0; + font-family: "Public Sans", "sans-serif"; } div.document [id] { - scroll-margin-top: 150px; + scroll-margin-top: 110px; } @media only screen and (min-device-width: 768px) and (min-width: 768px) and (max-width: 1023px) { @@ -34,31 +88,62 @@ div.document [id] { } } -div.body p { +div.document p { line-height: 20pt; - font-family: "Public Sans", "sans-serif"; } -pre, tt, code { +div.document section > p, +div.document dl p { + margin: 1em 0; +} + +div.document pre, +div.document tt, +div.document code { font-size: 0.9em; font-family: "Reddit Mono", "Consolas", "Lucida Console", monospace; } -/* classes for API Reference docstring signatures */ -.sig, .sig-name, code.descname, .sig-prename, .optional, .sig-paren { +div.document dl { + margin-bottom: 15px; +} + +/* API Reference */ +div.document .sig, +div.document .sig-name, +div.document code.descname, +div.document .sig-prename, +div.document .optional, +div.document .sig-paren { font-size: 1em; font-family: "Reddit Mono", "Consolas", "Lucida Console", monospace; } -div.body h1 { +div.document dt.field-even, +div.document dt.field-odd { + margin-top: 1em; + line-height: 20pt; +} + +div.document dd ul { + margin-top: 1em; +} + +span.colon { + display: none; +} + +/* all article pages */ + +div.document h1 { margin-top: 0; margin-bottom: 0; padding-top: 0; - font-size: 2.4em; + font-size: 2em; min-height: 78px; } -div.body h1 + p { +div.document h1 + p { padding-top: 24px; } @@ -70,6 +155,19 @@ div.documentwrapper { float: none; } +div.body { + padding-top: 1rem; +} + +a:hover { + color: inherit; + text-decoration: inherit; +} + +div.body a { + color: #006FFF; +} + /* Don't allow inline items try to clear themselves below the sidebar */ pre, div[class*="highlight-"], blockquote, blockquote::after, div.admonition::after { clear: none; @@ -78,14 +176,14 @@ pre, div[class*="highlight-"], blockquote, blockquote::after, div.admonition::af /* Sticky, scrolling sidebar. Height calc leaves room for header. */ div.sphinxsidebar { position: sticky; - top: 150px; + top: 96px; align-self: flex-start; - max-height: calc(100vh - 150px); + max-height: calc(100vh - 96px); overflow-y: auto; } div.sphinxsidebarwrapper { - padding-top: 6px; + padding-top: 1rem; } /* Hide the redundant 'description' tagline */ @@ -98,13 +196,24 @@ div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar h5, div.sphinxsidebar h6, -div.body h2, -div.body h3, -div.body h4, -div.body h5 { - font-family: "Public Sans", "sans-serif"; +div.document h2, +div.document h3, +div.document h4, +div.document h5 { + font-family: "Public Sans", "sans-serif" !important; + text-transform: none !important; + letter-spacing: 0 !important; } +/* hide the word "Navigation" because people know what links are */ +div.sphinxsidebarwrapper > h3 { + display: none; +} + +/* restate header sizes to avoid conflict from inline style in footer */ +div.document h3 { font-size: 150% !important; } +div.document h4 { font-size: 130% !important; } + /* Links need an extra two pixels of padding to compensate between body font height being 1em and code font height being 0.9em */ a.reference { @@ -209,12 +318,20 @@ div.body p.caption { font-size: 22px; } -ul { - /* margin-left: 0; */ +div.body ul, div.body ol { + margin: 10px 0 10px 30px; font-family: "Public Sans", "sans-serif"; } -ul ul { +div.body ul { + list-style-type: disc; +} + +div.body ul p, div.body ol p { + margin-bottom: 0; +} + +div.body ul ul { list-style-type: circle; margin-left: 30px; font-family: "Public Sans", "sans-serif"; @@ -280,3 +397,9 @@ div.warning { background-color: #f7e0e0; border: none; } + +/* Tabs also in Public Sans */ + +.sphinx-tabs-tab { + font-family: "Public Sans", "sans-serif" !important; +} \ No newline at end of file diff --git a/api/docs/templates/v2/layout.html b/api/docs/templates/v2/layout.html index fbc6e860eaf..fd795d94c38 100644 --- a/api/docs/templates/v2/layout.html +++ b/api/docs/templates/v2/layout.html @@ -31,1015 +31,7 @@ {%- if theme_fixed_sidebar|lower == 'true' %} @@ -1061,116 +53,8 @@ {%- else %} {{ super() }} {%- endif %} {%- endblock %} {%- block footer %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/docs/templates/v2/remote-nav.html b/api/docs/templates/v2/remote-nav.html new file mode 100644 index 00000000000..3dbd3c18dca --- /dev/null +++ b/api/docs/templates/v2/remote-nav.html @@ -0,0 +1,965 @@ + + + + + + + + + + + +Remote Nav - Opentrons + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + From 1dc23fbd5a05d753f5362016ea1ed1e4b7e02575 Mon Sep 17 00:00:00 2001 From: syao1226 <146495172+syao1226@users.noreply.github.com> Date: Thu, 26 Sep 2024 12:05:33 -0400 Subject: [PATCH 02/18] feat(protocol-designer): add the release notes button to settings (#16344) re AUTH-856 # Overview Add a `View release notes` button to the Settings page, and display the `AnnouncementModal` when the button is clicked. ## Test Plan and Hands on Testing - Click on the settings icon - Ensure it matches the [design](https://www.figma.com/design/WbkiUyU8VhtKz0JSuIFA45/Feature%3A-Protocol-Designer-Phase-1?node-id=3150-116483&node-type=canvas&t=VjSlf85g2lJzT7Ed-0) - Verify that the Announcement modal appears when the 'View release notes' button is clicked. ## Changelog - Added a button labeled 'View release notes' next to the PD version with a 12px gap - Create an `AnnouncementModalProp` interface with optional `isViewReleaseNotes` and `onClose` props to control the visibility of the AnnouncementModal, tracking when the user clicks the button and closes the modal - Used `useLocation` to check if the user is on the Settings page - Updated tests ## Review requests ## Risk assessment --------- Co-authored-by: shiyaochen --- .../src/assets/localization/en/shared.json | 1 + .../src/organisms/AnnouncementModal/index.tsx | 13 +- .../Settings/__tests__/Settings.test.tsx | 13 + .../src/pages/Settings/index.tsx | 272 ++++++++++-------- 4 files changed, 179 insertions(+), 120 deletions(-) diff --git a/protocol-designer/src/assets/localization/en/shared.json b/protocol-designer/src/assets/localization/en/shared.json index 6e86fc6e607..92872373624 100644 --- a/protocol-designer/src/assets/localization/en/shared.json +++ b/protocol-designer/src/assets/localization/en/shared.json @@ -115,6 +115,7 @@ "user_settings": "User settings", "uses_standard_namespace": "Opentrons verified labware", "version": "Version # {{version}}", + "view_release_notes": "View release notes", "warning": "WARNING:", "wasteChute": "Waste chute", "wasteChuteAndStagingArea": "Waste chute and staging area slot", diff --git a/protocol-designer/src/organisms/AnnouncementModal/index.tsx b/protocol-designer/src/organisms/AnnouncementModal/index.tsx index d8e673cfb5b..6eca54206ac 100644 --- a/protocol-designer/src/organisms/AnnouncementModal/index.tsx +++ b/protocol-designer/src/organisms/AnnouncementModal/index.tsx @@ -16,7 +16,15 @@ import { } from '../../persist' import { useAnnouncements } from './announcements' -export const AnnouncementModal = (): JSX.Element => { +interface AnnouncementModalProps { + isViewReleaseNotes?: boolean + onClose?: () => void +} + +export const AnnouncementModal = ( + props: AnnouncementModalProps +): JSX.Element => { + const { onClose, isViewReleaseNotes = false } = props const { t } = useTranslation(['modal', 'button']) const announcements = useAnnouncements() @@ -28,10 +36,11 @@ export const AnnouncementModal = (): JSX.Element => { getLocalStorageItem(localStorageAnnouncementKey) !== announcementKey const [showAnnouncementModal, setShowAnnouncementModal] = useState( - userHasNotSeenAnnouncement + isViewReleaseNotes || userHasNotSeenAnnouncement ) const handleClick = (): void => { + if (onClose != null) onClose() setLocalStorageItem(localStorageAnnouncementKey, announcementKey) setShowAnnouncementModal(false) } diff --git a/protocol-designer/src/pages/Settings/__tests__/Settings.test.tsx b/protocol-designer/src/pages/Settings/__tests__/Settings.test.tsx index e73034fe4d8..d9713d7ae88 100644 --- a/protocol-designer/src/pages/Settings/__tests__/Settings.test.tsx +++ b/protocol-designer/src/pages/Settings/__tests__/Settings.test.tsx @@ -1,6 +1,7 @@ import { describe, it, vi, beforeEach, expect } from 'vitest' import { MemoryRouter } from 'react-router-dom' import { fireEvent, screen } from '@testing-library/react' +import { AnnouncementModal } from '../../../organisms' import { i18n } from '../../../assets/localization' import { renderWithProviders } from '../../../__testing-utils__' import { getHasOptedIn } from '../../../analytics/selectors' @@ -11,6 +12,7 @@ import { optIn } from '../../../analytics/actions' import { setFeatureFlags } from '../../../feature-flags/actions' import { Settings } from '..' +vi.mock('../../../organisms') vi.mock('../../../feature-flags/actions') vi.mock('../../../analytics/actions') vi.mock('../../../tutorial/actions') @@ -40,6 +42,7 @@ describe('Settings', () => { screen.getByText('App settings') screen.getByText('Protocol designer version') screen.getByText('fake_PD_version') + screen.getAllByText('View release notes') screen.getByText('User settings') screen.getByText('Hints') screen.getByText('Reset all hints and tips notifications') @@ -50,6 +53,16 @@ describe('Settings', () => { 'We’re working to improve Protocol Designer. Part of the process involves watching real user sessions to understand which parts of the interface are working and which could use improvement. We never share sessions outside of Opentrons.' ) }) + it('renders the announcement modal when view release notes button is clicked', () => { + vi.mocked(AnnouncementModal).mockReturnValue( +
mock AnnouncementModal
+ ) + render() + fireEvent.click( + screen.getByTestId('AnnouncementModal_viewReleaseNotesButton') + ) + screen.getByText('mock AnnouncementModal') + }) it('renders the hints button and calls to dismiss them when text is pressed', () => { render() fireEvent.click(screen.getByText('Reset hints')) diff --git a/protocol-designer/src/pages/Settings/index.tsx b/protocol-designer/src/pages/Settings/index.tsx index 14c1aa488e6..abf449347f0 100644 --- a/protocol-designer/src/pages/Settings/index.tsx +++ b/protocol-designer/src/pages/Settings/index.tsx @@ -1,3 +1,4 @@ +import { useState } from 'react' import { useTranslation } from 'react-i18next' import { useDispatch, useSelector } from 'react-redux' import { css } from 'styled-components' @@ -14,6 +15,7 @@ import { StyledText, TYPOGRAPHY, } from '@opentrons/components' +import { AnnouncementModal } from '../../organisms' import { actions as analyticsActions, selectors as analyticsSelectors, @@ -22,6 +24,7 @@ import { actions as tutorialActions, selectors as tutorialSelectors, } from '../../tutorial' +import { BUTTON_LINK_STYLE } from '../../atoms' import { actions as featureFlagActions } from '../../feature-flags' import { getFeatureFlagData } from '../../feature-flags/selectors' import type { FlagTypes } from '../../feature-flags' @@ -29,6 +32,9 @@ import type { FlagTypes } from '../../feature-flags' export function Settings(): JSX.Element { const dispatch = useDispatch() const { t } = useTranslation(['feature_flags', 'shared']) + const [showAnnouncementModal, setShowAnnouncementModal] = useState( + false + ) const hasOptedIn = useSelector(analyticsSelectors.getHasOptedIn) const flags = useSelector(getFeatureFlagData) const canClearHintDismissals = useSelector( @@ -94,139 +100,169 @@ export function Settings(): JSX.Element { const prereleaseFlagRows = allFlags.map(toFlagRow) return ( - + <> + {showAnnouncementModal ? ( + { + setShowAnnouncementModal(false) + }} + /> + ) : null} - - {t('shared:settings')} - - - - {t('shared:app_settings')} - - - - {t('shared:pd_version')} - - - {process.env.OT_PD_VERSION} - - - - - - {t('shared:user_settings')} + + + {t('shared:settings')} - - - - {t('shared:hints')} + + + + {t('shared:app_settings')} - - - {t('shared:reset_hints_and_tips')} + + + {t('shared:pd_version')} + + + {process.env.OT_PD_VERSION} + + { + setShowAnnouncementModal(true) + }} + data-testid="AnnouncementModal_viewReleaseNotesButton" + > + + {t('shared:view_release_notes')} + + + - dispatch(tutorialActions.clearAllHintDismissals())} - > - - {canClearHintDismissals - ? t('shared:reset_hints') - : t('shared:no_hints_to_restore')} + + + {t('shared:user_settings')} - - - - - - {t('shared:privacy')} - - - - - {t('shared:shared_sessions')} + + + + {t('shared:hints')} + + + + {t('shared:reset_hints_and_tips')} + + + + + dispatch(tutorialActions.clearAllHintDismissals()) + } + > + + {canClearHintDismissals + ? t('shared:reset_hints') + : t('shared:no_hints_to_restore')} + + + + + + + {t('shared:privacy')} - - - {t('shared:we_are_improving')} - + + + + {t('shared:shared_sessions')} + + + + {t('shared:we_are_improving')} + + + + dispatch(_toggleOptedIn())} + > + + - dispatch(_toggleOptedIn())} - > - - - - {prereleaseModeEnabled ? ( - - - {t('shared:developer_ff')} - - - {prereleaseFlagRows} + {prereleaseModeEnabled ? ( + + + {t('shared:developer_ff')} + + + {prereleaseFlagRows} + - - ) : null} + ) : null} + - + ) } From e1c8460033a405105214424f844c58878c7f8b44 Mon Sep 17 00:00:00 2001 From: Ed Cormany Date: Thu, 26 Sep 2024 12:28:52 -0400 Subject: [PATCH 03/18] docs(api): hide API reference entries for post-2.20 features (#16304) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Overview 🤫 Hides 2.21 features from the 2.20 docs. ## Test Plan and Hands on Testing [Sandbox](http://sandbox.docs.opentrons.com/docs-hide-post-2.20-ref-entries/v2/new_protocol_api.html) Things you shouldn't see: - `RobotContext` stuff - Future liquid level stuff ## Changelog - `:meta private:` tags for `ProtocolContext.robot` and `Well.meniscus` - Bumped the required version for `ProtocolContext.robot` because it's not useful in 2.20. ## Review requests OK with the version change? It will still be 2.20 in the release branch. I can revert that line if we prefer. ## Risk assessment v low --- api/src/opentrons/protocol_api/labware.py | 2 ++ api/src/opentrons/protocol_api/protocol_context.py | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/api/src/opentrons/protocol_api/labware.py b/api/src/opentrons/protocol_api/labware.py index 43c2c0ce5a8..6f38c123c7a 100644 --- a/api/src/opentrons/protocol_api/labware.py +++ b/api/src/opentrons/protocol_api/labware.py @@ -229,6 +229,8 @@ def meniscus(self, z: float = 0.0) -> Location: :return: A :py:class:`~opentrons.types.Location` corresponding to the absolute position of the meniscus-center of the well, plus the ``z`` offset (if specified). + + :meta private: """ return Location(self._core.get_meniscus(z_offset=z), self) diff --git a/api/src/opentrons/protocol_api/protocol_context.py b/api/src/opentrons/protocol_api/protocol_context.py index 0fca3fdc8f3..64a73457608 100644 --- a/api/src/opentrons/protocol_api/protocol_context.py +++ b/api/src/opentrons/protocol_api/protocol_context.py @@ -209,8 +209,12 @@ def api_version(self) -> APIVersion: return self._api_version @property - @requires_version(2, 20) + @requires_version(2, 21) def robot(self) -> RobotContext: + """The :py:class:`.RobotContext` for the protocol. + + :meta private: + """ return self._robot @property From e3380c0257a623e26502f1aa8704e5aafdb69c9e Mon Sep 17 00:00:00 2001 From: Ed Cormany Date: Thu, 26 Sep 2024 15:07:39 -0400 Subject: [PATCH 04/18] fix: make relative links absolute in nav for docs subdomain (#16360) # Overview Our shared nav resources have a mix of relative and absolute links. This is not great! It means we have to edit the actual HTML for inclusion on the docs site. This PR does a find-and-replace to accomplish that. ## Test Plan and Hands on Testing [Sandbox](http://sandbox.docs.opentrons.com/docs-fix-nav-links/v2/) I clicked on all the links this time. ## Changelog Replace `href="/` with `href="https://opentrons.com/` across the board. ## Review requests Any sneaky other link format I could have missed? ## Risk assessment low. we will have to replicate this in the future if we have to update the nav (and its new version doesn't fix this problem) --- api/docs/templates/v2/remote-footer.html | 24 ++++----- api/docs/templates/v2/remote-nav.html | 68 ++++++++++++------------ 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/api/docs/templates/v2/remote-footer.html b/api/docs/templates/v2/remote-footer.html index 14d9608e089..85c48851ba3 100644 --- a/api/docs/templates/v2/remote-footer.html +++ b/api/docs/templates/v2/remote-footer.html @@ -232,7 +232,7 @@ @@ -276,11 +276,11 @@ diff --git a/api/docs/templates/v2/remote-nav.html b/api/docs/templates/v2/remote-nav.html index 3dbd3c18dca..7dc44e55804 100644 --- a/api/docs/templates/v2/remote-nav.html +++ b/api/docs/templates/v2/remote-nav.html @@ -289,7 +289,7 @@
- +
- + Workstations - + Pipettes - + Modules - + Tips & Labware - + Automation Marketplace @@ -387,7 +387,7 @@ ELISA - + Proteomics @@ -410,11 +410,11 @@ Our Partners - + OEM Partnerships - + Education @@ -450,7 +450,7 @@ Careers - + Global Contacts @@ -478,7 +478,7 @@ Customer Stories - + OpentronsAI @@ -530,7 +530,7 @@
- + @@ -540,7 +540,7 @@ -   +   @@ -548,7 +548,7 @@ Schedule a Demo - + Contact Sales @@ -571,7 +571,7 @@ - + Opentrons logo @@ -620,15 +620,15 @@ - + Workstations - + Pipettes - + Modules - + Tips & Labware - + Automation Marketplace @@ -710,7 +710,7 @@ ELISA - + Proteomics @@ -736,11 +736,11 @@ Our Partners - + OEM Partnerships - + Education @@ -779,7 +779,7 @@ Careers - + Global Contacts @@ -810,7 +810,7 @@ Customer Stories - + OpentronsAI @@ -850,13 +850,13 @@
  +   CART From 8d6ff9b2dd9ccd3c22ae8a03bf5a275c42a8ec89 Mon Sep 17 00:00:00 2001 From: Anthony Ngumah <68346382+AnthonyNASC20@users.noreply.github.com> Date: Thu, 26 Sep 2024 16:26:23 -0400 Subject: [PATCH 05/18] Feat(hardware-testing): Automated Asair start script (#16334) # Overview ## Test Plan and Hands on Testing ## Changelog ## Review requests --- hardware-testing/Pipfile | 2 + hardware-testing/Pipfile.lock | 466 +++++++++++++----- .../hardware_testing/drivers/__init__.py | 27 +- .../hardware_testing/drivers/asair_sensor.py | 8 +- .../scripts/ABRAsairScript.py | 104 ++++ .../scripts/abr_asair_sensor.py | 2 +- 6 files changed, 470 insertions(+), 139 deletions(-) create mode 100644 hardware-testing/hardware_testing/scripts/ABRAsairScript.py diff --git a/hardware-testing/Pipfile b/hardware-testing/Pipfile index 1cbf12ae8b6..c4b15b68416 100644 --- a/hardware-testing/Pipfile +++ b/hardware-testing/Pipfile @@ -11,6 +11,8 @@ hardware-testing = { editable = true, path = "." } abr-testing = { editable = true, path = "./../abr-testing" } pyserial = "==3.5" types-pytz = "*" +paramiko = "*" +types-paramiko = "*" [dev-packages] atomicwrites = "==1.4.1" diff --git a/hardware-testing/Pipfile.lock b/hardware-testing/Pipfile.lock index 026dae40f4b..964ad78d21b 100644 --- a/hardware-testing/Pipfile.lock +++ b/hardware-testing/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "aa401ceace7aebaa4a5a7727066f35d36bb28179ae1850fbdffda93edf48e7b0" + "sha256": "d22e237a7b020d3cf9efb022af3a5ebb7f6685b8fa255b79095a383e4b84eacf" }, "pipfile-spec": 6, "requires": { @@ -38,11 +38,117 @@ }, "attrs": { "hashes": [ - "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30", - "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1" + "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", + "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2" ], "markers": "python_version >= '3.7'", - "version": "==23.2.0" + "version": "==24.2.0" + }, + "bcrypt": { + "hashes": [ + "sha256:096a15d26ed6ce37a14c1ac1e48119660f21b24cba457f160a4b830f3fe6b5cb", + "sha256:0da52759f7f30e83f1e30a888d9163a81353ef224d82dc58eb5bb52efcabc399", + "sha256:1bb429fedbe0249465cdd85a58e8376f31bb315e484f16e68ca4c786dcc04291", + "sha256:1d84cf6d877918620b687b8fd1bf7781d11e8a0998f576c7aa939776b512b98d", + "sha256:1ee38e858bf5d0287c39b7a1fc59eec64bbf880c7d504d3a06a96c16e14058e7", + "sha256:1ff39b78a52cf03fdf902635e4c81e544714861ba3f0efc56558979dd4f09170", + "sha256:27fe0f57bb5573104b5a6de5e4153c60814c711b29364c10a75a54bb6d7ff48d", + "sha256:3413bd60460f76097ee2e0a493ccebe4a7601918219c02f503984f0a7ee0aebe", + "sha256:3698393a1b1f1fd5714524193849d0c6d524d33523acca37cd28f02899285060", + "sha256:373db9abe198e8e2c70d12b479464e0d5092cc122b20ec504097b5f2297ed184", + "sha256:39e1d30c7233cfc54f5c3f2c825156fe044efdd3e0b9d309512cc514a263ec2a", + "sha256:3bbbfb2734f0e4f37c5136130405332640a1e46e6b23e000eeff2ba8d005da68", + "sha256:3d3a6d28cb2305b43feac298774b997e372e56c7c7afd90a12b3dc49b189151c", + "sha256:5a1e8aa9b28ae28020a3ac4b053117fb51c57a010b9f969603ed885f23841458", + "sha256:61ed14326ee023917ecd093ee6ef422a72f3aec6f07e21ea5f10622b735538a9", + "sha256:655ea221910bcac76ea08aaa76df427ef8625f92e55a8ee44fbf7753dbabb328", + "sha256:762a2c5fb35f89606a9fde5e51392dad0cd1ab7ae64149a8b935fe8d79dd5ed7", + "sha256:77800b7147c9dc905db1cba26abe31e504d8247ac73580b4aa179f98e6608f34", + "sha256:8ac68872c82f1add6a20bd489870c71b00ebacd2e9134a8aa3f98a0052ab4b0e", + "sha256:8d7bb9c42801035e61c109c345a28ed7e84426ae4865511eb82e913df18f58c2", + "sha256:8f6ede91359e5df88d1f5c1ef47428a4420136f3ce97763e31b86dd8280fbdf5", + "sha256:9c1c4ad86351339c5f320ca372dfba6cb6beb25e8efc659bedd918d921956bae", + "sha256:c02d944ca89d9b1922ceb8a46460dd17df1ba37ab66feac4870f6862a1533c00", + "sha256:c52aac18ea1f4a4f65963ea4f9530c306b56ccd0c6f8c8da0c06976e34a6e841", + "sha256:cb2a8ec2bc07d3553ccebf0746bbf3d19426d1c6d1adbd4fa48925f66af7b9e8", + "sha256:cf69eaf5185fd58f268f805b505ce31f9b9fc2d64b376642164e9244540c1221", + "sha256:f4f4acf526fcd1c34e7ce851147deedd4e26e6402369304220250598b26448db" + ], + "markers": "python_version >= '3.7'", + "version": "==4.2.0" + }, + "cffi": { + "hashes": [ + "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8", + "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", + "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1", + "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15", + "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", + "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", + "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8", + "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36", + "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17", + "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf", + "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc", + "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", + "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", + "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702", + "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1", + "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", + "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", + "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6", + "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", + "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b", + "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e", + "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be", + "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c", + "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", + "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", + "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", + "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8", + "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1", + "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", + "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655", + "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67", + "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595", + "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0", + "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", + "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", + "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", + "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401", + "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", + "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3", + "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16", + "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", + "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e", + "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", + "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964", + "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c", + "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576", + "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0", + "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3", + "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662", + "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", + "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", + "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", + "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", + "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f", + "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", + "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14", + "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", + "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9", + "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7", + "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382", + "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a", + "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", + "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", + "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4", + "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", + "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87", + "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b" + ], + "markers": "platform_python_implementation != 'PyPy'", + "version": "==1.17.1" }, "click": { "hashes": [ @@ -60,6 +166,39 @@ "markers": "platform_system == 'Windows'", "version": "==0.4.6" }, + "cryptography": { + "hashes": [ + "sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494", + "sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806", + "sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d", + "sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062", + "sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2", + "sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4", + "sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1", + "sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85", + "sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84", + "sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042", + "sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d", + "sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962", + "sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2", + "sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa", + "sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d", + "sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365", + "sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96", + "sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47", + "sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d", + "sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d", + "sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c", + "sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb", + "sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277", + "sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172", + "sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034", + "sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a", + "sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289" + ], + "markers": "python_version >= '3.7'", + "version": "==43.0.1" + }, "exceptiongroup": { "hashes": [ "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b", @@ -74,11 +213,11 @@ }, "idna": { "hashes": [ - "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc", - "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0" + "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", + "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" ], - "markers": "python_version >= '3.5'", - "version": "==3.7" + "markers": "python_version >= '3.6'", + "version": "==3.10" }, "jsonschema": { "hashes": [ @@ -158,54 +297,87 @@ "markers": "python_version >= '3.8'", "version": "==24.1" }, + "paramiko": { + "hashes": [ + "sha256:1fedf06b085359051cd7d0d270cebe19e755a8a921cc2ddbfa647fb0cd7d68f9", + "sha256:ad11e540da4f55cedda52931f1a3f812a8238a7af7f62a60de538cd80bb28124" + ], + "index": "pypi", + "markers": "python_version >= '3.6'", + "version": "==3.5.0" + }, + "pycparser": { + "hashes": [ + "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", + "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc" + ], + "markers": "python_version >= '3.8'", + "version": "==2.22" + }, "pydantic": { "hashes": [ - "sha256:098ad8de840c92ea586bf8efd9e2e90c6339d33ab5c1cfbb85be66e4ecf8213f", - "sha256:0e2495309b1266e81d259a570dd199916ff34f7f51f1b549a0d37a6d9b17b4dc", - "sha256:0fa51175313cc30097660b10eec8ca55ed08bfa07acbfe02f7a42f6c242e9a4b", - "sha256:11289fa895bcbc8f18704efa1d8020bb9a86314da435348f59745473eb042e6b", - "sha256:2a72d2a5ff86a3075ed81ca031eac86923d44bc5d42e719d585a8eb547bf0c9b", - "sha256:371dcf1831f87c9e217e2b6a0c66842879a14873114ebb9d0861ab22e3b5bb1e", - "sha256:409b2b36d7d7d19cd8310b97a4ce6b1755ef8bd45b9a2ec5ec2b124db0a0d8f3", - "sha256:4866a1579c0c3ca2c40575398a24d805d4db6cb353ee74df75ddeee3c657f9a7", - "sha256:48db882e48575ce4b39659558b2f9f37c25b8d348e37a2b4e32971dd5a7d6227", - "sha256:525bbef620dac93c430d5d6bdbc91bdb5521698d434adf4434a7ef6ffd5c4b7f", - "sha256:543da3c6914795b37785703ffc74ba4d660418620cc273490d42c53949eeeca6", - "sha256:62d96b8799ae3d782df7ec9615cb59fc32c32e1ed6afa1b231b0595f6516e8ab", - "sha256:6654028d1144df451e1da69a670083c27117d493f16cf83da81e1e50edce72ad", - "sha256:7017971ffa7fd7808146880aa41b266e06c1e6e12261768a28b8b41ba55c8076", - "sha256:7623b59876f49e61c2e283551cc3647616d2fbdc0b4d36d3d638aae8547ea681", - "sha256:7e17c0ee7192e54a10943f245dc79e36d9fe282418ea05b886e1c666063a7b54", - "sha256:820ae12a390c9cbb26bb44913c87fa2ff431a029a785642c1ff11fed0a095fcb", - "sha256:94833612d6fd18b57c359a127cbfd932d9150c1b72fea7c86ab58c2a77edd7c7", - "sha256:95ef534e3c22e5abbdbdd6f66b6ea9dac3ca3e34c5c632894f8625d13d084cbe", - "sha256:9c803a5113cfab7bbb912f75faa4fc1e4acff43e452c82560349fff64f852e1b", - "sha256:9e53fb834aae96e7b0dadd6e92c66e7dd9cdf08965340ed04c16813102a47fab", - "sha256:ab2f976336808fd5d539fdc26eb51f9aafc1f4b638e212ef6b6f05e753c8011d", - "sha256:ad1e33dc6b9787a6f0f3fd132859aa75626528b49cc1f9e429cdacb2608ad5f0", - "sha256:ae5184e99a060a5c80010a2d53c99aee76a3b0ad683d493e5f0620b5d86eeb75", - "sha256:aeb4e741782e236ee7dc1fb11ad94dc56aabaf02d21df0e79e0c21fe07c95741", - "sha256:b4ad32aed3bf5eea5ca5decc3d1bbc3d0ec5d4fbcd72a03cdad849458decbc63", - "sha256:b8ad363330557beac73159acfbeed220d5f1bfcd6b930302a987a375e02f74fd", - "sha256:bfbb18b616abc4df70591b8c1ff1b3eabd234ddcddb86b7cac82657ab9017e33", - "sha256:c1e51d1af306641b7d1574d6d3307eaa10a4991542ca324f0feb134fee259815", - "sha256:c31d281c7485223caf6474fc2b7cf21456289dbaa31401844069b77160cab9c7", - "sha256:c7e8988bb16988890c985bd2093df9dd731bfb9d5e0860db054c23034fab8f7a", - "sha256:c87cedb4680d1614f1d59d13fea353faf3afd41ba5c906a266f3f2e8c245d655", - "sha256:cafb9c938f61d1b182dfc7d44a7021326547b7b9cf695db5b68ec7b590214773", - "sha256:d2f89a719411cb234105735a520b7c077158a81e0fe1cb05a79c01fc5eb59d3c", - "sha256:d4b40c9e13a0b61583e5599e7950490c700297b4a375b55b2b592774332798b7", - "sha256:d4ecb515fa7cb0e46e163ecd9d52f9147ba57bc3633dca0e586cdb7a232db9e3", - "sha256:d8c209af63ccd7b22fba94b9024e8b7fd07feffee0001efae50dd99316b27768", - "sha256:db3b48d9283d80a314f7a682f7acae8422386de659fffaba454b77a083c3937d", - "sha256:e41b5b973e5c64f674b3b4720286ded184dcc26a691dd55f34391c62c6934688", - "sha256:e840e6b2026920fc3f250ea8ebfdedf6ea7a25b77bf04c6576178e681942ae0f", - "sha256:ebb249096d873593e014535ab07145498957091aa6ae92759a32d40cb9998e2e", - "sha256:f434160fb14b353caf634149baaf847206406471ba70e64657c1e8330277a991", - "sha256:fa43f362b46741df8f201bf3e7dff3569fa92069bcc7b4a740dea3602e27ab7a" + "sha256:069b9c9fc645474d5ea3653788b544a9e0ccd3dca3ad8c900c4c6eac844b4620", + "sha256:06a189b81ffc52746ec9c8c007f16e5167c8b0a696e1a726369327e3db7b2a82", + "sha256:11d9d9b87b50338b1b7de4ebf34fd29fdb0d219dc07ade29effc74d3d2609c62", + "sha256:15fdbe568beaca9aacfccd5ceadfb5f1a235087a127e8af5e48df9d8a45ae85c", + "sha256:19a3bd00b9dafc2cd7250d94d5b578edf7a0bd7daf102617153ff9a8fa37871c", + "sha256:23e8ec1ce4e57b4f441fc91e3c12adba023fedd06868445a5b5f1d48f0ab3682", + "sha256:24a4a159d0f7a8e26bf6463b0d3d60871d6a52eac5bb6a07a7df85c806f4c048", + "sha256:2ce3fcf75b2bae99aa31bd4968de0474ebe8c8258a0110903478bd83dfee4e3b", + "sha256:335a32d72c51a313b33fa3a9b0fe283503272ef6467910338e123f90925f0f03", + "sha256:3445426da503c7e40baccefb2b2989a0c5ce6b163679dd75f55493b460f05a8f", + "sha256:34a3613c7edb8c6fa578e58e9abe3c0f5e7430e0fc34a65a415a1683b9c32d9a", + "sha256:3d5492dbf953d7d849751917e3b2433fb26010d977aa7a0765c37425a4026ff1", + "sha256:44ae8a3e35a54d2e8fa88ed65e1b08967a9ef8c320819a969bfa09ce5528fafe", + "sha256:467a14ee2183bc9c902579bb2f04c3d3dac00eff52e252850509a562255b2a33", + "sha256:46f379b8cb8a3585e3f61bf9ae7d606c70d133943f339d38b76e041ec234953f", + "sha256:49e26c51ca854286bffc22b69787a8d4063a62bf7d83dc21d44d2ff426108518", + "sha256:65f7361a09b07915a98efd17fdec23103307a54db2000bb92095457ca758d485", + "sha256:6951f3f47cb5ca4da536ab161ac0163cab31417d20c54c6de5ddcab8bc813c3f", + "sha256:72fa46abace0a7743cc697dbb830a41ee84c9db8456e8d77a46d79b537efd7ec", + "sha256:74fe19dda960b193b0eb82c1f4d2c8e5e26918d9cda858cbf3f41dd28549cb70", + "sha256:7a4c5eec138a9b52c67f664c7d51d4c7234c5ad65dd8aacd919fb47445a62c86", + "sha256:80b982d42515632eb51f60fa1d217dfe0729f008e81a82d1544cc392e0a50ddf", + "sha256:941a2eb0a1509bd7f31e355912eb33b698eb0051730b2eaf9e70e2e1589cae1d", + "sha256:9f463abafdc92635da4b38807f5b9972276be7c8c5121989768549fceb8d2588", + "sha256:a00e63104346145389b8e8f500bc6a241e729feaf0559b88b8aa513dd2065481", + "sha256:aad8771ec8dbf9139b01b56f66386537c6fe4e76c8f7a47c10261b69ad25c2c9", + "sha256:ae6fa2008e1443c46b7b3a5eb03800121868d5ab6bc7cda20b5df3e133cde8b3", + "sha256:b661ce52c7b5e5f600c0c3c5839e71918346af2ef20062705ae76b5c16914cab", + "sha256:b74be007703547dc52e3c37344d130a7bfacca7df112a9e5ceeb840a9ce195c7", + "sha256:baebdff1907d1d96a139c25136a9bb7d17e118f133a76a2ef3b845e831e3403a", + "sha256:c20f682defc9ef81cd7eaa485879ab29a86a0ba58acf669a78ed868e72bb89e0", + "sha256:c3e742f62198c9eb9201781fbebe64533a3bbf6a76a91b8d438d62b813079dbc", + "sha256:c5ae6b7c8483b1e0bf59e5f1843e4fd8fd405e11df7de217ee65b98eb5462861", + "sha256:c6d0a9f9eccaf7f438671a64acf654ef0d045466e63f9f68a579e2383b63f357", + "sha256:cbfbca662ed3729204090c4d09ee4beeecc1a7ecba5a159a94b5a4eb24e3759a", + "sha256:d5389eb3b48a72da28c6e061a247ab224381435256eb541e175798483368fdd3", + "sha256:e306e280ebebc65040034bff1a0a81fd86b2f4f05daac0131f29541cafd80b80", + "sha256:e405ffcc1254d76bb0e760db101ee8916b620893e6edfbfee563b3c6f7a67c02", + "sha256:e9ee4e6ca1d9616797fa2e9c0bfb8815912c7d67aca96f77428e316741082a1b", + "sha256:ef0fe7ad7cbdb5f372463d42e6ed4ca9c443a52ce544472d8842a0576d830da5", + "sha256:efbc8a7f9cb5fe26122acba1852d8dcd1e125e723727c59dcd244da7bdaa54f2", + "sha256:fcb20d4cb355195c75000a49bb4a31d75e4295200df620f454bbc6bdf60ca890", + "sha256:fe734914977eed33033b70bfc097e1baaffb589517863955430bf2e0846ac30f" ], "markers": "python_version >= '3.7'", - "version": "==1.10.17" + "version": "==1.10.18" + }, + "pynacl": { + "hashes": [ + "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858", + "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d", + "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93", + "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1", + "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92", + "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff", + "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba", + "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394", + "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b", + "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543" + ], + "markers": "python_version >= '3.6'", + "version": "==1.5.0" }, "pyrsistent": { "hashes": [ @@ -261,6 +433,14 @@ "markers": "python_version >= '3.7'", "version": "==4.2.2" }, + "pyusb": { + "hashes": [ + "sha256:2b4c7cb86dbadf044dfb9d3a4ff69fd217013dbe78a792177a3feb172449ea36", + "sha256:a4cc7404a203144754164b8b40994e2849fde1cfff06b08492f12fff9d9de7b9" + ], + "markers": "python_full_version >= '3.6.0'", + "version": "==1.2.1" + }, "pywin32": { "hashes": [ "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d", @@ -283,11 +463,11 @@ }, "setuptools": { "hashes": [ - "sha256:f171bab1dfbc86b132997f26a119f6056a57950d058587841a0082e8830f9dc5", - "sha256:fe384da74336c398e0d956d1cae0669bc02eed936cdb1d49b57de1990dc11ffc" + "sha256:35ab7fd3bcd95e6b7fd704e4a1539513edad446c097797f2985e0e4b960772f2", + "sha256:d59a21b17a275fb872a9c3dae73963160ae079f1049ed956880cd7c09b120538" ], "markers": "python_version >= '3.8'", - "version": "==70.3.0" + "version": "==75.1.0" }, "sniffio": { "hashes": [ @@ -297,14 +477,23 @@ "markers": "python_version >= '3.7'", "version": "==1.3.1" }, + "types-paramiko": { + "hashes": [ + "sha256:6f9b311c63c16c74b923529315e6c75585b323f910b121568d4b3e47cedaf321", + "sha256:e0e6c6c72abe922b035edd62741b4a1cd056ec50c548b2b9e17539bb27b2ba94" + ], + "index": "pypi", + "markers": "python_version >= '3.8'", + "version": "==3.5.0.20240918" + }, "types-pytz": { "hashes": [ - "sha256:6810c8a1f68f21fdf0f4f374a432487c77645a0ac0b31de4bf4690cf21ad3981", - "sha256:8335d443310e2db7b74e007414e74c4f53b67452c0cb0d228ca359ccfba59659" + "sha256:4433b5df4a6fc587bbed41716d86a5ba5d832b4378e506f40d34bc9c81df2c24", + "sha256:a1eebf57ebc6e127a99d2fa2ba0a88d2b173784ef9b3defcc2004ab6855a44df" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==2024.1.0.20240417" + "version": "==2024.2.0.20240913" }, "typing-extensions": { "hashes": [ @@ -401,11 +590,11 @@ }, "attrs": { "hashes": [ - "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30", - "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1" + "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", + "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2" ], "markers": "python_version >= '3.7'", - "version": "==23.2.0" + "version": "==24.2.0" }, "black": { "hashes": [ @@ -439,11 +628,11 @@ }, "certifi": { "hashes": [ - "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b", - "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90" + "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", + "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9" ], "markers": "python_version >= '3.6'", - "version": "==2024.7.4" + "version": "==2024.8.30" }, "charset-normalizer": { "hashes": [ @@ -471,61 +660,81 @@ }, "coverage": { "hashes": [ - "sha256:0086cd4fc71b7d485ac93ca4239c8f75732c2ae3ba83f6be1c9be59d9e2c6382", - "sha256:01c322ef2bbe15057bc4bf132b525b7e3f7206f071799eb8aa6ad1940bcf5fb1", - "sha256:03cafe82c1b32b770a29fd6de923625ccac3185a54a5e66606da26d105f37dac", - "sha256:044a0985a4f25b335882b0966625270a8d9db3d3409ddc49a4eb00b0ef5e8cee", - "sha256:07ed352205574aad067482e53dd606926afebcb5590653121063fbf4e2175166", - "sha256:0d1b923fc4a40c5832be4f35a5dab0e5ff89cddf83bb4174499e02ea089daf57", - "sha256:0e7b27d04131c46e6894f23a4ae186a6a2207209a05df5b6ad4caee6d54a222c", - "sha256:1fad32ee9b27350687035cb5fdf9145bc9cf0a094a9577d43e909948ebcfa27b", - "sha256:289cc803fa1dc901f84701ac10c9ee873619320f2f9aff38794db4a4a0268d51", - "sha256:3c59105f8d58ce500f348c5b56163a4113a440dad6daa2294b5052a10db866da", - "sha256:46c3d091059ad0b9c59d1034de74a7f36dcfa7f6d3bde782c49deb42438f2450", - "sha256:482855914928c8175735a2a59c8dc5806cf7d8f032e4820d52e845d1f731dca2", - "sha256:49c76cdfa13015c4560702574bad67f0e15ca5a2872c6a125f6327ead2b731dd", - "sha256:4b03741e70fb811d1a9a1d75355cf391f274ed85847f4b78e35459899f57af4d", - "sha256:4bea27c4269234e06f621f3fac3925f56ff34bc14521484b8f66a580aacc2e7d", - "sha256:4d5fae0a22dc86259dee66f2cc6c1d3e490c4a1214d7daa2a93d07491c5c04b6", - "sha256:543ef9179bc55edfd895154a51792b01c017c87af0ebaae092720152e19e42ca", - "sha256:54dece71673b3187c86226c3ca793c5f891f9fc3d8aa183f2e3653da18566169", - "sha256:6379688fb4cfa921ae349c76eb1a9ab26b65f32b03d46bb0eed841fd4cb6afb1", - "sha256:65fa405b837060db569a61ec368b74688f429b32fa47a8929a7a2f9b47183713", - "sha256:6616d1c9bf1e3faea78711ee42a8b972367d82ceae233ec0ac61cc7fec09fa6b", - "sha256:6fe885135c8a479d3e37a7aae61cbd3a0fb2deccb4dda3c25f92a49189f766d6", - "sha256:7221f9ac9dad9492cecab6f676b3eaf9185141539d5c9689d13fd6b0d7de840c", - "sha256:76d5f82213aa78098b9b964ea89de4617e70e0d43e97900c2778a50856dac605", - "sha256:7792f0ab20df8071d669d929c75c97fecfa6bcab82c10ee4adb91c7a54055463", - "sha256:831b476d79408ab6ccfadaaf199906c833f02fdb32c9ab907b1d4aa0713cfa3b", - "sha256:9146579352d7b5f6412735d0f203bbd8d00113a680b66565e205bc605ef81bc6", - "sha256:9cc44bf0315268e253bf563f3560e6c004efe38f76db03a1558274a6e04bf5d5", - "sha256:a73d18625f6a8a1cbb11eadc1d03929f9510f4131879288e3f7922097a429f63", - "sha256:a8659fd33ee9e6ca03950cfdcdf271d645cf681609153f218826dd9805ab585c", - "sha256:a94925102c89247530ae1dab7dc02c690942566f22e189cbd53579b0693c0783", - "sha256:ad4567d6c334c46046d1c4c20024de2a1c3abc626817ae21ae3da600f5779b44", - "sha256:b2e16f4cd2bc4d88ba30ca2d3bbf2f21f00f382cf4e1ce3b1ddc96c634bc48ca", - "sha256:bbdf9a72403110a3bdae77948b8011f644571311c2fb35ee15f0f10a8fc082e8", - "sha256:beb08e8508e53a568811016e59f3234d29c2583f6b6e28572f0954a6b4f7e03d", - "sha256:c4cbe651f3904e28f3a55d6f371203049034b4ddbce65a54527a3f189ca3b390", - "sha256:c7b525ab52ce18c57ae232ba6f7010297a87ced82a2383b1afd238849c1ff933", - "sha256:ca5d79cfdae420a1d52bf177de4bc2289c321d6c961ae321503b2ca59c17ae67", - "sha256:cdab02a0a941af190df8782aafc591ef3ad08824f97850b015c8c6a8b3877b0b", - "sha256:d17c6a415d68cfe1091d3296ba5749d3d8696e42c37fca5d4860c5bf7b729f03", - "sha256:d39bd10f0ae453554798b125d2f39884290c480f56e8a02ba7a6ed552005243b", - "sha256:d4b3cd1ca7cd73d229487fa5caca9e4bc1f0bca96526b922d61053ea751fe791", - "sha256:d50a252b23b9b4dfeefc1f663c568a221092cbaded20a05a11665d0dbec9b8fb", - "sha256:da8549d17489cd52f85a9829d0e1d91059359b3c54a26f28bec2c5d369524807", - "sha256:dcd070b5b585b50e6617e8972f3fbbee786afca71b1936ac06257f7e178f00f6", - "sha256:ddaaa91bfc4477d2871442bbf30a125e8fe6b05da8a0015507bfbf4718228ab2", - "sha256:df423f351b162a702c053d5dddc0fc0ef9a9e27ea3f449781ace5f906b664428", - "sha256:dff044f661f59dace805eedb4a7404c573b6ff0cdba4a524141bc63d7be5c7fd", - "sha256:e7e128f85c0b419907d1f38e616c4f1e9f1d1b37a7949f44df9a73d5da5cd53c", - "sha256:ed8d1d1821ba5fc88d4a4f45387b65de52382fa3ef1f0115a4f7a20cdfab0e94", - "sha256:f2501d60d7497fd55e391f423f965bbe9e650e9ffc3c627d5f0ac516026000b8", - "sha256:f7db0b6ae1f96ae41afe626095149ecd1b212b424626175a6633c2999eaad45b" + "sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca", + "sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d", + "sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6", + "sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989", + "sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c", + "sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b", + "sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223", + "sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f", + "sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56", + "sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3", + "sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8", + "sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb", + "sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388", + "sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0", + "sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a", + "sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8", + "sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f", + "sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a", + "sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962", + "sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8", + "sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391", + "sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc", + "sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2", + "sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155", + "sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb", + "sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0", + "sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c", + "sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a", + "sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004", + "sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060", + "sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232", + "sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93", + "sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129", + "sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163", + "sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de", + "sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6", + "sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23", + "sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569", + "sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d", + "sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778", + "sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d", + "sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36", + "sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a", + "sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6", + "sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34", + "sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704", + "sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106", + "sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9", + "sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862", + "sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b", + "sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255", + "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16", + "sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3", + "sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133", + "sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb", + "sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657", + "sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d", + "sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca", + "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36", + "sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c", + "sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e", + "sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff", + "sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7", + "sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5", + "sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02", + "sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c", + "sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df", + "sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3", + "sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a", + "sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959", + "sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234", + "sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc" ], "markers": "python_version >= '3.8'", - "version": "==7.6.0" + "version": "==7.6.1" }, "flake8": { "hashes": [ @@ -564,11 +773,11 @@ }, "idna": { "hashes": [ - "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc", - "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0" + "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", + "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" ], - "markers": "python_version >= '3.5'", - "version": "==3.7" + "markers": "python_version >= '3.6'", + "version": "==3.10" }, "iniconfig": { "hashes": [ @@ -642,11 +851,11 @@ }, "platformdirs": { "hashes": [ - "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee", - "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3" + "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907", + "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb" ], "markers": "python_version >= '3.8'", - "version": "==4.2.2" + "version": "==4.3.6" }, "pluggy": { "hashes": [ @@ -711,7 +920,6 @@ "sha256:2b4c7cb86dbadf044dfb9d3a4ff69fd217013dbe78a792177a3feb172449ea36", "sha256:a4cc7404a203144754164b8b40994e2849fde1cfff06b08492f12fff9d9de7b9" ], - "index": "pypi", "markers": "python_full_version >= '3.6.0'", "version": "==1.2.1" }, @@ -736,7 +944,7 @@ "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" ], - "markers": "python_version < '3.11'", + "markers": "python_version >= '3.7'", "version": "==2.0.1" }, "types-requests": { @@ -757,11 +965,11 @@ }, "urllib3": { "hashes": [ - "sha256:37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3", - "sha256:3e3d753a8618b86d7de333b4223005f68720bcd6a7d2bcb9fbd2229ec7c1e429" + "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e", + "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==1.26.19" + "version": "==1.26.20" } } } diff --git a/hardware-testing/hardware_testing/drivers/__init__.py b/hardware-testing/hardware_testing/drivers/__init__.py index 549384a6939..fde7e228d9b 100644 --- a/hardware-testing/hardware_testing/drivers/__init__.py +++ b/hardware-testing/hardware_testing/drivers/__init__.py @@ -4,23 +4,36 @@ from .radwag import RadwagScaleBase, RadwagScale, SimRadwagScale -def list_ports_and_select(device_name: str = "") -> str: +def list_ports_and_select(device_name: str = "", port_substr: str = None) -> str: """List serial ports and display list for user to select from.""" ports = comports() assert ports, "no serial ports found" ports.sort(key=lambda p: p.device) print("found ports:") + + idx = 0 + idx_str = "" for i, p in enumerate(ports): print(f"\t{i + 1}) {p.device}") + if port_substr: + for i, p in enumerate(ports): + if port_substr in p.device: + idx = i + 1 + break + else: + idx_str = input( + f"\nenter number next to {device_name} port (or ENTER to re-scan): " + ) + if not idx_str: + return list_ports_and_select(device_name) if not device_name: device_name = "desired" - idx_str = input( - f"\nenter number next to {device_name} port (or ENTER to re-scan): " - ) - if not idx_str: - return list_ports_and_select(device_name) + try: - idx = int(idx_str.strip()) + try: + idx = int(idx_str.strip()) + except TypeError: + pass return ports[idx - 1].device except (ValueError, IndexError): return list_ports_and_select() diff --git a/hardware-testing/hardware_testing/drivers/asair_sensor.py b/hardware-testing/hardware_testing/drivers/asair_sensor.py index 00b73893e6d..ab61dcf4e5d 100644 --- a/hardware-testing/hardware_testing/drivers/asair_sensor.py +++ b/hardware-testing/hardware_testing/drivers/asair_sensor.py @@ -74,12 +74,16 @@ def get_serial(self) -> str: ... -def BuildAsairSensor(simulate: bool, autosearch: bool = True) -> AsairSensorBase: +def BuildAsairSensor( + simulate: bool, autosearch: bool = True, port_substr: str = None +) -> AsairSensorBase: """Try to find and return an Asair sensor, if not found return a simulator.""" ui.print_title("Connecting to Environmental sensor") if not simulate: if not autosearch: - port = list_ports_and_select(device_name="Asair environmental sensor") + port = list_ports_and_select( + device_name="Asair environmental sensor", port_substr=port_substr + ) sensor = AsairSensor.connect(port) ui.print_info(f"Found sensor on port {port}") return sensor diff --git a/hardware-testing/hardware_testing/scripts/ABRAsairScript.py b/hardware-testing/hardware_testing/scripts/ABRAsairScript.py new file mode 100644 index 00000000000..2324e330dc7 --- /dev/null +++ b/hardware-testing/hardware_testing/scripts/ABRAsairScript.py @@ -0,0 +1,104 @@ +"""ABR Asair Automation Script!""" +import sys +import paramiko as pmk +import time +import multiprocessing +from typing import Optional, List + + +def execute(client: pmk.SSHClient, command: str, args: list) -> Optional[int]: + """Execute given command on a remote client, returns 1 if command fails.""" + command = command.format(name=args[0], duration=args[1], frequency=args[2]) + print(f"{args[0]} Executing command: {command}") + + try: + stdin, stdout, stderr = client.exec_command(command, get_pty=True) + stdout_lines: List[str] = [] + stderr_lines: List[str] = [] + time.sleep(15) + + # check stdout, stderr + + # Check the exit status of the command. + # while not stdout.channel.exit_status_ready(): + # if stdout.channel.recv_ready(): + # stdout_lines = stdout.readlines() + # print(f"{args[0]} output:", "".join(stdout_lines)) + # if stderr.channel.recv_ready(): + # stderr_lines = stderr.readlines() + # print(f"{args[0]} ERROR:", "".join(stdout_lines)) + # return 1 + if stderr.channel.recv_ready: + stderr_lines = stderr.readlines() + if stderr_lines != []: + print(f"{args[0]} ERROR: ", stderr_lines) + return 1 + if stdout.channel.exit_status_ready(): + if stdout.channel.recv_exit_status() != 0: + print(f"{args[0]} command failed:", "".join(stderr_lines)) + # Terminate process on failure. + raise RuntimeError( + f"{args[0]} encountered an error and the process will terminate." + ) + else: + print(f"{args[0]} command success:", "".join(stdout_lines)) + return 0 + except Exception as e: + print(f"Error with {args[0]}:", e) + raise # Re-raise the exception to propagate it up and terminate the process. + return None + + +def connect_ssh(ip: str) -> pmk.SSHClient: + """Connect to given ip address through SSH.""" + print("Connecting to:", ip) + client = pmk.SSHClient() + client.set_missing_host_key_policy(pmk.AutoAddPolicy()) + client.connect(ip, username="root", password=None) + return client + + +# Load Robot IPs +file_name = sys.argv[1] +robot_ips = [] +robot_names = [] + +with open(file_name) as file: + for line in file.readlines(): + info = line.split(",") + if "Y" in info[2]: + robot_ips.append(info[0]) + robot_names.append(info[1]) + +cmd = "nohup python3 -m hardware_testing.scripts.abr_asair_sensor {name} {duration} {frequency}" +cd = "cd /opt/opentrons-robot-server && " +print("Executing Script on All Robots:") + + +def run_command_on_ip(index: int) -> None: + """Execute ssh command and start abr_asair script on the specified robot.""" + curr_ip = robot_ips[index] + try: + ssh = connect_ssh(curr_ip) + status = execute(ssh, cd + cmd, [robot_names[index], "540", "5"]) + if status == 0: + print(f"Envrironmental sensors for {curr_ip}, are now running") + except Exception as e: + print(f"Error running command on {curr_ip}: {e}") + + +# Launch the processes for each robot. +processes = [] +for index in range(len(robot_ips)): + process = multiprocessing.Process(target=run_command_on_ip, args=(index,)) + processes.append(process) + + +if __name__ == "__main__": + # Wait for all processes to finish. + for process in processes: + process.start() + time.sleep(20) + + for process in processes: + process.join() diff --git a/hardware-testing/hardware_testing/scripts/abr_asair_sensor.py b/hardware-testing/hardware_testing/scripts/abr_asair_sensor.py index fc46fcd8df0..f2c00e015d3 100644 --- a/hardware-testing/hardware_testing/scripts/abr_asair_sensor.py +++ b/hardware-testing/hardware_testing/scripts/abr_asair_sensor.py @@ -26,7 +26,7 @@ def __init__(self, robot: str, duration: int, frequency: int) -> None: test_name = "ABR-Environment-Monitoring" run_id = data.create_run_id() file_name = data.create_file_name(test_name, run_id, robot) - sensor = asair_sensor.BuildAsairSensor(False, False) + sensor = asair_sensor.BuildAsairSensor(False, False, "USB") print(sensor) env_data = sensor.get_reading() header = [ From edb51fdd98a83a8d78f8a6d42ff5b5d5fdd8b996 Mon Sep 17 00:00:00 2001 From: Max Marrone Date: Thu, 26 Sep 2024 16:31:49 -0400 Subject: [PATCH 06/18] refactor(api): Hide implementation details from absorbance reader results (#16359) --- .../commands/absorbance_reader/__init__.py | 1 - .../commands/absorbance_reader/close_lid.py | 7 ++---- .../commands/absorbance_reader/open_lid.py | 9 ++----- .../commands/absorbance_reader/types.py | 25 ------------------- 4 files changed, 4 insertions(+), 38 deletions(-) delete mode 100644 api/src/opentrons/protocol_engine/commands/absorbance_reader/types.py diff --git a/api/src/opentrons/protocol_engine/commands/absorbance_reader/__init__.py b/api/src/opentrons/protocol_engine/commands/absorbance_reader/__init__.py index 09307e85230..2ed24ae23c3 100644 --- a/api/src/opentrons/protocol_engine/commands/absorbance_reader/__init__.py +++ b/api/src/opentrons/protocol_engine/commands/absorbance_reader/__init__.py @@ -1,5 +1,4 @@ """Command models for Absorbance Reader commands.""" -from .types import MoveLidResult from .close_lid import ( CloseLidCommandType, CloseLidParams, diff --git a/api/src/opentrons/protocol_engine/commands/absorbance_reader/close_lid.py b/api/src/opentrons/protocol_engine/commands/absorbance_reader/close_lid.py index f7d7b999104..b5131d76bcf 100644 --- a/api/src/opentrons/protocol_engine/commands/absorbance_reader/close_lid.py +++ b/api/src/opentrons/protocol_engine/commands/absorbance_reader/close_lid.py @@ -11,7 +11,6 @@ from opentrons.protocol_engine.types import AddressableAreaLocation from opentrons.protocol_engine.resources import labware_validation -from .types import MoveLidResult from ...state.update_types import StateUpdate @@ -34,7 +33,7 @@ class CloseLidParams(BaseModel): moduleId: str = Field(..., description="Unique ID of the absorbance reader.") -class CloseLidResult(MoveLidResult): +class CloseLidResult(BaseModel): """Result data from closing the lid on an aborbance reading.""" @@ -142,9 +141,7 @@ async def execute( ) return SuccessData( - public=CloseLidResult( - lidId=loaded_lid.id, newLocation=new_location, offsetId=new_offset_id - ), + public=CloseLidResult(), private=None, state_update=state_update, ) diff --git a/api/src/opentrons/protocol_engine/commands/absorbance_reader/open_lid.py b/api/src/opentrons/protocol_engine/commands/absorbance_reader/open_lid.py index 39fa4ce6ad4..7a048a69b52 100644 --- a/api/src/opentrons/protocol_engine/commands/absorbance_reader/open_lid.py +++ b/api/src/opentrons/protocol_engine/commands/absorbance_reader/open_lid.py @@ -9,7 +9,6 @@ from ...errors.error_occurrence import ErrorOccurrence from ...errors import CannotPerformModuleAction -from .types import MoveLidResult from opentrons.protocol_engine.resources import labware_validation from opentrons.protocol_engine.types import AddressableAreaLocation @@ -35,7 +34,7 @@ class OpenLidParams(BaseModel): moduleId: str = Field(..., description="Unique ID of the absorbance reader.") -class OpenLidResult(MoveLidResult): +class OpenLidResult(BaseModel): """Result data from opening the lid on an aborbance reading.""" @@ -137,11 +136,7 @@ async def execute(self, params: OpenLidParams) -> SuccessData[OpenLidResult, Non ) return SuccessData( - public=OpenLidResult( - lidId=loaded_lid.id, - newLocation=new_location, - offsetId=new_offset_id, - ), + public=OpenLidResult(), private=None, state_update=state_update, ) diff --git a/api/src/opentrons/protocol_engine/commands/absorbance_reader/types.py b/api/src/opentrons/protocol_engine/commands/absorbance_reader/types.py deleted file mode 100644 index 5595502d6a1..00000000000 --- a/api/src/opentrons/protocol_engine/commands/absorbance_reader/types.py +++ /dev/null @@ -1,25 +0,0 @@ -"""Move Lid Result model.""" - -from typing import Optional -from pydantic import BaseModel, Field -from opentrons.protocol_engine.types import LabwareLocation - - -class MoveLidResult(BaseModel): - """Input parameters to open the lid on an absorbance reading.""" - - lidId: str = Field(..., description="Unique ID of the absorbance reader lid.") - newLocation: LabwareLocation = Field(..., description="New location of the lid") - offsetId: Optional[str] = Field( - # Default `None` instead of `...` so this field shows up as non-required in - # OpenAPI. The server is allowed to omit it or make it null. - None, - description=( - "An ID referencing the labware offset that will apply to this labware" - " now that it's in the new location." - " This offset will be in effect until the labware is moved" - " with another `moveLabware` command." - " Null or undefined means no offset applies," - " so the default of (0, 0, 0) will be used." - ), - ) From d8a5a0e51d29bfcd3d4ccf18b6cdb58d75245902 Mon Sep 17 00:00:00 2001 From: Jethary Alcid <66035149+jerader@users.noreply.github.com> Date: Fri, 27 Sep 2024 10:11:15 -0400 Subject: [PATCH 07/18] fix(labware-library): individual labware page routing (#16366) closes RESC-334 --- labware-library/src/components/App/index.tsx | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/labware-library/src/components/App/index.tsx b/labware-library/src/components/App/index.tsx index ebdea67358d..df1a3a4b96c 100644 --- a/labware-library/src/components/App/index.tsx +++ b/labware-library/src/components/App/index.tsx @@ -1,9 +1,10 @@ // main application wrapper component import { useRef, useEffect } from 'react' import cx from 'classnames' -import { useLocation } from 'react-router-dom' +import { Navigate, Route, Routes, useLocation } from 'react-router-dom' import { DefinitionRoute } from '../../definitions' import { useFilters } from '../../filters' +import { getPublicPath } from '../../public-path' import { Nav, Breadcrumbs } from '../Nav' import { Sidebar } from '../Sidebar' import { Page } from './Page' @@ -50,5 +51,16 @@ export function AppComponent(props: DefinitionRouteRenderProps): JSX.Element { } export function App(): JSX.Element { - return } /> + return ( + + } /> + } + /> + } /> + } /> + + ) } From e3c39e779cb1ae267d7f26a6c234a1e09eb84cde Mon Sep 17 00:00:00 2001 From: koji Date: Fri, 27 Sep 2024 10:20:20 -0400 Subject: [PATCH 08/18] fix(protocol-designer): fix text display condition in select modules and select fixtures (#16361) * fix(protocol-designer): fix text display condition in select modules and select fixtures --- .../src/assets/localization/en/create_new_protocol.json | 2 +- .../src/pages/CreateNewProtocolWizard/SelectFixtures.tsx | 9 +++++---- .../src/pages/CreateNewProtocolWizard/SelectModules.tsx | 9 +++++++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/protocol-designer/src/assets/localization/en/create_new_protocol.json b/protocol-designer/src/assets/localization/en/create_new_protocol.json index 463d2c67268..d20c4a26f80 100644 --- a/protocol-designer/src/assets/localization/en/create_new_protocol.json +++ b/protocol-designer/src/assets/localization/en/create_new_protocol.json @@ -40,7 +40,7 @@ "vol_label": "{{volume}} uL", "wasteChute": "Waste Chute", "which_fixtures": "Which fixtures will you be using?", - "which_mods": "Select modules to use in your protocol.", + "which_modules": "Select modules to use in your protocol.", "which_pipette": "Pick your first pipette. If you need a second pipette, you can add it next.", "your_pips": "Your pipettes" } diff --git a/protocol-designer/src/pages/CreateNewProtocolWizard/SelectFixtures.tsx b/protocol-designer/src/pages/CreateNewProtocolWizard/SelectFixtures.tsx index 60805d96a7c..0bdd457f2c7 100644 --- a/protocol-designer/src/pages/CreateNewProtocolWizard/SelectFixtures.tsx +++ b/protocol-designer/src/pages/CreateNewProtocolWizard/SelectFixtures.tsx @@ -81,10 +81,11 @@ export function SelectFixtures(props: WizardTileProps): JSX.Element | null { > - - {t('which_fixtures')} - - + {filteredAdditionalEquipment.length > 0 ? ( + + {t('which_fixtures')} + + ) : null} {filteredAdditionalEquipment.map(equipment => ( - {filteredSupportedModules.length > 0 ? ( + {(filteredSupportedModules.length > 0 && enableAbsorbanceReader) || + // note (kk:09/26/2024) the condition for absorbanceReaderV1 will be removed when ff is removed + !( + filteredSupportedModules.length === 1 && + filteredSupportedModules[0] === 'absorbanceReaderV1' + ) ? ( - {t('which_mods')} + {t('which_modules')} ) : null} From 4324dd39383b6b6845ec4cc911ab1888cfe237a4 Mon Sep 17 00:00:00 2001 From: koji Date: Fri, 27 Sep 2024 10:26:27 -0400 Subject: [PATCH 09/18] fix(protocol-designer): fix pipette selection issue (#16363) * fix(protocol-designer): fix pipette selection issue --- .../localization/en/create_new_protocol.json | 10 +++++----- .../src/organisms/EditInstrumentsModal/index.tsx | 10 +++++----- .../CreateNewProtocolWizard/SelectPipettes.tsx | 14 +++++++------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/protocol-designer/src/assets/localization/en/create_new_protocol.json b/protocol-designer/src/assets/localization/en/create_new_protocol.json index d20c4a26f80..ecbb8ac4d0f 100644 --- a/protocol-designer/src/assets/localization/en/create_new_protocol.json +++ b/protocol-designer/src/assets/localization/en/create_new_protocol.json @@ -16,10 +16,10 @@ "modules_added": "Modules added", "name": "Name", "need_gripper": "Do you want to move labware automatically with the gripper?", - "pip_gen": "Pipette generation", - "pip_tips": "Pipette tips", - "pip_type": "Pipette type", - "pip_vol": "Pipette volume", + "pipette_gen": "Pipette generation", + "pipette_tips": "Pipette tips", + "pipette_type": "Pipette type", + "pipette_vol": "Pipette volume", "pip": "{{mount}} pipette", "quantity": "Quantity", "remove": "Remove", @@ -42,5 +42,5 @@ "which_fixtures": "Which fixtures will you be using?", "which_modules": "Select modules to use in your protocol.", "which_pipette": "Pick your first pipette. If you need a second pipette, you can add it next.", - "your_pips": "Your pipettes" + "your_pipettes": "Your pipettes" } diff --git a/protocol-designer/src/organisms/EditInstrumentsModal/index.tsx b/protocol-designer/src/organisms/EditInstrumentsModal/index.tsx index b631268ac66..8b50cb41c73 100644 --- a/protocol-designer/src/organisms/EditInstrumentsModal/index.tsx +++ b/protocol-designer/src/organisms/EditInstrumentsModal/index.tsx @@ -207,7 +207,7 @@ export function EditInstrumentsModal( alignItems={ALIGN_CENTER} > - {t('your_pips')} + {t('your_pipettes')} {has96Channel ? null : ( - {t('pip_type')} + {t('pipette_type')} {PIPETTE_TYPES[robotType].map(type => { @@ -415,7 +415,7 @@ export function EditInstrumentsModal( desktopStyle="bodyLargeSemiBold" marginBottom={SPACING.spacing16} > - {t('pip_gen')} + {t('pipette_gen')} {PIPETTE_GENS.map(gen => ( @@ -446,7 +446,7 @@ export function EditInstrumentsModal( desktopStyle="bodyLargeSemiBold" marginBottom={SPACING.spacing16} > - {t('pip_vol')} + {t('pipette_vol')} {PIPETTE_VOLUMES[robotType]?.map(volume => { @@ -506,7 +506,7 @@ export function EditInstrumentsModal( desktopStyle="bodyLargeSemiBold" marginBottom={SPACING.spacing16} > - {t('pip_tips')} + {t('pipette_tips')} - {t('pip_type')} + {t('pipette_type')} {PIPETTE_TYPES[robotType].map(type => { return type.value === '96' && - pipettesByMount.left.pipetteName != null && - pipettesByMount.right.pipetteName != null ? null : ( + (pipettesByMount.left.pipetteName != null || + pipettesByMount.right.pipetteName != null) ? null : ( { @@ -192,7 +192,7 @@ export function SelectPipettes(props: WizardTileProps): JSX.Element | null { gridGap={SPACING.spacing12} > - {t('pip_gen')} + {t('pipette_gen')} {PIPETTE_GENS.map(gen => ( @@ -219,7 +219,7 @@ export function SelectPipettes(props: WizardTileProps): JSX.Element | null { gridGap={SPACING.spacing12} > - {t('pip_vol')} + {t('pipette_vol')} {PIPETTE_VOLUMES[robotType]?.map(volume => { @@ -283,7 +283,7 @@ export function SelectPipettes(props: WizardTileProps): JSX.Element | null { gridGap={SPACING.spacing16} > - {t('pip_tips')} + {t('pipette_tips')} - {t('your_pips')} + {t('your_pipettes')} {has96Channel ? null : ( Date: Fri, 27 Sep 2024 12:37:28 -0400 Subject: [PATCH 10/18] refactor(app): move all desktop-only organisms to Desktop (#16369) Finishes the desktop side of this big reorganization of app code. At this point, any organism that is used only in the Desktop app now lives in `app/organisms/Desktop`. There are no imports up the tree of life (i.e. importing organisms from molecules or pages from organisms); there are no imports from shared or ODD code into `Desktop` at organism or page level. The next step is to do the same for ODD. This should be a lot easier since a lot of the things that tangled everything up are now resolved. --- app/src/App/DesktopApp.tsx | 4 +- app/src/App/__tests__/DesktopApp.test.tsx | 8 +- .../local-resources/labware/utils/index.ts | 1 + .../labware/utils}/labwareImages.ts | 0 app/src/molecules/GenericWizardTile/index.tsx | 2 +- .../NeedHelpLink.tsx | 0 .../OT2CalibrationNeedHelpLink/index.ts | 1 + .../TaskList/TaskList.stories.tsx | 2 +- .../TaskList/index.tsx | 1 + .../TaskList/types.ts | 0 .../WizardRequiredEquipmentList/index.tsx | 2 +- app/src/molecules/modals/ErrorModal.tsx | 2 +- .../LabwareOffsetTable.tsx | 2 +- .../__tests__/ApplyHistoricOffsets.test.tsx | 2 +- .../organisms/ApplyHistoricOffsets/index.tsx | 4 +- .../AdditionalCustomLabwareSourceFolder.tsx | 0 .../ClearUnavailableRobots.tsx | 2 +- .../AdvancedSettings/EnableDevTools.tsx | 0 .../AdvancedSettings/OT2AdvancedSettings.tsx | 0 .../AdvancedSettings/OverridePathToPython.tsx | 0 .../AdvancedSettings/PreventRobotCaching.tsx | 0 .../ShowHeaterShakerAttachmentModal.tsx | 0 .../ShowLabwareOffsetSnippets.tsx | 0 .../AdvancedSettings/U2EInformation.tsx | 0 .../AdvancedSettings/UpdatedChannel.tsx | 0 ...ditionalCustomLabwareSourceFolder.test.tsx | 0 .../__tests__/ClearUnavailableRobots.test.tsx | 0 .../__tests__/EnableDevTools.test.tsx | 0 .../__tests__/OT2AdvancedSettings.test.tsx | 0 .../__tests__/OverridePathToPython.test.tsx | 0 .../__tests__/PreventRobotCaching.test.tsx | 0 .../ShowHeaterShakerAttachmentModal.test.tsx | 0 .../ShowLabwareOffsetSnippets.test.tsx | 0 .../__tests__/U2EInformation.test.tsx | 0 .../__tests__/UpdatedChannel.test.tsx | 0 .../{ => Desktop}/AdvancedSettings/index.ts | 0 .../{ => Desktop}/Alerts/AlertsModal.tsx | 2 +- .../{ => Desktop}/Alerts/AlertsProvider.tsx | 2 +- .../Alerts/U2EDriverOutdatedAlert.tsx | 0 .../Alerts/__tests__/Alerts.test.tsx | 0 .../__tests__/U2EDriverOutdatedAlert.test.tsx | 0 .../organisms/{ => Desktop}/Alerts/index.ts | 0 .../organisms/{ => Desktop}/Alerts/types.ts | 0 .../useRemoveActiveAppUpdateToast.ts.ts | 0 .../AppSettings/ConnectRobotSlideout.tsx | 0 .../AppSettings/FeatureFlags.tsx | 0 .../AppSettings/ManualIpHostnameField.tsx | 0 .../AppSettings/ManualIpHostnameForm.tsx | 0 .../AppSettings/ManualIpHostnameItem.tsx | 0 .../AppSettings/ManualIpHostnameList.tsx | 0 .../AppSettings/PreviousVersionModal.tsx | 0 .../__tests__/ConnectRobotSlideout.test.tsx | 0 .../__tests__/PreviousVersionModal.test.tsx | 0 .../__tests__/Breadcrumbs.test.tsx | 4 +- .../{ => Desktop}/Breadcrumbs/index.tsx | 4 +- .../__tests__/CalibrateDeck.test.tsx | 0 .../{ => Desktop}/CalibrateDeck/index.tsx | 6 +- .../{ => Desktop}/CalibrateDeck/types.ts | 0 .../__tests__/CalibratePipetteOffset.test.tsx | 0 .../useCalibratePipetteOffset.test.tsx | 0 .../CalibratePipetteOffset/index.tsx | 6 +- .../CalibratePipetteOffset/types.ts | 0 .../useCalibratePipetteOffset.tsx | 2 +- .../AskForCalibrationBlockModal.tsx | 4 +- .../ConfirmRecalibrationModal.tsx | 2 +- .../TipLengthCalibrationInfoBox.tsx | 0 .../AskForCalibrationBlockModal.test.tsx | 0 .../__tests__/CalibrateTipLength.test.tsx | 0 .../CalibrateTipLength/index.tsx | 6 +- .../CalibrateTipLength/styles.module.css | 0 .../{ => Desktop}/CalibrateTipLength/types.ts | 0 .../CalibrationLabwareRender.tsx | 0 .../CalibrationPanels/ChooseTipRack.tsx | 2 +- .../CalibrationPanels/ChosenTipRackRender.tsx | 2 +- .../CompleteConfirmation.tsx | 0 .../ConfirmCrashRecovery.tsx | 0 .../CalibrationPanels/ConfirmExit.tsx | 2 +- .../CalibrationPanels/DeckSetup.tsx | 2 +- .../CalibrationPanels/Introduction/Body.tsx | 0 .../Introduction/InvalidationWarning.tsx | 0 .../Introduction/__tests__/Body.test.tsx | 0 .../__tests__/Introduction.test.tsx | 0 .../__tests__/InvalidationWarning.test.tsx | 0 .../CalibrationPanels/Introduction/index.tsx | 2 +- .../CalibrationPanels/LoadingState.tsx | 0 .../CalibrationPanels/MeasureNozzle.tsx | 2 +- .../CalibrationPanels/MeasureTip.tsx | 2 +- .../CalibrationPanels/SaveXYPoint.tsx | 4 +- .../CalibrationPanels/SaveZPoint.tsx | 2 +- .../CalibrationPanels/TipConfirmation.tsx | 2 +- .../CalibrationPanels/TipPickUp.tsx | 2 +- .../__tests__/ChooseTipRack.test.tsx | 0 .../__tests__/ChosenTipRackRender.test.tsx | 0 .../__tests__/CompleteConfirmation.test.tsx | 0 .../__tests__/ConfirmCrashRecovery.test.tsx | 0 .../__tests__/ConfirmExit.test.tsx | 0 .../__tests__/DeckSetup.test.tsx | 0 .../__tests__/MeasureNozzle.test.tsx | 0 .../__tests__/MeasureTip.test.tsx | 0 .../__tests__/SaveXYPoint.test.tsx | 0 .../__tests__/SaveZPoint.test.tsx | 0 .../__tests__/TipConfirmation.test.tsx | 0 .../__tests__/TipPickUp.test.tsx | 0 .../useConfirmCrashRecovery.test.tsx | 0 .../CalibrationPanels/constants.ts | 0 .../{ => Desktop}/CalibrationPanels/index.ts | 1 - .../CalibrationPanels/styles.module.css | 0 .../{ => Desktop}/CalibrationPanels/types.ts | 0 .../useConfirmCrashRecovery.tsx | 0 .../{ => Desktop}/CalibrationPanels/utils.ts | 0 .../__tests__/CalibrationStatusCard.test.tsx | 0 .../CalibrationStatusCard/index.tsx | 0 .../__tests__/CalibrationTaskList.test.tsx | 0 .../CalibrationTaskList/index.tsx | 6 +- .../CalibrationHealthCheckResults.tsx | 0 .../ResultsSummary/CalibrationResult.tsx | 0 .../ResultsSummary/RenderMountInformation.tsx | 0 .../ResultsSummary/RenderResult.tsx | 0 .../CalibrationHealthCheckResults.test.tsx | 0 .../__tests__/CalibrationResult.test.tsx | 0 .../__tests__/RenderMountInformation.test.tsx | 0 .../__tests__/RenderResult.test.tsx | 0 .../__tests__/ResultsSummary.test.tsx | 2 +- .../CheckCalibration/ResultsSummary/index.tsx | 2 +- .../CheckCalibration/ReturnTip.tsx | 4 +- .../CheckCalibration/ThresholdValue.tsx | 0 .../__tests__/CheckCalibration.test.tsx | 0 .../__tests__/ReturnTip.test.tsx | 0 .../{ => Desktop}/CheckCalibration/index.tsx | 6 +- .../CheckCalibration/styles.module.css | 0 .../{ => Desktop}/CheckCalibration/types.ts | 0 .../__tests__/ChooseProtocolSlideout.test.tsx | 10 ++- .../ChooseProtocolSlideout/index.tsx | 12 +-- .../AvailableRobotOption.tsx | 0 .../ChooseRobotSlideout/FileCard.tsx | 0 .../__tests__/ChooseRobotSlideout.test.tsx | 0 .../__tests__/FileCard.test.tsx | 0 .../ChooseRobotSlideout/index.tsx | 2 +- .../ChooseRobotToRunProtocolSlideout.test.tsx | 10 ++- .../index.tsx | 6 +- .../useCreateRunFromProtocol.ts | 0 .../Devices/CalibrationStatusBanner.tsx | 0 .../ChangePipette/CheckPipettesButton.tsx | 0 .../Devices}/ChangePipette/ClearDeckModal.tsx | 0 .../Devices}/ChangePipette/ConfirmPipette.tsx | 0 .../Devices}/ChangePipette/ExitModal.tsx | 0 .../ChangePipette/InstructionStep.tsx | 0 .../Devices}/ChangePipette/Instructions.tsx | 0 .../Devices}/ChangePipette/LevelPipette.tsx | 0 .../ChangePipette/PipetteSelection.tsx | 0 .../__tests__/ChangePipette.test.tsx | 0 .../__tests__/CheckPipettesButton.test.tsx | 0 .../__tests__/ClearDeckModal.test.tsx | 0 .../__tests__/ConfirmPipette.test.tsx | 0 .../__tests__/ExitModal.test.tsx | 0 .../__tests__/InstructionStep.test.tsx | 0 .../__tests__/Instructions.test.tsx | 0 .../__tests__/LevelPipette.test.tsx | 0 .../__tests__/PipetteSelection.test.tsx | 0 .../Devices}/ChangePipette/constants.ts | 0 .../Devices}/ChangePipette/index.tsx | 0 .../Devices}/ChangePipette/types.ts | 0 .../ConfigurePipette/ConfigErrorBanner.tsx | 0 .../Devices}/ConfigurePipette/ConfigForm.tsx | 0 .../ConfigurePipette/ConfigFormGroup.tsx | 0 .../ConfigFormResetButton.tsx | 0 .../ConfigFormSubmitButton.tsx | 0 .../ConfigurePipette/ConfigMessage.tsx | 0 .../__tests__/ConfigFormResetButton.test.tsx | 0 .../__tests__/ConfigFormSubmitButton.test.tsx | 0 .../__tests__/ConfigurePipette.test.tsx | 0 .../Devices}/ConfigurePipette/index.tsx | 0 .../ConfigurePipette/styles.module.css | 0 .../ConnectionTroubleshootingModal.tsx | 0 .../Devices/DevicesEmptyState.tsx | 0 .../Devices/DownloadCsvFileLink.tsx | 0 .../__tests__/ErrorRecoveryBanner.test.tsx | 0 .../__tests__/useErrorRecoveryBanner.test.ts | 0 .../Devices}/ErrorRecoveryBanner/index.tsx | 0 .../{ => Desktop}/Devices/EstopBanner.tsx | 2 +- .../GripperCard/AboutGripperSlideout.tsx | 0 .../__tests__/AboutGripperSlideout.test.tsx | 0 .../__tests__/GripperCard.test.tsx | 4 +- .../Devices}/GripperCard/index.tsx | 6 +- .../Devices/HistoricalProtocolRun.tsx | 0 .../Devices/HistoricalProtocolRunDrawer.tsx | 0 .../HistoricalProtocolRunOverflowMenu.tsx | 4 +- .../Devices/InstrumentsAndModules.tsx | 6 +- .../PipetteCard/AboutPipetteSlideout.tsx | 0 .../Devices/PipetteCard/FlexPipetteCard.tsx | 10 +-- .../PipetteCard/PipetteOverflowMenu.tsx | 0 .../PipetteRecalibrationWarning.tsx | 0 .../PipetteCard/PipetteSettingsSlideout.tsx | 4 +- .../__tests__/AboutPipetteSlideout.test.tsx | 0 .../__tests__/FlexPipetteCard.test.tsx | 12 +-- .../__tests__/PipetteCard.test.tsx | 4 +- .../__tests__/PipetteOverflowMenu.test.tsx | 0 .../PipetteSettingsSlideout.test.tsx | 0 .../Devices/PipetteCard/index.tsx | 4 +- .../Devices/ProtocolRun/BackToTopButton.tsx | 0 .../Devices/ProtocolRun/EmptySetupStep.tsx | 0 .../ProtocolRun/LabwareInfoOverlay.tsx | 0 .../ProtocolRunHeader/DisplayRunStatus.tsx | 0 .../ProtocolAnalysisErrorBanner.tsx | 2 +- .../TerminalRunBannerContainer.tsx | 0 .../ProtocolAnalysisErrorBanner.test.tsx | 0 .../getShowGenericRunHeaderBanners.ts | 0 .../RunHeaderBannerContainer/index.tsx | 0 .../ActionButton/hooks/index.ts | 0 .../hooks/useActionBtnDisabledUtils.ts | 0 .../hooks/useActionButtonProperties.ts | 2 +- .../hooks/useIsFixtureMismatch.ts | 0 .../RunHeaderContent/ActionButton/index.tsx | 0 .../RunHeaderContent/LabeledValue.tsx | 0 .../RunHeaderSectionLower.tsx | 0 .../RunHeaderSectionUpper.tsx | 0 .../RunHeaderContent/index.tsx | 2 +- .../RunHeaderModalContainer.tsx | 8 +- .../RunHeaderModalContainer/hooks/index.ts | 0 .../hooks/useHeaterShakerConfirmationModal.ts | 2 +- .../hooks/useMissingStepsModal.ts | 2 +- .../hooks/useRunHeaderDropTip.ts | 4 +- .../RunHeaderModalContainer/index.ts | 0 .../modals/ConfirmCancelModal.tsx | 0 .../modals/ConfirmMissingStepsModal.tsx | 0 .../HeaterShakerIsRunningModal.tsx | 2 +- .../HeaterShakerModuleCard.tsx | 2 +- .../HeaterShakerIsRunningModal.test.tsx | 0 .../__tests__/HeaterShakerModuleCard.test.tsx | 4 +- .../__tests__/hooks.test.tsx | 0 .../HeaterShakerIsRunningModal/hooks.tsx | 0 .../HeaterShakerIsRunningModal/index.ts | 0 .../HeaterShakerIsRunningModal/utils.ts | 0 .../modals/ProtocolAnalysisErrorModal.tsx | 0 .../modals/ProtocolDropTipModal.tsx | 4 +- .../modals/RunFailedModal.tsx | 0 .../modals/__fixtures__/analysis.json | 0 .../modals/__fixtures__/runRecord.json | 0 .../__tests__/ConfirmCancelModal.test.tsx | 0 .../ProtocolAnalysisErrorModal.test.tsx | 0 .../__tests__/ProtocolDropTipModal.test.tsx | 4 +- .../modals/__tests__/RunFailedModal.test.tsx | 0 .../RunHeaderModalContainer/modals/index.ts | 0 .../useRunHeaderModalContainer.ts | 6 +- .../RunHeaderProtocolName.tsx | 0 .../__tests__/ProtocolRunHeader.test.tsx | 0 .../ProtocolRunHeader/constants.ts | 0 .../ProtocolRunHeader/hooks/index.ts | 0 .../ProtocolRunHeader/hooks/useIsDoorOpen.ts | 0 .../hooks/useRunAnalytics.ts | 0 .../ProtocolRunHeader/hooks/useRunErrors.ts | 4 +- .../hooks/useRunHeaderRunControls.ts | 4 +- .../ProtocolRun/ProtocolRunHeader/index.tsx | 0 .../ProtocolRun/ProtocolRunHeader/utils.ts | 0 .../ProtocolRun/ProtocolRunModuleControls.tsx | 0 .../ProtocolRunRunTimeParameters.tsx | 0 .../Devices/ProtocolRun/ProtocolRunSetup.tsx | 0 .../ProtocolRun/SetupCalibrationItem.tsx | 0 .../ProtocolRun/SetupDeckCalibration.tsx | 0 .../SetupFlexPipetteCalibrationItem.tsx | 4 +- .../SetupGripperCalibrationItem.tsx | 6 +- .../SetupInstrumentCalibration.tsx | 0 .../SetupLabware/CurrentOffsetsModal.tsx | 2 +- .../SetupLabware/LabwareListItem.tsx | 0 .../SetupLabware/OffDeckLabwareList.tsx | 0 .../SetupLabware/SecureLabwareModal.tsx | 2 +- .../SetupLabware/SetupLabwareList.tsx | 0 .../SetupLabware/SetupLabwareMap.tsx | 0 .../__tests__/LabwareListItem.test.tsx | 2 +- .../__tests__/OffDeckLabwareList.test.tsx | 2 +- .../__tests__/SecureLabwareModal.test.tsx | 0 .../__tests__/SetupLabware.test.tsx | 0 .../__tests__/SetupLabwareList.test.tsx | 0 .../__tests__/SetupLabwareMap.test.tsx | 10 ++- .../ProtocolRun/SetupLabware/index.tsx | 0 .../CurrentOffsetsTable.tsx | 4 +- .../HowLPCWorksModal.tsx | 2 +- .../__tests__/CurrentOffsetsTable.test.tsx | 4 +- .../__tests__/HowLPCWorksModal.test.tsx | 0 .../SetupLabwarePositionCheck.test.tsx | 4 +- .../SetupLabwarePositionCheck/index.tsx | 2 +- .../SetupLiquids/SetupLiquidsList.tsx | 0 .../SetupLiquids/SetupLiquidsMap.tsx | 0 .../__tests__/SetupLiquids.test.tsx | 0 .../__tests__/SetupLiquidsList.test.tsx | 0 .../__tests__/SetupLiquidsMap.test.tsx | 4 +- .../ProtocolRun/SetupLiquids/index.tsx | 0 .../SetupModuleAndDeck/NotConfiguredModal.tsx | 2 +- .../OT2MultipleModulesHelp.tsx | 2 +- .../SetupModuleAndDeck/SetupFixtureList.tsx | 2 +- .../SetupModuleAndDeck/SetupModulesList.tsx | 4 +- .../SetupModuleAndDeck/SetupModulesMap.tsx | 6 +- .../UnMatchedModuleWarning.tsx | 0 .../__tests__/NotConfiguredModal.test.tsx | 0 .../__tests__/OT2MultipleModulesHelp.test.tsx | 0 .../__tests__/SetupFixtureList.test.tsx | 0 .../__tests__/SetupModulesAndDeck.test.tsx | 0 .../__tests__/SetupModulesList.test.tsx | 0 .../__tests__/SetupModulesMap.test.tsx | 5 +- .../__tests__/UnMatchedModuleWarning.test.tsx | 0 .../__tests__/utils.test.ts | 0 .../ProtocolRun/SetupModuleAndDeck/index.tsx | 0 .../ProtocolRun/SetupModuleAndDeck/utils.ts | 0 .../SetupPipetteCalibrationItem.tsx | 0 .../ProtocolRun/SetupRobotCalibration.tsx | 0 .../Devices/ProtocolRun/SetupStep.tsx | 0 .../ProtocolRun/SetupTipLengthCalibration.tsx | 0 .../SetupTipLengthCalibrationButton.tsx | 0 .../__tests__/BackToTopButton.test.tsx | 0 .../__tests__/EmptySetupStep.test.tsx | 0 .../__tests__/LabwareInfoOverlay.test.tsx | 0 .../ProtocolRunModuleControls.test.tsx | 0 .../ProtocolRunRuntimeParameters.test.tsx | 0 .../__tests__/ProtocolRunSetup.test.tsx | 0 .../__tests__/SetupCalibrationItem.test.tsx | 0 .../__tests__/SetupDeckCalibration.test.tsx | 0 .../SetupFlexPipetteCalibrationItem.test.tsx | 4 +- .../SetupPipetteCalibration.test.tsx | 0 .../SetupPipetteCalibrationItem.test.tsx | 0 .../__tests__/SetupRobotCalibration.test.tsx | 0 .../ProtocolRun/__tests__/SetupStep.test.tsx | 0 .../SetupTipLengthCalibration.test.tsx | 0 .../SetupTipLengthCalibrationButton.test.tsx | 0 .../ProtocolRun/useLabwareOffsetForLabware.ts | 0 ...duleTypesThatRequireExtraAttention.test.ts | 0 .../getCurrentOffsetForLabwareInLocation.ts | 0 .../utils/getInitialLabwareLocation.ts | 0 .../ProtocolRun/utils/getModuleName.ts | 0 ...getModuleTypesThatRequireExtraAttention.ts | 0 .../utils/getPickUpTipCommandsWithPipette.ts | 0 .../ProtocolRun/utils/getPipetteMount.ts | 0 .../ProtocolRun/utils/getTipracksVisited.ts | 0 .../{ => Desktop}/Devices/ReachableBanner.tsx | 0 .../Devices/RecentProtocolRuns.tsx | 0 .../{ => Desktop}/Devices/RobotCard.tsx | 2 +- .../Devices/RobotOverflowMenu.tsx | 4 +- .../{ => Desktop}/Devices/RobotOverview.tsx | 2 +- .../Devices/RobotOverviewOverflowMenu.tsx | 8 +- .../AdvancedTabSlideouts/DeviceResetModal.tsx | 0 .../DeviceResetSlideout.tsx | 0 .../FactoryModeSlideout.tsx | 0 .../RenameRobotSlideout.tsx | 0 .../__tests__/DeviceResetModal.test.tsx | 0 .../__tests__/DeviceResetSlideout.test.tsx | 0 .../__tests__/RenameRobotSlideout.test.tsx | 0 .../RobotSettings/AdvancedTab/DeviceReset.tsx | 0 .../AdvancedTab/DisplayRobotName.tsx | 0 .../AdvancedTab/EnableStatusLight.tsx | 0 .../RobotSettings/AdvancedTab/FactoryMode.tsx | 0 .../AdvancedTab/GantryHoming.tsx | 0 .../AdvancedTab/LegacySettings.tsx | 0 .../AdvancedTab/OpenJupyterControl.tsx | 0 .../AdvancedTab/RobotInformation.tsx | 0 .../AdvancedTab/RobotServerVersion.tsx | 0 .../AdvancedTab/ShortTrashBin.tsx | 0 .../AdvancedTab/Troubleshooting.tsx | 0 .../AdvancedTab/UpdateRobotSoftware.tsx | 0 .../AdvancedTab/UsageSettings.tsx | 0 .../AdvancedTab/UseOlderAspirateBehavior.tsx | 0 .../__tests__/DeviceReset.test.tsx | 0 .../__tests__/DisplayRobotName.test.tsx | 0 .../__tests__/EnableStatusLight.test.tsx | 0 .../__tests__/GantryHoming.test.tsx | 0 .../__tests__/LegacySettings.test.tsx | 0 .../__tests__/OpenJupyterControl.test.tsx | 0 .../__tests__/RobotInformation.test.tsx | 0 .../__tests__/RobotServerVersion.test.tsx | 0 .../__tests__/ShortTrashBin.test.tsx | 0 .../__tests__/Troubleshooting.test.tsx | 2 +- .../__tests__/UpdateRobotSoftware.test.tsx | 0 .../__tests__/UsageSettings.test.tsx | 0 .../UseOlderAspirateBehavior.test.tsx | 0 .../RobotSettings/AdvancedTab/index.ts | 0 .../ConnectNetwork/ConnectModal/FormModal.tsx | 0 .../ConnectNetwork/ConnectModal/FormRow.tsx | 0 .../ConnectModal/KeyFileField.tsx | 0 .../ConnectModal/SecurityField.tsx | 0 .../ConnectNetwork/ConnectModal/TextField.tsx | 0 .../ConnectModal/UploadKeyInput.tsx | 0 .../__tests__/ConnectModal.test.tsx | 0 .../ConnectModal/__tests__/FormModal.test.tsx | 0 .../__tests__/KeyFileField.test.tsx | 0 .../__tests__/SecurityField.test.tsx | 0 .../ConnectModal/__tests__/TextField.test.tsx | 0 .../__tests__/UploadKeyInput.test.tsx | 0 .../__tests__/form-fields.test.ts | 0 .../__tests__/form-state.test.tsx | 0 .../ConnectModal/form-fields.ts | 0 .../ConnectNetwork/ConnectModal/form-state.ts | 0 .../ConnectNetwork/ConnectModal/index.tsx | 0 .../ConnectNetwork/DisconnectModal.tsx | 0 .../ConnectNetwork/ResultModal.tsx | 0 .../SelectSsid/NetworkOptionLabel.tsx | 0 .../__tests__/NetworkOptionLabel.test.tsx | 0 .../SelectSsid/__tests__/SelectSsid.test.tsx | 0 .../ConnectNetwork/SelectSsid/index.tsx | 0 .../__tests__/DisconnectModal.test.tsx | 0 .../__tests__/ResultModal.test.tsx | 0 .../RobotSettings/ConnectNetwork/constants.ts | 0 .../RobotSettings/ConnectNetwork/i18n.ts | 0 .../RobotSettings/ConnectNetwork/types.ts | 0 .../RobotSettings/RobotSettingsAdvanced.tsx | 2 +- .../RobotSettingsFeatureFlags.tsx | 0 .../RobotSettings/RobotSettingsNetworking.tsx | 2 +- .../Devices/RobotSettings/SelectNetwork.tsx | 2 +- .../Devices/RobotSettings/SettingToggle.tsx | 0 .../UpdateBuildroot/MigrationWarningModal.tsx | 0 .../RobotUpdateProgressModal.tsx | 0 .../UpdateBuildroot/UpdateRobotModal.tsx | 0 .../UpdateBuildroot/ViewUpdateModal.tsx | 4 +- .../RobotUpdateProgressModal.test.tsx | 0 .../__tests__/UpdateBuildroot.test.tsx | 0 .../__tests__/UpdateRobotModal.test.tsx | 0 .../__tests__/ViewUpdateModal.test.tsx | 0 .../__tests__/useRobotUpdateInfo.test.tsx | 0 .../RobotSettings/UpdateBuildroot/index.tsx | 0 .../UpdateBuildroot/useRobotUpdateInfo.ts | 0 .../__tests__/RobotSettingsAdvanced.test.tsx | 0 .../RobotSettingsFeatureFlags.test.tsx | 0 .../RobotSettingsNetworking.test.tsx | 0 .../__tests__/SelectNetwork.test.tsx | 0 .../Devices/RobotStatusHeader.tsx | 0 .../Devices}/RunPreview/index.tsx | 2 +- .../CalibrationStatusBanner.test.tsx | 0 .../ConnectionTroubleshootingModal.test.tsx | 0 .../__tests__/DevicesEmptyState.test.tsx | 0 .../Devices/__tests__/EstopBanner.test.tsx | 0 .../__tests__/HistoricalProtocolRun.test.tsx | 0 ...HistoricalProtocolRunOverflowMenu.test.tsx | 10 +-- .../__tests__/InstrumentsAndModules.test.tsx | 8 +- .../__tests__/RecentProtocolRuns.test.tsx | 0 .../Devices/__tests__/RobotCard.test.tsx | 6 +- .../__tests__/RobotOverflowMenu.test.tsx | 4 +- .../Devices/__tests__/RobotOverview.test.tsx | 6 +- .../RobotOverviewOverflowMenu.test.tsx | 8 +- .../__tests__/RobotStatusHeader.test.tsx | 0 .../Devices/__tests__/utils.test.tsx | 0 .../{ => Desktop}/Devices/constants.ts | 0 .../hooks/__fixtures__/taskListFixtures.ts | 2 +- .../__tests__/useCalibrationTaskList.test.tsx | 0 .../__tests__/useDeckCalibrationData.test.tsx | 0 .../useIsLegacySessionInProgress.test.ts | 0 .../hooks/__tests__/useIsRobotBusy.test.ts | 2 +- .../__tests__/useIsRobotViewable.test.tsx | 0 .../__tests__/useLPCSuccessToast.test.ts | 0 .../hooks/__tests__/useLights.test.tsx | 0 .../usePipetteOffsetCalibration.test.tsx | 0 .../usePipetteOffsetCalibrations.test.tsx | 0 ...nStartedOrLegacySessionInProgress.test.tsx | 0 .../hooks/__tests__/useRunStatuses.test.tsx | 0 .../__tests__/useSyncRobotClock.test.tsx | 0 .../useTipLengthCalibrations.test.tsx | 0 .../useTrackCreateProtocolRunEvent.test.tsx | 0 .../{ => Desktop}/Devices/hooks/index.ts | 1 - .../Devices/hooks/useCalibrationTaskList.ts | 2 +- .../Devices/hooks/useDeckCalibrationData.ts | 0 .../Devices/hooks/useDownloadRunLog.ts | 0 .../hooks/useIsLegacySessionInProgress.ts | 0 .../Devices/hooks/useIsRobotBusy.ts | 2 +- .../Devices/hooks/useIsRobotViewable.ts | 0 .../Devices/hooks/useLPCSuccessToast.ts | 0 .../{ => Desktop}/Devices/hooks/useLights.ts | 0 .../hooks/usePipetteOffsetCalibration.ts | 0 .../hooks/usePipetteOffsetCalibrations.ts | 0 .../useRunStartedOrLegacySessionInProgress.ts | 0 .../Devices/hooks/useRunStatuses.ts | 0 .../Devices/hooks/useSyncRobotClock.ts | 0 .../Devices/hooks/useTipLengthCalibrations.ts | 0 .../hooks/useTrackCreateProtocolRunEvent.ts | 0 .../organisms/{ => Desktop}/Devices/utils.ts | 0 .../HowCalibrationWorksModal.test.tsx | 0 .../HowCalibrationWorksModal/index.tsx | 2 +- .../ProtocolAnalysisStale.tsx | 0 .../ProtocolAnalysisFailure.test.tsx | 0 .../ProtocolAnalysisFailure/index.tsx | 2 +- .../ProtocolDetails/AnnotatedSteps.tsx | 0 .../ProtocolLabwareDetails.tsx | 2 +- .../ProtocolLiquidsDetails.tsx | 0 .../__tests__/ProtocolParameters.test.tsx | 0 .../ProtocolParameters/index.tsx | 0 .../ProtocolDetails/ProtocolStats.tsx | 0 .../RobotConfigurationDetails.tsx | 0 .../__tests__/ProtocolDetails.test.tsx | 6 +- .../__tests__/ProtocolLabwareDetails.test.tsx | 0 .../__tests__/ProtocolLiquidsDetails.test.tsx | 2 +- .../RobotConfigurationDetails.test.tsx | 0 .../ProtocolDetails/__tests__/utils.test.ts | 0 .../{ => Desktop}/ProtocolDetails/index.tsx | 10 +-- .../{ => Desktop}/ProtocolDetails/utils.ts | 0 .../ProtocolStatusBanner.stories.tsx | 0 .../__tests__/ProtocolStatusBanner.test.tsx | 0 .../ProtocolStatusBanner/index.tsx | 0 .../ProtocolTimelineScrubber/CommandItem.tsx | 0 .../PipetteVisuals.tsx | 0 .../ProtocolTimelineScrubber/index.tsx | 0 .../ProtocolTimelineScrubber/utils.ts | 0 .../ConfirmDeleteProtocolModal.tsx | 0 .../ProtocolsLanding/EmptyStateLinks.tsx | 0 .../ProtocolsLanding/ProtocolCard.tsx | 8 +- .../ProtocolsLanding/ProtocolList.tsx | 8 +- .../ProtocolsLanding/ProtocolOverflowMenu.tsx | 2 +- .../ProtocolsLanding/ProtocolUploadInput.tsx | 4 +- .../ProtocolsLanding/ProtocolsEmptyState.tsx | 0 .../ConfirmDeleteProtocolModal.test.tsx | 0 .../__tests__/EmptyStateLinks.test.tsx | 0 .../__tests__/ProtocolList.test.tsx | 0 .../__tests__/ProtocolOverflowMenu.test.tsx | 0 .../__tests__/UploadInput.test.tsx | 0 .../ProtocolsLanding/__tests__/hooks.test.tsx | 0 .../ProtocolsLanding/__tests__/utils.test.ts | 36 +------- .../{ => Desktop}/ProtocolsLanding/hooks.tsx | 15 ++-- .../{ => Desktop}/ProtocolsLanding/utils.ts | 9 -- .../CalibrationDataDownload.tsx | 2 +- .../ModuleCalibrationItems.tsx | 0 .../ModuleCalibrationOverflowMenu.tsx | 2 +- .../CalibrationDetails/OverflowMenu.tsx | 14 ++- .../PipetteOffsetCalibrationItems.tsx | 6 +- .../TipLengthCalibrationItems.tsx | 0 .../CalibrationDetails/__fixtures__/index.ts | 0 .../__tests__/ModuleCalibrationItems.test.tsx | 0 .../ModuleCalibrationOverflowMenu.test.tsx | 4 +- .../__tests__/OverflowMenu.test.tsx | 25 +++--- .../PipetteOffsetCalibrationItems.test.tsx | 7 +- .../TipLengthCalibrationItems.test.tsx | 2 +- .../__tests__/utils.test.ts | 0 .../CalibrationDetails/utils.ts | 0 .../CalibrationHealthCheck.tsx | 6 +- .../DeckCalibrationConfirmModal.tsx | 0 .../RobotSettingsDeckCalibration.tsx | 4 +- .../RobotSettingsGripperCalibration.tsx | 0 .../RobotSettingsModuleCalibration.tsx | 0 .../RobotSettingsPipetteOffsetCalibration.tsx | 6 +- .../RobotSettingsTipLengthCalibration.tsx | 0 .../CalibrationDataDownload.test.tsx | 4 +- .../__tests__/CalibrationHealthCheck.test.tsx | 4 +- .../RobotSettingsCalibration.test.tsx | 12 +-- .../RobotSettingsDeckCalibration.test.tsx | 6 +- .../RobotSettingsGripperCalibration.test.tsx | 0 .../RobotSettingsModuleCalibration.test.tsx | 0 ...tSettingsPipetteOffsetCalibration.test.tsx | 9 +- ...RobotSettingsTipLengthCalibration.test.tsx | 4 +- .../RobotSettingsCalibration/index.tsx | 16 ++-- .../RunProgressMeter/InterventionTicks.tsx | 0 .../{ => Desktop}/RunProgressMeter/Tick.tsx | 2 +- .../RunProgressMeter/__fixtures__/index.ts | 0 .../__tests__/InterventionTicks.test.tsx | 0 .../__tests__/RunProgressMeter.test.tsx | 8 +- .../RunProgressMeter/constants.ts | 0 .../RunProgressMeter/hooks/index.ts | 0 .../hooks/useRunProgressCopy.tsx | 0 .../{ => Desktop}/RunProgressMeter/index.tsx | 9 +- .../SendProtocolToFlexSlideout.test.tsx | 4 +- .../SendProtocolToFlexSlideout/index.tsx | 8 +- .../__tests__/UpdateAppModal.test.tsx | 0 .../{ => Desktop}/UpdateAppModal/index.tsx | 0 .../__tests__/UpdateRobotBanner.test.tsx | 0 .../{ => Desktop}/UpdateRobotBanner/index.tsx | 0 .../DeviceDetailsDeckConfiguration.test.tsx | 4 +- .../DeviceDetailsDeckConfiguration/index.tsx | 2 +- .../DropTipWizardFlows/DropTipWizard.tsx | 2 +- .../EmergencyStop/EstopMissingModal.tsx | 2 +- .../EmergencyStop/EstopPressedModal.tsx | 2 +- .../RecoveryOptions/ManageTips.tsx | 6 +- .../RecoveryOptions/SelectRecoveryOption.tsx | 2 +- .../__tests__/ManageTips.test.tsx | 6 +- .../hooks/useRecoveryTipStatus.ts | 4 +- .../shared/ErrorDetailsModal.tsx | 2 +- .../shared/RecoveryInterventionModal.tsx | 2 +- .../shared/TipSelectionModal.tsx | 2 +- app/src/organisms/ErrorRecoveryFlows/types.ts | 2 +- .../FirmwareUpdateTakeover.tsx | 2 +- .../FirmwareUpdateModal/UpdateNeededModal.tsx | 2 +- .../organisms/GripperWizardFlows/index.tsx | 2 +- .../IncompatibleModuleTakeover.tsx | 2 +- .../IncompatibleModuleTakeover.test.tsx | 2 +- .../__tests__/InstrumentInfo.test.tsx | 8 +- app/src/organisms/InstrumentInfo/index.tsx | 8 +- .../AttachedInstrumentMountItem.tsx | 12 +-- .../ProtocolInstrumentMountItem.tsx | 6 +- .../ProtocolInstrumentMountItem.test.tsx | 8 +- .../LabwarePositionCheck/AttachProbe.tsx | 2 +- .../LabwarePositionCheck/CheckItem.tsx | 2 +- .../LabwarePositionCheck/FatalErrorModal.tsx | 2 +- .../IntroScreen/index.tsx | 6 +- .../LabwarePositionCheck/JogToWell.tsx | 4 +- .../LabwarePositionCheckComponent.tsx | 2 +- .../LabwarePositionCheck/PickUpTip.tsx | 2 +- .../LabwarePositionCheck/PrepareSpace.tsx | 2 +- .../LabwarePositionCheck/ResultsSummary.tsx | 6 +- .../LabwarePositionCheck/TipConfirmation.tsx | 2 +- .../__tests__/CheckItem.test.tsx | 2 +- .../utils/doesPipetteVisitAllTipracks.ts | 4 +- .../ModuleCard/AboutModuleSlideout.tsx | 2 +- app/src/organisms/ModuleCard/ErrorInfo.tsx | 2 +- .../ModuleCard/ModuleOverflowMenu.tsx | 2 +- .../organisms/ModuleCard/ModuleSetupModal.tsx | 2 +- .../ModuleCard/TestShakeSlideout.tsx | 2 +- .../__tests__/AboutModuleSlideout.test.tsx | 4 +- .../ModuleCard/__tests__/ModuleCard.test.tsx | 17 +--- .../__tests__/ModuleOverflowMenu.test.tsx | 4 +- .../ModuleCard/__tests__/hooks.test.tsx | 4 +- app/src/organisms/ModuleCard/index.tsx | 6 +- app/src/organisms/ModuleWizardFlows/index.tsx | 4 +- .../organisms/Navigation/NavigationMenu.tsx | 4 +- .../__tests__/NavigationMenu.test.tsx | 4 +- app/src/organisms/Navigation/index.tsx | 2 +- .../ProtocolSetupDeckConfiguration/index.tsx | 2 +- .../ProtocolSetupLabware/LabwareMapView.tsx | 2 +- .../SingleLabwareModal.tsx | 2 +- .../__tests__/ProtocolSetupLabware.test.tsx | 4 +- .../ProtocolSetupLabware/index.tsx | 8 +- .../ModuleTable.tsx | 2 +- .../ModulesAndDeckMapView.tsx | 2 +- .../ProtocolSetupModulesAndDeck.tsx | 12 +-- .../ProtocolSetupModulesAndDeck.test.tsx | 10 +-- .../__tests__/utils.test.tsx | 62 +------------ .../ProtocolSetupModulesAndDeck/utils.ts | 70 --------------- .../TouchScreenSleep.tsx | 2 +- .../ODD/RunningProtocol/RunFailedModal.tsx | 65 +------------- .../organisms/OpenDoorAlertModal/index.tsx | 2 +- .../PipetteWizardFlows/ChoosePipette.tsx | 4 +- .../__tests__/BeforeBeginning.test.tsx | 2 +- .../__tests__/ChoosePipette.test.tsx | 4 +- .../getPipetteWizardStepsForProtocol.ts | 2 +- .../organisms/PipetteWizardFlows/hooks.tsx | 2 +- .../organisms/PipetteWizardFlows/index.tsx | 4 +- app/src/organisms/PipetteWizardFlows/types.ts | 2 +- .../organisms/PipetteWizardFlows/utils.tsx | 2 +- .../QuickTransferFlow/NameQuickTransfer.tsx | 2 +- .../QuickTransferAdvancedSettings/BlowOut.tsx | 2 +- .../QuickTransferFlow/SelectDestWells.tsx | 2 +- app/src/organisms/RunTimeControl/index.ts | 1 + .../organisms/TakeoverModal/TakeoverModal.tsx | 2 +- .../Desktop/AppSettings/AdvancedSettings.tsx | 2 +- .../Desktop/AppSettings/GeneralSettings.tsx | 8 +- .../__test__/AdvancedSettings.test.tsx | 4 +- .../AppSettings/__test__/AppSettings.test.tsx | 4 +- app/src/pages/Desktop/AppSettings/index.tsx | 4 +- .../__tests__/CalibrationDashboard.test.tsx | 6 +- .../hooks/useDashboardCalibrateDeck.tsx | 8 +- .../hooks/useDashboardCalibratePipOffset.tsx | 8 +- .../hooks/useDashboardCalibrateTipLength.tsx | 10 +-- .../Devices/CalibrationDashboard/index.tsx | 4 +- .../DeviceDetails/DeviceDetailsComponent.tsx | 8 +- .../__tests__/DeviceDetails.test.tsx | 16 ++-- .../__tests__/DeviceDetailsComponent.test.tsx | 12 +-- .../Desktop/Devices/DeviceDetails/index.tsx | 4 +- .../DevicesLanding/NewRobotSetupHelp.tsx | 2 +- .../__tests__/DevicesLanding.test.tsx | 8 +- .../Desktop/Devices/DevicesLanding/index.tsx | 4 +- .../__tests__/ProtocolRunDetails.test.tsx | 29 ++++--- .../Devices/ProtocolRunDetails/index.tsx | 22 ++--- .../__tests__/RobotSettings.test.tsx | 12 +-- .../Desktop/Devices/RobotSettings/index.tsx | 15 ++-- .../ProtocolDetails/ProtocolTimeline.tsx | 4 +- .../__tests__/ProtocolDetails.test.tsx | 4 +- .../Protocols/ProtocolDetails/index.tsx | 4 +- .../__tests__/ProtocolsLanding.test.tsx | 8 +- .../Protocols/ProtocolsLanding/index.tsx | 4 +- .../Protocols/hooks/__tests__/hooks.test.tsx | 2 +- app/src/pages/ODD/DeckConfiguration/index.tsx | 2 +- .../ODD/ProtocolDashboard/LongPressModal.tsx | 2 +- app/src/pages/ODD/ProtocolDetails/index.tsx | 4 +- app/src/pages/ODD/ProtocolSetup/index.tsx | 2 +- .../QuickTransferDashboard/LongPressModal.tsx | 2 +- app/src/pages/ODD/RunSummary/index.tsx | 2 +- .../__tests__/RunningProtocol.test.tsx | 2 +- app/src/pages/ODD/RunningProtocol/index.tsx | 2 +- app/src/redux/config/schema-types.ts | 2 +- app/src/redux/config/selectors.ts | 4 +- app/src/redux/protocol-storage/types.ts | 8 ++ app/src/resources/devices/hooks/index.ts | 1 + app/src/resources/devices/index.ts | 1 + ...tachedPipettesFromInstrumentsQuery.test.ts | 0 app/src/resources/instruments/index.ts | 1 + ...useAttachedPipettesFromInstrumentsQuery.ts | 0 .../__tests__/getAnalysisStatus.test.ts | 37 ++++++++ .../getAttachedProtocolModuleMatches.test.ts | 86 +++++++++++++++++++ .../analysis/getAnalysisStatus.ts | 30 +++++++ .../getAttachedProtocolModuleMatches.ts | 75 ++++++++++++++++ app/src/transformations/analysis/index.ts | 2 + .../protocols/getProtocolDisplayName.ts | 10 +++ app/src/transformations/protocols/index.ts | 1 + .../runs/getHighestPriorityError.ts | 65 ++++++++++++++ app/src/transformations/runs/index.ts | 1 + 685 files changed, 893 insertions(+), 814 deletions(-) rename app/src/{organisms/CalibrationPanels => local-resources/labware/utils}/labwareImages.ts (100%) rename app/src/{organisms/CalibrationPanels => molecules/OT2CalibrationNeedHelpLink}/NeedHelpLink.tsx (100%) create mode 100644 app/src/molecules/OT2CalibrationNeedHelpLink/index.ts rename app/src/{organisms => molecules}/TaskList/TaskList.stories.tsx (99%) rename app/src/{organisms => molecules}/TaskList/index.tsx (99%) rename app/src/{organisms => molecules}/TaskList/types.ts (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/AdditionalCustomLabwareSourceFolder.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/ClearUnavailableRobots.tsx (98%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/EnableDevTools.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/OT2AdvancedSettings.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/OverridePathToPython.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/PreventRobotCaching.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/ShowHeaterShakerAttachmentModal.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/ShowLabwareOffsetSnippets.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/U2EInformation.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/UpdatedChannel.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/__tests__/AdditionalCustomLabwareSourceFolder.test.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/__tests__/ClearUnavailableRobots.test.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/__tests__/EnableDevTools.test.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/__tests__/OT2AdvancedSettings.test.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/__tests__/OverridePathToPython.test.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/__tests__/PreventRobotCaching.test.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/__tests__/ShowHeaterShakerAttachmentModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/__tests__/ShowLabwareOffsetSnippets.test.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/__tests__/U2EInformation.test.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/__tests__/UpdatedChannel.test.tsx (100%) rename app/src/organisms/{ => Desktop}/AdvancedSettings/index.ts (100%) rename app/src/organisms/{ => Desktop}/Alerts/AlertsModal.tsx (98%) rename app/src/organisms/{ => Desktop}/Alerts/AlertsProvider.tsx (93%) rename app/src/organisms/{ => Desktop}/Alerts/U2EDriverOutdatedAlert.tsx (100%) rename app/src/organisms/{ => Desktop}/Alerts/__tests__/Alerts.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Alerts/__tests__/U2EDriverOutdatedAlert.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Alerts/index.ts (100%) rename app/src/organisms/{ => Desktop}/Alerts/types.ts (100%) rename app/src/organisms/{ => Desktop}/Alerts/useRemoveActiveAppUpdateToast.ts.ts (100%) rename app/src/organisms/{ => Desktop}/AppSettings/ConnectRobotSlideout.tsx (100%) rename app/src/organisms/{ => Desktop}/AppSettings/FeatureFlags.tsx (100%) rename app/src/organisms/{ => Desktop}/AppSettings/ManualIpHostnameField.tsx (100%) rename app/src/organisms/{ => Desktop}/AppSettings/ManualIpHostnameForm.tsx (100%) rename app/src/organisms/{ => Desktop}/AppSettings/ManualIpHostnameItem.tsx (100%) rename app/src/organisms/{ => Desktop}/AppSettings/ManualIpHostnameList.tsx (100%) rename app/src/organisms/{ => Desktop}/AppSettings/PreviousVersionModal.tsx (100%) rename app/src/organisms/{ => Desktop}/AppSettings/__tests__/ConnectRobotSlideout.test.tsx (100%) rename app/src/organisms/{ => Desktop}/AppSettings/__tests__/PreviousVersionModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Breadcrumbs/__tests__/Breadcrumbs.test.tsx (96%) rename app/src/organisms/{ => Desktop}/Breadcrumbs/index.tsx (97%) rename app/src/organisms/{ => Desktop}/CalibrateDeck/__tests__/CalibrateDeck.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrateDeck/index.tsx (96%) rename app/src/organisms/{ => Desktop}/CalibrateDeck/types.ts (100%) rename app/src/organisms/{ => Desktop}/CalibratePipetteOffset/__tests__/CalibratePipetteOffset.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibratePipetteOffset/__tests__/useCalibratePipetteOffset.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibratePipetteOffset/index.tsx (96%) rename app/src/organisms/{ => Desktop}/CalibratePipetteOffset/types.ts (100%) rename app/src/organisms/{ => Desktop}/CalibratePipetteOffset/useCalibratePipetteOffset.tsx (99%) rename app/src/organisms/{ => Desktop}/CalibrateTipLength/AskForCalibrationBlockModal.tsx (96%) rename app/src/organisms/{ => Desktop}/CalibrateTipLength/ConfirmRecalibrationModal.tsx (97%) rename app/src/organisms/{ => Desktop}/CalibrateTipLength/TipLengthCalibrationInfoBox.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrateTipLength/__tests__/AskForCalibrationBlockModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrateTipLength/__tests__/CalibrateTipLength.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrateTipLength/index.tsx (97%) rename app/src/organisms/{ => Desktop}/CalibrateTipLength/styles.module.css (100%) rename app/src/organisms/{ => Desktop}/CalibrateTipLength/types.ts (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/CalibrationLabwareRender.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/ChooseTipRack.tsx (99%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/ChosenTipRackRender.tsx (94%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/CompleteConfirmation.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/ConfirmCrashRecovery.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/ConfirmExit.tsx (96%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/DeckSetup.tsx (98%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/Introduction/Body.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/Introduction/InvalidationWarning.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/Introduction/__tests__/Body.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/Introduction/__tests__/Introduction.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/Introduction/__tests__/InvalidationWarning.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/Introduction/index.tsx (98%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/LoadingState.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/MeasureNozzle.tsx (98%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/MeasureTip.tsx (98%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/SaveXYPoint.tsx (98%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/SaveZPoint.tsx (98%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/TipConfirmation.tsx (97%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/TipPickUp.tsx (97%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/__tests__/ChooseTipRack.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/__tests__/ChosenTipRackRender.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/__tests__/CompleteConfirmation.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/__tests__/ConfirmCrashRecovery.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/__tests__/ConfirmExit.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/__tests__/DeckSetup.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/__tests__/MeasureNozzle.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/__tests__/MeasureTip.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/__tests__/SaveXYPoint.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/__tests__/SaveZPoint.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/__tests__/TipConfirmation.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/__tests__/TipPickUp.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/__tests__/useConfirmCrashRecovery.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/constants.ts (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/index.ts (92%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/styles.module.css (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/types.ts (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/useConfirmCrashRecovery.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationPanels/utils.ts (100%) rename app/src/organisms/{ => Desktop}/CalibrationStatusCard/__tests__/CalibrationStatusCard.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationStatusCard/index.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationTaskList/__tests__/CalibrationTaskList.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CalibrationTaskList/index.tsx (97%) rename app/src/organisms/{ => Desktop}/CheckCalibration/ResultsSummary/CalibrationHealthCheckResults.tsx (100%) rename app/src/organisms/{ => Desktop}/CheckCalibration/ResultsSummary/CalibrationResult.tsx (100%) rename app/src/organisms/{ => Desktop}/CheckCalibration/ResultsSummary/RenderMountInformation.tsx (100%) rename app/src/organisms/{ => Desktop}/CheckCalibration/ResultsSummary/RenderResult.tsx (100%) rename app/src/organisms/{ => Desktop}/CheckCalibration/ResultsSummary/__tests__/CalibrationHealthCheckResults.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CheckCalibration/ResultsSummary/__tests__/CalibrationResult.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CheckCalibration/ResultsSummary/__tests__/RenderMountInformation.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CheckCalibration/ResultsSummary/__tests__/RenderResult.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CheckCalibration/ResultsSummary/__tests__/ResultsSummary.test.tsx (97%) rename app/src/organisms/{ => Desktop}/CheckCalibration/ResultsSummary/index.tsx (98%) rename app/src/organisms/{ => Desktop}/CheckCalibration/ReturnTip.tsx (92%) rename app/src/organisms/{ => Desktop}/CheckCalibration/ThresholdValue.tsx (100%) rename app/src/organisms/{ => Desktop}/CheckCalibration/__tests__/CheckCalibration.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CheckCalibration/__tests__/ReturnTip.test.tsx (100%) rename app/src/organisms/{ => Desktop}/CheckCalibration/index.tsx (97%) rename app/src/organisms/{ => Desktop}/CheckCalibration/styles.module.css (100%) rename app/src/organisms/{ => Desktop}/CheckCalibration/types.ts (100%) rename app/src/organisms/{ => Desktop}/ChooseProtocolSlideout/__tests__/ChooseProtocolSlideout.test.tsx (96%) rename app/src/organisms/{ => Desktop}/ChooseProtocolSlideout/index.tsx (98%) rename app/src/organisms/{ => Desktop}/ChooseRobotSlideout/AvailableRobotOption.tsx (100%) rename app/src/organisms/{ => Desktop}/ChooseRobotSlideout/FileCard.tsx (100%) rename app/src/organisms/{ => Desktop}/ChooseRobotSlideout/__tests__/ChooseRobotSlideout.test.tsx (100%) rename app/src/organisms/{ => Desktop}/ChooseRobotSlideout/__tests__/FileCard.test.tsx (100%) rename app/src/organisms/{ => Desktop}/ChooseRobotSlideout/index.tsx (99%) rename app/src/organisms/{ => Desktop}/ChooseRobotToRunProtocolSlideout/__tests__/ChooseRobotToRunProtocolSlideout.test.tsx (98%) rename app/src/organisms/{ => Desktop}/ChooseRobotToRunProtocolSlideout/index.tsx (97%) rename app/src/organisms/{ => Desktop}/ChooseRobotToRunProtocolSlideout/useCreateRunFromProtocol.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/CalibrationStatusBanner.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/CheckPipettesButton.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/ClearDeckModal.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/ConfirmPipette.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/ExitModal.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/InstructionStep.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/Instructions.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/LevelPipette.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/PipetteSelection.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/__tests__/ChangePipette.test.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/__tests__/CheckPipettesButton.test.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/__tests__/ClearDeckModal.test.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/__tests__/ConfirmPipette.test.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/__tests__/ExitModal.test.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/__tests__/InstructionStep.test.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/__tests__/Instructions.test.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/__tests__/LevelPipette.test.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/__tests__/PipetteSelection.test.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/constants.ts (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/index.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ChangePipette/types.ts (100%) rename app/src/organisms/{ => Desktop/Devices}/ConfigurePipette/ConfigErrorBanner.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ConfigurePipette/ConfigForm.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ConfigurePipette/ConfigFormGroup.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ConfigurePipette/ConfigFormResetButton.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ConfigurePipette/ConfigFormSubmitButton.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ConfigurePipette/ConfigMessage.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ConfigurePipette/__tests__/ConfigFormResetButton.test.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ConfigurePipette/__tests__/ConfigFormSubmitButton.test.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ConfigurePipette/__tests__/ConfigurePipette.test.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ConfigurePipette/index.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ConfigurePipette/styles.module.css (100%) rename app/src/organisms/{ => Desktop}/Devices/ConnectionTroubleshootingModal.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/DevicesEmptyState.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/DownloadCsvFileLink.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ErrorRecoveryBanner/__tests__/ErrorRecoveryBanner.test.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/ErrorRecoveryBanner/__tests__/useErrorRecoveryBanner.test.ts (100%) rename app/src/organisms/{ => Desktop/Devices}/ErrorRecoveryBanner/index.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/EstopBanner.tsx (97%) rename app/src/organisms/{ => Desktop/Devices}/GripperCard/AboutGripperSlideout.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/GripperCard/__tests__/AboutGripperSlideout.test.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/GripperCard/__tests__/GripperCard.test.tsx (98%) rename app/src/organisms/{ => Desktop/Devices}/GripperCard/index.tsx (96%) rename app/src/organisms/{ => Desktop}/Devices/HistoricalProtocolRun.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/HistoricalProtocolRunDrawer.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/HistoricalProtocolRunOverflowMenu.tsx (97%) rename app/src/organisms/{ => Desktop}/Devices/InstrumentsAndModules.tsx (98%) rename app/src/organisms/{ => Desktop}/Devices/PipetteCard/AboutPipetteSlideout.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/PipetteCard/FlexPipetteCard.tsx (96%) rename app/src/organisms/{ => Desktop}/Devices/PipetteCard/PipetteOverflowMenu.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/PipetteCard/PipetteRecalibrationWarning.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/PipetteCard/PipetteSettingsSlideout.tsx (92%) rename app/src/organisms/{ => Desktop}/Devices/PipetteCard/__tests__/AboutPipetteSlideout.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/PipetteCard/__tests__/FlexPipetteCard.test.tsx (95%) rename app/src/organisms/{ => Desktop}/Devices/PipetteCard/__tests__/PipetteCard.test.tsx (97%) rename app/src/organisms/{ => Desktop}/Devices/PipetteCard/__tests__/PipetteOverflowMenu.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/PipetteCard/__tests__/PipetteSettingsSlideout.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/PipetteCard/index.tsx (98%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/BackToTopButton.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/EmptySetupStep.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/LabwareInfoOverlay.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/DisplayRunStatus.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/ProtocolAnalysisErrorBanner.tsx (97%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/TerminalRunBannerContainer.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/__tests__/ProtocolAnalysisErrorBanner.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/getShowGenericRunHeaderBanners.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/index.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/index.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useActionBtnDisabledUtils.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useActionButtonProperties.ts (98%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useIsFixtureMismatch.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/index.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/LabeledValue.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/RunHeaderSectionLower.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/RunHeaderSectionUpper.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/index.tsx (92%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/RunHeaderModalContainer.tsx (90%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/index.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useHeaterShakerConfirmationModal.ts (95%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useMissingStepsModal.ts (96%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useRunHeaderDropTip.ts (98%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/index.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ConfirmCancelModal.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ConfirmMissingStepsModal.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/HeaterShakerIsRunningModal.tsx (98%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/HeaterShakerModuleCard.tsx (96%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/HeaterShakerIsRunningModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/HeaterShakerModuleCard.test.tsx (87%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/hooks.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/hooks.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/index.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/utils.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ProtocolAnalysisErrorModal.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ProtocolDropTipModal.tsx (97%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/RunFailedModal.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__fixtures__/analysis.json (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__fixtures__/runRecord.json (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ConfirmCancelModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ProtocolAnalysisErrorModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ProtocolDropTipModal.test.tsx (97%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/RunFailedModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/index.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/useRunHeaderModalContainer.ts (94%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderProtocolName.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/__tests__/ProtocolRunHeader.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/constants.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/hooks/index.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/hooks/useIsDoorOpen.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunAnalytics.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunErrors.ts (90%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunHeaderRunControls.ts (80%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/index.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunHeader/utils.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunModuleControls.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunRunTimeParameters.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/ProtocolRunSetup.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupCalibrationItem.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupDeckCalibration.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupFlexPipetteCalibrationItem.tsx (96%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupGripperCalibrationItem.tsx (91%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupInstrumentCalibration.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabware/CurrentOffsetsModal.tsx (98%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabware/LabwareListItem.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabware/OffDeckLabwareList.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabware/SecureLabwareModal.tsx (98%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabware/SetupLabwareList.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabware/SetupLabwareMap.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabware/__tests__/LabwareListItem.test.tsx (99%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabware/__tests__/OffDeckLabwareList.test.tsx (94%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabware/__tests__/SecureLabwareModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabware.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabwareList.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabwareMap.test.tsx (95%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabware/index.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabwarePositionCheck/CurrentOffsetsTable.tsx (96%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabwarePositionCheck/HowLPCWorksModal.tsx (96%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/CurrentOffsetsTable.test.tsx (97%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/HowLPCWorksModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/SetupLabwarePositionCheck.test.tsx (97%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLabwarePositionCheck/index.tsx (98%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLiquids/SetupLiquidsList.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLiquids/SetupLiquidsMap.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquids.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsList.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsMap.test.tsx (98%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupLiquids/index.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/NotConfiguredModal.tsx (97%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/OT2MultipleModulesHelp.tsx (98%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/SetupFixtureList.tsx (98%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/SetupModulesList.tsx (98%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/SetupModulesMap.tsx (94%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/UnMatchedModuleWarning.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/NotConfiguredModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/OT2MultipleModulesHelp.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupFixtureList.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesAndDeck.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesList.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesMap.test.tsx (98%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/UnMatchedModuleWarning.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/utils.test.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/index.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupModuleAndDeck/utils.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupPipetteCalibrationItem.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupRobotCalibration.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupStep.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupTipLengthCalibration.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/SetupTipLengthCalibrationButton.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/BackToTopButton.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/EmptySetupStep.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/LabwareInfoOverlay.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/ProtocolRunModuleControls.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/ProtocolRunRuntimeParameters.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/ProtocolRunSetup.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/SetupCalibrationItem.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/SetupDeckCalibration.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/SetupFlexPipetteCalibrationItem.test.tsx (96%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/SetupPipetteCalibration.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/SetupPipetteCalibrationItem.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/SetupRobotCalibration.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/SetupStep.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/SetupTipLengthCalibration.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/__tests__/SetupTipLengthCalibrationButton.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/useLabwareOffsetForLabware.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/utils/__tests__/getModuleTypesThatRequireExtraAttention.test.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/utils/getInitialLabwareLocation.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/utils/getModuleName.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/utils/getModuleTypesThatRequireExtraAttention.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/utils/getPickUpTipCommandsWithPipette.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/utils/getPipetteMount.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ProtocolRun/utils/getTipracksVisited.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/ReachableBanner.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RecentProtocolRuns.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotCard.tsx (99%) rename app/src/organisms/{ => Desktop}/Devices/RobotOverflowMenu.tsx (97%) rename app/src/organisms/{ => Desktop}/Devices/RobotOverview.tsx (99%) rename app/src/organisms/{ => Desktop}/Devices/RobotOverviewOverflowMenu.tsx (95%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/DeviceResetModal.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/DeviceResetSlideout.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/FactoryModeSlideout.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/RenameRobotSlideout.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/DeviceResetModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/DeviceResetSlideout.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/RenameRobotSlideout.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/DeviceReset.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/DisplayRobotName.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/EnableStatusLight.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/FactoryMode.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/GantryHoming.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/LegacySettings.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/OpenJupyterControl.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/RobotInformation.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/RobotServerVersion.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/ShortTrashBin.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/Troubleshooting.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/UpdateRobotSoftware.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/UsageSettings.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/UseOlderAspirateBehavior.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/__tests__/DeviceReset.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/__tests__/DisplayRobotName.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/__tests__/EnableStatusLight.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/__tests__/GantryHoming.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/__tests__/LegacySettings.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/__tests__/OpenJupyterControl.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/__tests__/RobotInformation.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/__tests__/RobotServerVersion.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/__tests__/ShortTrashBin.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/__tests__/Troubleshooting.test.tsx (97%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/__tests__/UpdateRobotSoftware.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/__tests__/UsageSettings.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/__tests__/UseOlderAspirateBehavior.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/AdvancedTab/index.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/FormModal.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/FormRow.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/KeyFileField.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/SecurityField.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/TextField.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/UploadKeyInput.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/ConnectModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/FormModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/KeyFileField.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/SecurityField.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/TextField.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/UploadKeyInput.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/form-fields.test.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/form-state.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/form-fields.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/form-state.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ConnectModal/index.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/DisconnectModal.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/ResultModal.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/SelectSsid/NetworkOptionLabel.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/SelectSsid/__tests__/NetworkOptionLabel.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/SelectSsid/__tests__/SelectSsid.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/SelectSsid/index.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/__tests__/DisconnectModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/__tests__/ResultModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/constants.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/i18n.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/ConnectNetwork/types.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/RobotSettingsAdvanced.tsx (99%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/RobotSettingsFeatureFlags.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/RobotSettingsNetworking.tsx (99%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/SelectNetwork.tsx (98%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/SettingToggle.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/UpdateBuildroot/MigrationWarningModal.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/UpdateBuildroot/RobotUpdateProgressModal.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/UpdateBuildroot/UpdateRobotModal.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/UpdateBuildroot/ViewUpdateModal.tsx (95%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/UpdateBuildroot/__tests__/RobotUpdateProgressModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/UpdateBuildroot/__tests__/UpdateBuildroot.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/UpdateBuildroot/__tests__/UpdateRobotModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/UpdateBuildroot/__tests__/ViewUpdateModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/UpdateBuildroot/__tests__/useRobotUpdateInfo.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/UpdateBuildroot/index.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/UpdateBuildroot/useRobotUpdateInfo.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/__tests__/RobotSettingsAdvanced.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/__tests__/RobotSettingsFeatureFlags.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/__tests__/RobotSettingsNetworking.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotSettings/__tests__/SelectNetwork.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/RobotStatusHeader.tsx (100%) rename app/src/organisms/{ => Desktop/Devices}/RunPreview/index.tsx (99%) rename app/src/organisms/{ => Desktop}/Devices/__tests__/CalibrationStatusBanner.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/__tests__/ConnectionTroubleshootingModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/__tests__/DevicesEmptyState.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/__tests__/EstopBanner.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/__tests__/HistoricalProtocolRun.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/__tests__/HistoricalProtocolRunOverflowMenu.test.tsx (95%) rename app/src/organisms/{ => Desktop}/Devices/__tests__/InstrumentsAndModules.test.tsx (97%) rename app/src/organisms/{ => Desktop}/Devices/__tests__/RecentProtocolRuns.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/__tests__/RobotCard.test.tsx (97%) rename app/src/organisms/{ => Desktop}/Devices/__tests__/RobotOverflowMenu.test.tsx (95%) rename app/src/organisms/{ => Desktop}/Devices/__tests__/RobotOverview.test.tsx (98%) rename app/src/organisms/{ => Desktop}/Devices/__tests__/RobotOverviewOverflowMenu.test.tsx (96%) rename app/src/organisms/{ => Desktop}/Devices/__tests__/RobotStatusHeader.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/__tests__/utils.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/constants.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__fixtures__/taskListFixtures.ts (99%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__tests__/useCalibrationTaskList.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__tests__/useDeckCalibrationData.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__tests__/useIsLegacySessionInProgress.test.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__tests__/useIsRobotBusy.test.ts (99%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__tests__/useIsRobotViewable.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__tests__/useLPCSuccessToast.test.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__tests__/useLights.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__tests__/usePipetteOffsetCalibration.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__tests__/usePipetteOffsetCalibrations.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__tests__/useRunStartedOrLegacySessionInProgress.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__tests__/useRunStatuses.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__tests__/useSyncRobotClock.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__tests__/useTipLengthCalibrations.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/__tests__/useTrackCreateProtocolRunEvent.test.tsx (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/index.ts (91%) rename app/src/organisms/{ => Desktop}/Devices/hooks/useCalibrationTaskList.ts (99%) rename app/src/organisms/{ => Desktop}/Devices/hooks/useDeckCalibrationData.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/useDownloadRunLog.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/useIsLegacySessionInProgress.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/useIsRobotBusy.ts (96%) rename app/src/organisms/{ => Desktop}/Devices/hooks/useIsRobotViewable.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/useLPCSuccessToast.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/useLights.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/usePipetteOffsetCalibration.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/usePipetteOffsetCalibrations.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/useRunStartedOrLegacySessionInProgress.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/useRunStatuses.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/useSyncRobotClock.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/useTipLengthCalibrations.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/hooks/useTrackCreateProtocolRunEvent.ts (100%) rename app/src/organisms/{ => Desktop}/Devices/utils.ts (100%) rename app/src/organisms/{ => Desktop}/HowCalibrationWorksModal/__tests__/HowCalibrationWorksModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/HowCalibrationWorksModal/index.tsx (98%) rename app/src/organisms/{ => Desktop}/ProtocolAnalysisFailure/ProtocolAnalysisStale.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolAnalysisFailure/__tests__/ProtocolAnalysisFailure.test.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolAnalysisFailure/index.tsx (98%) rename app/src/organisms/{ => Desktop}/ProtocolDetails/AnnotatedSteps.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolDetails/ProtocolLabwareDetails.tsx (98%) rename app/src/organisms/{ => Desktop}/ProtocolDetails/ProtocolLiquidsDetails.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolDetails/ProtocolParameters/__tests__/ProtocolParameters.test.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolDetails/ProtocolParameters/index.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolDetails/ProtocolStats.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolDetails/RobotConfigurationDetails.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolDetails/__tests__/ProtocolDetails.test.tsx (97%) rename app/src/organisms/{ => Desktop}/ProtocolDetails/__tests__/ProtocolLabwareDetails.test.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolDetails/__tests__/ProtocolLiquidsDetails.test.tsx (96%) rename app/src/organisms/{ => Desktop}/ProtocolDetails/__tests__/RobotConfigurationDetails.test.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolDetails/__tests__/utils.test.ts (100%) rename app/src/organisms/{ => Desktop}/ProtocolDetails/index.tsx (98%) rename app/src/organisms/{ => Desktop}/ProtocolDetails/utils.ts (100%) rename app/src/organisms/{ => Desktop}/ProtocolStatusBanner/ProtocolStatusBanner.stories.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolStatusBanner/__tests__/ProtocolStatusBanner.test.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolStatusBanner/index.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolTimelineScrubber/CommandItem.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolTimelineScrubber/PipetteVisuals.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolTimelineScrubber/index.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolTimelineScrubber/utils.ts (100%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/ConfirmDeleteProtocolModal.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/EmptyStateLinks.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/ProtocolCard.tsx (98%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/ProtocolList.tsx (97%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/ProtocolOverflowMenu.tsx (99%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/ProtocolUploadInput.tsx (95%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/ProtocolsEmptyState.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/__tests__/ConfirmDeleteProtocolModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/__tests__/EmptyStateLinks.test.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/__tests__/ProtocolList.test.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/__tests__/ProtocolOverflowMenu.test.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/__tests__/UploadInput.test.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/__tests__/hooks.test.tsx (100%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/__tests__/utils.test.ts (63%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/hooks.tsx (89%) rename app/src/organisms/{ => Desktop}/ProtocolsLanding/utils.ts (83%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationDataDownload.tsx (98%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationItems.tsx (100%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationOverflowMenu.tsx (98%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationDetails/OverflowMenu.tsx (94%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationDetails/PipetteOffsetCalibrationItems.tsx (97%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationDetails/TipLengthCalibrationItems.tsx (100%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationDetails/__fixtures__/index.ts (100%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationItems.test.tsx (100%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationOverflowMenu.test.tsx (98%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationDetails/__tests__/OverflowMenu.test.tsx (93%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationDetails/__tests__/PipetteOffsetCalibrationItems.test.tsx (96%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationDetails/__tests__/TipLengthCalibrationItems.test.tsx (98%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationDetails/__tests__/utils.test.ts (100%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationDetails/utils.ts (100%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/CalibrationHealthCheck.tsx (95%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/DeckCalibrationConfirmModal.tsx (100%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/RobotSettingsDeckCalibration.tsx (92%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/RobotSettingsGripperCalibration.tsx (100%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/RobotSettingsModuleCalibration.tsx (100%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/RobotSettingsPipetteOffsetCalibration.tsx (95%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/RobotSettingsTipLengthCalibration.tsx (100%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/__tests__/CalibrationDataDownload.test.tsx (98%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/__tests__/CalibrationHealthCheck.test.tsx (97%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/__tests__/RobotSettingsCalibration.test.tsx (96%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/__tests__/RobotSettingsDeckCalibration.test.tsx (94%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/__tests__/RobotSettingsGripperCalibration.test.tsx (100%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/__tests__/RobotSettingsModuleCalibration.test.tsx (100%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/__tests__/RobotSettingsPipetteOffsetCalibration.test.tsx (92%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/__tests__/RobotSettingsTipLengthCalibration.test.tsx (94%) rename app/src/organisms/{ => Desktop}/RobotSettingsCalibration/index.tsx (96%) rename app/src/organisms/{ => Desktop}/RunProgressMeter/InterventionTicks.tsx (100%) rename app/src/organisms/{ => Desktop}/RunProgressMeter/Tick.tsx (98%) rename app/src/organisms/{ => Desktop}/RunProgressMeter/__fixtures__/index.ts (100%) rename app/src/organisms/{ => Desktop}/RunProgressMeter/__tests__/InterventionTicks.test.tsx (100%) rename app/src/organisms/{ => Desktop}/RunProgressMeter/__tests__/RunProgressMeter.test.tsx (96%) rename app/src/organisms/{ => Desktop}/RunProgressMeter/constants.ts (100%) rename app/src/organisms/{ => Desktop}/RunProgressMeter/hooks/index.ts (100%) rename app/src/organisms/{ => Desktop}/RunProgressMeter/hooks/useRunProgressCopy.tsx (100%) rename app/src/organisms/{ => Desktop}/RunProgressMeter/index.tsx (96%) rename app/src/organisms/{ => Desktop}/SendProtocolToFlexSlideout/__tests__/SendProtocolToFlexSlideout.test.tsx (98%) rename app/src/organisms/{ => Desktop}/SendProtocolToFlexSlideout/index.tsx (96%) rename app/src/organisms/{ => Desktop}/UpdateAppModal/__tests__/UpdateAppModal.test.tsx (100%) rename app/src/organisms/{ => Desktop}/UpdateAppModal/index.tsx (100%) rename app/src/organisms/{ => Desktop}/UpdateRobotBanner/__tests__/UpdateRobotBanner.test.tsx (100%) rename app/src/organisms/{ => Desktop}/UpdateRobotBanner/index.tsx (100%) create mode 100644 app/src/organisms/RunTimeControl/index.ts create mode 100644 app/src/resources/devices/hooks/index.ts create mode 100644 app/src/resources/devices/index.ts rename app/src/{organisms/Devices/hooks => resources/instruments}/__tests__/useAttachedPipettesFromInstrumentsQuery.test.ts (100%) rename app/src/{organisms/Devices/hooks => resources/instruments}/useAttachedPipettesFromInstrumentsQuery.ts (100%) create mode 100644 app/src/transformations/analysis/__tests__/getAnalysisStatus.test.ts create mode 100644 app/src/transformations/analysis/__tests__/getAttachedProtocolModuleMatches.test.ts create mode 100644 app/src/transformations/analysis/getAnalysisStatus.ts create mode 100644 app/src/transformations/analysis/getAttachedProtocolModuleMatches.ts create mode 100644 app/src/transformations/protocols/getProtocolDisplayName.ts create mode 100644 app/src/transformations/runs/getHighestPriorityError.ts diff --git a/app/src/App/DesktopApp.tsx b/app/src/App/DesktopApp.tsx index 8bbfd2ec590..496179b5800 100644 --- a/app/src/App/DesktopApp.tsx +++ b/app/src/App/DesktopApp.tsx @@ -13,8 +13,8 @@ import { ApiHostProvider } from '@opentrons/react-api-client' import NiceModal from '@ebay/nice-modal-react' import { i18n } from '/app/i18n' -import { Alerts } from '/app/organisms/Alerts' -import { Breadcrumbs } from '/app/organisms/Breadcrumbs' +import { Alerts } from '/app/organisms/Desktop/Alerts' +import { Breadcrumbs } from '/app/organisms/Desktop/Breadcrumbs' import { ToasterOven } from '/app/organisms/ToasterOven' import { CalibrationDashboard } from '/app/pages/Desktop/Devices/CalibrationDashboard' import { DeviceDetails } from '/app/pages/Desktop/Devices/DeviceDetails' diff --git a/app/src/App/__tests__/DesktopApp.test.tsx b/app/src/App/__tests__/DesktopApp.test.tsx index 1daf5c7d226..cd769ec0a1b 100644 --- a/app/src/App/__tests__/DesktopApp.test.tsx +++ b/app/src/App/__tests__/DesktopApp.test.tsx @@ -5,7 +5,7 @@ import { vi, describe, beforeEach, afterEach, expect, it } from 'vitest' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { Breadcrumbs } from '/app/organisms/Breadcrumbs' +import { Breadcrumbs } from '/app/organisms/Desktop/Breadcrumbs' import { CalibrationDashboard } from '/app/pages/Desktop/Devices/CalibrationDashboard' import { DeviceDetails } from '/app/pages/Desktop/Devices/DeviceDetails' import { DevicesLanding } from '/app/pages/Desktop/Devices/DevicesLanding' @@ -13,14 +13,14 @@ import { ProtocolsLanding } from '/app/pages/Desktop/Protocols/ProtocolsLanding' import { ProtocolRunDetails } from '/app/pages/Desktop/Devices/ProtocolRunDetails' import { RobotSettings } from '/app/pages/Desktop/Devices/RobotSettings' import { GeneralSettings } from '/app/pages/Desktop/AppSettings/GeneralSettings' -import { AlertsModal } from '/app/organisms/Alerts/AlertsModal' +import { AlertsModal } from '/app/organisms/Desktop/Alerts/AlertsModal' import { useFeatureFlag } from '/app/redux/config' import { useIsFlex } from '/app/redux-resources/robots' import { ProtocolTimeline } from '/app/pages/Desktop/Protocols/ProtocolDetails/ProtocolTimeline' import { useSoftwareUpdatePoll } from '../hooks' import { DesktopApp } from '../DesktopApp' -vi.mock('/app/organisms/Breadcrumbs') +vi.mock('/app/organisms/Desktop/Breadcrumbs') vi.mock('/app/pages/Desktop/AppSettings/GeneralSettings') vi.mock('/app/pages/Desktop/Devices/CalibrationDashboard') vi.mock('/app/pages/Desktop/Devices/DeviceDetails') @@ -28,7 +28,7 @@ vi.mock('/app/pages/Desktop/Devices/DevicesLanding') vi.mock('/app/pages/Desktop/Protocols/ProtocolsLanding') vi.mock('/app/pages/Desktop/Devices/ProtocolRunDetails') vi.mock('/app/pages/Desktop/Devices/RobotSettings') -vi.mock('/app/organisms/Alerts/AlertsModal') +vi.mock('/app/organisms/Desktop/Alerts/AlertsModal') vi.mock('/app/pages/Desktop/Protocols/ProtocolDetails/ProtocolTimeline') vi.mock('/app/redux/config') vi.mock('/app/redux-resources/robots') diff --git a/app/src/local-resources/labware/utils/index.ts b/app/src/local-resources/labware/utils/index.ts index f1368b03c6f..310ed3f065a 100644 --- a/app/src/local-resources/labware/utils/index.ts +++ b/app/src/local-resources/labware/utils/index.ts @@ -1 +1,2 @@ export * from './getAllDefinitions' +export * from './labwareImages' diff --git a/app/src/organisms/CalibrationPanels/labwareImages.ts b/app/src/local-resources/labware/utils/labwareImages.ts similarity index 100% rename from app/src/organisms/CalibrationPanels/labwareImages.ts rename to app/src/local-resources/labware/utils/labwareImages.ts diff --git a/app/src/molecules/GenericWizardTile/index.tsx b/app/src/molecules/GenericWizardTile/index.tsx index 4bda416cca5..24883a6ffea 100644 --- a/app/src/molecules/GenericWizardTile/index.tsx +++ b/app/src/molecules/GenericWizardTile/index.tsx @@ -23,7 +23,7 @@ import { } from '@opentrons/components' import { getIsOnDevice } from '/app/redux/config' -import { NeedHelpLink } from '/app/organisms/CalibrationPanels' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import { SmallButton, TextOnlyButton } from '/app/atoms/buttons' const ALIGN_BUTTONS = css` diff --git a/app/src/organisms/CalibrationPanels/NeedHelpLink.tsx b/app/src/molecules/OT2CalibrationNeedHelpLink/NeedHelpLink.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/NeedHelpLink.tsx rename to app/src/molecules/OT2CalibrationNeedHelpLink/NeedHelpLink.tsx diff --git a/app/src/molecules/OT2CalibrationNeedHelpLink/index.ts b/app/src/molecules/OT2CalibrationNeedHelpLink/index.ts new file mode 100644 index 00000000000..38a22581118 --- /dev/null +++ b/app/src/molecules/OT2CalibrationNeedHelpLink/index.ts @@ -0,0 +1 @@ +export * from './NeedHelpLink' diff --git a/app/src/organisms/TaskList/TaskList.stories.tsx b/app/src/molecules/TaskList/TaskList.stories.tsx similarity index 99% rename from app/src/organisms/TaskList/TaskList.stories.tsx rename to app/src/molecules/TaskList/TaskList.stories.tsx index 840ece49ed6..5c6775b41cf 100644 --- a/app/src/organisms/TaskList/TaskList.stories.tsx +++ b/app/src/molecules/TaskList/TaskList.stories.tsx @@ -4,7 +4,7 @@ import { TaskList as TaskListComponent } from './' import type { Story, Meta } from '@storybook/react' export default { - title: 'App/Organisms/TaskList', + title: 'App/Molecules/TaskList', component: TaskListComponent, } as Meta diff --git a/app/src/organisms/TaskList/index.tsx b/app/src/molecules/TaskList/index.tsx similarity index 99% rename from app/src/organisms/TaskList/index.tsx rename to app/src/molecules/TaskList/index.tsx index 2cebd9b1be2..3f45de76bcb 100644 --- a/app/src/organisms/TaskList/index.tsx +++ b/app/src/molecules/TaskList/index.tsx @@ -23,6 +23,7 @@ import { import { TertiaryButton } from '/app/atoms/buttons' import type { SubTaskProps, TaskListProps, TaskProps } from './types' +export type * from './types' const TASK_CONNECTOR_STYLE = `1px solid ${COLORS.grey40}` diff --git a/app/src/organisms/TaskList/types.ts b/app/src/molecules/TaskList/types.ts similarity index 100% rename from app/src/organisms/TaskList/types.ts rename to app/src/molecules/TaskList/types.ts diff --git a/app/src/molecules/WizardRequiredEquipmentList/index.tsx b/app/src/molecules/WizardRequiredEquipmentList/index.tsx index 3fbcd48671b..69c5cd02893 100644 --- a/app/src/molecules/WizardRequiredEquipmentList/index.tsx +++ b/app/src/molecules/WizardRequiredEquipmentList/index.tsx @@ -20,7 +20,7 @@ import { import { getIsOnDevice } from '/app/redux/config' import { Divider } from '/app/atoms/structure' -import { labwareImages } from '/app/organisms/CalibrationPanels/labwareImages' +import { labwareImages } from '/app/local-resources/labware' import { equipmentImages } from './equipmentImages' import type { StyleProps } from '@opentrons/components' diff --git a/app/src/molecules/modals/ErrorModal.tsx b/app/src/molecules/modals/ErrorModal.tsx index f5422e5b2e0..3e740a73d2c 100644 --- a/app/src/molecules/modals/ErrorModal.tsx +++ b/app/src/molecules/modals/ErrorModal.tsx @@ -1,7 +1,7 @@ import { createPortal } from 'react-dom' import { Link } from 'react-router-dom' import { AlertModal } from '@opentrons/components' -import { getModalPortalEl } from '../../App/portal' +import { getModalPortalEl } from '/app/App/portal' import styles from './styles.module.css' import type { ButtonProps } from '@opentrons/components' diff --git a/app/src/organisms/ApplyHistoricOffsets/LabwareOffsetTable.tsx b/app/src/organisms/ApplyHistoricOffsets/LabwareOffsetTable.tsx index acfc27db683..3a7276a2ed8 100644 --- a/app/src/organisms/ApplyHistoricOffsets/LabwareOffsetTable.tsx +++ b/app/src/organisms/ApplyHistoricOffsets/LabwareOffsetTable.tsx @@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next' import { SPACING, TYPOGRAPHY, COLORS } from '@opentrons/components' import { OffsetVector } from '/app/molecules/OffsetVector' import { formatTimestamp } from '/app/transformations/runs' -import { getDisplayLocation } from '../LabwarePositionCheck/utils/getDisplayLocation' +import { getDisplayLocation } from '/app/organisms/LabwarePositionCheck/utils/getDisplayLocation' import type { LabwareDefinition2 } from '@opentrons/shared-data' import type { OffsetCandidate } from './hooks/useOffsetCandidatesForAnalysis' import type { TFunction } from 'i18next' diff --git a/app/src/organisms/ApplyHistoricOffsets/__tests__/ApplyHistoricOffsets.test.tsx b/app/src/organisms/ApplyHistoricOffsets/__tests__/ApplyHistoricOffsets.test.tsx index 1bc7e55abd0..30508bc0565 100644 --- a/app/src/organisms/ApplyHistoricOffsets/__tests__/ApplyHistoricOffsets.test.tsx +++ b/app/src/organisms/ApplyHistoricOffsets/__tests__/ApplyHistoricOffsets.test.tsx @@ -14,7 +14,7 @@ import type { LabwareDefinition2 } from '@opentrons/shared-data' import type { OffsetCandidate } from '../hooks/useOffsetCandidatesForAnalysis' vi.mock('/app/redux/config') -vi.mock('../../LabwarePositionCheck/utils/labware') +vi.mock('/app/organisms/LabwarePositionCheck/utils/labware') vi.mock('/app/molecules/Command/utils/getLabwareDefinitionsFromCommands') const mockLabwareDef = fixture96Plate as LabwareDefinition2 diff --git a/app/src/organisms/ApplyHistoricOffsets/index.tsx b/app/src/organisms/ApplyHistoricOffsets/index.tsx index 3ef0af4256d..240afa960b2 100644 --- a/app/src/organisms/ApplyHistoricOffsets/index.tsx +++ b/app/src/organisms/ApplyHistoricOffsets/index.tsx @@ -18,10 +18,10 @@ import { ModalHeader, ModalShell, } from '@opentrons/components' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { ExternalLink } from '/app/atoms/Link/ExternalLink' import { PythonLabwareOffsetSnippet } from '/app/molecules/PythonLabwareOffsetSnippet' -import { LabwareOffsetTabs } from '../LabwareOffsetTabs' +import { LabwareOffsetTabs } from '/app/organisms/LabwareOffsetTabs' import { getLabwareDefinitionsFromCommands } from '/app/molecules/Command/utils/getLabwareDefinitionsFromCommands' import { LabwareOffsetTable } from './LabwareOffsetTable' import { getIsLabwareOffsetCodeSnippetsOn } from '/app/redux/config' diff --git a/app/src/organisms/AdvancedSettings/AdditionalCustomLabwareSourceFolder.tsx b/app/src/organisms/Desktop/AdvancedSettings/AdditionalCustomLabwareSourceFolder.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/AdditionalCustomLabwareSourceFolder.tsx rename to app/src/organisms/Desktop/AdvancedSettings/AdditionalCustomLabwareSourceFolder.tsx diff --git a/app/src/organisms/AdvancedSettings/ClearUnavailableRobots.tsx b/app/src/organisms/Desktop/AdvancedSettings/ClearUnavailableRobots.tsx similarity index 98% rename from app/src/organisms/AdvancedSettings/ClearUnavailableRobots.tsx rename to app/src/organisms/Desktop/AdvancedSettings/ClearUnavailableRobots.tsx index 3493f8b767c..f71392df640 100644 --- a/app/src/organisms/AdvancedSettings/ClearUnavailableRobots.tsx +++ b/app/src/organisms/Desktop/AdvancedSettings/ClearUnavailableRobots.tsx @@ -24,7 +24,7 @@ import { import { TertiaryButton } from '/app/atoms/buttons' import { useToaster } from '/app/organisms/ToasterOven' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { clearDiscoveryCache, getReachableRobots, diff --git a/app/src/organisms/AdvancedSettings/EnableDevTools.tsx b/app/src/organisms/Desktop/AdvancedSettings/EnableDevTools.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/EnableDevTools.tsx rename to app/src/organisms/Desktop/AdvancedSettings/EnableDevTools.tsx diff --git a/app/src/organisms/AdvancedSettings/OT2AdvancedSettings.tsx b/app/src/organisms/Desktop/AdvancedSettings/OT2AdvancedSettings.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/OT2AdvancedSettings.tsx rename to app/src/organisms/Desktop/AdvancedSettings/OT2AdvancedSettings.tsx diff --git a/app/src/organisms/AdvancedSettings/OverridePathToPython.tsx b/app/src/organisms/Desktop/AdvancedSettings/OverridePathToPython.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/OverridePathToPython.tsx rename to app/src/organisms/Desktop/AdvancedSettings/OverridePathToPython.tsx diff --git a/app/src/organisms/AdvancedSettings/PreventRobotCaching.tsx b/app/src/organisms/Desktop/AdvancedSettings/PreventRobotCaching.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/PreventRobotCaching.tsx rename to app/src/organisms/Desktop/AdvancedSettings/PreventRobotCaching.tsx diff --git a/app/src/organisms/AdvancedSettings/ShowHeaterShakerAttachmentModal.tsx b/app/src/organisms/Desktop/AdvancedSettings/ShowHeaterShakerAttachmentModal.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/ShowHeaterShakerAttachmentModal.tsx rename to app/src/organisms/Desktop/AdvancedSettings/ShowHeaterShakerAttachmentModal.tsx diff --git a/app/src/organisms/AdvancedSettings/ShowLabwareOffsetSnippets.tsx b/app/src/organisms/Desktop/AdvancedSettings/ShowLabwareOffsetSnippets.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/ShowLabwareOffsetSnippets.tsx rename to app/src/organisms/Desktop/AdvancedSettings/ShowLabwareOffsetSnippets.tsx diff --git a/app/src/organisms/AdvancedSettings/U2EInformation.tsx b/app/src/organisms/Desktop/AdvancedSettings/U2EInformation.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/U2EInformation.tsx rename to app/src/organisms/Desktop/AdvancedSettings/U2EInformation.tsx diff --git a/app/src/organisms/AdvancedSettings/UpdatedChannel.tsx b/app/src/organisms/Desktop/AdvancedSettings/UpdatedChannel.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/UpdatedChannel.tsx rename to app/src/organisms/Desktop/AdvancedSettings/UpdatedChannel.tsx diff --git a/app/src/organisms/AdvancedSettings/__tests__/AdditionalCustomLabwareSourceFolder.test.tsx b/app/src/organisms/Desktop/AdvancedSettings/__tests__/AdditionalCustomLabwareSourceFolder.test.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/__tests__/AdditionalCustomLabwareSourceFolder.test.tsx rename to app/src/organisms/Desktop/AdvancedSettings/__tests__/AdditionalCustomLabwareSourceFolder.test.tsx diff --git a/app/src/organisms/AdvancedSettings/__tests__/ClearUnavailableRobots.test.tsx b/app/src/organisms/Desktop/AdvancedSettings/__tests__/ClearUnavailableRobots.test.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/__tests__/ClearUnavailableRobots.test.tsx rename to app/src/organisms/Desktop/AdvancedSettings/__tests__/ClearUnavailableRobots.test.tsx diff --git a/app/src/organisms/AdvancedSettings/__tests__/EnableDevTools.test.tsx b/app/src/organisms/Desktop/AdvancedSettings/__tests__/EnableDevTools.test.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/__tests__/EnableDevTools.test.tsx rename to app/src/organisms/Desktop/AdvancedSettings/__tests__/EnableDevTools.test.tsx diff --git a/app/src/organisms/AdvancedSettings/__tests__/OT2AdvancedSettings.test.tsx b/app/src/organisms/Desktop/AdvancedSettings/__tests__/OT2AdvancedSettings.test.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/__tests__/OT2AdvancedSettings.test.tsx rename to app/src/organisms/Desktop/AdvancedSettings/__tests__/OT2AdvancedSettings.test.tsx diff --git a/app/src/organisms/AdvancedSettings/__tests__/OverridePathToPython.test.tsx b/app/src/organisms/Desktop/AdvancedSettings/__tests__/OverridePathToPython.test.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/__tests__/OverridePathToPython.test.tsx rename to app/src/organisms/Desktop/AdvancedSettings/__tests__/OverridePathToPython.test.tsx diff --git a/app/src/organisms/AdvancedSettings/__tests__/PreventRobotCaching.test.tsx b/app/src/organisms/Desktop/AdvancedSettings/__tests__/PreventRobotCaching.test.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/__tests__/PreventRobotCaching.test.tsx rename to app/src/organisms/Desktop/AdvancedSettings/__tests__/PreventRobotCaching.test.tsx diff --git a/app/src/organisms/AdvancedSettings/__tests__/ShowHeaterShakerAttachmentModal.test.tsx b/app/src/organisms/Desktop/AdvancedSettings/__tests__/ShowHeaterShakerAttachmentModal.test.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/__tests__/ShowHeaterShakerAttachmentModal.test.tsx rename to app/src/organisms/Desktop/AdvancedSettings/__tests__/ShowHeaterShakerAttachmentModal.test.tsx diff --git a/app/src/organisms/AdvancedSettings/__tests__/ShowLabwareOffsetSnippets.test.tsx b/app/src/organisms/Desktop/AdvancedSettings/__tests__/ShowLabwareOffsetSnippets.test.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/__tests__/ShowLabwareOffsetSnippets.test.tsx rename to app/src/organisms/Desktop/AdvancedSettings/__tests__/ShowLabwareOffsetSnippets.test.tsx diff --git a/app/src/organisms/AdvancedSettings/__tests__/U2EInformation.test.tsx b/app/src/organisms/Desktop/AdvancedSettings/__tests__/U2EInformation.test.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/__tests__/U2EInformation.test.tsx rename to app/src/organisms/Desktop/AdvancedSettings/__tests__/U2EInformation.test.tsx diff --git a/app/src/organisms/AdvancedSettings/__tests__/UpdatedChannel.test.tsx b/app/src/organisms/Desktop/AdvancedSettings/__tests__/UpdatedChannel.test.tsx similarity index 100% rename from app/src/organisms/AdvancedSettings/__tests__/UpdatedChannel.test.tsx rename to app/src/organisms/Desktop/AdvancedSettings/__tests__/UpdatedChannel.test.tsx diff --git a/app/src/organisms/AdvancedSettings/index.ts b/app/src/organisms/Desktop/AdvancedSettings/index.ts similarity index 100% rename from app/src/organisms/AdvancedSettings/index.ts rename to app/src/organisms/Desktop/AdvancedSettings/index.ts diff --git a/app/src/organisms/Alerts/AlertsModal.tsx b/app/src/organisms/Desktop/Alerts/AlertsModal.tsx similarity index 98% rename from app/src/organisms/Alerts/AlertsModal.tsx rename to app/src/organisms/Desktop/Alerts/AlertsModal.tsx index 820756f907a..f6639444a5a 100644 --- a/app/src/organisms/Alerts/AlertsModal.tsx +++ b/app/src/organisms/Desktop/Alerts/AlertsModal.tsx @@ -8,7 +8,7 @@ import { SUCCESS_TOAST, WARNING_TOAST } from '@opentrons/components' import * as AppAlerts from '/app/redux/alerts' import { getHasJustUpdated, toggleConfigValue } from '/app/redux/config' import { getAvailableShellUpdate } from '/app/redux/shell' -import { useToaster } from '../ToasterOven' +import { useToaster } from '/app/organisms/ToasterOven' import { UpdateAppModal } from '../UpdateAppModal' import { U2EDriverOutdatedAlert } from './U2EDriverOutdatedAlert' diff --git a/app/src/organisms/Alerts/AlertsProvider.tsx b/app/src/organisms/Desktop/Alerts/AlertsProvider.tsx similarity index 93% rename from app/src/organisms/Alerts/AlertsProvider.tsx rename to app/src/organisms/Desktop/Alerts/AlertsProvider.tsx index 58215bc1e73..21aeccbf855 100644 --- a/app/src/organisms/Alerts/AlertsProvider.tsx +++ b/app/src/organisms/Desktop/Alerts/AlertsProvider.tsx @@ -1,6 +1,6 @@ import * as React from 'react' import { AlertsModal } from '.' -import { useToaster } from '../ToasterOven' +import { useToaster } from '/app/organisms/ToasterOven' export interface AlertsContextProps { removeActiveAppUpdateToast: () => void diff --git a/app/src/organisms/Alerts/U2EDriverOutdatedAlert.tsx b/app/src/organisms/Desktop/Alerts/U2EDriverOutdatedAlert.tsx similarity index 100% rename from app/src/organisms/Alerts/U2EDriverOutdatedAlert.tsx rename to app/src/organisms/Desktop/Alerts/U2EDriverOutdatedAlert.tsx diff --git a/app/src/organisms/Alerts/__tests__/Alerts.test.tsx b/app/src/organisms/Desktop/Alerts/__tests__/Alerts.test.tsx similarity index 100% rename from app/src/organisms/Alerts/__tests__/Alerts.test.tsx rename to app/src/organisms/Desktop/Alerts/__tests__/Alerts.test.tsx diff --git a/app/src/organisms/Alerts/__tests__/U2EDriverOutdatedAlert.test.tsx b/app/src/organisms/Desktop/Alerts/__tests__/U2EDriverOutdatedAlert.test.tsx similarity index 100% rename from app/src/organisms/Alerts/__tests__/U2EDriverOutdatedAlert.test.tsx rename to app/src/organisms/Desktop/Alerts/__tests__/U2EDriverOutdatedAlert.test.tsx diff --git a/app/src/organisms/Alerts/index.ts b/app/src/organisms/Desktop/Alerts/index.ts similarity index 100% rename from app/src/organisms/Alerts/index.ts rename to app/src/organisms/Desktop/Alerts/index.ts diff --git a/app/src/organisms/Alerts/types.ts b/app/src/organisms/Desktop/Alerts/types.ts similarity index 100% rename from app/src/organisms/Alerts/types.ts rename to app/src/organisms/Desktop/Alerts/types.ts diff --git a/app/src/organisms/Alerts/useRemoveActiveAppUpdateToast.ts.ts b/app/src/organisms/Desktop/Alerts/useRemoveActiveAppUpdateToast.ts.ts similarity index 100% rename from app/src/organisms/Alerts/useRemoveActiveAppUpdateToast.ts.ts rename to app/src/organisms/Desktop/Alerts/useRemoveActiveAppUpdateToast.ts.ts diff --git a/app/src/organisms/AppSettings/ConnectRobotSlideout.tsx b/app/src/organisms/Desktop/AppSettings/ConnectRobotSlideout.tsx similarity index 100% rename from app/src/organisms/AppSettings/ConnectRobotSlideout.tsx rename to app/src/organisms/Desktop/AppSettings/ConnectRobotSlideout.tsx diff --git a/app/src/organisms/AppSettings/FeatureFlags.tsx b/app/src/organisms/Desktop/AppSettings/FeatureFlags.tsx similarity index 100% rename from app/src/organisms/AppSettings/FeatureFlags.tsx rename to app/src/organisms/Desktop/AppSettings/FeatureFlags.tsx diff --git a/app/src/organisms/AppSettings/ManualIpHostnameField.tsx b/app/src/organisms/Desktop/AppSettings/ManualIpHostnameField.tsx similarity index 100% rename from app/src/organisms/AppSettings/ManualIpHostnameField.tsx rename to app/src/organisms/Desktop/AppSettings/ManualIpHostnameField.tsx diff --git a/app/src/organisms/AppSettings/ManualIpHostnameForm.tsx b/app/src/organisms/Desktop/AppSettings/ManualIpHostnameForm.tsx similarity index 100% rename from app/src/organisms/AppSettings/ManualIpHostnameForm.tsx rename to app/src/organisms/Desktop/AppSettings/ManualIpHostnameForm.tsx diff --git a/app/src/organisms/AppSettings/ManualIpHostnameItem.tsx b/app/src/organisms/Desktop/AppSettings/ManualIpHostnameItem.tsx similarity index 100% rename from app/src/organisms/AppSettings/ManualIpHostnameItem.tsx rename to app/src/organisms/Desktop/AppSettings/ManualIpHostnameItem.tsx diff --git a/app/src/organisms/AppSettings/ManualIpHostnameList.tsx b/app/src/organisms/Desktop/AppSettings/ManualIpHostnameList.tsx similarity index 100% rename from app/src/organisms/AppSettings/ManualIpHostnameList.tsx rename to app/src/organisms/Desktop/AppSettings/ManualIpHostnameList.tsx diff --git a/app/src/organisms/AppSettings/PreviousVersionModal.tsx b/app/src/organisms/Desktop/AppSettings/PreviousVersionModal.tsx similarity index 100% rename from app/src/organisms/AppSettings/PreviousVersionModal.tsx rename to app/src/organisms/Desktop/AppSettings/PreviousVersionModal.tsx diff --git a/app/src/organisms/AppSettings/__tests__/ConnectRobotSlideout.test.tsx b/app/src/organisms/Desktop/AppSettings/__tests__/ConnectRobotSlideout.test.tsx similarity index 100% rename from app/src/organisms/AppSettings/__tests__/ConnectRobotSlideout.test.tsx rename to app/src/organisms/Desktop/AppSettings/__tests__/ConnectRobotSlideout.test.tsx diff --git a/app/src/organisms/AppSettings/__tests__/PreviousVersionModal.test.tsx b/app/src/organisms/Desktop/AppSettings/__tests__/PreviousVersionModal.test.tsx similarity index 100% rename from app/src/organisms/AppSettings/__tests__/PreviousVersionModal.test.tsx rename to app/src/organisms/Desktop/AppSettings/__tests__/PreviousVersionModal.test.tsx diff --git a/app/src/organisms/Breadcrumbs/__tests__/Breadcrumbs.test.tsx b/app/src/organisms/Desktop/Breadcrumbs/__tests__/Breadcrumbs.test.tsx similarity index 96% rename from app/src/organisms/Breadcrumbs/__tests__/Breadcrumbs.test.tsx rename to app/src/organisms/Desktop/Breadcrumbs/__tests__/Breadcrumbs.test.tsx index 559c6e3cf2b..5efb526a4a5 100644 --- a/app/src/organisms/Breadcrumbs/__tests__/Breadcrumbs.test.tsx +++ b/app/src/organisms/Desktop/Breadcrumbs/__tests__/Breadcrumbs.test.tsx @@ -7,7 +7,7 @@ import { fireEvent, screen } from '@testing-library/react' import { i18n } from '/app/i18n' import { useRunCreatedAtTimestamp } from '/app/resources/runs' import { useRobot } from '/app/redux-resources/robots' -import { getProtocolDisplayName } from '/app/organisms/ProtocolsLanding/utils' +import { getProtocolDisplayName } from '/app/transformations/protocols' import { getIsOnDevice } from '/app/redux/config' import { renderWithProviders } from '/app/__testing-utils__' import { mockConnectableRobot } from '/app/redux/discovery/__fixtures__' @@ -19,7 +19,7 @@ import type { State } from '/app/redux/types' vi.mock('/app/resources/runs') vi.mock('/app/redux-resources/robots') -vi.mock('/app/organisms/ProtocolsLanding/utils') +vi.mock('/app/transformations/protocols') vi.mock('/app/redux/config') vi.mock('/app/redux/protocol-storage') diff --git a/app/src/organisms/Breadcrumbs/index.tsx b/app/src/organisms/Desktop/Breadcrumbs/index.tsx similarity index 97% rename from app/src/organisms/Breadcrumbs/index.tsx rename to app/src/organisms/Desktop/Breadcrumbs/index.tsx index 6b26b390f79..02ea58a483f 100644 --- a/app/src/organisms/Breadcrumbs/index.tsx +++ b/app/src/organisms/Desktop/Breadcrumbs/index.tsx @@ -18,14 +18,14 @@ import { import { ApiHostProvider } from '@opentrons/react-api-client' import { useRunCreatedAtTimestamp } from '/app/resources/runs' -import { getProtocolDisplayName } from '/app/organisms/ProtocolsLanding/utils' +import { getProtocolDisplayName } from '/app/transformations/protocols' import { getIsOnDevice } from '/app/redux/config' import { OPENTRONS_USB } from '/app/redux/discovery' import { getStoredProtocol } from '/app/redux/protocol-storage' import { appShellRequestor } from '/app/redux/shell/remote' import { useRobot } from '/app/redux-resources/robots' -import type { DesktopRouteParams } from '../../App/types' +import type { DesktopRouteParams } from '/app/App/types' import type { State } from '/app/redux/types' interface CrumbNameProps { diff --git a/app/src/organisms/CalibrateDeck/__tests__/CalibrateDeck.test.tsx b/app/src/organisms/Desktop/CalibrateDeck/__tests__/CalibrateDeck.test.tsx similarity index 100% rename from app/src/organisms/CalibrateDeck/__tests__/CalibrateDeck.test.tsx rename to app/src/organisms/Desktop/CalibrateDeck/__tests__/CalibrateDeck.test.tsx diff --git a/app/src/organisms/CalibrateDeck/index.tsx b/app/src/organisms/Desktop/CalibrateDeck/index.tsx similarity index 96% rename from app/src/organisms/CalibrateDeck/index.tsx rename to app/src/organisms/Desktop/CalibrateDeck/index.tsx index 51fc36eb8d8..fc31cc28992 100644 --- a/app/src/organisms/CalibrateDeck/index.tsx +++ b/app/src/organisms/Desktop/CalibrateDeck/index.tsx @@ -19,9 +19,9 @@ import { ConfirmExit, LoadingState, CompleteConfirmation, -} from '/app/organisms/CalibrationPanels' +} from '/app/organisms/Desktop/CalibrationPanels' import { WizardHeader } from '/app/molecules/WizardHeader' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import type { Mount } from '@opentrons/components' import type { @@ -29,7 +29,7 @@ import type { CalibrationSessionStep, SessionCommandParams, } from '/app/redux/sessions/types' -import type { CalibrationPanelProps } from '/app/organisms/CalibrationPanels/types' +import type { CalibrationPanelProps } from '/app/organisms/Desktop/CalibrationPanels/types' import type { CalibrateDeckParentProps } from './types' const PANEL_BY_STEP: Partial< diff --git a/app/src/organisms/CalibrateDeck/types.ts b/app/src/organisms/Desktop/CalibrateDeck/types.ts similarity index 100% rename from app/src/organisms/CalibrateDeck/types.ts rename to app/src/organisms/Desktop/CalibrateDeck/types.ts diff --git a/app/src/organisms/CalibratePipetteOffset/__tests__/CalibratePipetteOffset.test.tsx b/app/src/organisms/Desktop/CalibratePipetteOffset/__tests__/CalibratePipetteOffset.test.tsx similarity index 100% rename from app/src/organisms/CalibratePipetteOffset/__tests__/CalibratePipetteOffset.test.tsx rename to app/src/organisms/Desktop/CalibratePipetteOffset/__tests__/CalibratePipetteOffset.test.tsx diff --git a/app/src/organisms/CalibratePipetteOffset/__tests__/useCalibratePipetteOffset.test.tsx b/app/src/organisms/Desktop/CalibratePipetteOffset/__tests__/useCalibratePipetteOffset.test.tsx similarity index 100% rename from app/src/organisms/CalibratePipetteOffset/__tests__/useCalibratePipetteOffset.test.tsx rename to app/src/organisms/Desktop/CalibratePipetteOffset/__tests__/useCalibratePipetteOffset.test.tsx diff --git a/app/src/organisms/CalibratePipetteOffset/index.tsx b/app/src/organisms/Desktop/CalibratePipetteOffset/index.tsx similarity index 96% rename from app/src/organisms/CalibratePipetteOffset/index.tsx rename to app/src/organisms/Desktop/CalibratePipetteOffset/index.tsx index b2e67debd28..42a31213b43 100644 --- a/app/src/organisms/CalibratePipetteOffset/index.tsx +++ b/app/src/organisms/Desktop/CalibratePipetteOffset/index.tsx @@ -19,9 +19,9 @@ import { ConfirmExit, LoadingState, CompleteConfirmation, -} from '/app/organisms/CalibrationPanels' +} from '/app/organisms/Desktop/CalibrationPanels' import { WizardHeader } from '/app/molecules/WizardHeader' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import type { Mount } from '@opentrons/components' import type { @@ -30,7 +30,7 @@ import type { SessionCommandParams, } from '/app/redux/sessions/types' import type { CalibratePipetteOffsetParentProps } from './types' -import type { CalibrationPanelProps } from '/app/organisms/CalibrationPanels/types' +import type { CalibrationPanelProps } from '/app/organisms/Desktop/CalibrationPanels/types' const PANEL_BY_STEP: Partial< Record> diff --git a/app/src/organisms/CalibratePipetteOffset/types.ts b/app/src/organisms/Desktop/CalibratePipetteOffset/types.ts similarity index 100% rename from app/src/organisms/CalibratePipetteOffset/types.ts rename to app/src/organisms/Desktop/CalibratePipetteOffset/types.ts diff --git a/app/src/organisms/CalibratePipetteOffset/useCalibratePipetteOffset.tsx b/app/src/organisms/Desktop/CalibratePipetteOffset/useCalibratePipetteOffset.tsx similarity index 99% rename from app/src/organisms/CalibratePipetteOffset/useCalibratePipetteOffset.tsx rename to app/src/organisms/Desktop/CalibratePipetteOffset/useCalibratePipetteOffset.tsx index 2cbb250d73c..4796e998658 100644 --- a/app/src/organisms/CalibratePipetteOffset/useCalibratePipetteOffset.tsx +++ b/app/src/organisms/Desktop/CalibratePipetteOffset/useCalibratePipetteOffset.tsx @@ -16,7 +16,7 @@ import type { } from '/app/redux/sessions/types' import type { RequestState } from '/app/redux/robot-api/types' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { CalibratePipetteOffset } from '.' import { pipetteOffsetCalibrationStarted } from '/app/redux/analytics' import { useTranslation } from 'react-i18next' diff --git a/app/src/organisms/CalibrateTipLength/AskForCalibrationBlockModal.tsx b/app/src/organisms/Desktop/CalibrateTipLength/AskForCalibrationBlockModal.tsx similarity index 96% rename from app/src/organisms/CalibrateTipLength/AskForCalibrationBlockModal.tsx rename to app/src/organisms/Desktop/CalibrateTipLength/AskForCalibrationBlockModal.tsx index 0bca9a6aac3..62a8ca00ef0 100644 --- a/app/src/organisms/CalibrateTipLength/AskForCalibrationBlockModal.tsx +++ b/app/src/organisms/Desktop/CalibrateTipLength/AskForCalibrationBlockModal.tsx @@ -19,9 +19,9 @@ import { import { useDispatch } from 'react-redux' import styles from './styles.module.css' -import { labwareImages } from '/app/organisms/CalibrationPanels/labwareImages' +import { labwareImages } from '/app/local-resources/labware' import { WizardHeader } from '/app/molecules/WizardHeader' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { setUseTrashSurfaceForTipCal } from '/app/redux/calibration' import type { Dispatch } from '/app/redux/types' diff --git a/app/src/organisms/CalibrateTipLength/ConfirmRecalibrationModal.tsx b/app/src/organisms/Desktop/CalibrateTipLength/ConfirmRecalibrationModal.tsx similarity index 97% rename from app/src/organisms/CalibrateTipLength/ConfirmRecalibrationModal.tsx rename to app/src/organisms/Desktop/CalibrateTipLength/ConfirmRecalibrationModal.tsx index 734b8f7ef0e..9806297af9a 100644 --- a/app/src/organisms/CalibrateTipLength/ConfirmRecalibrationModal.tsx +++ b/app/src/organisms/Desktop/CalibrateTipLength/ConfirmRecalibrationModal.tsx @@ -11,7 +11,7 @@ import { Text, } from '@opentrons/components' -import { getModalPortalEl } from '../../App/portal' +import { getModalPortalEl } from '/app/App/portal' import styles from './styles.module.css' diff --git a/app/src/organisms/CalibrateTipLength/TipLengthCalibrationInfoBox.tsx b/app/src/organisms/Desktop/CalibrateTipLength/TipLengthCalibrationInfoBox.tsx similarity index 100% rename from app/src/organisms/CalibrateTipLength/TipLengthCalibrationInfoBox.tsx rename to app/src/organisms/Desktop/CalibrateTipLength/TipLengthCalibrationInfoBox.tsx diff --git a/app/src/organisms/CalibrateTipLength/__tests__/AskForCalibrationBlockModal.test.tsx b/app/src/organisms/Desktop/CalibrateTipLength/__tests__/AskForCalibrationBlockModal.test.tsx similarity index 100% rename from app/src/organisms/CalibrateTipLength/__tests__/AskForCalibrationBlockModal.test.tsx rename to app/src/organisms/Desktop/CalibrateTipLength/__tests__/AskForCalibrationBlockModal.test.tsx diff --git a/app/src/organisms/CalibrateTipLength/__tests__/CalibrateTipLength.test.tsx b/app/src/organisms/Desktop/CalibrateTipLength/__tests__/CalibrateTipLength.test.tsx similarity index 100% rename from app/src/organisms/CalibrateTipLength/__tests__/CalibrateTipLength.test.tsx rename to app/src/organisms/Desktop/CalibrateTipLength/__tests__/CalibrateTipLength.test.tsx diff --git a/app/src/organisms/CalibrateTipLength/index.tsx b/app/src/organisms/Desktop/CalibrateTipLength/index.tsx similarity index 97% rename from app/src/organisms/CalibrateTipLength/index.tsx rename to app/src/organisms/Desktop/CalibrateTipLength/index.tsx index 405aabec969..14ab84d2ef6 100644 --- a/app/src/organisms/CalibrateTipLength/index.tsx +++ b/app/src/organisms/Desktop/CalibrateTipLength/index.tsx @@ -20,9 +20,9 @@ import { ConfirmExit, LoadingState, CompleteConfirmation, -} from '/app/organisms/CalibrationPanels' +} from '/app/organisms/Desktop/CalibrationPanels' import { WizardHeader } from '/app/molecules/WizardHeader' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import slotOneRemoveBlockAsset from '/app/assets/videos/tip-length-cal/Slot_1_Remove_CalBlock_(330x260)REV1.webm' import slotThreeRemoveBlockAsset from '/app/assets/videos/tip-length-cal/Slot_3_Remove_CalBlock_(330x260)REV1.webm' @@ -33,7 +33,7 @@ import type { CalibrationLabware, CalibrationSessionStep, } from '/app/redux/sessions/types' -import type { CalibrationPanelProps } from '/app/organisms/CalibrationPanels/types' +import type { CalibrationPanelProps } from '/app/organisms/Desktop/CalibrationPanels/types' import type { CalibrateTipLengthParentProps } from './types' export { AskForCalibrationBlockModal } from './AskForCalibrationBlockModal' diff --git a/app/src/organisms/CalibrateTipLength/styles.module.css b/app/src/organisms/Desktop/CalibrateTipLength/styles.module.css similarity index 100% rename from app/src/organisms/CalibrateTipLength/styles.module.css rename to app/src/organisms/Desktop/CalibrateTipLength/styles.module.css diff --git a/app/src/organisms/CalibrateTipLength/types.ts b/app/src/organisms/Desktop/CalibrateTipLength/types.ts similarity index 100% rename from app/src/organisms/CalibrateTipLength/types.ts rename to app/src/organisms/Desktop/CalibrateTipLength/types.ts diff --git a/app/src/organisms/CalibrationPanels/CalibrationLabwareRender.tsx b/app/src/organisms/Desktop/CalibrationPanels/CalibrationLabwareRender.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/CalibrationLabwareRender.tsx rename to app/src/organisms/Desktop/CalibrationPanels/CalibrationLabwareRender.tsx diff --git a/app/src/organisms/CalibrationPanels/ChooseTipRack.tsx b/app/src/organisms/Desktop/CalibrationPanels/ChooseTipRack.tsx similarity index 99% rename from app/src/organisms/CalibrationPanels/ChooseTipRack.tsx rename to app/src/organisms/Desktop/CalibrationPanels/ChooseTipRack.tsx index 9eba4813786..072293f22b4 100644 --- a/app/src/organisms/CalibrationPanels/ChooseTipRack.tsx +++ b/app/src/organisms/Desktop/CalibrationPanels/ChooseTipRack.tsx @@ -27,7 +27,7 @@ import { } from '/app/redux/calibration/' import { Select } from '/app/atoms/SelectField/Select' import { Divider } from '/app/atoms/structure' -import { NeedHelpLink } from './NeedHelpLink' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import { ChosenTipRackRender } from './ChosenTipRackRender' import type { MultiValue, SingleValue } from 'react-select' diff --git a/app/src/organisms/CalibrationPanels/ChosenTipRackRender.tsx b/app/src/organisms/Desktop/CalibrationPanels/ChosenTipRackRender.tsx similarity index 94% rename from app/src/organisms/CalibrationPanels/ChosenTipRackRender.tsx rename to app/src/organisms/Desktop/CalibrationPanels/ChosenTipRackRender.tsx index 780bcac2973..4cc533985d0 100644 --- a/app/src/organisms/CalibrationPanels/ChosenTipRackRender.tsx +++ b/app/src/organisms/Desktop/CalibrationPanels/ChosenTipRackRender.tsx @@ -7,7 +7,7 @@ import { SPACING, LegacyStyledText, } from '@opentrons/components' -import { labwareImages } from './labwareImages' +import { labwareImages } from '/app/local-resources/labware' import type { SelectOption } from '@opentrons/components' export interface ChosenTipRackRenderProps { diff --git a/app/src/organisms/CalibrationPanels/CompleteConfirmation.tsx b/app/src/organisms/Desktop/CalibrationPanels/CompleteConfirmation.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/CompleteConfirmation.tsx rename to app/src/organisms/Desktop/CalibrationPanels/CompleteConfirmation.tsx diff --git a/app/src/organisms/CalibrationPanels/ConfirmCrashRecovery.tsx b/app/src/organisms/Desktop/CalibrationPanels/ConfirmCrashRecovery.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/ConfirmCrashRecovery.tsx rename to app/src/organisms/Desktop/CalibrationPanels/ConfirmCrashRecovery.tsx diff --git a/app/src/organisms/CalibrationPanels/ConfirmExit.tsx b/app/src/organisms/Desktop/CalibrationPanels/ConfirmExit.tsx similarity index 96% rename from app/src/organisms/CalibrationPanels/ConfirmExit.tsx rename to app/src/organisms/Desktop/CalibrationPanels/ConfirmExit.tsx index 36ae9c7d5b8..2190852ae4a 100644 --- a/app/src/organisms/CalibrationPanels/ConfirmExit.tsx +++ b/app/src/organisms/Desktop/CalibrationPanels/ConfirmExit.tsx @@ -14,7 +14,7 @@ import { TYPOGRAPHY, } from '@opentrons/components' -import { NeedHelpLink } from './NeedHelpLink' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' interface ConfirmExitProps { back: () => void diff --git a/app/src/organisms/CalibrationPanels/DeckSetup.tsx b/app/src/organisms/Desktop/CalibrationPanels/DeckSetup.tsx similarity index 98% rename from app/src/organisms/CalibrationPanels/DeckSetup.tsx rename to app/src/organisms/Desktop/CalibrationPanels/DeckSetup.tsx index 22d648a5335..6da2f94044d 100644 --- a/app/src/organisms/CalibrationPanels/DeckSetup.tsx +++ b/app/src/organisms/Desktop/CalibrationPanels/DeckSetup.tsx @@ -19,7 +19,7 @@ import { getPositionFromSlotId, } from '@opentrons/shared-data' import * as Sessions from '/app/redux/sessions' -import { NeedHelpLink } from './NeedHelpLink' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import { CalibrationLabwareRender } from './CalibrationLabwareRender' import type { AddressableArea } from '@opentrons/shared-data' diff --git a/app/src/organisms/CalibrationPanels/Introduction/Body.tsx b/app/src/organisms/Desktop/CalibrationPanels/Introduction/Body.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/Introduction/Body.tsx rename to app/src/organisms/Desktop/CalibrationPanels/Introduction/Body.tsx diff --git a/app/src/organisms/CalibrationPanels/Introduction/InvalidationWarning.tsx b/app/src/organisms/Desktop/CalibrationPanels/Introduction/InvalidationWarning.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/Introduction/InvalidationWarning.tsx rename to app/src/organisms/Desktop/CalibrationPanels/Introduction/InvalidationWarning.tsx diff --git a/app/src/organisms/CalibrationPanels/Introduction/__tests__/Body.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/Introduction/__tests__/Body.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/Introduction/__tests__/Body.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/Introduction/__tests__/Body.test.tsx diff --git a/app/src/organisms/CalibrationPanels/Introduction/__tests__/Introduction.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/Introduction/__tests__/Introduction.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/Introduction/__tests__/Introduction.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/Introduction/__tests__/Introduction.test.tsx diff --git a/app/src/organisms/CalibrationPanels/Introduction/__tests__/InvalidationWarning.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/Introduction/__tests__/InvalidationWarning.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/Introduction/__tests__/InvalidationWarning.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/Introduction/__tests__/InvalidationWarning.test.tsx diff --git a/app/src/organisms/CalibrationPanels/Introduction/index.tsx b/app/src/organisms/Desktop/CalibrationPanels/Introduction/index.tsx similarity index 98% rename from app/src/organisms/CalibrationPanels/Introduction/index.tsx rename to app/src/organisms/Desktop/CalibrationPanels/Introduction/index.tsx index 3106786ec30..8211b54bb57 100644 --- a/app/src/organisms/CalibrationPanels/Introduction/index.tsx +++ b/app/src/organisms/Desktop/CalibrationPanels/Introduction/index.tsx @@ -13,7 +13,7 @@ import { } from '@opentrons/components' import * as Sessions from '/app/redux/sessions' -import { NeedHelpLink } from '../NeedHelpLink' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import { ChooseTipRack } from '../ChooseTipRack' import { TRASH_BIN_LOAD_NAME } from '../constants' diff --git a/app/src/organisms/CalibrationPanels/LoadingState.tsx b/app/src/organisms/Desktop/CalibrationPanels/LoadingState.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/LoadingState.tsx rename to app/src/organisms/Desktop/CalibrationPanels/LoadingState.tsx diff --git a/app/src/organisms/CalibrationPanels/MeasureNozzle.tsx b/app/src/organisms/Desktop/CalibrationPanels/MeasureNozzle.tsx similarity index 98% rename from app/src/organisms/CalibrationPanels/MeasureNozzle.tsx rename to app/src/organisms/Desktop/CalibrationPanels/MeasureNozzle.tsx index 7e5e6f38f80..9c2c9762735 100644 --- a/app/src/organisms/CalibrationPanels/MeasureNozzle.tsx +++ b/app/src/organisms/Desktop/CalibrationPanels/MeasureNozzle.tsx @@ -23,7 +23,7 @@ import * as Sessions from '/app/redux/sessions' import type { Axis, Sign, StepSize } from '/app/molecules/JogControls/types' import type { CalibrationPanelProps } from './types' -import { NeedHelpLink } from './NeedHelpLink' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import { useConfirmCrashRecovery } from './useConfirmCrashRecovery' import { formatJogVector } from './utils' import leftMultiBlockAssetTLC from '/app/assets/videos/tip-length-cal/Left_Multi_CalBlock_NO_TIP_(330x260)REV1.webm' diff --git a/app/src/organisms/CalibrationPanels/MeasureTip.tsx b/app/src/organisms/Desktop/CalibrationPanels/MeasureTip.tsx similarity index 98% rename from app/src/organisms/CalibrationPanels/MeasureTip.tsx rename to app/src/organisms/Desktop/CalibrationPanels/MeasureTip.tsx index 542cc1a1511..9eac47f89cb 100644 --- a/app/src/organisms/CalibrationPanels/MeasureTip.tsx +++ b/app/src/organisms/Desktop/CalibrationPanels/MeasureTip.tsx @@ -19,7 +19,7 @@ import { MEDIUM_STEP_SIZE_MM, SMALL_STEP_SIZE_MM, } from '/app/molecules/JogControls' -import { NeedHelpLink } from './NeedHelpLink' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import { useConfirmCrashRecovery } from './useConfirmCrashRecovery' import { formatJogVector } from './utils' diff --git a/app/src/organisms/CalibrationPanels/SaveXYPoint.tsx b/app/src/organisms/Desktop/CalibrationPanels/SaveXYPoint.tsx similarity index 98% rename from app/src/organisms/CalibrationPanels/SaveXYPoint.tsx rename to app/src/organisms/Desktop/CalibrationPanels/SaveXYPoint.tsx index c727f9ce6fe..8fda2535ee8 100644 --- a/app/src/organisms/CalibrationPanels/SaveXYPoint.tsx +++ b/app/src/organisms/Desktop/CalibrationPanels/SaveXYPoint.tsx @@ -13,7 +13,7 @@ import { LegacyStyledText, } from '@opentrons/components' -import { useLogger } from '../../logger' +import { useLogger } from '/app/logger' import * as Sessions from '/app/redux/sessions' import { JogControls, @@ -22,7 +22,7 @@ import { } from '/app/molecules/JogControls' import { formatJogVector } from './utils' import { useConfirmCrashRecovery } from './useConfirmCrashRecovery' -import { NeedHelpLink } from './NeedHelpLink' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import slot1LeftMultiDemoAsset from '/app/assets/videos/cal-movement/SLOT_1_LEFT_MULTI_X-Y.webm' import slot1LeftSingleDemoAsset from '/app/assets/videos/cal-movement/SLOT_1_LEFT_SINGLE_X-Y.webm' diff --git a/app/src/organisms/CalibrationPanels/SaveZPoint.tsx b/app/src/organisms/Desktop/CalibrationPanels/SaveZPoint.tsx similarity index 98% rename from app/src/organisms/CalibrationPanels/SaveZPoint.tsx rename to app/src/organisms/Desktop/CalibrationPanels/SaveZPoint.tsx index ddc2975030a..7c85aa4b020 100644 --- a/app/src/organisms/CalibrationPanels/SaveZPoint.tsx +++ b/app/src/organisms/Desktop/CalibrationPanels/SaveZPoint.tsx @@ -22,7 +22,7 @@ import { } from '/app/molecules/JogControls' import { formatJogVector } from './utils' import { useConfirmCrashRecovery } from './useConfirmCrashRecovery' -import { NeedHelpLink } from './NeedHelpLink' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import slot5LeftMultiDemoAsset from '/app/assets/videos/cal-movement/SLOT_5_LEFT_MULTI_Z.webm' import slot5LeftSingleDemoAsset from '/app/assets/videos/cal-movement/SLOT_5_LEFT_SINGLE_Z.webm' diff --git a/app/src/organisms/CalibrationPanels/TipConfirmation.tsx b/app/src/organisms/Desktop/CalibrationPanels/TipConfirmation.tsx similarity index 97% rename from app/src/organisms/CalibrationPanels/TipConfirmation.tsx rename to app/src/organisms/Desktop/CalibrationPanels/TipConfirmation.tsx index 88495309621..c4d094eadb7 100644 --- a/app/src/organisms/CalibrationPanels/TipConfirmation.tsx +++ b/app/src/organisms/Desktop/CalibrationPanels/TipConfirmation.tsx @@ -11,7 +11,7 @@ import { import { useTranslation } from 'react-i18next' import * as Sessions from '/app/redux/sessions' -import { NeedHelpLink } from './NeedHelpLink' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import type { CalibrationPanelProps } from './types' import type { diff --git a/app/src/organisms/CalibrationPanels/TipPickUp.tsx b/app/src/organisms/Desktop/CalibrationPanels/TipPickUp.tsx similarity index 97% rename from app/src/organisms/CalibrationPanels/TipPickUp.tsx rename to app/src/organisms/Desktop/CalibrationPanels/TipPickUp.tsx index d7360f9c052..e375398c8cf 100644 --- a/app/src/organisms/CalibrationPanels/TipPickUp.tsx +++ b/app/src/organisms/Desktop/CalibrationPanels/TipPickUp.tsx @@ -18,7 +18,7 @@ import { JogControls } from '/app/molecules/JogControls' import type { CalibrationPanelProps } from './types' import { formatJogVector } from './utils' -import { NeedHelpLink } from './NeedHelpLink' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import { useConfirmCrashRecovery } from './useConfirmCrashRecovery' import multiDemoAsset from '/app/assets/videos/tip-pick-up/A1_Multi_Channel_REV1.webm' diff --git a/app/src/organisms/CalibrationPanels/__tests__/ChooseTipRack.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/__tests__/ChooseTipRack.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/__tests__/ChooseTipRack.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/__tests__/ChooseTipRack.test.tsx diff --git a/app/src/organisms/CalibrationPanels/__tests__/ChosenTipRackRender.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/__tests__/ChosenTipRackRender.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/__tests__/ChosenTipRackRender.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/__tests__/ChosenTipRackRender.test.tsx diff --git a/app/src/organisms/CalibrationPanels/__tests__/CompleteConfirmation.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/__tests__/CompleteConfirmation.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/__tests__/CompleteConfirmation.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/__tests__/CompleteConfirmation.test.tsx diff --git a/app/src/organisms/CalibrationPanels/__tests__/ConfirmCrashRecovery.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/__tests__/ConfirmCrashRecovery.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/__tests__/ConfirmCrashRecovery.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/__tests__/ConfirmCrashRecovery.test.tsx diff --git a/app/src/organisms/CalibrationPanels/__tests__/ConfirmExit.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/__tests__/ConfirmExit.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/__tests__/ConfirmExit.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/__tests__/ConfirmExit.test.tsx diff --git a/app/src/organisms/CalibrationPanels/__tests__/DeckSetup.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/__tests__/DeckSetup.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/__tests__/DeckSetup.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/__tests__/DeckSetup.test.tsx diff --git a/app/src/organisms/CalibrationPanels/__tests__/MeasureNozzle.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/__tests__/MeasureNozzle.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/__tests__/MeasureNozzle.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/__tests__/MeasureNozzle.test.tsx diff --git a/app/src/organisms/CalibrationPanels/__tests__/MeasureTip.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/__tests__/MeasureTip.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/__tests__/MeasureTip.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/__tests__/MeasureTip.test.tsx diff --git a/app/src/organisms/CalibrationPanels/__tests__/SaveXYPoint.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/__tests__/SaveXYPoint.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/__tests__/SaveXYPoint.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/__tests__/SaveXYPoint.test.tsx diff --git a/app/src/organisms/CalibrationPanels/__tests__/SaveZPoint.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/__tests__/SaveZPoint.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/__tests__/SaveZPoint.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/__tests__/SaveZPoint.test.tsx diff --git a/app/src/organisms/CalibrationPanels/__tests__/TipConfirmation.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/__tests__/TipConfirmation.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/__tests__/TipConfirmation.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/__tests__/TipConfirmation.test.tsx diff --git a/app/src/organisms/CalibrationPanels/__tests__/TipPickUp.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/__tests__/TipPickUp.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/__tests__/TipPickUp.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/__tests__/TipPickUp.test.tsx diff --git a/app/src/organisms/CalibrationPanels/__tests__/useConfirmCrashRecovery.test.tsx b/app/src/organisms/Desktop/CalibrationPanels/__tests__/useConfirmCrashRecovery.test.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/__tests__/useConfirmCrashRecovery.test.tsx rename to app/src/organisms/Desktop/CalibrationPanels/__tests__/useConfirmCrashRecovery.test.tsx diff --git a/app/src/organisms/CalibrationPanels/constants.ts b/app/src/organisms/Desktop/CalibrationPanels/constants.ts similarity index 100% rename from app/src/organisms/CalibrationPanels/constants.ts rename to app/src/organisms/Desktop/CalibrationPanels/constants.ts diff --git a/app/src/organisms/CalibrationPanels/index.ts b/app/src/organisms/Desktop/CalibrationPanels/index.ts similarity index 92% rename from app/src/organisms/CalibrationPanels/index.ts rename to app/src/organisms/Desktop/CalibrationPanels/index.ts index 820e397e9e5..735b87cc473 100644 --- a/app/src/organisms/CalibrationPanels/index.ts +++ b/app/src/organisms/Desktop/CalibrationPanels/index.ts @@ -7,7 +7,6 @@ export { MeasureTip } from './MeasureTip' export { SaveZPoint } from './SaveZPoint' export { SaveXYPoint } from './SaveXYPoint' export { CompleteConfirmation } from './CompleteConfirmation' -export { NeedHelpLink } from './NeedHelpLink' export { LoadingState } from './LoadingState' export { ConfirmExit } from './ConfirmExit' export * from './constants' diff --git a/app/src/organisms/CalibrationPanels/styles.module.css b/app/src/organisms/Desktop/CalibrationPanels/styles.module.css similarity index 100% rename from app/src/organisms/CalibrationPanels/styles.module.css rename to app/src/organisms/Desktop/CalibrationPanels/styles.module.css diff --git a/app/src/organisms/CalibrationPanels/types.ts b/app/src/organisms/Desktop/CalibrationPanels/types.ts similarity index 100% rename from app/src/organisms/CalibrationPanels/types.ts rename to app/src/organisms/Desktop/CalibrationPanels/types.ts diff --git a/app/src/organisms/CalibrationPanels/useConfirmCrashRecovery.tsx b/app/src/organisms/Desktop/CalibrationPanels/useConfirmCrashRecovery.tsx similarity index 100% rename from app/src/organisms/CalibrationPanels/useConfirmCrashRecovery.tsx rename to app/src/organisms/Desktop/CalibrationPanels/useConfirmCrashRecovery.tsx diff --git a/app/src/organisms/CalibrationPanels/utils.ts b/app/src/organisms/Desktop/CalibrationPanels/utils.ts similarity index 100% rename from app/src/organisms/CalibrationPanels/utils.ts rename to app/src/organisms/Desktop/CalibrationPanels/utils.ts diff --git a/app/src/organisms/CalibrationStatusCard/__tests__/CalibrationStatusCard.test.tsx b/app/src/organisms/Desktop/CalibrationStatusCard/__tests__/CalibrationStatusCard.test.tsx similarity index 100% rename from app/src/organisms/CalibrationStatusCard/__tests__/CalibrationStatusCard.test.tsx rename to app/src/organisms/Desktop/CalibrationStatusCard/__tests__/CalibrationStatusCard.test.tsx diff --git a/app/src/organisms/CalibrationStatusCard/index.tsx b/app/src/organisms/Desktop/CalibrationStatusCard/index.tsx similarity index 100% rename from app/src/organisms/CalibrationStatusCard/index.tsx rename to app/src/organisms/Desktop/CalibrationStatusCard/index.tsx diff --git a/app/src/organisms/CalibrationTaskList/__tests__/CalibrationTaskList.test.tsx b/app/src/organisms/Desktop/CalibrationTaskList/__tests__/CalibrationTaskList.test.tsx similarity index 100% rename from app/src/organisms/CalibrationTaskList/__tests__/CalibrationTaskList.test.tsx rename to app/src/organisms/Desktop/CalibrationTaskList/__tests__/CalibrationTaskList.test.tsx diff --git a/app/src/organisms/CalibrationTaskList/index.tsx b/app/src/organisms/Desktop/CalibrationTaskList/index.tsx similarity index 97% rename from app/src/organisms/CalibrationTaskList/index.tsx rename to app/src/organisms/Desktop/CalibrationTaskList/index.tsx index 8596e82e77c..f0826dce48d 100644 --- a/app/src/organisms/CalibrationTaskList/index.tsx +++ b/app/src/organisms/Desktop/CalibrationTaskList/index.tsx @@ -18,9 +18,9 @@ import { } from '@opentrons/components' import { StatusLabel } from '/app/atoms/StatusLabel' -import { TaskList } from '../TaskList' +import { TaskList } from '/app/molecules/TaskList' -import { useCalibrationTaskList } from '/app/organisms/Devices/hooks' +import { useCalibrationTaskList } from '/app/organisms/Desktop/Devices/hooks' import { useAttachedPipettes } from '/app/resources/instruments' import { useCurrentRunId, useRunHasStarted } from '/app/resources/runs' @@ -28,7 +28,7 @@ import type { DashboardCalOffsetInvoker, DashboardCalTipLengthInvoker, DashboardCalDeckInvoker, -} from '/app/organisms/Devices/hooks' +} from '/app/organisms/Desktop/Devices/hooks' interface CalibrationTaskListProps { robotName: string diff --git a/app/src/organisms/CheckCalibration/ResultsSummary/CalibrationHealthCheckResults.tsx b/app/src/organisms/Desktop/CheckCalibration/ResultsSummary/CalibrationHealthCheckResults.tsx similarity index 100% rename from app/src/organisms/CheckCalibration/ResultsSummary/CalibrationHealthCheckResults.tsx rename to app/src/organisms/Desktop/CheckCalibration/ResultsSummary/CalibrationHealthCheckResults.tsx diff --git a/app/src/organisms/CheckCalibration/ResultsSummary/CalibrationResult.tsx b/app/src/organisms/Desktop/CheckCalibration/ResultsSummary/CalibrationResult.tsx similarity index 100% rename from app/src/organisms/CheckCalibration/ResultsSummary/CalibrationResult.tsx rename to app/src/organisms/Desktop/CheckCalibration/ResultsSummary/CalibrationResult.tsx diff --git a/app/src/organisms/CheckCalibration/ResultsSummary/RenderMountInformation.tsx b/app/src/organisms/Desktop/CheckCalibration/ResultsSummary/RenderMountInformation.tsx similarity index 100% rename from app/src/organisms/CheckCalibration/ResultsSummary/RenderMountInformation.tsx rename to app/src/organisms/Desktop/CheckCalibration/ResultsSummary/RenderMountInformation.tsx diff --git a/app/src/organisms/CheckCalibration/ResultsSummary/RenderResult.tsx b/app/src/organisms/Desktop/CheckCalibration/ResultsSummary/RenderResult.tsx similarity index 100% rename from app/src/organisms/CheckCalibration/ResultsSummary/RenderResult.tsx rename to app/src/organisms/Desktop/CheckCalibration/ResultsSummary/RenderResult.tsx diff --git a/app/src/organisms/CheckCalibration/ResultsSummary/__tests__/CalibrationHealthCheckResults.test.tsx b/app/src/organisms/Desktop/CheckCalibration/ResultsSummary/__tests__/CalibrationHealthCheckResults.test.tsx similarity index 100% rename from app/src/organisms/CheckCalibration/ResultsSummary/__tests__/CalibrationHealthCheckResults.test.tsx rename to app/src/organisms/Desktop/CheckCalibration/ResultsSummary/__tests__/CalibrationHealthCheckResults.test.tsx diff --git a/app/src/organisms/CheckCalibration/ResultsSummary/__tests__/CalibrationResult.test.tsx b/app/src/organisms/Desktop/CheckCalibration/ResultsSummary/__tests__/CalibrationResult.test.tsx similarity index 100% rename from app/src/organisms/CheckCalibration/ResultsSummary/__tests__/CalibrationResult.test.tsx rename to app/src/organisms/Desktop/CheckCalibration/ResultsSummary/__tests__/CalibrationResult.test.tsx diff --git a/app/src/organisms/CheckCalibration/ResultsSummary/__tests__/RenderMountInformation.test.tsx b/app/src/organisms/Desktop/CheckCalibration/ResultsSummary/__tests__/RenderMountInformation.test.tsx similarity index 100% rename from app/src/organisms/CheckCalibration/ResultsSummary/__tests__/RenderMountInformation.test.tsx rename to app/src/organisms/Desktop/CheckCalibration/ResultsSummary/__tests__/RenderMountInformation.test.tsx diff --git a/app/src/organisms/CheckCalibration/ResultsSummary/__tests__/RenderResult.test.tsx b/app/src/organisms/Desktop/CheckCalibration/ResultsSummary/__tests__/RenderResult.test.tsx similarity index 100% rename from app/src/organisms/CheckCalibration/ResultsSummary/__tests__/RenderResult.test.tsx rename to app/src/organisms/Desktop/CheckCalibration/ResultsSummary/__tests__/RenderResult.test.tsx diff --git a/app/src/organisms/CheckCalibration/ResultsSummary/__tests__/ResultsSummary.test.tsx b/app/src/organisms/Desktop/CheckCalibration/ResultsSummary/__tests__/ResultsSummary.test.tsx similarity index 97% rename from app/src/organisms/CheckCalibration/ResultsSummary/__tests__/ResultsSummary.test.tsx rename to app/src/organisms/Desktop/CheckCalibration/ResultsSummary/__tests__/ResultsSummary.test.tsx index 5ec0334fdb5..246513300a9 100644 --- a/app/src/organisms/CheckCalibration/ResultsSummary/__tests__/ResultsSummary.test.tsx +++ b/app/src/organisms/Desktop/CheckCalibration/ResultsSummary/__tests__/ResultsSummary.test.tsx @@ -12,7 +12,7 @@ import { CalibrationResult } from '../CalibrationResult' import { ResultsSummary } from '../' -import type { CalibrationPanelProps } from '/app/organisms/CalibrationPanels/types' +import type { CalibrationPanelProps } from '/app/organisms/Desktop/CalibrationPanels/types' // file-saver has circular dep, need to mock with factory to prevent error vi.mock('file-saver', async importOriginal => { diff --git a/app/src/organisms/CheckCalibration/ResultsSummary/index.tsx b/app/src/organisms/Desktop/CheckCalibration/ResultsSummary/index.tsx similarity index 98% rename from app/src/organisms/CheckCalibration/ResultsSummary/index.tsx rename to app/src/organisms/Desktop/CheckCalibration/ResultsSummary/index.tsx index e7d7e79c57e..1bc2446ae4b 100644 --- a/app/src/organisms/CheckCalibration/ResultsSummary/index.tsx +++ b/app/src/organisms/Desktop/CheckCalibration/ResultsSummary/index.tsx @@ -22,7 +22,7 @@ import { RenderMountInformation } from './RenderMountInformation' import { CalibrationResult } from './CalibrationResult' import type { Mount } from '/app/redux/pipettes/types' -import type { CalibrationPanelProps } from '/app/organisms/CalibrationPanels/types' +import type { CalibrationPanelProps } from '/app/organisms/Desktop/CalibrationPanels/types' import type { CalibrationCheckInstrument, CalibrationCheckComparisonsPerCalibration, diff --git a/app/src/organisms/CheckCalibration/ReturnTip.tsx b/app/src/organisms/Desktop/CheckCalibration/ReturnTip.tsx similarity index 92% rename from app/src/organisms/CheckCalibration/ReturnTip.tsx rename to app/src/organisms/Desktop/CheckCalibration/ReturnTip.tsx index c90c8ec1a7a..a996ee7f566 100644 --- a/app/src/organisms/CheckCalibration/ReturnTip.tsx +++ b/app/src/organisms/Desktop/CheckCalibration/ReturnTip.tsx @@ -10,10 +10,10 @@ import { import uniq from 'lodash/uniq' import * as Sessions from '/app/redux/sessions' -import type { CalibrationPanelProps } from '/app/organisms/CalibrationPanels/types' +import type { CalibrationPanelProps } from '/app/organisms/Desktop/CalibrationPanels/types' import type { SessionCommandString } from '/app/redux/sessions/types' import { useTranslation } from 'react-i18next' -import { NeedHelpLink } from '../CalibrationPanels' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' export function ReturnTip(props: CalibrationPanelProps): JSX.Element { const { t } = useTranslation('robot_calibration') diff --git a/app/src/organisms/CheckCalibration/ThresholdValue.tsx b/app/src/organisms/Desktop/CheckCalibration/ThresholdValue.tsx similarity index 100% rename from app/src/organisms/CheckCalibration/ThresholdValue.tsx rename to app/src/organisms/Desktop/CheckCalibration/ThresholdValue.tsx diff --git a/app/src/organisms/CheckCalibration/__tests__/CheckCalibration.test.tsx b/app/src/organisms/Desktop/CheckCalibration/__tests__/CheckCalibration.test.tsx similarity index 100% rename from app/src/organisms/CheckCalibration/__tests__/CheckCalibration.test.tsx rename to app/src/organisms/Desktop/CheckCalibration/__tests__/CheckCalibration.test.tsx diff --git a/app/src/organisms/CheckCalibration/__tests__/ReturnTip.test.tsx b/app/src/organisms/Desktop/CheckCalibration/__tests__/ReturnTip.test.tsx similarity index 100% rename from app/src/organisms/CheckCalibration/__tests__/ReturnTip.test.tsx rename to app/src/organisms/Desktop/CheckCalibration/__tests__/ReturnTip.test.tsx diff --git a/app/src/organisms/CheckCalibration/index.tsx b/app/src/organisms/Desktop/CheckCalibration/index.tsx similarity index 97% rename from app/src/organisms/CheckCalibration/index.tsx rename to app/src/organisms/Desktop/CheckCalibration/index.tsx index 4711d3208e1..f2dae1c242e 100644 --- a/app/src/organisms/CheckCalibration/index.tsx +++ b/app/src/organisms/Desktop/CheckCalibration/index.tsx @@ -17,9 +17,9 @@ import { MeasureTip, LoadingState, ConfirmExit, -} from '/app/organisms/CalibrationPanels' +} from '/app/organisms/Desktop/CalibrationPanels' import { WizardHeader } from '/app/molecules/WizardHeader' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { ReturnTip } from './ReturnTip' import { ResultsSummary } from './ResultsSummary' @@ -31,7 +31,7 @@ import type { SessionCommandParams, } from '/app/redux/sessions/types' -import type { CalibrationPanelProps } from '/app/organisms/CalibrationPanels/types' +import type { CalibrationPanelProps } from '/app/organisms/Desktop/CalibrationPanels/types' import type { CalibrationCheckParentProps } from './types' import { CHECK_PIPETTE_RANK_FIRST } from '/app/redux/sessions' diff --git a/app/src/organisms/CheckCalibration/styles.module.css b/app/src/organisms/Desktop/CheckCalibration/styles.module.css similarity index 100% rename from app/src/organisms/CheckCalibration/styles.module.css rename to app/src/organisms/Desktop/CheckCalibration/styles.module.css diff --git a/app/src/organisms/CheckCalibration/types.ts b/app/src/organisms/Desktop/CheckCalibration/types.ts similarity index 100% rename from app/src/organisms/CheckCalibration/types.ts rename to app/src/organisms/Desktop/CheckCalibration/types.ts diff --git a/app/src/organisms/ChooseProtocolSlideout/__tests__/ChooseProtocolSlideout.test.tsx b/app/src/organisms/Desktop/ChooseProtocolSlideout/__tests__/ChooseProtocolSlideout.test.tsx similarity index 96% rename from app/src/organisms/ChooseProtocolSlideout/__tests__/ChooseProtocolSlideout.test.tsx rename to app/src/organisms/Desktop/ChooseProtocolSlideout/__tests__/ChooseProtocolSlideout.test.tsx index a31c6a8236b..fc6a0f281a9 100644 --- a/app/src/organisms/ChooseProtocolSlideout/__tests__/ChooseProtocolSlideout.test.tsx +++ b/app/src/organisms/Desktop/ChooseProtocolSlideout/__tests__/ChooseProtocolSlideout.test.tsx @@ -15,15 +15,17 @@ import { storedProtocolData as storedProtocolDataFixture, storedProtocolDataWithoutRunTimeParameters, } from '/app/redux/protocol-storage/__fixtures__' -import { useTrackCreateProtocolRunEvent } from '/app/organisms/Devices/hooks' -import { useCreateRunFromProtocol } from '../../ChooseRobotToRunProtocolSlideout/useCreateRunFromProtocol' +import { useTrackCreateProtocolRunEvent } from '/app/organisms/Desktop/Devices/hooks' +import { useCreateRunFromProtocol } from '/app/organisms/Desktop/ChooseRobotToRunProtocolSlideout/useCreateRunFromProtocol' import { ChooseProtocolSlideout } from '../' import { useNotifyDataReady } from '/app/resources/useNotifyDataReady' import type { ProtocolAnalysisOutput } from '@opentrons/shared-data' -vi.mock('../../ChooseRobotToRunProtocolSlideout/useCreateRunFromProtocol') +vi.mock( + '/app/organisms/Desktop/ChooseRobotToRunProtocolSlideout/useCreateRunFromProtocol' +) vi.mock('/app/redux/protocol-storage') -vi.mock('/app/organisms/Devices/hooks') +vi.mock('/app/organisms/Desktop/Devices/hooks') vi.mock('/app/redux/config') vi.mock('/app/resources/useNotifyDataReady') diff --git a/app/src/organisms/ChooseProtocolSlideout/index.tsx b/app/src/organisms/Desktop/ChooseProtocolSlideout/index.tsx similarity index 98% rename from app/src/organisms/ChooseProtocolSlideout/index.tsx rename to app/src/organisms/Desktop/ChooseProtocolSlideout/index.tsx index bd771f92f40..a4824c76c5c 100644 --- a/app/src/organisms/ChooseProtocolSlideout/index.tsx +++ b/app/src/organisms/Desktop/ChooseProtocolSlideout/index.tsx @@ -43,7 +43,7 @@ import { } from '@opentrons/react-api-client' import { sortRuntimeParameters } from '@opentrons/shared-data' -import { useLogger } from '../../logger' +import { useLogger } from '/app/logger' import { OPENTRONS_USB } from '/app/redux/discovery' import { getStoredProtocols } from '/app/redux/protocol-storage' import { appShellRequestor } from '/app/redux/shell/remote' @@ -51,16 +51,16 @@ import { MultiSlideout } from '/app/atoms/Slideout/MultiSlideout' import { ToggleButton } from '/app/atoms/buttons' import { MiniCard } from '/app/molecules/MiniCard' import { UploadInput } from '/app/molecules/UploadInput' -import { useTrackCreateProtocolRunEvent } from '../Devices/hooks' -import { useCreateRunFromProtocol } from '../ChooseRobotToRunProtocolSlideout/useCreateRunFromProtocol' -import { ApplyHistoricOffsets } from '../ApplyHistoricOffsets' -import { useOffsetCandidatesForAnalysis } from '../ApplyHistoricOffsets/hooks/useOffsetCandidatesForAnalysis' +import { useTrackCreateProtocolRunEvent } from '/app/organisms/Desktop/Devices/hooks' +import { useCreateRunFromProtocol } from '/app/organisms/Desktop/ChooseRobotToRunProtocolSlideout/useCreateRunFromProtocol' +import { ApplyHistoricOffsets } from '/app/organisms/ApplyHistoricOffsets' +import { useOffsetCandidatesForAnalysis } from '/app/organisms/ApplyHistoricOffsets/hooks/useOffsetCandidatesForAnalysis' import { FileCard } from '../ChooseRobotSlideout/FileCard' import { getRunTimeParameterFilesForRun, getRunTimeParameterValuesForRun, } from '/app/transformations/runs' -import { getAnalysisStatus } from '../ProtocolsLanding/utils' +import { getAnalysisStatus } from '/app/organisms/Desktop/ProtocolsLanding/utils' import type { DropdownOption } from '@opentrons/components' import type { RunTimeParameter } from '@opentrons/shared-data' diff --git a/app/src/organisms/ChooseRobotSlideout/AvailableRobotOption.tsx b/app/src/organisms/Desktop/ChooseRobotSlideout/AvailableRobotOption.tsx similarity index 100% rename from app/src/organisms/ChooseRobotSlideout/AvailableRobotOption.tsx rename to app/src/organisms/Desktop/ChooseRobotSlideout/AvailableRobotOption.tsx diff --git a/app/src/organisms/ChooseRobotSlideout/FileCard.tsx b/app/src/organisms/Desktop/ChooseRobotSlideout/FileCard.tsx similarity index 100% rename from app/src/organisms/ChooseRobotSlideout/FileCard.tsx rename to app/src/organisms/Desktop/ChooseRobotSlideout/FileCard.tsx diff --git a/app/src/organisms/ChooseRobotSlideout/__tests__/ChooseRobotSlideout.test.tsx b/app/src/organisms/Desktop/ChooseRobotSlideout/__tests__/ChooseRobotSlideout.test.tsx similarity index 100% rename from app/src/organisms/ChooseRobotSlideout/__tests__/ChooseRobotSlideout.test.tsx rename to app/src/organisms/Desktop/ChooseRobotSlideout/__tests__/ChooseRobotSlideout.test.tsx diff --git a/app/src/organisms/ChooseRobotSlideout/__tests__/FileCard.test.tsx b/app/src/organisms/Desktop/ChooseRobotSlideout/__tests__/FileCard.test.tsx similarity index 100% rename from app/src/organisms/ChooseRobotSlideout/__tests__/FileCard.test.tsx rename to app/src/organisms/Desktop/ChooseRobotSlideout/__tests__/FileCard.test.tsx diff --git a/app/src/organisms/ChooseRobotSlideout/index.tsx b/app/src/organisms/Desktop/ChooseRobotSlideout/index.tsx similarity index 99% rename from app/src/organisms/ChooseRobotSlideout/index.tsx rename to app/src/organisms/Desktop/ChooseRobotSlideout/index.tsx index 1362e097a5b..1d7dc4e983f 100644 --- a/app/src/organisms/ChooseRobotSlideout/index.tsx +++ b/app/src/organisms/Desktop/ChooseRobotSlideout/index.tsx @@ -58,7 +58,7 @@ import { FileCard } from './FileCard' import type { RobotType, RunTimeParameter } from '@opentrons/shared-data' import type { DropdownOption } from '@opentrons/components' import type { SlideoutProps } from '/app/atoms/Slideout' -import type { UseCreateRun } from '/app/organisms/ChooseRobotToRunProtocolSlideout/useCreateRunFromProtocol' +import type { UseCreateRun } from '/app/organisms/Desktop/ChooseRobotToRunProtocolSlideout/useCreateRunFromProtocol' import type { State, Dispatch } from '/app/redux/types' import type { Robot } from '/app/redux/discovery/types' diff --git a/app/src/organisms/ChooseRobotToRunProtocolSlideout/__tests__/ChooseRobotToRunProtocolSlideout.test.tsx b/app/src/organisms/Desktop/ChooseRobotToRunProtocolSlideout/__tests__/ChooseRobotToRunProtocolSlideout.test.tsx similarity index 98% rename from app/src/organisms/ChooseRobotToRunProtocolSlideout/__tests__/ChooseRobotToRunProtocolSlideout.test.tsx rename to app/src/organisms/Desktop/ChooseRobotToRunProtocolSlideout/__tests__/ChooseRobotToRunProtocolSlideout.test.tsx index 95e15dfcb77..5c7e858fb38 100644 --- a/app/src/organisms/ChooseRobotToRunProtocolSlideout/__tests__/ChooseRobotToRunProtocolSlideout.test.tsx +++ b/app/src/organisms/Desktop/ChooseRobotToRunProtocolSlideout/__tests__/ChooseRobotToRunProtocolSlideout.test.tsx @@ -6,7 +6,7 @@ import { when } from 'vitest-when' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { useTrackCreateProtocolRunEvent } from '/app/organisms/Devices/hooks' +import { useTrackCreateProtocolRunEvent } from '/app/organisms/Desktop/Devices/hooks' import { useCurrentRunStatus } from '/app/organisms/RunTimeControl/hooks' import { getConnectableRobots, @@ -27,14 +27,14 @@ import { storedProtocolDataWithCsvRunTimeParameter, } from '/app/redux/protocol-storage/__fixtures__' import { useCreateRunFromProtocol } from '../useCreateRunFromProtocol' -import { useOffsetCandidatesForAnalysis } from '../../ApplyHistoricOffsets/hooks/useOffsetCandidatesForAnalysis' +import { useOffsetCandidatesForAnalysis } from '/app/organisms/ApplyHistoricOffsets/hooks/useOffsetCandidatesForAnalysis' import { ChooseRobotToRunProtocolSlideout } from '../' import { useNotifyDataReady } from '/app/resources/useNotifyDataReady' import { useCurrentRunId, useCloseCurrentRun } from '/app/resources/runs' import type { State } from '/app/redux/types' -vi.mock('/app/organisms/Devices/hooks') +vi.mock('/app/organisms/Desktop/Devices/hooks') vi.mock('/app/organisms/ProtocolUpload/hooks') vi.mock('/app/organisms/RunTimeControl/hooks') vi.mock('/app/redux/config') @@ -42,7 +42,9 @@ vi.mock('/app/redux/discovery') vi.mock('/app/redux/robot-update') vi.mock('/app/redux/networking') vi.mock('../useCreateRunFromProtocol') -vi.mock('../../ApplyHistoricOffsets/hooks/useOffsetCandidatesForAnalysis') +vi.mock( + '/app/organisms/ApplyHistoricOffsets/hooks/useOffsetCandidatesForAnalysis' +) vi.mock('/app/resources/useNotifyDataReady') vi.mock('/app/resources/runs') diff --git a/app/src/organisms/ChooseRobotToRunProtocolSlideout/index.tsx b/app/src/organisms/Desktop/ChooseRobotToRunProtocolSlideout/index.tsx similarity index 97% rename from app/src/organisms/ChooseRobotToRunProtocolSlideout/index.tsx rename to app/src/organisms/Desktop/ChooseRobotToRunProtocolSlideout/index.tsx index 9b3446bf3d2..f4850a649cf 100644 --- a/app/src/organisms/ChooseRobotToRunProtocolSlideout/index.tsx +++ b/app/src/organisms/Desktop/ChooseRobotToRunProtocolSlideout/index.tsx @@ -24,13 +24,13 @@ import { import { useIsRobotOnWrongVersionOfSoftware } from '/app/redux/robot-update' import { OPENTRONS_USB } from '/app/redux/discovery' import { appShellRequestor } from '/app/redux/shell/remote' -import { useTrackCreateProtocolRunEvent } from '../Devices/hooks' +import { useTrackCreateProtocolRunEvent } from '/app/organisms/Desktop/Devices/hooks' import { getRunTimeParameterFilesForRun, getRunTimeParameterValuesForRun, } from '/app/transformations/runs' -import { ApplyHistoricOffsets } from '../ApplyHistoricOffsets' -import { useOffsetCandidatesForAnalysis } from '../ApplyHistoricOffsets/hooks/useOffsetCandidatesForAnalysis' +import { ApplyHistoricOffsets } from '/app/organisms/ApplyHistoricOffsets' +import { useOffsetCandidatesForAnalysis } from '/app/organisms/ApplyHistoricOffsets/hooks/useOffsetCandidatesForAnalysis' import { ChooseRobotSlideout } from '../ChooseRobotSlideout' import { useCreateRunFromProtocol } from './useCreateRunFromProtocol' import type { StyleProps } from '@opentrons/components' diff --git a/app/src/organisms/ChooseRobotToRunProtocolSlideout/useCreateRunFromProtocol.ts b/app/src/organisms/Desktop/ChooseRobotToRunProtocolSlideout/useCreateRunFromProtocol.ts similarity index 100% rename from app/src/organisms/ChooseRobotToRunProtocolSlideout/useCreateRunFromProtocol.ts rename to app/src/organisms/Desktop/ChooseRobotToRunProtocolSlideout/useCreateRunFromProtocol.ts diff --git a/app/src/organisms/Devices/CalibrationStatusBanner.tsx b/app/src/organisms/Desktop/Devices/CalibrationStatusBanner.tsx similarity index 100% rename from app/src/organisms/Devices/CalibrationStatusBanner.tsx rename to app/src/organisms/Desktop/Devices/CalibrationStatusBanner.tsx diff --git a/app/src/organisms/ChangePipette/CheckPipettesButton.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/CheckPipettesButton.tsx similarity index 100% rename from app/src/organisms/ChangePipette/CheckPipettesButton.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/CheckPipettesButton.tsx diff --git a/app/src/organisms/ChangePipette/ClearDeckModal.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/ClearDeckModal.tsx similarity index 100% rename from app/src/organisms/ChangePipette/ClearDeckModal.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/ClearDeckModal.tsx diff --git a/app/src/organisms/ChangePipette/ConfirmPipette.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/ConfirmPipette.tsx similarity index 100% rename from app/src/organisms/ChangePipette/ConfirmPipette.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/ConfirmPipette.tsx diff --git a/app/src/organisms/ChangePipette/ExitModal.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/ExitModal.tsx similarity index 100% rename from app/src/organisms/ChangePipette/ExitModal.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/ExitModal.tsx diff --git a/app/src/organisms/ChangePipette/InstructionStep.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/InstructionStep.tsx similarity index 100% rename from app/src/organisms/ChangePipette/InstructionStep.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/InstructionStep.tsx diff --git a/app/src/organisms/ChangePipette/Instructions.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/Instructions.tsx similarity index 100% rename from app/src/organisms/ChangePipette/Instructions.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/Instructions.tsx diff --git a/app/src/organisms/ChangePipette/LevelPipette.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/LevelPipette.tsx similarity index 100% rename from app/src/organisms/ChangePipette/LevelPipette.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/LevelPipette.tsx diff --git a/app/src/organisms/ChangePipette/PipetteSelection.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/PipetteSelection.tsx similarity index 100% rename from app/src/organisms/ChangePipette/PipetteSelection.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/PipetteSelection.tsx diff --git a/app/src/organisms/ChangePipette/__tests__/ChangePipette.test.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/__tests__/ChangePipette.test.tsx similarity index 100% rename from app/src/organisms/ChangePipette/__tests__/ChangePipette.test.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/__tests__/ChangePipette.test.tsx diff --git a/app/src/organisms/ChangePipette/__tests__/CheckPipettesButton.test.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/__tests__/CheckPipettesButton.test.tsx similarity index 100% rename from app/src/organisms/ChangePipette/__tests__/CheckPipettesButton.test.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/__tests__/CheckPipettesButton.test.tsx diff --git a/app/src/organisms/ChangePipette/__tests__/ClearDeckModal.test.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/__tests__/ClearDeckModal.test.tsx similarity index 100% rename from app/src/organisms/ChangePipette/__tests__/ClearDeckModal.test.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/__tests__/ClearDeckModal.test.tsx diff --git a/app/src/organisms/ChangePipette/__tests__/ConfirmPipette.test.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/__tests__/ConfirmPipette.test.tsx similarity index 100% rename from app/src/organisms/ChangePipette/__tests__/ConfirmPipette.test.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/__tests__/ConfirmPipette.test.tsx diff --git a/app/src/organisms/ChangePipette/__tests__/ExitModal.test.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/__tests__/ExitModal.test.tsx similarity index 100% rename from app/src/organisms/ChangePipette/__tests__/ExitModal.test.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/__tests__/ExitModal.test.tsx diff --git a/app/src/organisms/ChangePipette/__tests__/InstructionStep.test.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/__tests__/InstructionStep.test.tsx similarity index 100% rename from app/src/organisms/ChangePipette/__tests__/InstructionStep.test.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/__tests__/InstructionStep.test.tsx diff --git a/app/src/organisms/ChangePipette/__tests__/Instructions.test.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/__tests__/Instructions.test.tsx similarity index 100% rename from app/src/organisms/ChangePipette/__tests__/Instructions.test.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/__tests__/Instructions.test.tsx diff --git a/app/src/organisms/ChangePipette/__tests__/LevelPipette.test.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/__tests__/LevelPipette.test.tsx similarity index 100% rename from app/src/organisms/ChangePipette/__tests__/LevelPipette.test.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/__tests__/LevelPipette.test.tsx diff --git a/app/src/organisms/ChangePipette/__tests__/PipetteSelection.test.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/__tests__/PipetteSelection.test.tsx similarity index 100% rename from app/src/organisms/ChangePipette/__tests__/PipetteSelection.test.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/__tests__/PipetteSelection.test.tsx diff --git a/app/src/organisms/ChangePipette/constants.ts b/app/src/organisms/Desktop/Devices/ChangePipette/constants.ts similarity index 100% rename from app/src/organisms/ChangePipette/constants.ts rename to app/src/organisms/Desktop/Devices/ChangePipette/constants.ts diff --git a/app/src/organisms/ChangePipette/index.tsx b/app/src/organisms/Desktop/Devices/ChangePipette/index.tsx similarity index 100% rename from app/src/organisms/ChangePipette/index.tsx rename to app/src/organisms/Desktop/Devices/ChangePipette/index.tsx diff --git a/app/src/organisms/ChangePipette/types.ts b/app/src/organisms/Desktop/Devices/ChangePipette/types.ts similarity index 100% rename from app/src/organisms/ChangePipette/types.ts rename to app/src/organisms/Desktop/Devices/ChangePipette/types.ts diff --git a/app/src/organisms/ConfigurePipette/ConfigErrorBanner.tsx b/app/src/organisms/Desktop/Devices/ConfigurePipette/ConfigErrorBanner.tsx similarity index 100% rename from app/src/organisms/ConfigurePipette/ConfigErrorBanner.tsx rename to app/src/organisms/Desktop/Devices/ConfigurePipette/ConfigErrorBanner.tsx diff --git a/app/src/organisms/ConfigurePipette/ConfigForm.tsx b/app/src/organisms/Desktop/Devices/ConfigurePipette/ConfigForm.tsx similarity index 100% rename from app/src/organisms/ConfigurePipette/ConfigForm.tsx rename to app/src/organisms/Desktop/Devices/ConfigurePipette/ConfigForm.tsx diff --git a/app/src/organisms/ConfigurePipette/ConfigFormGroup.tsx b/app/src/organisms/Desktop/Devices/ConfigurePipette/ConfigFormGroup.tsx similarity index 100% rename from app/src/organisms/ConfigurePipette/ConfigFormGroup.tsx rename to app/src/organisms/Desktop/Devices/ConfigurePipette/ConfigFormGroup.tsx diff --git a/app/src/organisms/ConfigurePipette/ConfigFormResetButton.tsx b/app/src/organisms/Desktop/Devices/ConfigurePipette/ConfigFormResetButton.tsx similarity index 100% rename from app/src/organisms/ConfigurePipette/ConfigFormResetButton.tsx rename to app/src/organisms/Desktop/Devices/ConfigurePipette/ConfigFormResetButton.tsx diff --git a/app/src/organisms/ConfigurePipette/ConfigFormSubmitButton.tsx b/app/src/organisms/Desktop/Devices/ConfigurePipette/ConfigFormSubmitButton.tsx similarity index 100% rename from app/src/organisms/ConfigurePipette/ConfigFormSubmitButton.tsx rename to app/src/organisms/Desktop/Devices/ConfigurePipette/ConfigFormSubmitButton.tsx diff --git a/app/src/organisms/ConfigurePipette/ConfigMessage.tsx b/app/src/organisms/Desktop/Devices/ConfigurePipette/ConfigMessage.tsx similarity index 100% rename from app/src/organisms/ConfigurePipette/ConfigMessage.tsx rename to app/src/organisms/Desktop/Devices/ConfigurePipette/ConfigMessage.tsx diff --git a/app/src/organisms/ConfigurePipette/__tests__/ConfigFormResetButton.test.tsx b/app/src/organisms/Desktop/Devices/ConfigurePipette/__tests__/ConfigFormResetButton.test.tsx similarity index 100% rename from app/src/organisms/ConfigurePipette/__tests__/ConfigFormResetButton.test.tsx rename to app/src/organisms/Desktop/Devices/ConfigurePipette/__tests__/ConfigFormResetButton.test.tsx diff --git a/app/src/organisms/ConfigurePipette/__tests__/ConfigFormSubmitButton.test.tsx b/app/src/organisms/Desktop/Devices/ConfigurePipette/__tests__/ConfigFormSubmitButton.test.tsx similarity index 100% rename from app/src/organisms/ConfigurePipette/__tests__/ConfigFormSubmitButton.test.tsx rename to app/src/organisms/Desktop/Devices/ConfigurePipette/__tests__/ConfigFormSubmitButton.test.tsx diff --git a/app/src/organisms/ConfigurePipette/__tests__/ConfigurePipette.test.tsx b/app/src/organisms/Desktop/Devices/ConfigurePipette/__tests__/ConfigurePipette.test.tsx similarity index 100% rename from app/src/organisms/ConfigurePipette/__tests__/ConfigurePipette.test.tsx rename to app/src/organisms/Desktop/Devices/ConfigurePipette/__tests__/ConfigurePipette.test.tsx diff --git a/app/src/organisms/ConfigurePipette/index.tsx b/app/src/organisms/Desktop/Devices/ConfigurePipette/index.tsx similarity index 100% rename from app/src/organisms/ConfigurePipette/index.tsx rename to app/src/organisms/Desktop/Devices/ConfigurePipette/index.tsx diff --git a/app/src/organisms/ConfigurePipette/styles.module.css b/app/src/organisms/Desktop/Devices/ConfigurePipette/styles.module.css similarity index 100% rename from app/src/organisms/ConfigurePipette/styles.module.css rename to app/src/organisms/Desktop/Devices/ConfigurePipette/styles.module.css diff --git a/app/src/organisms/Devices/ConnectionTroubleshootingModal.tsx b/app/src/organisms/Desktop/Devices/ConnectionTroubleshootingModal.tsx similarity index 100% rename from app/src/organisms/Devices/ConnectionTroubleshootingModal.tsx rename to app/src/organisms/Desktop/Devices/ConnectionTroubleshootingModal.tsx diff --git a/app/src/organisms/Devices/DevicesEmptyState.tsx b/app/src/organisms/Desktop/Devices/DevicesEmptyState.tsx similarity index 100% rename from app/src/organisms/Devices/DevicesEmptyState.tsx rename to app/src/organisms/Desktop/Devices/DevicesEmptyState.tsx diff --git a/app/src/organisms/Devices/DownloadCsvFileLink.tsx b/app/src/organisms/Desktop/Devices/DownloadCsvFileLink.tsx similarity index 100% rename from app/src/organisms/Devices/DownloadCsvFileLink.tsx rename to app/src/organisms/Desktop/Devices/DownloadCsvFileLink.tsx diff --git a/app/src/organisms/ErrorRecoveryBanner/__tests__/ErrorRecoveryBanner.test.tsx b/app/src/organisms/Desktop/Devices/ErrorRecoveryBanner/__tests__/ErrorRecoveryBanner.test.tsx similarity index 100% rename from app/src/organisms/ErrorRecoveryBanner/__tests__/ErrorRecoveryBanner.test.tsx rename to app/src/organisms/Desktop/Devices/ErrorRecoveryBanner/__tests__/ErrorRecoveryBanner.test.tsx diff --git a/app/src/organisms/ErrorRecoveryBanner/__tests__/useErrorRecoveryBanner.test.ts b/app/src/organisms/Desktop/Devices/ErrorRecoveryBanner/__tests__/useErrorRecoveryBanner.test.ts similarity index 100% rename from app/src/organisms/ErrorRecoveryBanner/__tests__/useErrorRecoveryBanner.test.ts rename to app/src/organisms/Desktop/Devices/ErrorRecoveryBanner/__tests__/useErrorRecoveryBanner.test.ts diff --git a/app/src/organisms/ErrorRecoveryBanner/index.tsx b/app/src/organisms/Desktop/Devices/ErrorRecoveryBanner/index.tsx similarity index 100% rename from app/src/organisms/ErrorRecoveryBanner/index.tsx rename to app/src/organisms/Desktop/Devices/ErrorRecoveryBanner/index.tsx diff --git a/app/src/organisms/Devices/EstopBanner.tsx b/app/src/organisms/Desktop/Devices/EstopBanner.tsx similarity index 97% rename from app/src/organisms/Devices/EstopBanner.tsx rename to app/src/organisms/Desktop/Devices/EstopBanner.tsx index 3573bd67d59..c1d434fa585 100644 --- a/app/src/organisms/Devices/EstopBanner.tsx +++ b/app/src/organisms/Desktop/Devices/EstopBanner.tsx @@ -14,7 +14,7 @@ import { PHYSICALLY_ENGAGED, LOGICALLY_ENGAGED, useEstopContext, -} from '../EmergencyStop' +} from '/app/organisms/EmergencyStop' import type { EstopState } from '@opentrons/api-client' diff --git a/app/src/organisms/GripperCard/AboutGripperSlideout.tsx b/app/src/organisms/Desktop/Devices/GripperCard/AboutGripperSlideout.tsx similarity index 100% rename from app/src/organisms/GripperCard/AboutGripperSlideout.tsx rename to app/src/organisms/Desktop/Devices/GripperCard/AboutGripperSlideout.tsx diff --git a/app/src/organisms/GripperCard/__tests__/AboutGripperSlideout.test.tsx b/app/src/organisms/Desktop/Devices/GripperCard/__tests__/AboutGripperSlideout.test.tsx similarity index 100% rename from app/src/organisms/GripperCard/__tests__/AboutGripperSlideout.test.tsx rename to app/src/organisms/Desktop/Devices/GripperCard/__tests__/AboutGripperSlideout.test.tsx diff --git a/app/src/organisms/GripperCard/__tests__/GripperCard.test.tsx b/app/src/organisms/Desktop/Devices/GripperCard/__tests__/GripperCard.test.tsx similarity index 98% rename from app/src/organisms/GripperCard/__tests__/GripperCard.test.tsx rename to app/src/organisms/Desktop/Devices/GripperCard/__tests__/GripperCard.test.tsx index 40051f51bca..ccdbc80c2b3 100644 --- a/app/src/organisms/GripperCard/__tests__/GripperCard.test.tsx +++ b/app/src/organisms/Desktop/Devices/GripperCard/__tests__/GripperCard.test.tsx @@ -4,12 +4,12 @@ import { describe, it, vi, beforeEach, expect } from 'vitest' import { renderWithProviders } from '/app/__testing-utils__' import { useCurrentSubsystemUpdateQuery } from '@opentrons/react-api-client' import { i18n } from '/app/i18n' -import { GripperWizardFlows } from '../../GripperWizardFlows' +import { GripperWizardFlows } from '/app/organisms/GripperWizardFlows' import { AboutGripperSlideout } from '../AboutGripperSlideout' import { GripperCard } from '../' import type { GripperData } from '@opentrons/api-client' -vi.mock('../../GripperWizardFlows') +vi.mock('/app/organisms/GripperWizardFlows') vi.mock('../AboutGripperSlideout') vi.mock('@opentrons/react-api-client') diff --git a/app/src/organisms/GripperCard/index.tsx b/app/src/organisms/Desktop/Devices/GripperCard/index.tsx similarity index 96% rename from app/src/organisms/GripperCard/index.tsx rename to app/src/organisms/Desktop/Devices/GripperCard/index.tsx index 34ade2ce899..c8a5280049e 100644 --- a/app/src/organisms/GripperCard/index.tsx +++ b/app/src/organisms/Desktop/Devices/GripperCard/index.tsx @@ -11,13 +11,13 @@ import { import { getGripperDisplayName } from '@opentrons/shared-data' import { useCurrentSubsystemUpdateQuery } from '@opentrons/react-api-client' import { InstrumentCard } from '/app/molecules/InstrumentCard' -import { GripperWizardFlows } from '../GripperWizardFlows' +import { GripperWizardFlows } from '/app/organisms/GripperWizardFlows' import { AboutGripperSlideout } from './AboutGripperSlideout' -import { GRIPPER_FLOW_TYPES } from '../GripperWizardFlows/constants' +import { GRIPPER_FLOW_TYPES } from '/app/organisms/GripperWizardFlows/constants' import type { BadGripper, GripperData } from '@opentrons/api-client' import type { GripperModel } from '@opentrons/shared-data' -import type { GripperWizardFlowType } from '../GripperWizardFlows/types' +import type { GripperWizardFlowType } from '/app/organisms/GripperWizardFlows/types' interface GripperCardProps { attachedGripper: GripperData | BadGripper | null diff --git a/app/src/organisms/Devices/HistoricalProtocolRun.tsx b/app/src/organisms/Desktop/Devices/HistoricalProtocolRun.tsx similarity index 100% rename from app/src/organisms/Devices/HistoricalProtocolRun.tsx rename to app/src/organisms/Desktop/Devices/HistoricalProtocolRun.tsx diff --git a/app/src/organisms/Devices/HistoricalProtocolRunDrawer.tsx b/app/src/organisms/Desktop/Devices/HistoricalProtocolRunDrawer.tsx similarity index 100% rename from app/src/organisms/Devices/HistoricalProtocolRunDrawer.tsx rename to app/src/organisms/Desktop/Devices/HistoricalProtocolRunDrawer.tsx diff --git a/app/src/organisms/Devices/HistoricalProtocolRunOverflowMenu.tsx b/app/src/organisms/Desktop/Devices/HistoricalProtocolRunOverflowMenu.tsx similarity index 97% rename from app/src/organisms/Devices/HistoricalProtocolRunOverflowMenu.tsx rename to app/src/organisms/Desktop/Devices/HistoricalProtocolRunOverflowMenu.tsx index 9fea6021603..18dc44cb11b 100644 --- a/app/src/organisms/Devices/HistoricalProtocolRunOverflowMenu.tsx +++ b/app/src/organisms/Desktop/Devices/HistoricalProtocolRunOverflowMenu.tsx @@ -26,7 +26,7 @@ import { import { useDeleteRunMutation } from '@opentrons/react-api-client' import { Divider } from '/app/atoms/structure' -import { useRunControls } from '/app/organisms/RunTimeControl/hooks' +import { useRunControls } from '/app/organisms/RunTimeControl' import { useTrackEvent, ANALYTICS_PROTOCOL_PROCEED_TO_RUN, @@ -34,7 +34,7 @@ import { } from '/app/redux/analytics' import { useIsRobotOnWrongVersionOfSoftware } from '/app/redux/robot-update' import { useDownloadRunLog } from './hooks' -import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' +import { useIsEstopNotDisengaged } from '/app/resources/devices' import { useTrackProtocolRunEvent } from '/app/redux-resources/analytics' import { useRobot } from '/app/redux-resources/robots' diff --git a/app/src/organisms/Devices/InstrumentsAndModules.tsx b/app/src/organisms/Desktop/Devices/InstrumentsAndModules.tsx similarity index 98% rename from app/src/organisms/Devices/InstrumentsAndModules.tsx rename to app/src/organisms/Desktop/Devices/InstrumentsAndModules.tsx index e5062d50881..af7913eae37 100644 --- a/app/src/organisms/Devices/InstrumentsAndModules.tsx +++ b/app/src/organisms/Desktop/Devices/InstrumentsAndModules.tsx @@ -23,14 +23,14 @@ import { import { PipetteRecalibrationWarning } from './PipetteCard/PipetteRecalibrationWarning' import { useCurrentRunId } from '/app/resources/runs' import { useIsFlex } from '/app/redux-resources/robots' -import { ModuleCard } from '../ModuleCard' +import { ModuleCard } from '/app/organisms/ModuleCard' import { useIsRobotViewable, useRunStatuses } from './hooks' import { getShowPipetteCalibrationWarning } from '/app/transformations/instruments' import { PipetteCard } from './PipetteCard' import { FlexPipetteCard } from './PipetteCard/FlexPipetteCard' -import { GripperCard } from '../GripperCard' +import { GripperCard } from './GripperCard' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' -import { useModuleApiRequests } from '../ModuleCard/utils' +import { useModuleApiRequests } from '/app/organisms/ModuleCard/utils' import type { BadGripper, diff --git a/app/src/organisms/Devices/PipetteCard/AboutPipetteSlideout.tsx b/app/src/organisms/Desktop/Devices/PipetteCard/AboutPipetteSlideout.tsx similarity index 100% rename from app/src/organisms/Devices/PipetteCard/AboutPipetteSlideout.tsx rename to app/src/organisms/Desktop/Devices/PipetteCard/AboutPipetteSlideout.tsx diff --git a/app/src/organisms/Devices/PipetteCard/FlexPipetteCard.tsx b/app/src/organisms/Desktop/Devices/PipetteCard/FlexPipetteCard.tsx similarity index 96% rename from app/src/organisms/Devices/PipetteCard/FlexPipetteCard.tsx rename to app/src/organisms/Desktop/Devices/PipetteCard/FlexPipetteCard.tsx index be99be7c6af..ca7b7a27340 100644 --- a/app/src/organisms/Devices/PipetteCard/FlexPipetteCard.tsx +++ b/app/src/organisms/Desktop/Devices/PipetteCard/FlexPipetteCard.tsx @@ -19,13 +19,13 @@ import { useHost, } from '@opentrons/react-api-client' import { InstrumentCard } from '/app/molecules/InstrumentCard' -import { ChoosePipette } from '../../PipetteWizardFlows/ChoosePipette' -import { FLOWS } from '../../PipetteWizardFlows/constants' -import { handlePipetteWizardFlows } from '../../PipetteWizardFlows' +import { ChoosePipette } from '/app/organisms/PipetteWizardFlows/ChoosePipette' +import { FLOWS } from '/app/organisms/PipetteWizardFlows/constants' +import { handlePipetteWizardFlows } from '/app/organisms/PipetteWizardFlows' import { DropTipWizardFlows, useDropTipWizardFlows, -} from '../../DropTipWizardFlows' +} from '/app/organisms/DropTipWizardFlows' import { AboutPipetteSlideout } from './AboutPipetteSlideout' @@ -39,7 +39,7 @@ import type { PipetteModelSpecs } from '@opentrons/shared-data' import type { PipetteWizardFlow, SelectablePipettes, -} from '../../PipetteWizardFlows/types' +} from '/app/organisms/PipetteWizardFlows/types' interface FlexPipetteCardProps { attachedPipette: PipetteData | BadPipette | null diff --git a/app/src/organisms/Devices/PipetteCard/PipetteOverflowMenu.tsx b/app/src/organisms/Desktop/Devices/PipetteCard/PipetteOverflowMenu.tsx similarity index 100% rename from app/src/organisms/Devices/PipetteCard/PipetteOverflowMenu.tsx rename to app/src/organisms/Desktop/Devices/PipetteCard/PipetteOverflowMenu.tsx diff --git a/app/src/organisms/Devices/PipetteCard/PipetteRecalibrationWarning.tsx b/app/src/organisms/Desktop/Devices/PipetteCard/PipetteRecalibrationWarning.tsx similarity index 100% rename from app/src/organisms/Devices/PipetteCard/PipetteRecalibrationWarning.tsx rename to app/src/organisms/Desktop/Devices/PipetteCard/PipetteRecalibrationWarning.tsx diff --git a/app/src/organisms/Devices/PipetteCard/PipetteSettingsSlideout.tsx b/app/src/organisms/Desktop/Devices/PipetteCard/PipetteSettingsSlideout.tsx similarity index 92% rename from app/src/organisms/Devices/PipetteCard/PipetteSettingsSlideout.tsx rename to app/src/organisms/Desktop/Devices/PipetteCard/PipetteSettingsSlideout.tsx index 6b004085284..9a8faa9c061 100644 --- a/app/src/organisms/Devices/PipetteCard/PipetteSettingsSlideout.tsx +++ b/app/src/organisms/Desktop/Devices/PipetteCard/PipetteSettingsSlideout.tsx @@ -2,8 +2,8 @@ import { useTranslation } from 'react-i18next' import { Flex } from '@opentrons/components' import { useUpdatePipetteSettingsMutation } from '@opentrons/react-api-client' import { Slideout } from '/app/atoms/Slideout' -import { ConfigFormSubmitButton } from '../../ConfigurePipette/ConfigFormSubmitButton' -import { ConfigurePipette } from '../../ConfigurePipette' +import { ConfigFormSubmitButton } from '../ConfigurePipette/ConfigFormSubmitButton' +import { ConfigurePipette } from '../ConfigurePipette' import type { PipetteModelSpecs } from '@opentrons/shared-data' import type { PipetteSettingsFieldsMap } from '@opentrons/api-client' diff --git a/app/src/organisms/Devices/PipetteCard/__tests__/AboutPipetteSlideout.test.tsx b/app/src/organisms/Desktop/Devices/PipetteCard/__tests__/AboutPipetteSlideout.test.tsx similarity index 100% rename from app/src/organisms/Devices/PipetteCard/__tests__/AboutPipetteSlideout.test.tsx rename to app/src/organisms/Desktop/Devices/PipetteCard/__tests__/AboutPipetteSlideout.test.tsx diff --git a/app/src/organisms/Devices/PipetteCard/__tests__/FlexPipetteCard.test.tsx b/app/src/organisms/Desktop/Devices/PipetteCard/__tests__/FlexPipetteCard.test.tsx similarity index 95% rename from app/src/organisms/Devices/PipetteCard/__tests__/FlexPipetteCard.test.tsx rename to app/src/organisms/Desktop/Devices/PipetteCard/__tests__/FlexPipetteCard.test.tsx index f2b62b12efc..1dd13e8f350 100644 --- a/app/src/organisms/Devices/PipetteCard/__tests__/FlexPipetteCard.test.tsx +++ b/app/src/organisms/Desktop/Devices/PipetteCard/__tests__/FlexPipetteCard.test.tsx @@ -5,19 +5,19 @@ import { renderWithProviders } from '/app/__testing-utils__' import { useCurrentSubsystemUpdateQuery } from '@opentrons/react-api-client' import { i18n } from '/app/i18n' import { mockLeftSpecs } from '/app/redux/pipettes/__fixtures__' -import { handlePipetteWizardFlows } from '../../../PipetteWizardFlows' +import { handlePipetteWizardFlows } from '/app/organisms/PipetteWizardFlows' import { AboutPipetteSlideout } from '../AboutPipetteSlideout' import { FlexPipetteCard } from '../FlexPipetteCard' -import { ChoosePipette } from '../../../PipetteWizardFlows/ChoosePipette' -import { useDropTipWizardFlows } from '../../../DropTipWizardFlows' +import { ChoosePipette } from '/app/organisms/PipetteWizardFlows/ChoosePipette' +import { useDropTipWizardFlows } from '/app/organisms/DropTipWizardFlows' import type { PipetteData } from '@opentrons/api-client' import type { Mock } from 'vitest' -vi.mock('../../../PipetteWizardFlows') -vi.mock('../../../PipetteWizardFlows/ChoosePipette') +vi.mock('/app/organisms/PipetteWizardFlows') +vi.mock('/app/organisms/PipetteWizardFlows/ChoosePipette') vi.mock('../AboutPipetteSlideout') -vi.mock('../../../DropTipWizardFlows') +vi.mock('/app/organisms/DropTipWizardFlows') vi.mock('@opentrons/react-api-client') const render = (props: React.ComponentProps) => { diff --git a/app/src/organisms/Devices/PipetteCard/__tests__/PipetteCard.test.tsx b/app/src/organisms/Desktop/Devices/PipetteCard/__tests__/PipetteCard.test.tsx similarity index 97% rename from app/src/organisms/Devices/PipetteCard/__tests__/PipetteCard.test.tsx rename to app/src/organisms/Desktop/Devices/PipetteCard/__tests__/PipetteCard.test.tsx index 752a91eb502..80567d3f1b9 100644 --- a/app/src/organisms/Devices/PipetteCard/__tests__/PipetteCard.test.tsx +++ b/app/src/organisms/Desktop/Devices/PipetteCard/__tests__/PipetteCard.test.tsx @@ -11,7 +11,7 @@ import { getHasCalibrationBlock } from '/app/redux/config' import { useDispatchApiRequest } from '/app/redux/robot-api' import { PipetteOverflowMenu } from '../PipetteOverflowMenu' import { PipetteCard } from '..' -import { useDropTipWizardFlows } from '../../../DropTipWizardFlows' +import { useDropTipWizardFlows } from '/app/organisms/DropTipWizardFlows' import { mockLeftSpecs, mockRightSpecs } from '/app/redux/pipettes/__fixtures__' @@ -22,7 +22,7 @@ vi.mock('/app/redux/config') vi.mock('/app/redux/robot-api') vi.mock('@opentrons/react-api-client') vi.mock('/app/redux/pipettes') -vi.mock('../../../DropTipWizardFlows') +vi.mock('/app/organisms/DropTipWizardFlows') const render = (props: React.ComponentProps) => { return renderWithProviders(, { diff --git a/app/src/organisms/Devices/PipetteCard/__tests__/PipetteOverflowMenu.test.tsx b/app/src/organisms/Desktop/Devices/PipetteCard/__tests__/PipetteOverflowMenu.test.tsx similarity index 100% rename from app/src/organisms/Devices/PipetteCard/__tests__/PipetteOverflowMenu.test.tsx rename to app/src/organisms/Desktop/Devices/PipetteCard/__tests__/PipetteOverflowMenu.test.tsx diff --git a/app/src/organisms/Devices/PipetteCard/__tests__/PipetteSettingsSlideout.test.tsx b/app/src/organisms/Desktop/Devices/PipetteCard/__tests__/PipetteSettingsSlideout.test.tsx similarity index 100% rename from app/src/organisms/Devices/PipetteCard/__tests__/PipetteSettingsSlideout.test.tsx rename to app/src/organisms/Desktop/Devices/PipetteCard/__tests__/PipetteSettingsSlideout.test.tsx diff --git a/app/src/organisms/Devices/PipetteCard/index.tsx b/app/src/organisms/Desktop/Devices/PipetteCard/index.tsx similarity index 98% rename from app/src/organisms/Devices/PipetteCard/index.tsx rename to app/src/organisms/Desktop/Devices/PipetteCard/index.tsx index fa2da081457..08488e98987 100644 --- a/app/src/organisms/Devices/PipetteCard/index.tsx +++ b/app/src/organisms/Desktop/Devices/PipetteCard/index.tsx @@ -22,14 +22,14 @@ import { OT2_ROBOT_TYPE } from '@opentrons/shared-data' import { usePipetteSettingsQuery } from '@opentrons/react-api-client' import { LEFT } from '/app/redux/pipettes' -import { ChangePipette } from '../../ChangePipette' +import { ChangePipette } from '../ChangePipette' import { PipetteOverflowMenu } from './PipetteOverflowMenu' import { PipetteSettingsSlideout } from './PipetteSettingsSlideout' import { AboutPipetteSlideout } from './AboutPipetteSlideout' import { DropTipWizardFlows, useDropTipWizardFlows, -} from '../../DropTipWizardFlows' +} from '/app/organisms/DropTipWizardFlows' import type { PipetteModelSpecs } from '@opentrons/shared-data' import type { AttachedPipette, Mount } from '/app/redux/pipettes/types' diff --git a/app/src/organisms/Devices/ProtocolRun/BackToTopButton.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/BackToTopButton.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/BackToTopButton.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/BackToTopButton.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/EmptySetupStep.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/EmptySetupStep.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/EmptySetupStep.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/EmptySetupStep.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/LabwareInfoOverlay.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/LabwareInfoOverlay.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/LabwareInfoOverlay.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/LabwareInfoOverlay.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/DisplayRunStatus.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/DisplayRunStatus.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/DisplayRunStatus.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/DisplayRunStatus.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/ProtocolAnalysisErrorBanner.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/ProtocolAnalysisErrorBanner.tsx similarity index 97% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/ProtocolAnalysisErrorBanner.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/ProtocolAnalysisErrorBanner.tsx index 1f4501d74b6..18a8f0e682a 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/ProtocolAnalysisErrorBanner.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/ProtocolAnalysisErrorBanner.tsx @@ -16,7 +16,7 @@ import { Modal, } from '@opentrons/components' -import { getTopPortalEl } from '../../../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import type { AnalysisError } from '@opentrons/shared-data' diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/TerminalRunBannerContainer.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/TerminalRunBannerContainer.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/TerminalRunBannerContainer.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/TerminalRunBannerContainer.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/__tests__/ProtocolAnalysisErrorBanner.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/__tests__/ProtocolAnalysisErrorBanner.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/__tests__/ProtocolAnalysisErrorBanner.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/__tests__/ProtocolAnalysisErrorBanner.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/getShowGenericRunHeaderBanners.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/getShowGenericRunHeaderBanners.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/getShowGenericRunHeaderBanners.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/getShowGenericRunHeaderBanners.ts diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/index.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/index.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/index.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderBannerContainer/index.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/index.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/index.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/index.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/index.ts diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useActionBtnDisabledUtils.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useActionBtnDisabledUtils.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useActionBtnDisabledUtils.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useActionBtnDisabledUtils.ts diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useActionButtonProperties.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useActionButtonProperties.ts similarity index 98% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useActionButtonProperties.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useActionButtonProperties.ts index 5d37c134470..cd16d2467b6 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useActionButtonProperties.ts +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useActionButtonProperties.ts @@ -14,7 +14,7 @@ import { useTrackEvent, } from '/app/redux/analytics' import { useTrackProtocolRunEvent } from '/app/redux-resources/analytics' -import { useIsHeaterShakerInProtocol } from '../../../../../../ModuleCard/hooks' +import { useIsHeaterShakerInProtocol } from '/app/organisms/ModuleCard/hooks' import { isAnyHeaterShakerShaking } from '../../../RunHeaderModalContainer/modals' import { isRecoveryStatus, diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useIsFixtureMismatch.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useIsFixtureMismatch.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useIsFixtureMismatch.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/hooks/useIsFixtureMismatch.ts diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/index.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/index.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/index.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/ActionButton/index.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/LabeledValue.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/LabeledValue.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/LabeledValue.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/LabeledValue.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/RunHeaderSectionLower.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/RunHeaderSectionLower.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/RunHeaderSectionLower.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/RunHeaderSectionLower.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/RunHeaderSectionUpper.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/RunHeaderSectionUpper.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/RunHeaderSectionUpper.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/RunHeaderSectionUpper.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/index.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/index.tsx similarity index 92% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/index.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/index.tsx index b62c0701563..51908e4435d 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/index.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderContent/index.tsx @@ -5,7 +5,7 @@ import { RunHeaderSectionLower } from './RunHeaderSectionLower' import type { ProtocolRunHeaderProps } from '..' import type { AttachedModule, RunStatus } from '@opentrons/api-client' -import type { RunControls } from '../../../../RunTimeControl/hooks' +import type { RunControls } from '/app/organisms/RunTimeControl' import type { UseRunHeaderModalContainerResult } from '../RunHeaderModalContainer' export type RunHeaderContentProps = ProtocolRunHeaderProps & { diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/RunHeaderModalContainer.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/RunHeaderModalContainer.tsx similarity index 90% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/RunHeaderModalContainer.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/RunHeaderModalContainer.tsx index 83be6db31ee..3be4f607208 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/RunHeaderModalContainer.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/RunHeaderModalContainer.tsx @@ -1,5 +1,5 @@ -import { ErrorRecoveryFlows } from '../../../../ErrorRecoveryFlows' -import { DropTipWizardFlows } from '../../../../DropTipWizardFlows' +import { ErrorRecoveryFlows } from '/app/organisms/ErrorRecoveryFlows' +import { DropTipWizardFlows } from '/app/organisms/DropTipWizardFlows' import { useMostRecentCompletedAnalysis } from '/app/resources/runs' import { ConfirmCancelModal, @@ -9,10 +9,10 @@ import { RunFailedModal, ConfirmMissingStepsModal, } from './modals' -import { ConfirmAttachmentModal } from '../../../../ModuleCard/ConfirmAttachmentModal' +import { ConfirmAttachmentModal } from '/app/organisms/ModuleCard/ConfirmAttachmentModal' import type { RunStatus } from '@opentrons/api-client' -import type { RunControls } from '../../../../RunTimeControl/hooks' +import type { RunControls } from '/app/organisms/RunTimeControl' import type { UseRunErrorsResult } from '../hooks' import type { UseRunHeaderModalContainerResult } from '.' diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/index.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/index.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/index.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/index.ts diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useHeaterShakerConfirmationModal.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useHeaterShakerConfirmationModal.ts similarity index 95% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useHeaterShakerConfirmationModal.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useHeaterShakerConfirmationModal.ts index 8939e734087..d8b001f3638 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useHeaterShakerConfirmationModal.ts +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useHeaterShakerConfirmationModal.ts @@ -5,7 +5,7 @@ import { useConditionalConfirm } from '@opentrons/components' import { getIsHeaterShakerAttached } from '/app/redux/config' import type { UseConditionalConfirmResult } from '@opentrons/components' -import type { ConfirmAttachmentModalProps } from '../../../../../ModuleCard/ConfirmAttachmentModal' +import type { ConfirmAttachmentModalProps } from '/app/organisms/ModuleCard/ConfirmAttachmentModal' export type UseHeaterShakerConfirmationModalResult = | { diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useMissingStepsModal.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useMissingStepsModal.ts similarity index 96% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useMissingStepsModal.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useMissingStepsModal.ts index a5d91e472ba..4bf28bc049f 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useMissingStepsModal.ts +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useMissingStepsModal.ts @@ -1,7 +1,7 @@ import { RUN_STATUS_IDLE, RUN_STATUS_STOPPED } from '@opentrons/api-client' import { useConditionalConfirm } from '@opentrons/components' -import { useIsHeaterShakerInProtocol } from '../../../../../ModuleCard/hooks' +import { useIsHeaterShakerInProtocol } from '/app/organisms/ModuleCard/hooks' import { isAnyHeaterShakerShaking } from '../modals' import type { UseConditionalConfirmResult } from '@opentrons/components' diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useRunHeaderDropTip.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useRunHeaderDropTip.ts similarity index 98% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useRunHeaderDropTip.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useRunHeaderDropTip.ts index 4138dca538b..d30dc6af145 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useRunHeaderDropTip.ts +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/hooks/useRunHeaderDropTip.ts @@ -7,7 +7,7 @@ import { FLEX_ROBOT_TYPE, OT2_ROBOT_TYPE } from '@opentrons/shared-data' import { useDropTipWizardFlows, useTipAttachmentStatus, -} from '../../../../../DropTipWizardFlows' +} from '/app/organisms/DropTipWizardFlows' import { useProtocolDropTipModal } from '../modals' import { useCloseCurrentRun, useIsRunCurrent } from '/app/resources/runs' import { isTerminalRunStatus } from '../../utils' @@ -17,7 +17,7 @@ import type { Run, RunStatus } from '@opentrons/api-client' import type { DropTipWizardFlowsProps, PipetteWithTip, -} from '../../../../../DropTipWizardFlows' +} from '/app/organisms/DropTipWizardFlows' import type { UseProtocolDropTipModalResult } from '../modals' import type { PipetteDetails } from '/app/resources/maintenance_runs' diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/index.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/index.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/index.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/index.ts diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ConfirmCancelModal.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ConfirmCancelModal.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ConfirmCancelModal.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ConfirmCancelModal.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ConfirmMissingStepsModal.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ConfirmMissingStepsModal.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ConfirmMissingStepsModal.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ConfirmMissingStepsModal.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/HeaterShakerIsRunningModal.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/HeaterShakerIsRunningModal.tsx similarity index 98% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/HeaterShakerIsRunningModal.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/HeaterShakerIsRunningModal.tsx index 1db32eb66b2..696014ac8bc 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/HeaterShakerIsRunningModal.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/HeaterShakerIsRunningModal.tsx @@ -21,7 +21,7 @@ import { HEATERSHAKER_MODULE_TYPE } from '@opentrons/shared-data' import { useAttachedModules } from '/app/resources/modules' import { HeaterShakerModuleCard } from './HeaterShakerModuleCard' import { getActiveHeaterShaker } from './utils' -import { useIsHeaterShakerInProtocol } from '../../../../../../ModuleCard/hooks' +import { useIsHeaterShakerInProtocol } from '/app/organisms/ModuleCard/hooks' import type { HeaterShakerDeactivateShakerCreateCommand } from '@opentrons/shared-data' import type { AttachedModule } from '@opentrons/api-client' diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/HeaterShakerModuleCard.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/HeaterShakerModuleCard.tsx similarity index 96% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/HeaterShakerModuleCard.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/HeaterShakerModuleCard.tsx index ab12b127489..a0ae29ff7ec 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/HeaterShakerModuleCard.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/HeaterShakerModuleCard.tsx @@ -15,7 +15,7 @@ import { import { getModuleDisplayName } from '@opentrons/shared-data' import heaterShakerModule from '/app/assets/images/heater_shaker_module_transparent.png' -import { HeaterShakerModuleData } from '../../../../../../ModuleCard/HeaterShakerModuleData' +import { HeaterShakerModuleData } from '/app/organisms/ModuleCard/HeaterShakerModuleData' import type { HeaterShakerModule } from '/app/redux/modules/types' diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/HeaterShakerIsRunningModal.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/HeaterShakerIsRunningModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/HeaterShakerIsRunningModal.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/HeaterShakerIsRunningModal.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/HeaterShakerModuleCard.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/HeaterShakerModuleCard.test.tsx similarity index 87% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/HeaterShakerModuleCard.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/HeaterShakerModuleCard.test.tsx index 82b12033164..4cd20822890 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/HeaterShakerModuleCard.test.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/HeaterShakerModuleCard.test.tsx @@ -6,9 +6,9 @@ import { renderWithProviders } from '/app/__testing-utils__' import { mockHeaterShaker } from '/app/redux/modules/__fixtures__' import { i18n } from '/app/i18n' import { HeaterShakerModuleCard } from '../HeaterShakerModuleCard' -import { HeaterShakerModuleData } from '../../../../../../../ModuleCard/HeaterShakerModuleData' +import { HeaterShakerModuleData } from '/app/organisms/ModuleCard/HeaterShakerModuleData' -vi.mock('../../../../../../../ModuleCard/HeaterShakerModuleData') +vi.mock('/app/organisms/ModuleCard/HeaterShakerModuleData') const render = (props: React.ComponentProps) => { return renderWithProviders(, { diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/hooks.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/hooks.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/hooks.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/__tests__/hooks.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/hooks.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/hooks.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/hooks.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/hooks.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/index.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/index.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/index.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/index.ts diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/utils.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/utils.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/utils.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/HeaterShakerIsRunningModal/utils.ts diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ProtocolAnalysisErrorModal.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ProtocolAnalysisErrorModal.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ProtocolAnalysisErrorModal.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ProtocolAnalysisErrorModal.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ProtocolDropTipModal.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ProtocolDropTipModal.tsx similarity index 97% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ProtocolDropTipModal.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ProtocolDropTipModal.tsx index b475ea725e6..7c4f9c3820e 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ProtocolDropTipModal.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/ProtocolDropTipModal.tsx @@ -16,14 +16,14 @@ import { } from '@opentrons/components' import { TextOnlyButton } from '/app/atoms/buttons' -import { useHomePipettes } from '../../../../../DropTipWizardFlows' +import { useHomePipettes } from '/app/organisms/DropTipWizardFlows' import type { PipetteData } from '@opentrons/api-client' import type { IconProps } from '@opentrons/components' import type { UseHomePipettesProps, TipAttachmentStatusResult, -} from '../../../../../DropTipWizardFlows' +} from '/app/organisms/DropTipWizardFlows' type UseProtocolDropTipModalProps = Pick< UseHomePipettesProps, diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/RunFailedModal.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/RunFailedModal.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/RunFailedModal.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/RunFailedModal.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__fixtures__/analysis.json b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__fixtures__/analysis.json similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__fixtures__/analysis.json rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__fixtures__/analysis.json diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__fixtures__/runRecord.json b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__fixtures__/runRecord.json similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__fixtures__/runRecord.json rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__fixtures__/runRecord.json diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ConfirmCancelModal.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ConfirmCancelModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ConfirmCancelModal.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ConfirmCancelModal.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ProtocolAnalysisErrorModal.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ProtocolAnalysisErrorModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ProtocolAnalysisErrorModal.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ProtocolAnalysisErrorModal.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ProtocolDropTipModal.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ProtocolDropTipModal.test.tsx similarity index 97% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ProtocolDropTipModal.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ProtocolDropTipModal.test.tsx index 1d73cc5c1cf..8fb21ec5027 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ProtocolDropTipModal.test.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/ProtocolDropTipModal.test.tsx @@ -4,7 +4,7 @@ import { renderHook, act, screen, fireEvent } from '@testing-library/react' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { useHomePipettes } from '../../../../../../DropTipWizardFlows' +import { useHomePipettes } from '/app/organisms/DropTipWizardFlows' import { useProtocolDropTipModal, ProtocolDropTipModal, @@ -12,7 +12,7 @@ import { import type { Mock } from 'vitest' -vi.mock('../../../../../../DropTipWizardFlows') +vi.mock('/app/organisms/DropTipWizardFlows') describe('useProtocolDropTipModal', () => { let props: Parameters[0] diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/RunFailedModal.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/RunFailedModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/RunFailedModal.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/__tests__/RunFailedModal.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/index.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/index.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/index.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/modals/index.ts diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/useRunHeaderModalContainer.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/useRunHeaderModalContainer.ts similarity index 94% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/useRunHeaderModalContainer.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/useRunHeaderModalContainer.ts index 8cc270b9061..17d81c1f18e 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/useRunHeaderModalContainer.ts +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/useRunHeaderModalContainer.ts @@ -11,7 +11,7 @@ import { useMissingStepsModal, useRunHeaderDropTip, } from './hooks' -import { useErrorRecoveryFlows } from '../../../../ErrorRecoveryFlows' +import { useErrorRecoveryFlows } from '/app/organisms/ErrorRecoveryFlows' import { useProtocolDetailsForRun } from '/app/resources/runs' import { getFallbackRobotSerialNumber } from '../utils' import { @@ -20,7 +20,7 @@ import { } from '/app/redux/analytics' import { useRobot, useRobotType } from '/app/redux-resources/robots' import type { AttachedModule, RunStatus, Run } from '@opentrons/api-client' -import type { UseErrorRecoveryResult } from '../../../../ErrorRecoveryFlows' +import type { UseErrorRecoveryResult } from '/app/organisms/ErrorRecoveryFlows' import type { UseRunHeaderDropTipResult, UseMissingStepsModalResult, @@ -33,7 +33,7 @@ import type { UseRunFailedModalResult, } from './modals' import type { ProtocolRunHeaderProps } from '..' -import type { RunControls } from '../../../../RunTimeControl/hooks' +import type { RunControls } from '/app/organisms/RunTimeControl' import type { UseRunErrorsResult } from '../hooks' interface UseRunHeaderModalContainerProps extends ProtocolRunHeaderProps { diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderProtocolName.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderProtocolName.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderProtocolName.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/RunHeaderProtocolName.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/__tests__/ProtocolRunHeader.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/__tests__/ProtocolRunHeader.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/__tests__/ProtocolRunHeader.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/__tests__/ProtocolRunHeader.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/constants.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/constants.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/constants.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/constants.ts diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/hooks/index.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/hooks/index.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/hooks/index.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/hooks/index.ts diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/hooks/useIsDoorOpen.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/hooks/useIsDoorOpen.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/hooks/useIsDoorOpen.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/hooks/useIsDoorOpen.ts diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunAnalytics.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunAnalytics.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunAnalytics.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunAnalytics.ts diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunErrors.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunErrors.ts similarity index 90% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunErrors.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunErrors.ts index 302f23f0a1e..4d66b367a0e 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunErrors.ts +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunErrors.ts @@ -1,8 +1,8 @@ import { useRunCommandErrors } from '@opentrons/react-api-client' import { isTerminalRunStatus } from '../utils' -import { useMostRecentRunId } from '/app/resources/runs/useMostRecentRunId' -import { getHighestPriorityError } from '../../../../ODD/RunningProtocol' +import { useMostRecentRunId } from '/app/resources/runs' +import { getHighestPriorityError } from '/app/transformations/runs' import type { RunStatus, Run } from '@opentrons/api-client' import type { RunCommandError } from '@opentrons/shared-data' diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunHeaderRunControls.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunHeaderRunControls.ts similarity index 80% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunHeaderRunControls.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunHeaderRunControls.ts index dd8bdd916c3..1b5c76c644f 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunHeaderRunControls.ts +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/hooks/useRunHeaderRunControls.ts @@ -1,8 +1,8 @@ import { useNavigate } from 'react-router-dom' -import { useRunControls } from '../../../../RunTimeControl/hooks' +import { useRunControls } from '/app/organisms/RunTimeControl' import type { Run } from '@opentrons/api-client' -import type { RunControls } from '../../../../RunTimeControl/hooks' +import type { RunControls } from '/app/organisms/RunTimeControl' // Provides desktop run controls, routing the user to the run preview tab after a "run again" action. export function useRunHeaderRunControls( diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/index.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/index.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/index.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/index.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/utils.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/utils.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader/utils.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/utils.ts diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunModuleControls.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunModuleControls.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunModuleControls.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunModuleControls.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunRunTimeParameters.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunRunTimeParameters.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunRunTimeParameters.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunRunTimeParameters.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunSetup.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunSetup.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/ProtocolRunSetup.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunSetup.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupCalibrationItem.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupCalibrationItem.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupCalibrationItem.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupCalibrationItem.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupDeckCalibration.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupDeckCalibration.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupDeckCalibration.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupDeckCalibration.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupFlexPipetteCalibrationItem.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupFlexPipetteCalibrationItem.tsx similarity index 96% rename from app/src/organisms/Devices/ProtocolRun/SetupFlexPipetteCalibrationItem.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupFlexPipetteCalibrationItem.tsx index e78873c59fa..01b6f0303fb 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupFlexPipetteCalibrationItem.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupFlexPipetteCalibrationItem.tsx @@ -17,8 +17,8 @@ import { useInstrumentsQuery } from '@opentrons/react-api-client' import { TertiaryButton } from '/app/atoms/buttons' import { useMostRecentCompletedAnalysis } from '/app/resources/runs' import { useStoredProtocolAnalysis } from '/app/resources/analysis' -import { PipetteWizardFlows } from '../../PipetteWizardFlows' -import { FLOWS } from '../../PipetteWizardFlows/constants' +import { PipetteWizardFlows } from '/app/organisms/PipetteWizardFlows' +import { FLOWS } from '/app/organisms/PipetteWizardFlows/constants' import { SetupCalibrationItem } from './SetupCalibrationItem' import type { PipetteData } from '@opentrons/api-client' import type { LoadPipetteRunTimeCommand } from '@opentrons/shared-data' diff --git a/app/src/organisms/Devices/ProtocolRun/SetupGripperCalibrationItem.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupGripperCalibrationItem.tsx similarity index 91% rename from app/src/organisms/Devices/ProtocolRun/SetupGripperCalibrationItem.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupGripperCalibrationItem.tsx index 1eb23ba091d..2a106db20e2 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupGripperCalibrationItem.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupGripperCalibrationItem.tsx @@ -11,12 +11,12 @@ import { import { getGripperDisplayName } from '@opentrons/shared-data' import { TertiaryButton } from '/app/atoms/buttons' import { SetupCalibrationItem } from './SetupCalibrationItem' -import { GripperWizardFlows } from '../../GripperWizardFlows' -import { GRIPPER_FLOW_TYPES } from '../../GripperWizardFlows/constants' +import { GripperWizardFlows } from '/app/organisms/GripperWizardFlows' +import { GRIPPER_FLOW_TYPES } from '/app/organisms/GripperWizardFlows/constants' import type { GripperData } from '@opentrons/api-client' import type { GripperModel } from '@opentrons/shared-data' -import type { GripperWizardFlowType } from '../../GripperWizardFlows/types' +import type { GripperWizardFlowType } from '/app/organisms/GripperWizardFlows/types' interface SetupGripperCalibrationItemProps { gripperData: GripperData | null diff --git a/app/src/organisms/Devices/ProtocolRun/SetupInstrumentCalibration.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupInstrumentCalibration.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupInstrumentCalibration.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupInstrumentCalibration.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabware/CurrentOffsetsModal.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/CurrentOffsetsModal.tsx similarity index 98% rename from app/src/organisms/Devices/ProtocolRun/SetupLabware/CurrentOffsetsModal.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/CurrentOffsetsModal.tsx index c95923e4cb8..402c1e56dd1 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupLabware/CurrentOffsetsModal.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/CurrentOffsetsModal.tsx @@ -20,7 +20,7 @@ import { } from '@opentrons/components' import { getIsLabwareOffsetCodeSnippetsOn } from '/app/redux/config' -import { LabwareOffsetTabs } from '../../../LabwareOffsetTabs' +import { LabwareOffsetTabs } from '/app/organisms/LabwareOffsetTabs' import { OffsetVector } from '/app/molecules/OffsetVector' import { PythonLabwareOffsetSnippet } from '/app/molecules/PythonLabwareOffsetSnippet' import { getLatestCurrentOffsets } from '/app/transformations/runs' diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabware/LabwareListItem.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/LabwareListItem.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupLabware/LabwareListItem.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/LabwareListItem.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabware/OffDeckLabwareList.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/OffDeckLabwareList.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupLabware/OffDeckLabwareList.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/OffDeckLabwareList.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabware/SecureLabwareModal.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SecureLabwareModal.tsx similarity index 98% rename from app/src/organisms/Devices/ProtocolRun/SetupLabware/SecureLabwareModal.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SecureLabwareModal.tsx index 36c9101ad87..3ce61fb7f2d 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupLabware/SecureLabwareModal.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SecureLabwareModal.tsx @@ -13,7 +13,7 @@ import { TYPOGRAPHY, Modal, } from '@opentrons/components' -import { getTopPortalEl } from '../../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import secureMagModBracketImage from '/app/assets/images/secure_mag_mod_bracket.png' import secureTCLatchImage from '/app/assets/images/secure_tc_latch.png' import { getModuleName } from '../utils/getModuleName' diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabware/SetupLabwareList.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SetupLabwareList.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupLabware/SetupLabwareList.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SetupLabwareList.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabware/SetupLabwareMap.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SetupLabwareMap.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupLabware/SetupLabwareMap.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/SetupLabwareMap.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/LabwareListItem.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/LabwareListItem.test.tsx similarity index 99% rename from app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/LabwareListItem.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/LabwareListItem.test.tsx index 822b4a41f5a..904395f7c98 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/LabwareListItem.test.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/LabwareListItem.test.tsx @@ -14,7 +14,7 @@ import { mockTemperatureModule, mockThermocycler, } from '/app/redux/modules/__fixtures__' -import { mockLabwareDef } from '../../../../LabwarePositionCheck/__fixtures__/mockLabwareDef' +import { mockLabwareDef } from '/app/organisms/LabwarePositionCheck/__fixtures__/mockLabwareDef' import { SecureLabwareModal } from '../SecureLabwareModal' import { LabwareListItem } from '../LabwareListItem' import type { diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/OffDeckLabwareList.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/OffDeckLabwareList.test.tsx similarity index 94% rename from app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/OffDeckLabwareList.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/OffDeckLabwareList.test.tsx index 29ec88b86b5..7c6c839dbaf 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/OffDeckLabwareList.test.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/OffDeckLabwareList.test.tsx @@ -5,7 +5,7 @@ import { describe, it, beforeEach, vi, expect } from 'vitest' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { mockLabwareDef } from '../../../../LabwarePositionCheck/__fixtures__/mockLabwareDef' +import { mockLabwareDef } from '/app/organisms/LabwarePositionCheck/__fixtures__/mockLabwareDef' import { LabwareListItem } from '../LabwareListItem' import { OffDeckLabwareList } from '../OffDeckLabwareList' diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/SecureLabwareModal.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/SecureLabwareModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/SecureLabwareModal.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/SecureLabwareModal.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabware.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabware.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabware.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabware.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabwareList.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabwareList.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabwareList.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabwareList.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabwareMap.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabwareMap.test.tsx similarity index 95% rename from app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabwareMap.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabwareMap.test.tsx index 832524b2e3b..40f63cbc170 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabwareMap.test.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/__tests__/SetupLabwareMap.test.tsx @@ -13,9 +13,11 @@ import { import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { getAttachedProtocolModuleMatches } from '../../../../ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/utils' import { LabwareInfoOverlay } from '../../LabwareInfoOverlay' -import { getLabwareRenderInfo } from '/app/transformations/analysis' +import { + getLabwareRenderInfo, + getAttachedProtocolModuleMatches, +} from '/app/transformations/analysis' import { SetupLabwareMap } from '../SetupLabwareMap' import type { @@ -40,11 +42,11 @@ vi.mock('@opentrons/shared-data', async importOriginal => { } }) -vi.mock('../../../../ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/utils') vi.mock('../../LabwareInfoOverlay') vi.mock('/app/transformations/analysis/getLabwareRenderInfo') +vi.mock('/app/transformations/analysis/getAttachedProtocolModuleMatches') vi.mock('../../utils/getModuleTypesThatRequireExtraAttention') -vi.mock('../../../../RunTimeControl/hooks') +vi.mock('/app/organisms/RunTimeControl') vi.mock('../../../hooks') // TODO(jh 03-06-24): We need to rethink this test as we are testing components several layers deep across top-level imports. diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabware/index.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/index.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupLabware/index.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabware/index.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/CurrentOffsetsTable.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/CurrentOffsetsTable.tsx similarity index 96% rename from app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/CurrentOffsetsTable.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/CurrentOffsetsTable.tsx index 49ee315b25a..849464deee4 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/CurrentOffsetsTable.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/CurrentOffsetsTable.tsx @@ -19,10 +19,10 @@ import { } from '@opentrons/components' import { getIsLabwareOffsetCodeSnippetsOn } from '/app/redux/config' -import { LabwareOffsetTabs } from '../../../LabwareOffsetTabs' +import { LabwareOffsetTabs } from '/app/organisms/LabwareOffsetTabs' import { OffsetVector } from '/app/molecules/OffsetVector' import { PythonLabwareOffsetSnippet } from '/app/molecules/PythonLabwareOffsetSnippet' -import { getDisplayLocation } from '../../../LabwarePositionCheck/utils/getDisplayLocation' +import { getDisplayLocation } from '/app/organisms/LabwarePositionCheck/utils/getDisplayLocation' import { getLabwareDefinitionsFromCommands } from '/app/molecules/Command/utils/getLabwareDefinitionsFromCommands' import type { LabwareOffset } from '@opentrons/api-client' import type { diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/HowLPCWorksModal.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/HowLPCWorksModal.tsx similarity index 96% rename from app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/HowLPCWorksModal.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/HowLPCWorksModal.tsx index a674b98b7b2..cdc882a38e5 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/HowLPCWorksModal.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/HowLPCWorksModal.tsx @@ -12,7 +12,7 @@ import { TYPOGRAPHY, Modal, } from '@opentrons/components' -import { getTopPortalEl } from '../../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' const OFFSET_DATA_HELP_ARTICLE = 'https://support.opentrons.com/s/article/How-Labware-Offsets-work-on-the-OT-2' diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/CurrentOffsetsTable.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/CurrentOffsetsTable.test.tsx similarity index 97% rename from app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/CurrentOffsetsTable.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/CurrentOffsetsTable.test.tsx index 009b303f70b..622d649bb04 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/CurrentOffsetsTable.test.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/CurrentOffsetsTable.test.tsx @@ -10,7 +10,7 @@ import { import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { getIsLabwareOffsetCodeSnippetsOn } from '/app/redux/config' -import { LabwarePositionCheck } from '../../../../LabwarePositionCheck' +import { LabwarePositionCheck } from '/app/organisms/LabwarePositionCheck' import { useLPCDisabledReason } from '/app/resources/runs' import { getLatestCurrentOffsets } from '/app/transformations/runs' import { CurrentOffsetsTable } from '../CurrentOffsetsTable' @@ -19,7 +19,7 @@ import type { CompletedProtocolAnalysis } from '@opentrons/shared-data' import type { LabwareOffset } from '@opentrons/api-client' vi.mock('/app/resources/runs') -vi.mock('../../../../LabwarePositionCheck') +vi.mock('/app/organisms/LabwarePositionCheck') vi.mock('/app/redux/config') vi.mock('/app/transformations/runs') diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/HowLPCWorksModal.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/HowLPCWorksModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/HowLPCWorksModal.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/HowLPCWorksModal.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/SetupLabwarePositionCheck.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/SetupLabwarePositionCheck.test.tsx similarity index 97% rename from app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/SetupLabwarePositionCheck.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/SetupLabwarePositionCheck.test.tsx index 104cdc64035..03ec9d990fb 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/SetupLabwarePositionCheck.test.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/__tests__/SetupLabwarePositionCheck.test.tsx @@ -13,7 +13,7 @@ import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { useLPCSuccessToast } from '../../../hooks/useLPCSuccessToast' import { getModuleTypesThatRequireExtraAttention } from '../../utils/getModuleTypesThatRequireExtraAttention' -import { useLaunchLPC } from '../../../../LabwarePositionCheck/useLaunchLPC' +import { useLaunchLPC } from '/app/organisms/LabwarePositionCheck/useLaunchLPC' import { getIsLabwareOffsetCodeSnippetsOn } from '/app/redux/config' import { SetupLabwarePositionCheck } from '..' import { @@ -27,7 +27,7 @@ import { useRobotType } from '/app/redux-resources/robots' import type { Mock } from 'vitest' -vi.mock('../../../../LabwarePositionCheck/useLaunchLPC') +vi.mock('/app/organisms/LabwarePositionCheck/useLaunchLPC') vi.mock('../../utils/getModuleTypesThatRequireExtraAttention') vi.mock('/app/redux-resources/robots') vi.mock('/app/redux/config') diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/index.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/index.tsx similarity index 98% rename from app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/index.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/index.tsx index a1d6bdfc266..9d2c6223373 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupLabwarePositionCheck/index.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLabwarePositionCheck/index.tsx @@ -21,7 +21,7 @@ import { useProtocolQuery } from '@opentrons/react-api-client' import { useLPCSuccessToast } from '../../hooks/useLPCSuccessToast' import { useStoredProtocolAnalysis } from '/app/resources/analysis' import { CurrentOffsetsTable } from './CurrentOffsetsTable' -import { useLaunchLPC } from '../../../LabwarePositionCheck/useLaunchLPC' +import { useLaunchLPC } from '/app/organisms/LabwarePositionCheck/useLaunchLPC' import { getLatestCurrentOffsets } from '/app/transformations/runs' import { useNotifyRunQuery, diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLiquids/SetupLiquidsList.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/SetupLiquidsList.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupLiquids/SetupLiquidsList.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/SetupLiquidsList.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLiquids/SetupLiquidsMap.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/SetupLiquidsMap.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupLiquids/SetupLiquidsMap.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/SetupLiquidsMap.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquids.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquids.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquids.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquids.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsList.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsList.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsList.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsList.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsMap.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsMap.test.tsx similarity index 98% rename from app/src/organisms/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsMap.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsMap.test.tsx index 8aea91dbb34..db54010b559 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsMap.test.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsMap.test.tsx @@ -24,8 +24,8 @@ import { i18n } from '/app/i18n' import { useAttachedModules } from '/app/resources/modules' import { LabwareInfoOverlay } from '../../LabwareInfoOverlay' import { getStandardDeckViewLayerBlockList } from '/app/local-resources/deck_configuration' -import { getAttachedProtocolModuleMatches } from '/app/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/utils' import { + getAttachedProtocolModuleMatches, getProtocolModulesInfo, getLabwareRenderInfo, } from '/app/transformations/analysis' @@ -52,7 +52,7 @@ vi.mock('@opentrons/components', async importOriginal => { vi.mock('@opentrons/components/src/hardware-sim/BaseDeck') vi.mock('../../LabwareInfoOverlay') vi.mock('/app/resources/modules') -vi.mock('../../../../ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/utils') +vi.mock('/app/transformations/analysis') vi.mock('/app/transformations/analysis') vi.mock('/app/resources/deck_configuration/utils') vi.mock('@opentrons/shared-data', async importOriginal => { diff --git a/app/src/organisms/Devices/ProtocolRun/SetupLiquids/index.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/index.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupLiquids/index.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/index.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/NotConfiguredModal.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/NotConfiguredModal.tsx similarity index 97% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/NotConfiguredModal.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/NotConfiguredModal.tsx index 90a6f8d5a02..e3966e8856a 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/NotConfiguredModal.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/NotConfiguredModal.tsx @@ -18,7 +18,7 @@ import { getFixtureDisplayName, } from '@opentrons/shared-data' import { TertiaryButton } from '/app/atoms/buttons/TertiaryButton' -import { getTopPortalEl } from '../../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { useNotifyDeckConfigurationQuery } from '/app/resources/deck_configuration' import type { CutoutFixtureId, CutoutId } from '@opentrons/shared-data' diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/OT2MultipleModulesHelp.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/OT2MultipleModulesHelp.tsx similarity index 98% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/OT2MultipleModulesHelp.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/OT2MultipleModulesHelp.tsx index 69386cf29d0..6533828d803 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/OT2MultipleModulesHelp.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/OT2MultipleModulesHelp.tsx @@ -16,7 +16,7 @@ import { LegacyStyledText, TYPOGRAPHY, } from '@opentrons/components' -import { getTopPortalEl } from '../../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import multipleModuleHelp from '/app/assets/images/Moam_modal_image.png' const HOW_TO_MULTIPLE_MODULES_HREF = diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/SetupFixtureList.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/SetupFixtureList.tsx similarity index 98% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/SetupFixtureList.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/SetupFixtureList.tsx index 28043cc3e55..2999895da91 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/SetupFixtureList.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/SetupFixtureList.tsx @@ -32,7 +32,7 @@ import { TertiaryButton } from '/app/atoms/buttons/TertiaryButton' import { LocationConflictModal } from '/app/organisms/LocationConflictModal' import { NotConfiguredModal } from './NotConfiguredModal' import { getFixtureImage } from './utils' -import { DeckFixtureSetupInstructionsModal } from '../../../DeviceDetailsDeckConfiguration/DeckFixtureSetupInstructionsModal' +import { DeckFixtureSetupInstructionsModal } from '/app/organisms/DeviceDetailsDeckConfiguration/DeckFixtureSetupInstructionsModal' import type { DeckDefinition } from '@opentrons/shared-data' import type { CutoutConfigAndCompatibility } from '/app/resources/deck_configuration/hooks' diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/SetupModulesList.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/SetupModulesList.tsx similarity index 98% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/SetupModulesList.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/SetupModulesList.tsx index f5beab0cd02..c04eaec4361 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/SetupModulesList.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/SetupModulesList.tsx @@ -43,8 +43,8 @@ import { useModuleRenderInfoForProtocolById, useUnmatchedModulesForProtocol, } from '/app/resources/runs' -import { ModuleSetupModal } from '../../../ModuleCard/ModuleSetupModal' -import { ModuleWizardFlows } from '../../../ModuleWizardFlows' +import { ModuleSetupModal } from '/app/organisms/ModuleCard/ModuleSetupModal' +import { ModuleWizardFlows } from '/app/organisms/ModuleWizardFlows' import { getModulePrepCommands, getModuleImage, diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/SetupModulesMap.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/SetupModulesMap.tsx similarity index 94% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/SetupModulesMap.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/SetupModulesMap.tsx index 991549d9b62..f9b44ea23bd 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/SetupModulesMap.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/SetupModulesMap.tsx @@ -12,10 +12,12 @@ import { } from '@opentrons/shared-data' import { useMostRecentCompletedAnalysis } from '/app/resources/runs' -import { getAttachedProtocolModuleMatches } from '/app/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/utils' import { ModuleInfo } from '/app/molecules/ModuleInfo' import { useAttachedModules } from '/app/resources/modules' -import { getProtocolModulesInfo } from '/app/transformations/analysis' +import { + getProtocolModulesInfo, + getAttachedProtocolModuleMatches, +} from '/app/transformations/analysis' import { getStandardDeckViewLayerBlockList } from '/app/local-resources/deck_configuration' import { useNotifyDeckConfigurationQuery } from '/app/resources/deck_configuration' import { useStoredProtocolAnalysis } from '/app/resources/analysis' diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/UnMatchedModuleWarning.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/UnMatchedModuleWarning.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/UnMatchedModuleWarning.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/UnMatchedModuleWarning.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/NotConfiguredModal.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/NotConfiguredModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/NotConfiguredModal.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/NotConfiguredModal.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/OT2MultipleModulesHelp.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/OT2MultipleModulesHelp.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/OT2MultipleModulesHelp.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/OT2MultipleModulesHelp.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupFixtureList.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupFixtureList.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupFixtureList.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupFixtureList.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesAndDeck.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesAndDeck.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesAndDeck.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesAndDeck.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesList.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesList.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesList.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesList.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesMap.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesMap.test.tsx similarity index 98% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesMap.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesMap.test.tsx index 2f9cc646f4e..9d9449283dc 100644 --- a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesMap.test.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/SetupModulesMap.test.tsx @@ -15,10 +15,9 @@ import { mockMagneticModule as mockMagneticModuleFixture, } from '/app/redux/modules/__fixtures__/index' import { useMostRecentCompletedAnalysis } from '/app/resources/runs' -import { getAttachedProtocolModuleMatches } from '/app/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/utils' import { ModuleInfo } from '/app/molecules/ModuleInfo' import { SetupModulesMap } from '../SetupModulesMap' - +import { getAttachedProtocolModuleMatches } from '/app/transformations/analysis' import type { CompletedProtocolAnalysis, ModuleModel, @@ -44,7 +43,7 @@ vi.mock('@opentrons/shared-data', async importOriginal => { } }) vi.mock('/app/resources/runs/useMostRecentCompletedAnalysis') -vi.mock('/app/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/utils') +vi.mock('/app/transformations/analysis') vi.mock('/app/molecules/ModuleInfo') vi.mock('/app/resources/modules') diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/UnMatchedModuleWarning.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/UnMatchedModuleWarning.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/UnMatchedModuleWarning.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/UnMatchedModuleWarning.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/utils.test.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/utils.test.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/utils.test.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/__tests__/utils.test.ts diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/index.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/index.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/index.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/index.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/utils.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/utils.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupModuleAndDeck/utils.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupModuleAndDeck/utils.ts diff --git a/app/src/organisms/Devices/ProtocolRun/SetupPipetteCalibrationItem.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupPipetteCalibrationItem.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupPipetteCalibrationItem.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupPipetteCalibrationItem.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupRobotCalibration.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupRobotCalibration.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupRobotCalibration.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupRobotCalibration.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupStep.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupStep.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupStep.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupStep.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupTipLengthCalibration.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupTipLengthCalibration.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupTipLengthCalibration.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupTipLengthCalibration.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/SetupTipLengthCalibrationButton.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupTipLengthCalibrationButton.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/SetupTipLengthCalibrationButton.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/SetupTipLengthCalibrationButton.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/BackToTopButton.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/BackToTopButton.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/__tests__/BackToTopButton.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/BackToTopButton.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/EmptySetupStep.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/EmptySetupStep.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/__tests__/EmptySetupStep.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/EmptySetupStep.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/LabwareInfoOverlay.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/LabwareInfoOverlay.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/__tests__/LabwareInfoOverlay.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/LabwareInfoOverlay.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/ProtocolRunModuleControls.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/ProtocolRunModuleControls.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/__tests__/ProtocolRunModuleControls.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/ProtocolRunModuleControls.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/ProtocolRunRuntimeParameters.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/ProtocolRunRuntimeParameters.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/__tests__/ProtocolRunRuntimeParameters.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/ProtocolRunRuntimeParameters.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/ProtocolRunSetup.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/ProtocolRunSetup.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/__tests__/ProtocolRunSetup.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/ProtocolRunSetup.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/SetupCalibrationItem.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupCalibrationItem.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/__tests__/SetupCalibrationItem.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupCalibrationItem.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/SetupDeckCalibration.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupDeckCalibration.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/__tests__/SetupDeckCalibration.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupDeckCalibration.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/SetupFlexPipetteCalibrationItem.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupFlexPipetteCalibrationItem.test.tsx similarity index 96% rename from app/src/organisms/Devices/ProtocolRun/__tests__/SetupFlexPipetteCalibrationItem.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupFlexPipetteCalibrationItem.test.tsx index d178c6fedc6..0719c0c13b6 100644 --- a/app/src/organisms/Devices/ProtocolRun/__tests__/SetupFlexPipetteCalibrationItem.test.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupFlexPipetteCalibrationItem.test.tsx @@ -8,13 +8,13 @@ import { useInstrumentsQuery } from '@opentrons/react-api-client' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { useMostRecentCompletedAnalysis } from '/app/resources/runs' -import { PipetteWizardFlows } from '../../../PipetteWizardFlows' +import { PipetteWizardFlows } from '/app/organisms/PipetteWizardFlows' import { SetupFlexPipetteCalibrationItem } from '../SetupFlexPipetteCalibrationItem' import { modifiedSimpleV6Protocol as _uncastedModifiedSimpleV6Protocol } from '/app/resources/runs/__fixtures__' import type { CompletedProtocolAnalysis } from '@opentrons/shared-data' vi.mock('@opentrons/react-api-client') -vi.mock('../../../PipetteWizardFlows') +vi.mock('/app/organisms/PipetteWizardFlows') vi.mock('/app/resources/runs') vi.mock('/app/resources/analysis') diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/SetupPipetteCalibration.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupPipetteCalibration.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/__tests__/SetupPipetteCalibration.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupPipetteCalibration.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/SetupPipetteCalibrationItem.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupPipetteCalibrationItem.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/__tests__/SetupPipetteCalibrationItem.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupPipetteCalibrationItem.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/SetupRobotCalibration.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupRobotCalibration.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/__tests__/SetupRobotCalibration.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupRobotCalibration.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/SetupStep.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupStep.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/__tests__/SetupStep.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupStep.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/SetupTipLengthCalibration.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupTipLengthCalibration.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/__tests__/SetupTipLengthCalibration.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupTipLengthCalibration.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/__tests__/SetupTipLengthCalibrationButton.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupTipLengthCalibrationButton.test.tsx similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/__tests__/SetupTipLengthCalibrationButton.test.tsx rename to app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupTipLengthCalibrationButton.test.tsx diff --git a/app/src/organisms/Devices/ProtocolRun/useLabwareOffsetForLabware.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/useLabwareOffsetForLabware.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/useLabwareOffsetForLabware.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/useLabwareOffsetForLabware.ts diff --git a/app/src/organisms/Devices/ProtocolRun/utils/__tests__/getModuleTypesThatRequireExtraAttention.test.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/utils/__tests__/getModuleTypesThatRequireExtraAttention.test.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/utils/__tests__/getModuleTypesThatRequireExtraAttention.test.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/utils/__tests__/getModuleTypesThatRequireExtraAttention.test.ts diff --git a/app/src/organisms/Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation.ts diff --git a/app/src/organisms/Devices/ProtocolRun/utils/getInitialLabwareLocation.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/utils/getInitialLabwareLocation.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/utils/getInitialLabwareLocation.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/utils/getInitialLabwareLocation.ts diff --git a/app/src/organisms/Devices/ProtocolRun/utils/getModuleName.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/utils/getModuleName.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/utils/getModuleName.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/utils/getModuleName.ts diff --git a/app/src/organisms/Devices/ProtocolRun/utils/getModuleTypesThatRequireExtraAttention.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/utils/getModuleTypesThatRequireExtraAttention.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/utils/getModuleTypesThatRequireExtraAttention.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/utils/getModuleTypesThatRequireExtraAttention.ts diff --git a/app/src/organisms/Devices/ProtocolRun/utils/getPickUpTipCommandsWithPipette.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/utils/getPickUpTipCommandsWithPipette.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/utils/getPickUpTipCommandsWithPipette.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/utils/getPickUpTipCommandsWithPipette.ts diff --git a/app/src/organisms/Devices/ProtocolRun/utils/getPipetteMount.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/utils/getPipetteMount.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/utils/getPipetteMount.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/utils/getPipetteMount.ts diff --git a/app/src/organisms/Devices/ProtocolRun/utils/getTipracksVisited.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/utils/getTipracksVisited.ts similarity index 100% rename from app/src/organisms/Devices/ProtocolRun/utils/getTipracksVisited.ts rename to app/src/organisms/Desktop/Devices/ProtocolRun/utils/getTipracksVisited.ts diff --git a/app/src/organisms/Devices/ReachableBanner.tsx b/app/src/organisms/Desktop/Devices/ReachableBanner.tsx similarity index 100% rename from app/src/organisms/Devices/ReachableBanner.tsx rename to app/src/organisms/Desktop/Devices/ReachableBanner.tsx diff --git a/app/src/organisms/Devices/RecentProtocolRuns.tsx b/app/src/organisms/Desktop/Devices/RecentProtocolRuns.tsx similarity index 100% rename from app/src/organisms/Devices/RecentProtocolRuns.tsx rename to app/src/organisms/Desktop/Devices/RecentProtocolRuns.tsx diff --git a/app/src/organisms/Devices/RobotCard.tsx b/app/src/organisms/Desktop/Devices/RobotCard.tsx similarity index 99% rename from app/src/organisms/Devices/RobotCard.tsx rename to app/src/organisms/Desktop/Devices/RobotCard.tsx index e4598567bb8..a375a2cfa1c 100644 --- a/app/src/organisms/Devices/RobotCard.tsx +++ b/app/src/organisms/Desktop/Devices/RobotCard.tsx @@ -43,7 +43,7 @@ import { RobotStatusHeader } from './RobotStatusHeader' import { ErrorRecoveryBanner, useErrorRecoveryBanner, -} from '../ErrorRecoveryBanner' +} from './ErrorRecoveryBanner' import type { GripperData } from '@opentrons/api-client' import type { GripperModel } from '@opentrons/shared-data' diff --git a/app/src/organisms/Devices/RobotOverflowMenu.tsx b/app/src/organisms/Desktop/Devices/RobotOverflowMenu.tsx similarity index 97% rename from app/src/organisms/Devices/RobotOverflowMenu.tsx rename to app/src/organisms/Desktop/Devices/RobotOverflowMenu.tsx index 0152fe3a11a..997bf0d4180 100644 --- a/app/src/organisms/Devices/RobotOverflowMenu.tsx +++ b/app/src/organisms/Desktop/Devices/RobotOverflowMenu.tsx @@ -25,8 +25,8 @@ import { import { CONNECTABLE, removeRobot } from '/app/redux/discovery' import { useIsRobotOnWrongVersionOfSoftware } from '/app/redux/robot-update' import { Divider } from '/app/atoms/structure' -import { getTopPortalEl } from '../../App/portal' -import { ChooseProtocolSlideout } from '../ChooseProtocolSlideout' +import { getTopPortalEl } from '/app/App/portal' +import { ChooseProtocolSlideout } from '/app/organisms/Desktop/ChooseProtocolSlideout' import { useCurrentRunId } from '/app/resources/runs' import { ConnectionTroubleshootingModal } from './ConnectionTroubleshootingModal' import { useIsRobotBusy } from './hooks' diff --git a/app/src/organisms/Devices/RobotOverview.tsx b/app/src/organisms/Desktop/Devices/RobotOverview.tsx similarity index 99% rename from app/src/organisms/Devices/RobotOverview.tsx rename to app/src/organisms/Desktop/Devices/RobotOverview.tsx index b07e5a2a822..73d9c4ef443 100644 --- a/app/src/organisms/Devices/RobotOverview.tsx +++ b/app/src/organisms/Desktop/Devices/RobotOverview.tsx @@ -39,7 +39,7 @@ import { CalibrationStatusBanner } from './CalibrationStatusBanner' import { ErrorRecoveryBanner, useErrorRecoveryBanner, -} from '../ErrorRecoveryBanner' +} from './ErrorRecoveryBanner' import type { State } from '/app/redux/types' diff --git a/app/src/organisms/Devices/RobotOverviewOverflowMenu.tsx b/app/src/organisms/Desktop/Devices/RobotOverviewOverflowMenu.tsx similarity index 95% rename from app/src/organisms/Devices/RobotOverviewOverflowMenu.tsx rename to app/src/organisms/Desktop/Devices/RobotOverviewOverflowMenu.tsx index 66b0f58a23a..b953a7ff9a9 100644 --- a/app/src/organisms/Devices/RobotOverviewOverflowMenu.tsx +++ b/app/src/organisms/Desktop/Devices/RobotOverviewOverflowMenu.tsx @@ -21,11 +21,11 @@ import { useMountEffect, } from '@opentrons/components' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { Divider } from '/app/atoms/structure' -import { ChooseProtocolSlideout } from '/app/organisms/ChooseProtocolSlideout' -import { DisconnectModal } from '/app/organisms/Devices/RobotSettings/ConnectNetwork/DisconnectModal' -import { handleUpdateBuildroot } from '/app/organisms/Devices/RobotSettings/UpdateBuildroot' +import { ChooseProtocolSlideout } from '/app/organisms/Desktop/ChooseProtocolSlideout' +import { DisconnectModal } from './RobotSettings/ConnectNetwork/DisconnectModal' +import { handleUpdateBuildroot } from './RobotSettings/UpdateBuildroot' import { useIsRobotOnWrongVersionOfSoftware } from '/app/redux/robot-update' import { UNREACHABLE, CONNECTABLE, REACHABLE } from '/app/redux/discovery' import { checkShellUpdate } from '/app/redux/shell' diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/DeviceResetModal.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/DeviceResetModal.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/DeviceResetModal.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/DeviceResetModal.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/DeviceResetSlideout.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/DeviceResetSlideout.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/DeviceResetSlideout.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/DeviceResetSlideout.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/FactoryModeSlideout.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/FactoryModeSlideout.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/FactoryModeSlideout.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/FactoryModeSlideout.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/RenameRobotSlideout.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/RenameRobotSlideout.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/RenameRobotSlideout.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/RenameRobotSlideout.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/DeviceResetModal.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/DeviceResetModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/DeviceResetModal.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/DeviceResetModal.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/DeviceResetSlideout.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/DeviceResetSlideout.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/DeviceResetSlideout.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/DeviceResetSlideout.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/RenameRobotSlideout.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/RenameRobotSlideout.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/RenameRobotSlideout.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/AdvancedTabSlideouts/__tests__/RenameRobotSlideout.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/DeviceReset.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/DeviceReset.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/DeviceReset.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/DeviceReset.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/DisplayRobotName.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/DisplayRobotName.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/DisplayRobotName.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/DisplayRobotName.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/EnableStatusLight.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/EnableStatusLight.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/EnableStatusLight.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/EnableStatusLight.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/FactoryMode.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/FactoryMode.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/FactoryMode.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/FactoryMode.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/GantryHoming.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/GantryHoming.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/GantryHoming.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/GantryHoming.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/LegacySettings.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/LegacySettings.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/LegacySettings.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/LegacySettings.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/OpenJupyterControl.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/OpenJupyterControl.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/OpenJupyterControl.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/OpenJupyterControl.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/RobotInformation.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/RobotInformation.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/RobotInformation.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/RobotInformation.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/RobotServerVersion.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/RobotServerVersion.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/RobotServerVersion.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/RobotServerVersion.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/ShortTrashBin.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/ShortTrashBin.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/ShortTrashBin.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/ShortTrashBin.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/Troubleshooting.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/Troubleshooting.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/Troubleshooting.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/Troubleshooting.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/UpdateRobotSoftware.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/UpdateRobotSoftware.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/UpdateRobotSoftware.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/UpdateRobotSoftware.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/UsageSettings.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/UsageSettings.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/UsageSettings.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/UsageSettings.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/UseOlderAspirateBehavior.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/UseOlderAspirateBehavior.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/UseOlderAspirateBehavior.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/UseOlderAspirateBehavior.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/DeviceReset.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/DeviceReset.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/DeviceReset.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/DeviceReset.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/DisplayRobotName.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/DisplayRobotName.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/DisplayRobotName.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/DisplayRobotName.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/EnableStatusLight.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/EnableStatusLight.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/EnableStatusLight.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/EnableStatusLight.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/GantryHoming.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/GantryHoming.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/GantryHoming.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/GantryHoming.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/LegacySettings.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/LegacySettings.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/LegacySettings.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/LegacySettings.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/OpenJupyterControl.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/OpenJupyterControl.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/OpenJupyterControl.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/OpenJupyterControl.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/RobotInformation.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/RobotInformation.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/RobotInformation.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/RobotInformation.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/RobotServerVersion.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/RobotServerVersion.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/RobotServerVersion.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/RobotServerVersion.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/ShortTrashBin.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/ShortTrashBin.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/ShortTrashBin.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/ShortTrashBin.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/Troubleshooting.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/Troubleshooting.test.tsx similarity index 97% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/Troubleshooting.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/Troubleshooting.test.tsx index 659154d22ff..a5f28ee7da2 100644 --- a/app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/Troubleshooting.test.tsx +++ b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/Troubleshooting.test.tsx @@ -17,7 +17,7 @@ import { useRobot } from '/app/redux-resources/robots' import { Troubleshooting } from '../Troubleshooting' import type { HostConfig } from '@opentrons/api-client' -import type { ToasterContextType } from '../../../../ToasterOven/ToasterContext' +import type { ToasterContextType } from '/app/organisms/ToasterOven/ToasterContext' vi.mock('@opentrons/react-api-client') vi.mock('/app/organisms/ToasterOven') diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/UpdateRobotSoftware.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/UpdateRobotSoftware.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/UpdateRobotSoftware.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/UpdateRobotSoftware.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/UsageSettings.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/UsageSettings.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/UsageSettings.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/UsageSettings.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/UseOlderAspirateBehavior.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/UseOlderAspirateBehavior.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/__tests__/UseOlderAspirateBehavior.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/__tests__/UseOlderAspirateBehavior.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/AdvancedTab/index.ts b/app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/index.ts similarity index 100% rename from app/src/organisms/Devices/RobotSettings/AdvancedTab/index.ts rename to app/src/organisms/Desktop/Devices/RobotSettings/AdvancedTab/index.ts diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/FormModal.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/FormModal.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/FormModal.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/FormModal.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/FormRow.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/FormRow.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/FormRow.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/FormRow.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/KeyFileField.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/KeyFileField.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/KeyFileField.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/KeyFileField.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/SecurityField.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/SecurityField.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/SecurityField.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/SecurityField.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/TextField.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/TextField.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/TextField.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/TextField.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/UploadKeyInput.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/UploadKeyInput.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/UploadKeyInput.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/UploadKeyInput.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/ConnectModal.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/ConnectModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/ConnectModal.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/ConnectModal.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/FormModal.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/FormModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/FormModal.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/FormModal.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/KeyFileField.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/KeyFileField.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/KeyFileField.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/KeyFileField.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/SecurityField.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/SecurityField.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/SecurityField.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/SecurityField.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/TextField.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/TextField.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/TextField.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/TextField.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/UploadKeyInput.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/UploadKeyInput.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/UploadKeyInput.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/UploadKeyInput.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/form-fields.test.ts b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/form-fields.test.ts similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/form-fields.test.ts rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/form-fields.test.ts diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/form-state.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/form-state.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/form-state.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/__tests__/form-state.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/form-fields.ts b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/form-fields.ts similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/form-fields.ts rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/form-fields.ts diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/form-state.ts b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/form-state.ts similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/form-state.ts rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/form-state.ts diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/index.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/index.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ConnectModal/index.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ConnectModal/index.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/DisconnectModal.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/DisconnectModal.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/DisconnectModal.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/DisconnectModal.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/ResultModal.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ResultModal.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/ResultModal.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/ResultModal.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/SelectSsid/NetworkOptionLabel.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/SelectSsid/NetworkOptionLabel.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/SelectSsid/NetworkOptionLabel.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/SelectSsid/NetworkOptionLabel.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/SelectSsid/__tests__/NetworkOptionLabel.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/SelectSsid/__tests__/NetworkOptionLabel.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/SelectSsid/__tests__/NetworkOptionLabel.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/SelectSsid/__tests__/NetworkOptionLabel.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/SelectSsid/__tests__/SelectSsid.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/SelectSsid/__tests__/SelectSsid.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/SelectSsid/__tests__/SelectSsid.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/SelectSsid/__tests__/SelectSsid.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/SelectSsid/index.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/SelectSsid/index.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/SelectSsid/index.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/SelectSsid/index.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/__tests__/DisconnectModal.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/__tests__/DisconnectModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/__tests__/DisconnectModal.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/__tests__/DisconnectModal.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/__tests__/ResultModal.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/__tests__/ResultModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/__tests__/ResultModal.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/__tests__/ResultModal.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/constants.ts b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/constants.ts similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/constants.ts rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/constants.ts diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/i18n.ts b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/i18n.ts similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/i18n.ts rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/i18n.ts diff --git a/app/src/organisms/Devices/RobotSettings/ConnectNetwork/types.ts b/app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/types.ts similarity index 100% rename from app/src/organisms/Devices/RobotSettings/ConnectNetwork/types.ts rename to app/src/organisms/Desktop/Devices/RobotSettings/ConnectNetwork/types.ts diff --git a/app/src/organisms/Devices/RobotSettings/RobotSettingsAdvanced.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsAdvanced.tsx similarity index 99% rename from app/src/organisms/Devices/RobotSettings/RobotSettingsAdvanced.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsAdvanced.tsx index 1d33e4dd41d..337588d6f71 100644 --- a/app/src/organisms/Devices/RobotSettings/RobotSettingsAdvanced.tsx +++ b/app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsAdvanced.tsx @@ -43,7 +43,7 @@ import { DeviceResetModal } from './AdvancedTab/AdvancedTabSlideouts/DeviceReset import { FactoryModeSlideout } from './AdvancedTab/AdvancedTabSlideouts/FactoryModeSlideout' import { handleUpdateBuildroot } from './UpdateBuildroot' import { getRobotSerialNumber, UNREACHABLE } from '/app/redux/discovery' -import { getTopPortalEl } from '../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' import type { State, Dispatch } from '/app/redux/types' diff --git a/app/src/organisms/Devices/RobotSettings/RobotSettingsFeatureFlags.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsFeatureFlags.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/RobotSettingsFeatureFlags.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsFeatureFlags.tsx diff --git a/app/src/organisms/Devices/RobotSettings/RobotSettingsNetworking.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsNetworking.tsx similarity index 99% rename from app/src/organisms/Devices/RobotSettings/RobotSettingsNetworking.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsNetworking.tsx index 57acc939d51..3c76306099a 100644 --- a/app/src/organisms/Devices/RobotSettings/RobotSettingsNetworking.tsx +++ b/app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsNetworking.tsx @@ -35,7 +35,7 @@ import { SelectNetwork } from './SelectNetwork' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' import type { State, Dispatch } from '/app/redux/types' -import { getModalPortalEl } from '../../../App/portal' +import { getModalPortalEl } from '/app/App/portal' interface NetworkingProps { robotName: string updateRobotStatus: (isRobotBusy: boolean) => void diff --git a/app/src/organisms/Devices/RobotSettings/SelectNetwork.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/SelectNetwork.tsx similarity index 98% rename from app/src/organisms/Devices/RobotSettings/SelectNetwork.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/SelectNetwork.tsx index db5a7bc5aad..403c88a04bd 100644 --- a/app/src/organisms/Devices/RobotSettings/SelectNetwork.tsx +++ b/app/src/organisms/Desktop/Devices/RobotSettings/SelectNetwork.tsx @@ -6,7 +6,7 @@ import last from 'lodash/last' import { useWifiList } from '/app/resources/networking/hooks' import * as RobotApi from '/app/redux/robot-api' import * as Networking from '/app/redux/networking' -import { getModalPortalEl } from '../../../App/portal' +import { getModalPortalEl } from '/app/App/portal' import { SelectSsid } from './ConnectNetwork/SelectSsid' import { ConnectModal } from './ConnectNetwork/ConnectModal' import { ResultModal } from './ConnectNetwork/ResultModal' diff --git a/app/src/organisms/Devices/RobotSettings/SettingToggle.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/SettingToggle.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/SettingToggle.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/SettingToggle.tsx diff --git a/app/src/organisms/Devices/RobotSettings/UpdateBuildroot/MigrationWarningModal.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/MigrationWarningModal.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/UpdateBuildroot/MigrationWarningModal.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/MigrationWarningModal.tsx diff --git a/app/src/organisms/Devices/RobotSettings/UpdateBuildroot/RobotUpdateProgressModal.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/RobotUpdateProgressModal.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/UpdateBuildroot/RobotUpdateProgressModal.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/RobotUpdateProgressModal.tsx diff --git a/app/src/organisms/Devices/RobotSettings/UpdateBuildroot/UpdateRobotModal.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/UpdateRobotModal.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/UpdateBuildroot/UpdateRobotModal.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/UpdateRobotModal.tsx diff --git a/app/src/organisms/Devices/RobotSettings/UpdateBuildroot/ViewUpdateModal.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/ViewUpdateModal.tsx similarity index 95% rename from app/src/organisms/Devices/RobotSettings/UpdateBuildroot/ViewUpdateModal.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/ViewUpdateModal.tsx index 783d0da6b89..dceeb7672f5 100644 --- a/app/src/organisms/Devices/RobotSettings/UpdateBuildroot/ViewUpdateModal.tsx +++ b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/ViewUpdateModal.tsx @@ -10,8 +10,8 @@ import { getRobotUpdateAvailable, } from '/app/redux/robot-update' import { getAvailableShellUpdate } from '/app/redux/shell' -import { getTopPortalEl } from '../../../../App/portal' -import { UpdateAppModal } from '/app/organisms/UpdateAppModal' +import { getTopPortalEl } from '/app/App/portal' +import { UpdateAppModal } from '/app/organisms/Desktop/UpdateAppModal' import { MigrationWarningModal } from './MigrationWarningModal' import { UpdateRobotModal } from './UpdateRobotModal' diff --git a/app/src/organisms/Devices/RobotSettings/UpdateBuildroot/__tests__/RobotUpdateProgressModal.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/__tests__/RobotUpdateProgressModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/UpdateBuildroot/__tests__/RobotUpdateProgressModal.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/__tests__/RobotUpdateProgressModal.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/UpdateBuildroot/__tests__/UpdateBuildroot.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/__tests__/UpdateBuildroot.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/UpdateBuildroot/__tests__/UpdateBuildroot.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/__tests__/UpdateBuildroot.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/UpdateBuildroot/__tests__/UpdateRobotModal.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/__tests__/UpdateRobotModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/UpdateBuildroot/__tests__/UpdateRobotModal.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/__tests__/UpdateRobotModal.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/UpdateBuildroot/__tests__/ViewUpdateModal.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/__tests__/ViewUpdateModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/UpdateBuildroot/__tests__/ViewUpdateModal.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/__tests__/ViewUpdateModal.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/UpdateBuildroot/__tests__/useRobotUpdateInfo.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/__tests__/useRobotUpdateInfo.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/UpdateBuildroot/__tests__/useRobotUpdateInfo.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/__tests__/useRobotUpdateInfo.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/UpdateBuildroot/index.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/index.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/UpdateBuildroot/index.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/index.tsx diff --git a/app/src/organisms/Devices/RobotSettings/UpdateBuildroot/useRobotUpdateInfo.ts b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/useRobotUpdateInfo.ts similarity index 100% rename from app/src/organisms/Devices/RobotSettings/UpdateBuildroot/useRobotUpdateInfo.ts rename to app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/useRobotUpdateInfo.ts diff --git a/app/src/organisms/Devices/RobotSettings/__tests__/RobotSettingsAdvanced.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/__tests__/RobotSettingsAdvanced.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/__tests__/RobotSettingsAdvanced.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/__tests__/RobotSettingsAdvanced.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/__tests__/RobotSettingsFeatureFlags.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/__tests__/RobotSettingsFeatureFlags.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/__tests__/RobotSettingsFeatureFlags.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/__tests__/RobotSettingsFeatureFlags.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/__tests__/RobotSettingsNetworking.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/__tests__/RobotSettingsNetworking.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/__tests__/RobotSettingsNetworking.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/__tests__/RobotSettingsNetworking.test.tsx diff --git a/app/src/organisms/Devices/RobotSettings/__tests__/SelectNetwork.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/__tests__/SelectNetwork.test.tsx similarity index 100% rename from app/src/organisms/Devices/RobotSettings/__tests__/SelectNetwork.test.tsx rename to app/src/organisms/Desktop/Devices/RobotSettings/__tests__/SelectNetwork.test.tsx diff --git a/app/src/organisms/Devices/RobotStatusHeader.tsx b/app/src/organisms/Desktop/Devices/RobotStatusHeader.tsx similarity index 100% rename from app/src/organisms/Devices/RobotStatusHeader.tsx rename to app/src/organisms/Desktop/Devices/RobotStatusHeader.tsx diff --git a/app/src/organisms/RunPreview/index.tsx b/app/src/organisms/Desktop/Devices/RunPreview/index.tsx similarity index 99% rename from app/src/organisms/RunPreview/index.tsx rename to app/src/organisms/Desktop/Devices/RunPreview/index.tsx index a59a4e774a5..e3baabba5de 100644 --- a/app/src/organisms/RunPreview/index.tsx +++ b/app/src/organisms/Desktop/Devices/RunPreview/index.tsx @@ -30,7 +30,7 @@ import { } from '/app/resources/runs' import { CommandText, CommandIcon } from '/app/molecules/Command' import { Divider } from '/app/atoms/structure' -import { NAV_BAR_WIDTH } from '../../App/constants' +import { NAV_BAR_WIDTH } from '/app/App/constants' import type { RunStatus } from '@opentrons/api-client' import type { RobotType } from '@opentrons/shared-data' diff --git a/app/src/organisms/Devices/__tests__/CalibrationStatusBanner.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/CalibrationStatusBanner.test.tsx similarity index 100% rename from app/src/organisms/Devices/__tests__/CalibrationStatusBanner.test.tsx rename to app/src/organisms/Desktop/Devices/__tests__/CalibrationStatusBanner.test.tsx diff --git a/app/src/organisms/Devices/__tests__/ConnectionTroubleshootingModal.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/ConnectionTroubleshootingModal.test.tsx similarity index 100% rename from app/src/organisms/Devices/__tests__/ConnectionTroubleshootingModal.test.tsx rename to app/src/organisms/Desktop/Devices/__tests__/ConnectionTroubleshootingModal.test.tsx diff --git a/app/src/organisms/Devices/__tests__/DevicesEmptyState.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/DevicesEmptyState.test.tsx similarity index 100% rename from app/src/organisms/Devices/__tests__/DevicesEmptyState.test.tsx rename to app/src/organisms/Desktop/Devices/__tests__/DevicesEmptyState.test.tsx diff --git a/app/src/organisms/Devices/__tests__/EstopBanner.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/EstopBanner.test.tsx similarity index 100% rename from app/src/organisms/Devices/__tests__/EstopBanner.test.tsx rename to app/src/organisms/Desktop/Devices/__tests__/EstopBanner.test.tsx diff --git a/app/src/organisms/Devices/__tests__/HistoricalProtocolRun.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/HistoricalProtocolRun.test.tsx similarity index 100% rename from app/src/organisms/Devices/__tests__/HistoricalProtocolRun.test.tsx rename to app/src/organisms/Desktop/Devices/__tests__/HistoricalProtocolRun.test.tsx diff --git a/app/src/organisms/Devices/__tests__/HistoricalProtocolRunOverflowMenu.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/HistoricalProtocolRunOverflowMenu.test.tsx similarity index 95% rename from app/src/organisms/Devices/__tests__/HistoricalProtocolRunOverflowMenu.test.tsx rename to app/src/organisms/Desktop/Devices/__tests__/HistoricalProtocolRunOverflowMenu.test.tsx index f9d93904709..2b2706c9645 100644 --- a/app/src/organisms/Devices/__tests__/HistoricalProtocolRunOverflowMenu.test.tsx +++ b/app/src/organisms/Desktop/Devices/__tests__/HistoricalProtocolRunOverflowMenu.test.tsx @@ -13,13 +13,13 @@ import runRecord from '../ProtocolRun/ProtocolRunHeader/RunHeaderModalContainer/ import { useDownloadRunLog } from '../hooks' import { useRobot } from '/app/redux-resources/robots' import { useTrackProtocolRunEvent } from '/app/redux-resources/analytics' -import { useRunControls } from '../../RunTimeControl/hooks' +import { useRunControls } from '/app/organisms/RunTimeControl' import { useTrackEvent, ANALYTICS_PROTOCOL_PROCEED_TO_RUN, } from '/app/redux/analytics' import { useIsRobotOnWrongVersionOfSoftware } from '/app/redux/robot-update' -import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' +import { useIsEstopNotDisengaged } from '/app/resources/devices' import { HistoricalProtocolRunOverflowMenu } from '../HistoricalProtocolRunOverflowMenu' import { useNotifyAllCommandsQuery } from '/app/resources/runs' @@ -29,11 +29,11 @@ import type { CommandsData } from '@opentrons/api-client' vi.mock('/app/redux/analytics') vi.mock('/app/redux/robot-update/selectors') vi.mock('/app/redux-resources/robots') -vi.mock('/app/organisms/Devices/hooks') -vi.mock('../../RunTimeControl/hooks') +vi.mock('../hooks') +vi.mock('/app/organisms/RunTimeControl') vi.mock('/app/redux/analytics') vi.mock('/app/redux/config') -vi.mock('/app/resources/devices/hooks/useIsEstopNotDisengaged') +vi.mock('/app/resources/devices') vi.mock('/app/resources/runs') vi.mock('/app/redux/robot-update') vi.mock('/app/redux-resources/analytics') diff --git a/app/src/organisms/Devices/__tests__/InstrumentsAndModules.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/InstrumentsAndModules.test.tsx similarity index 97% rename from app/src/organisms/Devices/__tests__/InstrumentsAndModules.test.tsx rename to app/src/organisms/Desktop/Devices/__tests__/InstrumentsAndModules.test.tsx index e3c927524bc..e055ace4d9a 100644 --- a/app/src/organisms/Devices/__tests__/InstrumentsAndModules.test.tsx +++ b/app/src/organisms/Desktop/Devices/__tests__/InstrumentsAndModules.test.tsx @@ -13,9 +13,9 @@ import { i18n } from '/app/i18n' import { mockMagneticModule } from '/app/redux/modules/__fixtures__' import { useIsFlex } from '/app/redux-resources/robots' import { useIsRobotViewable, useRunStatuses } from '../hooks' -import { ModuleCard } from '../../ModuleCard' +import { ModuleCard } from '/app/organisms/ModuleCard' import { InstrumentsAndModules } from '../InstrumentsAndModules' -import { GripperCard } from '../../GripperCard' +import { GripperCard } from '../GripperCard' import { PipetteCard } from '../PipetteCard' import { FlexPipetteCard } from '../PipetteCard/FlexPipetteCard' import { PipetteRecalibrationWarning } from '../PipetteCard/PipetteRecalibrationWarning' @@ -33,8 +33,8 @@ vi.mock('@opentrons/components', async importOriginal => { }) vi.mock('@opentrons/react-api-client') vi.mock('../hooks') -vi.mock('../../GripperCard') -vi.mock('../../ModuleCard') +vi.mock('../GripperCard') +vi.mock('/app/organisms/ModuleCard') vi.mock('../PipetteCard') vi.mock('../PipetteCard/FlexPipetteCard') vi.mock('../PipetteCard/PipetteRecalibrationWarning') diff --git a/app/src/organisms/Devices/__tests__/RecentProtocolRuns.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/RecentProtocolRuns.test.tsx similarity index 100% rename from app/src/organisms/Devices/__tests__/RecentProtocolRuns.test.tsx rename to app/src/organisms/Desktop/Devices/__tests__/RecentProtocolRuns.test.tsx diff --git a/app/src/organisms/Devices/__tests__/RobotCard.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/RobotCard.test.tsx similarity index 97% rename from app/src/organisms/Devices/__tests__/RobotCard.test.tsx rename to app/src/organisms/Desktop/Devices/__tests__/RobotCard.test.tsx index c5dba81b373..89d59c47cf8 100644 --- a/app/src/organisms/Devices/__tests__/RobotCard.test.tsx +++ b/app/src/organisms/Desktop/Devices/__tests__/RobotCard.test.tsx @@ -10,7 +10,7 @@ import { mockOT2ServerHealthResponse, mockOT3HealthResponse, mockOT3ServerHealthResponse, -} from '../../../../../discovery-client/src/fixtures' +} from '../../../../../../discovery-client/src/fixtures' import { i18n } from '/app/i18n' import { mockFetchModulesSuccessActionPayloadModules } from '/app/redux/modules/__fixtures__' @@ -35,7 +35,7 @@ import { RobotCard } from '../RobotCard' import { ErrorRecoveryBanner, useErrorRecoveryBanner, -} from '../../ErrorRecoveryBanner' +} from '../ErrorRecoveryBanner' import type { State } from '/app/redux/types' @@ -48,7 +48,7 @@ vi.mock('../../UpdateRobotBanner') vi.mock('/app/redux/config') vi.mock('../RobotOverflowMenu') vi.mock('../RobotStatusHeader') -vi.mock('../../ErrorRecoveryBanner') +vi.mock('../ErrorRecoveryBanner') const OT2_PNG_FILE_NAME = '/app/src/assets/images/OT2-R_HERO.png' const FLEX_PNG_FILE_NAME = '/app/src/assets/images/FLEX.png' diff --git a/app/src/organisms/Devices/__tests__/RobotOverflowMenu.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/RobotOverflowMenu.test.tsx similarity index 95% rename from app/src/organisms/Devices/__tests__/RobotOverflowMenu.test.tsx rename to app/src/organisms/Desktop/Devices/__tests__/RobotOverflowMenu.test.tsx index e2c9bbe5067..a157fe929c7 100644 --- a/app/src/organisms/Devices/__tests__/RobotOverflowMenu.test.tsx +++ b/app/src/organisms/Desktop/Devices/__tests__/RobotOverflowMenu.test.tsx @@ -6,7 +6,7 @@ import '@testing-library/jest-dom/vitest' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { useCurrentRunId } from '/app/resources/runs' -import { ChooseProtocolSlideout } from '../../ChooseProtocolSlideout' +import { ChooseProtocolSlideout } from '/app/organisms/Desktop/ChooseProtocolSlideout' import { RobotOverflowMenu } from '../RobotOverflowMenu' import { useIsRobotOnWrongVersionOfSoftware } from '/app/redux/robot-update' import { useIsRobotBusy } from '../hooks' @@ -18,7 +18,7 @@ import { vi.mock('/app/redux/robot-update/hooks') vi.mock('/app/resources/runs') -vi.mock('../../ChooseProtocolSlideout') +vi.mock('/app/organisms/Desktop/ChooseProtocolSlideout') vi.mock('../hooks') vi.mock('/app/resources/devices/hooks/useIsEstopNotDisengaged') diff --git a/app/src/organisms/Devices/__tests__/RobotOverview.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/RobotOverview.test.tsx similarity index 98% rename from app/src/organisms/Devices/__tests__/RobotOverview.test.tsx rename to app/src/organisms/Desktop/Devices/__tests__/RobotOverview.test.tsx index a02b1424923..c8523f927e0 100644 --- a/app/src/organisms/Devices/__tests__/RobotOverview.test.tsx +++ b/app/src/organisms/Desktop/Devices/__tests__/RobotOverview.test.tsx @@ -5,7 +5,7 @@ import { screen, fireEvent } from '@testing-library/react' import { describe, it, vi, beforeEach, expect } from 'vitest' import '@testing-library/jest-dom/vitest' import { renderWithProviders } from '/app/__testing-utils__' -import * as DiscoveryClientFixtures from '../../../../../discovery-client/src/fixtures' +import * as DiscoveryClientFixtures from '../../../../../../discovery-client/src/fixtures' import { useAuthorization } from '@opentrons/react-api-client' import { i18n } from '/app/i18n' @@ -47,7 +47,7 @@ import { RobotOverviewOverflowMenu } from '../RobotOverviewOverflowMenu' import { ErrorRecoveryBanner, useErrorRecoveryBanner, -} from '../../ErrorRecoveryBanner' +} from '../ErrorRecoveryBanner' import type { Config } from '/app/redux/config/types' import type { DiscoveryClientRobotAddress } from '/app/redux/discovery/types' @@ -71,7 +71,7 @@ vi.mock('/app/redux-resources/robots') vi.mock('../RobotStatusHeader') vi.mock('../../UpdateRobotBanner') vi.mock('../RobotOverviewOverflowMenu') -vi.mock('../../ErrorRecoveryBanner') +vi.mock('../ErrorRecoveryBanner') const OT2_PNG_FILE_NAME = '/app/src/assets/images/OT2-R_HERO.png' const FLEX_PNG_FILE_NAME = '/app/src/assets/images/FLEX.png' diff --git a/app/src/organisms/Devices/__tests__/RobotOverviewOverflowMenu.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/RobotOverviewOverflowMenu.test.tsx similarity index 96% rename from app/src/organisms/Devices/__tests__/RobotOverviewOverflowMenu.test.tsx rename to app/src/organisms/Desktop/Devices/__tests__/RobotOverviewOverflowMenu.test.tsx index 8484558df0f..696786efb26 100644 --- a/app/src/organisms/Devices/__tests__/RobotOverviewOverflowMenu.test.tsx +++ b/app/src/organisms/Desktop/Devices/__tests__/RobotOverviewOverflowMenu.test.tsx @@ -16,8 +16,8 @@ import { mockUnreachableRobot, } from '/app/redux/discovery/__fixtures__' import { useCanDisconnect } from '/app/resources/networking/hooks' -import { DisconnectModal } from '/app/organisms/Devices/RobotSettings/ConnectNetwork/DisconnectModal' -import { ChooseProtocolSlideout } from '../../ChooseProtocolSlideout' +import { DisconnectModal } from '../RobotSettings/ConnectNetwork/DisconnectModal' +import { ChooseProtocolSlideout } from '/app/organisms/Desktop/ChooseProtocolSlideout' import { useCurrentRunId } from '/app/resources/runs' import { useIsRobotBusy } from '../hooks' import { handleUpdateBuildroot } from '../RobotSettings/UpdateBuildroot' @@ -29,8 +29,8 @@ vi.mock('/app/redux/robot-admin') vi.mock('../hooks') vi.mock('/app/redux/robot-update') vi.mock('/app/resources/networking/hooks') -vi.mock('/app/organisms/Devices/RobotSettings/ConnectNetwork/DisconnectModal') -vi.mock('../../ChooseProtocolSlideout') +vi.mock('../RobotSettings/ConnectNetwork/DisconnectModal') +vi.mock('/app/organisms/Desktop/ChooseProtocolSlideout') vi.mock('/app/resources/runs') vi.mock('../RobotSettings/UpdateBuildroot') vi.mock('/app/resources/devices/hooks/useIsEstopNotDisengaged') diff --git a/app/src/organisms/Devices/__tests__/RobotStatusHeader.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/RobotStatusHeader.test.tsx similarity index 100% rename from app/src/organisms/Devices/__tests__/RobotStatusHeader.test.tsx rename to app/src/organisms/Desktop/Devices/__tests__/RobotStatusHeader.test.tsx diff --git a/app/src/organisms/Devices/__tests__/utils.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/utils.test.tsx similarity index 100% rename from app/src/organisms/Devices/__tests__/utils.test.tsx rename to app/src/organisms/Desktop/Devices/__tests__/utils.test.tsx diff --git a/app/src/organisms/Devices/constants.ts b/app/src/organisms/Desktop/Devices/constants.ts similarity index 100% rename from app/src/organisms/Devices/constants.ts rename to app/src/organisms/Desktop/Devices/constants.ts diff --git a/app/src/organisms/Devices/hooks/__fixtures__/taskListFixtures.ts b/app/src/organisms/Desktop/Devices/hooks/__fixtures__/taskListFixtures.ts similarity index 99% rename from app/src/organisms/Devices/hooks/__fixtures__/taskListFixtures.ts rename to app/src/organisms/Desktop/Devices/hooks/__fixtures__/taskListFixtures.ts index 15e9e28fb0d..de6c33f799f 100644 --- a/app/src/organisms/Devices/hooks/__fixtures__/taskListFixtures.ts +++ b/app/src/organisms/Desktop/Devices/hooks/__fixtures__/taskListFixtures.ts @@ -7,7 +7,7 @@ import type { PipetteOffsetCalibration, } from '/app/redux/calibration/api-types' import type { AttachedPipettesByMount } from '/app/redux/pipettes/types' -import type { TaskListProps } from '../../../TaskList/types' +import type { TaskListProps } from '/app/molecules/TaskList' import type { PipetteModelSpecs } from '@opentrons/shared-data' export const TASK_COUNT = 3 diff --git a/app/src/organisms/Devices/hooks/__tests__/useCalibrationTaskList.test.tsx b/app/src/organisms/Desktop/Devices/hooks/__tests__/useCalibrationTaskList.test.tsx similarity index 100% rename from app/src/organisms/Devices/hooks/__tests__/useCalibrationTaskList.test.tsx rename to app/src/organisms/Desktop/Devices/hooks/__tests__/useCalibrationTaskList.test.tsx diff --git a/app/src/organisms/Devices/hooks/__tests__/useDeckCalibrationData.test.tsx b/app/src/organisms/Desktop/Devices/hooks/__tests__/useDeckCalibrationData.test.tsx similarity index 100% rename from app/src/organisms/Devices/hooks/__tests__/useDeckCalibrationData.test.tsx rename to app/src/organisms/Desktop/Devices/hooks/__tests__/useDeckCalibrationData.test.tsx diff --git a/app/src/organisms/Devices/hooks/__tests__/useIsLegacySessionInProgress.test.ts b/app/src/organisms/Desktop/Devices/hooks/__tests__/useIsLegacySessionInProgress.test.ts similarity index 100% rename from app/src/organisms/Devices/hooks/__tests__/useIsLegacySessionInProgress.test.ts rename to app/src/organisms/Desktop/Devices/hooks/__tests__/useIsLegacySessionInProgress.test.ts diff --git a/app/src/organisms/Devices/hooks/__tests__/useIsRobotBusy.test.ts b/app/src/organisms/Desktop/Devices/hooks/__tests__/useIsRobotBusy.test.ts similarity index 99% rename from app/src/organisms/Devices/hooks/__tests__/useIsRobotBusy.test.ts rename to app/src/organisms/Desktop/Devices/hooks/__tests__/useIsRobotBusy.test.ts index 138b8cb604a..472b96c3f00 100644 --- a/app/src/organisms/Devices/hooks/__tests__/useIsRobotBusy.test.ts +++ b/app/src/organisms/Desktop/Devices/hooks/__tests__/useIsRobotBusy.test.ts @@ -9,7 +9,7 @@ import { DISENGAGED, NOT_PRESENT, PHYSICALLY_ENGAGED, -} from '../../../EmergencyStop' +} from '/app/organisms/EmergencyStop' import { useIsRobotBusy } from '../useIsRobotBusy' import { useIsFlex } from '/app/redux-resources/robots' import { useNotifyCurrentMaintenanceRun } from '/app/resources/maintenance_runs' diff --git a/app/src/organisms/Devices/hooks/__tests__/useIsRobotViewable.test.tsx b/app/src/organisms/Desktop/Devices/hooks/__tests__/useIsRobotViewable.test.tsx similarity index 100% rename from app/src/organisms/Devices/hooks/__tests__/useIsRobotViewable.test.tsx rename to app/src/organisms/Desktop/Devices/hooks/__tests__/useIsRobotViewable.test.tsx diff --git a/app/src/organisms/Devices/hooks/__tests__/useLPCSuccessToast.test.ts b/app/src/organisms/Desktop/Devices/hooks/__tests__/useLPCSuccessToast.test.ts similarity index 100% rename from app/src/organisms/Devices/hooks/__tests__/useLPCSuccessToast.test.ts rename to app/src/organisms/Desktop/Devices/hooks/__tests__/useLPCSuccessToast.test.ts diff --git a/app/src/organisms/Devices/hooks/__tests__/useLights.test.tsx b/app/src/organisms/Desktop/Devices/hooks/__tests__/useLights.test.tsx similarity index 100% rename from app/src/organisms/Devices/hooks/__tests__/useLights.test.tsx rename to app/src/organisms/Desktop/Devices/hooks/__tests__/useLights.test.tsx diff --git a/app/src/organisms/Devices/hooks/__tests__/usePipetteOffsetCalibration.test.tsx b/app/src/organisms/Desktop/Devices/hooks/__tests__/usePipetteOffsetCalibration.test.tsx similarity index 100% rename from app/src/organisms/Devices/hooks/__tests__/usePipetteOffsetCalibration.test.tsx rename to app/src/organisms/Desktop/Devices/hooks/__tests__/usePipetteOffsetCalibration.test.tsx diff --git a/app/src/organisms/Devices/hooks/__tests__/usePipetteOffsetCalibrations.test.tsx b/app/src/organisms/Desktop/Devices/hooks/__tests__/usePipetteOffsetCalibrations.test.tsx similarity index 100% rename from app/src/organisms/Devices/hooks/__tests__/usePipetteOffsetCalibrations.test.tsx rename to app/src/organisms/Desktop/Devices/hooks/__tests__/usePipetteOffsetCalibrations.test.tsx diff --git a/app/src/organisms/Devices/hooks/__tests__/useRunStartedOrLegacySessionInProgress.test.tsx b/app/src/organisms/Desktop/Devices/hooks/__tests__/useRunStartedOrLegacySessionInProgress.test.tsx similarity index 100% rename from app/src/organisms/Devices/hooks/__tests__/useRunStartedOrLegacySessionInProgress.test.tsx rename to app/src/organisms/Desktop/Devices/hooks/__tests__/useRunStartedOrLegacySessionInProgress.test.tsx diff --git a/app/src/organisms/Devices/hooks/__tests__/useRunStatuses.test.tsx b/app/src/organisms/Desktop/Devices/hooks/__tests__/useRunStatuses.test.tsx similarity index 100% rename from app/src/organisms/Devices/hooks/__tests__/useRunStatuses.test.tsx rename to app/src/organisms/Desktop/Devices/hooks/__tests__/useRunStatuses.test.tsx diff --git a/app/src/organisms/Devices/hooks/__tests__/useSyncRobotClock.test.tsx b/app/src/organisms/Desktop/Devices/hooks/__tests__/useSyncRobotClock.test.tsx similarity index 100% rename from app/src/organisms/Devices/hooks/__tests__/useSyncRobotClock.test.tsx rename to app/src/organisms/Desktop/Devices/hooks/__tests__/useSyncRobotClock.test.tsx diff --git a/app/src/organisms/Devices/hooks/__tests__/useTipLengthCalibrations.test.tsx b/app/src/organisms/Desktop/Devices/hooks/__tests__/useTipLengthCalibrations.test.tsx similarity index 100% rename from app/src/organisms/Devices/hooks/__tests__/useTipLengthCalibrations.test.tsx rename to app/src/organisms/Desktop/Devices/hooks/__tests__/useTipLengthCalibrations.test.tsx diff --git a/app/src/organisms/Devices/hooks/__tests__/useTrackCreateProtocolRunEvent.test.tsx b/app/src/organisms/Desktop/Devices/hooks/__tests__/useTrackCreateProtocolRunEvent.test.tsx similarity index 100% rename from app/src/organisms/Devices/hooks/__tests__/useTrackCreateProtocolRunEvent.test.tsx rename to app/src/organisms/Desktop/Devices/hooks/__tests__/useTrackCreateProtocolRunEvent.test.tsx diff --git a/app/src/organisms/Devices/hooks/index.ts b/app/src/organisms/Desktop/Devices/hooks/index.ts similarity index 91% rename from app/src/organisms/Devices/hooks/index.ts rename to app/src/organisms/Desktop/Devices/hooks/index.ts index 55199ad90ec..356a02cb4c4 100644 --- a/app/src/organisms/Devices/hooks/index.ts +++ b/app/src/organisms/Desktop/Devices/hooks/index.ts @@ -13,4 +13,3 @@ export * from './useTrackCreateProtocolRunEvent' export * from './useRunStatuses' export * from './useSyncRobotClock' export * from './useIsLegacySessionInProgress' -export * from './useAttachedPipettesFromInstrumentsQuery' diff --git a/app/src/organisms/Devices/hooks/useCalibrationTaskList.ts b/app/src/organisms/Desktop/Devices/hooks/useCalibrationTaskList.ts similarity index 99% rename from app/src/organisms/Devices/hooks/useCalibrationTaskList.ts rename to app/src/organisms/Desktop/Devices/hooks/useCalibrationTaskList.ts index 222ae1ede68..ac76e682459 100644 --- a/app/src/organisms/Devices/hooks/useCalibrationTaskList.ts +++ b/app/src/organisms/Desktop/Devices/hooks/useCalibrationTaskList.ts @@ -17,7 +17,7 @@ import type { SubTaskProps, TaskListProps, TaskProps, -} from '../../TaskList/types' +} from '/app/molecules/TaskList' import type { AttachedPipette } from '/app/redux/pipettes/types' import type { PipetteOffsetCalibrationSessionParams, diff --git a/app/src/organisms/Devices/hooks/useDeckCalibrationData.ts b/app/src/organisms/Desktop/Devices/hooks/useDeckCalibrationData.ts similarity index 100% rename from app/src/organisms/Devices/hooks/useDeckCalibrationData.ts rename to app/src/organisms/Desktop/Devices/hooks/useDeckCalibrationData.ts diff --git a/app/src/organisms/Devices/hooks/useDownloadRunLog.ts b/app/src/organisms/Desktop/Devices/hooks/useDownloadRunLog.ts similarity index 100% rename from app/src/organisms/Devices/hooks/useDownloadRunLog.ts rename to app/src/organisms/Desktop/Devices/hooks/useDownloadRunLog.ts diff --git a/app/src/organisms/Devices/hooks/useIsLegacySessionInProgress.ts b/app/src/organisms/Desktop/Devices/hooks/useIsLegacySessionInProgress.ts similarity index 100% rename from app/src/organisms/Devices/hooks/useIsLegacySessionInProgress.ts rename to app/src/organisms/Desktop/Devices/hooks/useIsLegacySessionInProgress.ts diff --git a/app/src/organisms/Devices/hooks/useIsRobotBusy.ts b/app/src/organisms/Desktop/Devices/hooks/useIsRobotBusy.ts similarity index 96% rename from app/src/organisms/Devices/hooks/useIsRobotBusy.ts rename to app/src/organisms/Desktop/Devices/hooks/useIsRobotBusy.ts index 60ccc59b1e5..f43304eb724 100644 --- a/app/src/organisms/Devices/hooks/useIsRobotBusy.ts +++ b/app/src/organisms/Desktop/Devices/hooks/useIsRobotBusy.ts @@ -7,7 +7,7 @@ import { import { useNotifyCurrentMaintenanceRun } from '/app/resources/maintenance_runs' import { useNotifyAllRunsQuery } from '/app/resources/runs' -import { DISENGAGED } from '../../EmergencyStop' +import { DISENGAGED } from '/app/organisms/EmergencyStop' import { useIsFlex } from '/app/redux-resources/robots' const ROBOT_STATUS_POLL_MS = 30000 diff --git a/app/src/organisms/Devices/hooks/useIsRobotViewable.ts b/app/src/organisms/Desktop/Devices/hooks/useIsRobotViewable.ts similarity index 100% rename from app/src/organisms/Devices/hooks/useIsRobotViewable.ts rename to app/src/organisms/Desktop/Devices/hooks/useIsRobotViewable.ts diff --git a/app/src/organisms/Devices/hooks/useLPCSuccessToast.ts b/app/src/organisms/Desktop/Devices/hooks/useLPCSuccessToast.ts similarity index 100% rename from app/src/organisms/Devices/hooks/useLPCSuccessToast.ts rename to app/src/organisms/Desktop/Devices/hooks/useLPCSuccessToast.ts diff --git a/app/src/organisms/Devices/hooks/useLights.ts b/app/src/organisms/Desktop/Devices/hooks/useLights.ts similarity index 100% rename from app/src/organisms/Devices/hooks/useLights.ts rename to app/src/organisms/Desktop/Devices/hooks/useLights.ts diff --git a/app/src/organisms/Devices/hooks/usePipetteOffsetCalibration.ts b/app/src/organisms/Desktop/Devices/hooks/usePipetteOffsetCalibration.ts similarity index 100% rename from app/src/organisms/Devices/hooks/usePipetteOffsetCalibration.ts rename to app/src/organisms/Desktop/Devices/hooks/usePipetteOffsetCalibration.ts diff --git a/app/src/organisms/Devices/hooks/usePipetteOffsetCalibrations.ts b/app/src/organisms/Desktop/Devices/hooks/usePipetteOffsetCalibrations.ts similarity index 100% rename from app/src/organisms/Devices/hooks/usePipetteOffsetCalibrations.ts rename to app/src/organisms/Desktop/Devices/hooks/usePipetteOffsetCalibrations.ts diff --git a/app/src/organisms/Devices/hooks/useRunStartedOrLegacySessionInProgress.ts b/app/src/organisms/Desktop/Devices/hooks/useRunStartedOrLegacySessionInProgress.ts similarity index 100% rename from app/src/organisms/Devices/hooks/useRunStartedOrLegacySessionInProgress.ts rename to app/src/organisms/Desktop/Devices/hooks/useRunStartedOrLegacySessionInProgress.ts diff --git a/app/src/organisms/Devices/hooks/useRunStatuses.ts b/app/src/organisms/Desktop/Devices/hooks/useRunStatuses.ts similarity index 100% rename from app/src/organisms/Devices/hooks/useRunStatuses.ts rename to app/src/organisms/Desktop/Devices/hooks/useRunStatuses.ts diff --git a/app/src/organisms/Devices/hooks/useSyncRobotClock.ts b/app/src/organisms/Desktop/Devices/hooks/useSyncRobotClock.ts similarity index 100% rename from app/src/organisms/Devices/hooks/useSyncRobotClock.ts rename to app/src/organisms/Desktop/Devices/hooks/useSyncRobotClock.ts diff --git a/app/src/organisms/Devices/hooks/useTipLengthCalibrations.ts b/app/src/organisms/Desktop/Devices/hooks/useTipLengthCalibrations.ts similarity index 100% rename from app/src/organisms/Devices/hooks/useTipLengthCalibrations.ts rename to app/src/organisms/Desktop/Devices/hooks/useTipLengthCalibrations.ts diff --git a/app/src/organisms/Devices/hooks/useTrackCreateProtocolRunEvent.ts b/app/src/organisms/Desktop/Devices/hooks/useTrackCreateProtocolRunEvent.ts similarity index 100% rename from app/src/organisms/Devices/hooks/useTrackCreateProtocolRunEvent.ts rename to app/src/organisms/Desktop/Devices/hooks/useTrackCreateProtocolRunEvent.ts diff --git a/app/src/organisms/Devices/utils.ts b/app/src/organisms/Desktop/Devices/utils.ts similarity index 100% rename from app/src/organisms/Devices/utils.ts rename to app/src/organisms/Desktop/Devices/utils.ts diff --git a/app/src/organisms/HowCalibrationWorksModal/__tests__/HowCalibrationWorksModal.test.tsx b/app/src/organisms/Desktop/HowCalibrationWorksModal/__tests__/HowCalibrationWorksModal.test.tsx similarity index 100% rename from app/src/organisms/HowCalibrationWorksModal/__tests__/HowCalibrationWorksModal.test.tsx rename to app/src/organisms/Desktop/HowCalibrationWorksModal/__tests__/HowCalibrationWorksModal.test.tsx diff --git a/app/src/organisms/HowCalibrationWorksModal/index.tsx b/app/src/organisms/Desktop/HowCalibrationWorksModal/index.tsx similarity index 98% rename from app/src/organisms/HowCalibrationWorksModal/index.tsx rename to app/src/organisms/Desktop/HowCalibrationWorksModal/index.tsx index 525b94cb636..a1693793d2e 100644 --- a/app/src/organisms/HowCalibrationWorksModal/index.tsx +++ b/app/src/organisms/Desktop/HowCalibrationWorksModal/index.tsx @@ -16,7 +16,7 @@ import { LegacyStyledText, } from '@opentrons/components' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import RobotCalHelpImage from '/app/assets/images/robot_calibration_help.png' import { ExternalLink } from '/app/atoms/Link/ExternalLink' import { Divider } from '/app/atoms/structure' diff --git a/app/src/organisms/ProtocolAnalysisFailure/ProtocolAnalysisStale.tsx b/app/src/organisms/Desktop/ProtocolAnalysisFailure/ProtocolAnalysisStale.tsx similarity index 100% rename from app/src/organisms/ProtocolAnalysisFailure/ProtocolAnalysisStale.tsx rename to app/src/organisms/Desktop/ProtocolAnalysisFailure/ProtocolAnalysisStale.tsx diff --git a/app/src/organisms/ProtocolAnalysisFailure/__tests__/ProtocolAnalysisFailure.test.tsx b/app/src/organisms/Desktop/ProtocolAnalysisFailure/__tests__/ProtocolAnalysisFailure.test.tsx similarity index 100% rename from app/src/organisms/ProtocolAnalysisFailure/__tests__/ProtocolAnalysisFailure.test.tsx rename to app/src/organisms/Desktop/ProtocolAnalysisFailure/__tests__/ProtocolAnalysisFailure.test.tsx diff --git a/app/src/organisms/ProtocolAnalysisFailure/index.tsx b/app/src/organisms/Desktop/ProtocolAnalysisFailure/index.tsx similarity index 98% rename from app/src/organisms/ProtocolAnalysisFailure/index.tsx rename to app/src/organisms/Desktop/ProtocolAnalysisFailure/index.tsx index c16f63b3838..b2b904dd19d 100644 --- a/app/src/organisms/ProtocolAnalysisFailure/index.tsx +++ b/app/src/organisms/Desktop/ProtocolAnalysisFailure/index.tsx @@ -20,7 +20,7 @@ import { } from '@opentrons/components' import { analyzeProtocol } from '/app/redux/protocol-storage' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import type { Dispatch } from '/app/redux/types' interface ProtocolAnalysisFailureProps { diff --git a/app/src/organisms/ProtocolDetails/AnnotatedSteps.tsx b/app/src/organisms/Desktop/ProtocolDetails/AnnotatedSteps.tsx similarity index 100% rename from app/src/organisms/ProtocolDetails/AnnotatedSteps.tsx rename to app/src/organisms/Desktop/ProtocolDetails/AnnotatedSteps.tsx diff --git a/app/src/organisms/ProtocolDetails/ProtocolLabwareDetails.tsx b/app/src/organisms/Desktop/ProtocolDetails/ProtocolLabwareDetails.tsx similarity index 98% rename from app/src/organisms/ProtocolDetails/ProtocolLabwareDetails.tsx rename to app/src/organisms/Desktop/ProtocolDetails/ProtocolLabwareDetails.tsx index 3a9ae7e5db8..4fe95406355 100644 --- a/app/src/organisms/ProtocolDetails/ProtocolLabwareDetails.tsx +++ b/app/src/organisms/Desktop/ProtocolDetails/ProtocolLabwareDetails.tsx @@ -21,7 +21,7 @@ import { import { getLabwareDefURI } from '@opentrons/shared-data' import { Divider } from '/app/atoms/structure' import { getTopPortalEl } from '/app/App/portal' -import { LabwareDetails } from '../Desktop/Labware/LabwareDetails' +import { LabwareDetails } from '/app/organisms/Desktop/Labware/LabwareDetails' import type { LoadLabwareRunTimeCommand } from '@opentrons/shared-data' import type { LabwareDefAndDate } from '/app/local-resources/labware' diff --git a/app/src/organisms/ProtocolDetails/ProtocolLiquidsDetails.tsx b/app/src/organisms/Desktop/ProtocolDetails/ProtocolLiquidsDetails.tsx similarity index 100% rename from app/src/organisms/ProtocolDetails/ProtocolLiquidsDetails.tsx rename to app/src/organisms/Desktop/ProtocolDetails/ProtocolLiquidsDetails.tsx diff --git a/app/src/organisms/ProtocolDetails/ProtocolParameters/__tests__/ProtocolParameters.test.tsx b/app/src/organisms/Desktop/ProtocolDetails/ProtocolParameters/__tests__/ProtocolParameters.test.tsx similarity index 100% rename from app/src/organisms/ProtocolDetails/ProtocolParameters/__tests__/ProtocolParameters.test.tsx rename to app/src/organisms/Desktop/ProtocolDetails/ProtocolParameters/__tests__/ProtocolParameters.test.tsx diff --git a/app/src/organisms/ProtocolDetails/ProtocolParameters/index.tsx b/app/src/organisms/Desktop/ProtocolDetails/ProtocolParameters/index.tsx similarity index 100% rename from app/src/organisms/ProtocolDetails/ProtocolParameters/index.tsx rename to app/src/organisms/Desktop/ProtocolDetails/ProtocolParameters/index.tsx diff --git a/app/src/organisms/ProtocolDetails/ProtocolStats.tsx b/app/src/organisms/Desktop/ProtocolDetails/ProtocolStats.tsx similarity index 100% rename from app/src/organisms/ProtocolDetails/ProtocolStats.tsx rename to app/src/organisms/Desktop/ProtocolDetails/ProtocolStats.tsx diff --git a/app/src/organisms/ProtocolDetails/RobotConfigurationDetails.tsx b/app/src/organisms/Desktop/ProtocolDetails/RobotConfigurationDetails.tsx similarity index 100% rename from app/src/organisms/ProtocolDetails/RobotConfigurationDetails.tsx rename to app/src/organisms/Desktop/ProtocolDetails/RobotConfigurationDetails.tsx diff --git a/app/src/organisms/ProtocolDetails/__tests__/ProtocolDetails.test.tsx b/app/src/organisms/Desktop/ProtocolDetails/__tests__/ProtocolDetails.test.tsx similarity index 97% rename from app/src/organisms/ProtocolDetails/__tests__/ProtocolDetails.test.tsx rename to app/src/organisms/Desktop/ProtocolDetails/__tests__/ProtocolDetails.test.tsx index e1884919d55..8ef02d4d67a 100644 --- a/app/src/organisms/ProtocolDetails/__tests__/ProtocolDetails.test.tsx +++ b/app/src/organisms/Desktop/ProtocolDetails/__tests__/ProtocolDetails.test.tsx @@ -5,7 +5,7 @@ import { describe, it, beforeEach, vi, expect, afterEach } from 'vitest' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { ChooseRobotToRunProtocolSlideout } from '/app/organisms/ChooseRobotToRunProtocolSlideout' +import { ChooseRobotToRunProtocolSlideout } from '/app/organisms/Desktop/ChooseRobotToRunProtocolSlideout' import { useTrackEvent, ANALYTICS_PROTOCOL_PROCEED_TO_RUN, @@ -33,8 +33,8 @@ vi.mock('/app/redux/analytics') vi.mock('/app/redux/custom-labware/selectors') vi.mock('/app/redux/discovery/selectors') vi.mock('/app/redux/protocol-storage/selectors') -vi.mock('/app/organisms/ChooseRobotToRunProtocolSlideout') -vi.mock('/app/organisms/SendProtocolToFlexSlideout') +vi.mock('/app/organisms/Desktop/ChooseRobotToRunProtocolSlideout') +vi.mock('/app/organisms/Desktop/SendProtocolToFlexSlideout') const render = ( props: Partial> = {} diff --git a/app/src/organisms/ProtocolDetails/__tests__/ProtocolLabwareDetails.test.tsx b/app/src/organisms/Desktop/ProtocolDetails/__tests__/ProtocolLabwareDetails.test.tsx similarity index 100% rename from app/src/organisms/ProtocolDetails/__tests__/ProtocolLabwareDetails.test.tsx rename to app/src/organisms/Desktop/ProtocolDetails/__tests__/ProtocolLabwareDetails.test.tsx diff --git a/app/src/organisms/ProtocolDetails/__tests__/ProtocolLiquidsDetails.test.tsx b/app/src/organisms/Desktop/ProtocolDetails/__tests__/ProtocolLiquidsDetails.test.tsx similarity index 96% rename from app/src/organisms/ProtocolDetails/__tests__/ProtocolLiquidsDetails.test.tsx rename to app/src/organisms/Desktop/ProtocolDetails/__tests__/ProtocolLiquidsDetails.test.tsx index f21ea09c406..69e55cc1097 100644 --- a/app/src/organisms/ProtocolDetails/__tests__/ProtocolLiquidsDetails.test.tsx +++ b/app/src/organisms/Desktop/ProtocolDetails/__tests__/ProtocolLiquidsDetails.test.tsx @@ -9,7 +9,7 @@ import { ProtocolLiquidsDetails } from '../ProtocolLiquidsDetails' import type * as SharedData from '@opentrons/shared-data' -vi.mock('../../Devices/ProtocolRun/SetupLiquids/SetupLiquidsList') +vi.mock('../../Desktop/Devices/ProtocolRun/SetupLiquids/SetupLiquidsList') vi.mock('@opentrons/shared-data', async importOriginal => { const actualSharedData = await importOriginal() return { diff --git a/app/src/organisms/ProtocolDetails/__tests__/RobotConfigurationDetails.test.tsx b/app/src/organisms/Desktop/ProtocolDetails/__tests__/RobotConfigurationDetails.test.tsx similarity index 100% rename from app/src/organisms/ProtocolDetails/__tests__/RobotConfigurationDetails.test.tsx rename to app/src/organisms/Desktop/ProtocolDetails/__tests__/RobotConfigurationDetails.test.tsx diff --git a/app/src/organisms/ProtocolDetails/__tests__/utils.test.ts b/app/src/organisms/Desktop/ProtocolDetails/__tests__/utils.test.ts similarity index 100% rename from app/src/organisms/ProtocolDetails/__tests__/utils.test.ts rename to app/src/organisms/Desktop/ProtocolDetails/__tests__/utils.test.ts diff --git a/app/src/organisms/ProtocolDetails/index.tsx b/app/src/organisms/Desktop/ProtocolDetails/index.tsx similarity index 98% rename from app/src/organisms/ProtocolDetails/index.tsx rename to app/src/organisms/Desktop/ProtocolDetails/index.tsx index 213c20d3074..3bdf4be672e 100644 --- a/app/src/organisms/ProtocolDetails/index.tsx +++ b/app/src/organisms/Desktop/ProtocolDetails/index.tsx @@ -49,7 +49,7 @@ import { parseInitialPipetteNamesByMount, } from '@opentrons/shared-data' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { Divider } from '/app/atoms/structure' import { useTrackEvent, @@ -60,14 +60,12 @@ import { analyzeProtocol, } from '/app/redux/protocol-storage' import { useFeatureFlag } from '/app/redux/config' -import { ChooseRobotToRunProtocolSlideout } from '../ChooseRobotToRunProtocolSlideout' +import { ChooseRobotToRunProtocolSlideout } from '/app/organisms/Desktop/ChooseRobotToRunProtocolSlideout' import { SendProtocolToFlexSlideout } from '../SendProtocolToFlexSlideout' import { ProtocolAnalysisFailure } from '../ProtocolAnalysisFailure' import { ProtocolStatusBanner } from '../ProtocolStatusBanner' -import { - getAnalysisStatus, - getProtocolDisplayName, -} from '../ProtocolsLanding/utils' +import { getAnalysisStatus } from '/app/transformations/analysis' +import { getProtocolDisplayName } from '/app/transformations/protocols' import { getProtocolUsesGripper } from '/app/transformations/commands' import { ProtocolOverflowMenu } from '../ProtocolsLanding/ProtocolOverflowMenu' import { ProtocolStats } from './ProtocolStats' diff --git a/app/src/organisms/ProtocolDetails/utils.ts b/app/src/organisms/Desktop/ProtocolDetails/utils.ts similarity index 100% rename from app/src/organisms/ProtocolDetails/utils.ts rename to app/src/organisms/Desktop/ProtocolDetails/utils.ts diff --git a/app/src/organisms/ProtocolStatusBanner/ProtocolStatusBanner.stories.tsx b/app/src/organisms/Desktop/ProtocolStatusBanner/ProtocolStatusBanner.stories.tsx similarity index 100% rename from app/src/organisms/ProtocolStatusBanner/ProtocolStatusBanner.stories.tsx rename to app/src/organisms/Desktop/ProtocolStatusBanner/ProtocolStatusBanner.stories.tsx diff --git a/app/src/organisms/ProtocolStatusBanner/__tests__/ProtocolStatusBanner.test.tsx b/app/src/organisms/Desktop/ProtocolStatusBanner/__tests__/ProtocolStatusBanner.test.tsx similarity index 100% rename from app/src/organisms/ProtocolStatusBanner/__tests__/ProtocolStatusBanner.test.tsx rename to app/src/organisms/Desktop/ProtocolStatusBanner/__tests__/ProtocolStatusBanner.test.tsx diff --git a/app/src/organisms/ProtocolStatusBanner/index.tsx b/app/src/organisms/Desktop/ProtocolStatusBanner/index.tsx similarity index 100% rename from app/src/organisms/ProtocolStatusBanner/index.tsx rename to app/src/organisms/Desktop/ProtocolStatusBanner/index.tsx diff --git a/app/src/organisms/ProtocolTimelineScrubber/CommandItem.tsx b/app/src/organisms/Desktop/ProtocolTimelineScrubber/CommandItem.tsx similarity index 100% rename from app/src/organisms/ProtocolTimelineScrubber/CommandItem.tsx rename to app/src/organisms/Desktop/ProtocolTimelineScrubber/CommandItem.tsx diff --git a/app/src/organisms/ProtocolTimelineScrubber/PipetteVisuals.tsx b/app/src/organisms/Desktop/ProtocolTimelineScrubber/PipetteVisuals.tsx similarity index 100% rename from app/src/organisms/ProtocolTimelineScrubber/PipetteVisuals.tsx rename to app/src/organisms/Desktop/ProtocolTimelineScrubber/PipetteVisuals.tsx diff --git a/app/src/organisms/ProtocolTimelineScrubber/index.tsx b/app/src/organisms/Desktop/ProtocolTimelineScrubber/index.tsx similarity index 100% rename from app/src/organisms/ProtocolTimelineScrubber/index.tsx rename to app/src/organisms/Desktop/ProtocolTimelineScrubber/index.tsx diff --git a/app/src/organisms/ProtocolTimelineScrubber/utils.ts b/app/src/organisms/Desktop/ProtocolTimelineScrubber/utils.ts similarity index 100% rename from app/src/organisms/ProtocolTimelineScrubber/utils.ts rename to app/src/organisms/Desktop/ProtocolTimelineScrubber/utils.ts diff --git a/app/src/organisms/ProtocolsLanding/ConfirmDeleteProtocolModal.tsx b/app/src/organisms/Desktop/ProtocolsLanding/ConfirmDeleteProtocolModal.tsx similarity index 100% rename from app/src/organisms/ProtocolsLanding/ConfirmDeleteProtocolModal.tsx rename to app/src/organisms/Desktop/ProtocolsLanding/ConfirmDeleteProtocolModal.tsx diff --git a/app/src/organisms/ProtocolsLanding/EmptyStateLinks.tsx b/app/src/organisms/Desktop/ProtocolsLanding/EmptyStateLinks.tsx similarity index 100% rename from app/src/organisms/ProtocolsLanding/EmptyStateLinks.tsx rename to app/src/organisms/Desktop/ProtocolsLanding/EmptyStateLinks.tsx diff --git a/app/src/organisms/ProtocolsLanding/ProtocolCard.tsx b/app/src/organisms/Desktop/ProtocolsLanding/ProtocolCard.tsx similarity index 98% rename from app/src/organisms/ProtocolsLanding/ProtocolCard.tsx rename to app/src/organisms/Desktop/ProtocolsLanding/ProtocolCard.tsx index 1a51a114db0..5785f68044a 100644 --- a/app/src/organisms/ProtocolsLanding/ProtocolCard.tsx +++ b/app/src/organisms/Desktop/ProtocolsLanding/ProtocolCard.tsx @@ -40,11 +40,9 @@ import { ProtocolAnalysisFailure } from '../ProtocolAnalysisFailure' import { ProtocolStatusBanner } from '../ProtocolStatusBanner' import { getProtocolUsesGripper } from '/app/transformations/commands' import { ProtocolAnalysisStale } from '../ProtocolAnalysisFailure/ProtocolAnalysisStale' -import { - getAnalysisStatus, - getProtocolDisplayName, - getRobotTypeDisplayName, -} from './utils' +import { getRobotTypeDisplayName } from './utils' +import { getAnalysisStatus } from '/app/transformations/analysis' +import { getProtocolDisplayName } from '/app/transformations/protocols' import type { ProtocolAnalysisOutput } from '@opentrons/shared-data' import type { StoredProtocolData } from '/app/redux/protocol-storage' diff --git a/app/src/organisms/ProtocolsLanding/ProtocolList.tsx b/app/src/organisms/Desktop/ProtocolsLanding/ProtocolList.tsx similarity index 97% rename from app/src/organisms/ProtocolsLanding/ProtocolList.tsx rename to app/src/organisms/Desktop/ProtocolsLanding/ProtocolList.tsx index af38e901d09..112999787d0 100644 --- a/app/src/organisms/ProtocolsLanding/ProtocolList.tsx +++ b/app/src/organisms/Desktop/ProtocolsLanding/ProtocolList.tsx @@ -29,14 +29,16 @@ import { } from '/app/redux/config' import { useSortedProtocols } from './hooks' import { Slideout } from '/app/atoms/Slideout' -import { ChooseRobotToRunProtocolSlideout } from '../ChooseRobotToRunProtocolSlideout' +import { ChooseRobotToRunProtocolSlideout } from '/app/organisms/Desktop/ChooseRobotToRunProtocolSlideout' import { SendProtocolToFlexSlideout } from '../SendProtocolToFlexSlideout' import { ProtocolUploadInput } from './ProtocolUploadInput' import { ProtocolCard } from './ProtocolCard' import { EmptyStateLinks } from './EmptyStateLinks' -import type { StoredProtocolData } from '/app/redux/protocol-storage' -import type { ProtocolSort } from './hooks' +import type { + StoredProtocolData, + ProtocolSort, +} from '/app/redux/protocol-storage' import type { Dispatch } from '/app/redux/types' const SORT_BY_BUTTON_STYLE = css` diff --git a/app/src/organisms/ProtocolsLanding/ProtocolOverflowMenu.tsx b/app/src/organisms/Desktop/ProtocolsLanding/ProtocolOverflowMenu.tsx similarity index 99% rename from app/src/organisms/ProtocolsLanding/ProtocolOverflowMenu.tsx rename to app/src/organisms/Desktop/ProtocolsLanding/ProtocolOverflowMenu.tsx index c2e43e37d94..0bcc71f8cc0 100644 --- a/app/src/organisms/ProtocolsLanding/ProtocolOverflowMenu.tsx +++ b/app/src/organisms/Desktop/ProtocolsLanding/ProtocolOverflowMenu.tsx @@ -21,7 +21,7 @@ import { } from '@opentrons/components' import { FLEX_DISPLAY_NAME, FLEX_ROBOT_TYPE } from '@opentrons/shared-data' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { useTrackEvent, ANALYTICS_PROTOCOL_PROCEED_TO_RUN, diff --git a/app/src/organisms/ProtocolsLanding/ProtocolUploadInput.tsx b/app/src/organisms/Desktop/ProtocolsLanding/ProtocolUploadInput.tsx similarity index 95% rename from app/src/organisms/ProtocolsLanding/ProtocolUploadInput.tsx rename to app/src/organisms/Desktop/ProtocolsLanding/ProtocolUploadInput.tsx index 1e9d2718c0a..35491c61d2d 100644 --- a/app/src/organisms/ProtocolsLanding/ProtocolUploadInput.tsx +++ b/app/src/organisms/Desktop/ProtocolsLanding/ProtocolUploadInput.tsx @@ -16,8 +16,8 @@ import { useTrackEvent, ANALYTICS_IMPORT_PROTOCOL_TO_APP, } from '/app/redux/analytics' -import { useLogger } from '../../logger' -import { useToaster } from '../ToasterOven' +import { useLogger } from '/app/logger' +import { useToaster } from '/app/organisms/ToasterOven' import type { Dispatch } from '/app/redux/types' diff --git a/app/src/organisms/ProtocolsLanding/ProtocolsEmptyState.tsx b/app/src/organisms/Desktop/ProtocolsLanding/ProtocolsEmptyState.tsx similarity index 100% rename from app/src/organisms/ProtocolsLanding/ProtocolsEmptyState.tsx rename to app/src/organisms/Desktop/ProtocolsLanding/ProtocolsEmptyState.tsx diff --git a/app/src/organisms/ProtocolsLanding/__tests__/ConfirmDeleteProtocolModal.test.tsx b/app/src/organisms/Desktop/ProtocolsLanding/__tests__/ConfirmDeleteProtocolModal.test.tsx similarity index 100% rename from app/src/organisms/ProtocolsLanding/__tests__/ConfirmDeleteProtocolModal.test.tsx rename to app/src/organisms/Desktop/ProtocolsLanding/__tests__/ConfirmDeleteProtocolModal.test.tsx diff --git a/app/src/organisms/ProtocolsLanding/__tests__/EmptyStateLinks.test.tsx b/app/src/organisms/Desktop/ProtocolsLanding/__tests__/EmptyStateLinks.test.tsx similarity index 100% rename from app/src/organisms/ProtocolsLanding/__tests__/EmptyStateLinks.test.tsx rename to app/src/organisms/Desktop/ProtocolsLanding/__tests__/EmptyStateLinks.test.tsx diff --git a/app/src/organisms/ProtocolsLanding/__tests__/ProtocolList.test.tsx b/app/src/organisms/Desktop/ProtocolsLanding/__tests__/ProtocolList.test.tsx similarity index 100% rename from app/src/organisms/ProtocolsLanding/__tests__/ProtocolList.test.tsx rename to app/src/organisms/Desktop/ProtocolsLanding/__tests__/ProtocolList.test.tsx diff --git a/app/src/organisms/ProtocolsLanding/__tests__/ProtocolOverflowMenu.test.tsx b/app/src/organisms/Desktop/ProtocolsLanding/__tests__/ProtocolOverflowMenu.test.tsx similarity index 100% rename from app/src/organisms/ProtocolsLanding/__tests__/ProtocolOverflowMenu.test.tsx rename to app/src/organisms/Desktop/ProtocolsLanding/__tests__/ProtocolOverflowMenu.test.tsx diff --git a/app/src/organisms/ProtocolsLanding/__tests__/UploadInput.test.tsx b/app/src/organisms/Desktop/ProtocolsLanding/__tests__/UploadInput.test.tsx similarity index 100% rename from app/src/organisms/ProtocolsLanding/__tests__/UploadInput.test.tsx rename to app/src/organisms/Desktop/ProtocolsLanding/__tests__/UploadInput.test.tsx diff --git a/app/src/organisms/ProtocolsLanding/__tests__/hooks.test.tsx b/app/src/organisms/Desktop/ProtocolsLanding/__tests__/hooks.test.tsx similarity index 100% rename from app/src/organisms/ProtocolsLanding/__tests__/hooks.test.tsx rename to app/src/organisms/Desktop/ProtocolsLanding/__tests__/hooks.test.tsx diff --git a/app/src/organisms/ProtocolsLanding/__tests__/utils.test.ts b/app/src/organisms/Desktop/ProtocolsLanding/__tests__/utils.test.ts similarity index 63% rename from app/src/organisms/ProtocolsLanding/__tests__/utils.test.ts rename to app/src/organisms/Desktop/ProtocolsLanding/__tests__/utils.test.ts index 1ff0d74f72a..e4383c842b9 100644 --- a/app/src/organisms/ProtocolsLanding/__tests__/utils.test.ts +++ b/app/src/organisms/Desktop/ProtocolsLanding/__tests__/utils.test.ts @@ -1,9 +1,5 @@ import { describe, it, expect } from 'vitest' -import { - getAnalysisStatus, - getisFlexProtocol, - getRobotTypeDisplayName, -} from '../utils' +import { getisFlexProtocol, getRobotTypeDisplayName } from '../utils' import type { ProtocolAnalysisOutput } from '@opentrons/shared-data' const mockOT3ProtocolAnalysisOutput = { @@ -14,36 +10,6 @@ const mockOT2ProtocolAnalysisOutput = { robotType: 'OT-2 Standard', } as ProtocolAnalysisOutput -describe('getAnalysisStatus', () => { - it('should return stale if no liquids in analysis', () => { - const result = getAnalysisStatus(false, { - ...mockOT3ProtocolAnalysisOutput, - liquids: [], - errors: [], - }) - expect(result).toBe('stale') - }) - - it('should return stale if no runTimeParameters in analysis', () => { - const result = getAnalysisStatus(false, { - ...mockOT3ProtocolAnalysisOutput, - runTimeParameters: [], - errors: [], - }) - expect(result).toBe('stale') - }) - - it('should return complete if liquids and runTimeParameters in analysis', () => { - const result = getAnalysisStatus(false, { - ...mockOT3ProtocolAnalysisOutput, - liquids: [], - runTimeParameters: [], - errors: [], - }) - expect(result).toBe('complete') - }) -}) - describe('getisFlexProtocol', () => { it('should return true for protocols intended for a Flex', () => { const result = getisFlexProtocol(mockOT3ProtocolAnalysisOutput) diff --git a/app/src/organisms/ProtocolsLanding/hooks.tsx b/app/src/organisms/Desktop/ProtocolsLanding/hooks.tsx similarity index 89% rename from app/src/organisms/ProtocolsLanding/hooks.tsx rename to app/src/organisms/Desktop/ProtocolsLanding/hooks.tsx index c243a44febf..fec57e89955 100644 --- a/app/src/organisms/ProtocolsLanding/hooks.tsx +++ b/app/src/organisms/Desktop/ProtocolsLanding/hooks.tsx @@ -1,14 +1,9 @@ import { FLEX_ROBOT_TYPE } from '@opentrons/shared-data' -import { getProtocolDisplayName } from './utils' -import type { StoredProtocolData } from '/app/redux/protocol-storage' - -export type ProtocolSort = - | 'alphabetical' - | 'reverse' - | 'recent' - | 'oldest' - | 'flex' - | 'ot2' +import { getProtocolDisplayName } from '/app/transformations/protocols' +import type { + StoredProtocolData, + ProtocolSort, +} from '/app/redux/protocol-storage' export function useSortedProtocols( sortBy: ProtocolSort, diff --git a/app/src/organisms/ProtocolsLanding/utils.ts b/app/src/organisms/Desktop/ProtocolsLanding/utils.ts similarity index 83% rename from app/src/organisms/ProtocolsLanding/utils.ts rename to app/src/organisms/Desktop/ProtocolsLanding/utils.ts index 1656346ca3a..b3868e53c0d 100644 --- a/app/src/organisms/ProtocolsLanding/utils.ts +++ b/app/src/organisms/Desktop/ProtocolsLanding/utils.ts @@ -1,4 +1,3 @@ -import first from 'lodash/first' import { FLEX_STANDARD_MODEL } from '@opentrons/shared-data' import type { ProtocolAnalysisOutput, RobotType } from '@opentrons/shared-data' @@ -32,14 +31,6 @@ export function getAnalysisStatus( return 'complete' } -export function getProtocolDisplayName( - protocolKey: string, - srcFileNames: string[], - analysis?: ProtocolAnalysisOutput | null -): string { - return analysis?.metadata?.protocolName ?? first(srcFileNames) ?? protocolKey -} - export function getRobotTypeDisplayName( robotType: RobotType | null ): 'OT-2' | 'Opentrons Flex' { diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDataDownload.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDataDownload.tsx similarity index 98% rename from app/src/organisms/RobotSettingsCalibration/CalibrationDataDownload.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDataDownload.tsx index 7bff8bdf29f..4731df09ae4 100644 --- a/app/src/organisms/RobotSettingsCalibration/CalibrationDataDownload.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDataDownload.tsx @@ -22,7 +22,7 @@ import { useDeckCalibrationData, usePipetteOffsetCalibrations, useTipLengthCalibrations, -} from '/app/organisms/Devices/hooks' +} from '/app/organisms/Desktop/Devices/hooks' import { useTrackEvent, ANALYTICS_CALIBRATION_DATA_DOWNLOADED, diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationItems.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationItems.tsx similarity index 100% rename from app/src/organisms/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationItems.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationItems.tsx diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationOverflowMenu.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationOverflowMenu.tsx similarity index 98% rename from app/src/organisms/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationOverflowMenu.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationOverflowMenu.tsx index 36ba8fee26d..08d1ca68c4e 100644 --- a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationOverflowMenu.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationOverflowMenu.tsx @@ -18,7 +18,7 @@ import { } from '@opentrons/components' import { useChainLiveCommands } from '/app/resources/runs' -import { useRunStatuses } from '/app/organisms/Devices/hooks' +import { useRunStatuses } from '/app/organisms/Desktop/Devices/hooks' import { getModulePrepCommands } from '/app/local-resources/modules' import { ModuleWizardFlows } from '/app/organisms/ModuleWizardFlows' import { getModuleTooHot } from '/app/transformations/modules' diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/OverflowMenu.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/OverflowMenu.tsx similarity index 94% rename from app/src/organisms/RobotSettingsCalibration/CalibrationDetails/OverflowMenu.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/OverflowMenu.tsx index 6687e42af93..3601bd51f22 100644 --- a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/OverflowMenu.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/OverflowMenu.tsx @@ -29,18 +29,16 @@ import { useTrackEvent, ANALYTICS_CALIBRATION_DATA_DOWNLOADED, } from '/app/redux/analytics' -import { - useRunStatuses, - useAttachedPipettesFromInstrumentsQuery, -} from '/app/organisms/Devices/hooks' -import { PipetteWizardFlows } from '../../PipetteWizardFlows' -import { FLOWS } from '../../PipetteWizardFlows/constants' -import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' +import { useRunStatuses } from '/app/organisms/Desktop/Devices/hooks' +import { PipetteWizardFlows } from '/app/organisms/PipetteWizardFlows' +import { FLOWS } from '/app/organisms/PipetteWizardFlows/constants' +import { useIsEstopNotDisengaged } from '/app/resources/devices' +import { useAttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' import type { Mount } from '@opentrons/components' import type { PipetteName } from '@opentrons/shared-data' import type { DeleteCalRequestParams } from '@opentrons/api-client' -import type { SelectablePipettes } from '../../PipetteWizardFlows/types' +import type { SelectablePipettes } from '/app/organisms/PipetteWizardFlows/types' interface OverflowMenuProps { calType: 'pipetteOffset' | 'tipLength' diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/PipetteOffsetCalibrationItems.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/PipetteOffsetCalibrationItems.tsx similarity index 97% rename from app/src/organisms/RobotSettingsCalibration/CalibrationDetails/PipetteOffsetCalibrationItems.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/PipetteOffsetCalibrationItems.tsx index d94c51c681d..66921699dc5 100644 --- a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/PipetteOffsetCalibrationItems.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/PipetteOffsetCalibrationItems.tsx @@ -16,8 +16,10 @@ import { OverflowMenu } from './OverflowMenu' import { formatLastCalibrated, getDisplayNameForTipRack } from './utils' import { getCustomLabwareDefinitions } from '/app/redux/custom-labware' import { LEFT } from '/app/redux/pipettes' -import { useAttachedPipettesFromInstrumentsQuery } from '/app/organisms/Devices/hooks' -import { useAttachedPipettes } from '/app/resources/instruments' +import { + useAttachedPipettes, + useAttachedPipettesFromInstrumentsQuery, +} from '/app/resources/instruments' import { useIsFlex } from '/app/redux-resources/robots' import type { State } from '/app/redux/types' diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/TipLengthCalibrationItems.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/TipLengthCalibrationItems.tsx similarity index 100% rename from app/src/organisms/RobotSettingsCalibration/CalibrationDetails/TipLengthCalibrationItems.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/TipLengthCalibrationItems.tsx diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__fixtures__/index.ts b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__fixtures__/index.ts similarity index 100% rename from app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__fixtures__/index.ts rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__fixtures__/index.ts diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationItems.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationItems.test.tsx similarity index 100% rename from app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationItems.test.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationItems.test.tsx diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationOverflowMenu.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationOverflowMenu.test.tsx similarity index 98% rename from app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationOverflowMenu.test.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationOverflowMenu.test.tsx index cc7c1e847e1..f60a7311bc1 100644 --- a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationOverflowMenu.test.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationOverflowMenu.test.tsx @@ -8,7 +8,7 @@ import { ModuleWizardFlows } from '/app/organisms/ModuleWizardFlows' import { useChainLiveCommands } from '/app/resources/runs' import { mockThermocyclerGen2 } from '/app/redux/modules/__fixtures__' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' -import { useRunStatuses } from '/app/organisms/Devices/hooks' +import { useRunStatuses } from '/app/organisms/Desktop/Devices/hooks' import { ModuleCalibrationOverflowMenu } from '../ModuleCalibrationOverflowMenu' @@ -16,7 +16,7 @@ import type { Mount } from '@opentrons/components' vi.mock('@opentrons/react-api-client') vi.mock('/app/organisms/ModuleWizardFlows') -vi.mock('/app/organisms/Devices/hooks') +vi.mock('/app/organisms/Desktop/Devices/hooks') vi.mock('/app/resources/runs') vi.mock('/app/resources/devices/hooks/useIsEstopNotDisengaged') diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/OverflowMenu.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/OverflowMenu.test.tsx similarity index 93% rename from app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/OverflowMenu.test.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/OverflowMenu.test.tsx index 3a01e166746..bf5c400fcf0 100644 --- a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/OverflowMenu.test.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/OverflowMenu.test.tsx @@ -12,20 +12,17 @@ import { import { i18n } from '/app/i18n' import { mockDeckCalData } from '/app/redux/calibration/__fixtures__' -import { PipetteWizardFlows } from '../../../PipetteWizardFlows' -import { useCalibratePipetteOffset } from '../../../CalibratePipetteOffset/useCalibratePipetteOffset' -import { - useDeckCalibrationData, - useRunStatuses, - useAttachedPipettesFromInstrumentsQuery, -} from '../../../Devices/hooks' +import { PipetteWizardFlows } from '/app/organisms/PipetteWizardFlows' +import { useCalibratePipetteOffset } from '/app/organisms/Desktop/CalibratePipetteOffset/useCalibratePipetteOffset' +import { useDeckCalibrationData, useRunStatuses } from '../../../Devices/hooks' +import { useAttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' import { mockAttachedPipetteInformation } from '/app/redux/pipettes/__fixtures__' import { mockPipetteOffsetCalibrationsResponse, mockTipLengthCalibrationResponse, } from '../__fixtures__' import { renderWithProviders } from '/app/__testing-utils__' -import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' +import { useIsEstopNotDisengaged } from '/app/resources/devices' import { OverflowMenu } from '../OverflowMenu' import type { Mount } from '@opentrons/components' @@ -64,11 +61,13 @@ vi.mock('@opentrons/react-api-client') vi.mock('/app/redux/sessions/selectors') vi.mock('/app/redux/discovery') vi.mock('/app/redux/robot-api/selectors') -vi.mock('/app/organisms/CalibratePipetteOffset/useCalibratePipetteOffset') -vi.mock('/app/organisms/ProtocolUpload/hooks') -vi.mock('/app/organisms/Devices/hooks') -vi.mock('../../../PipetteWizardFlows') -vi.mock('/app/resources/devices/hooks/useIsEstopNotDisengaged') +vi.mock( + '/app/organisms/Desktop/CalibratePipetteOffset/useCalibratePipetteOffset' +) +vi.mock('../../../Devices/hooks') +vi.mock('/app/organisms/PipetteWizardFlows') +vi.mock('/app/resources/devices') +vi.mock('/app/resources/instruments') const RUN_STATUSES = { isRunRunning: false, diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/PipetteOffsetCalibrationItems.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/PipetteOffsetCalibrationItems.test.tsx similarity index 96% rename from app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/PipetteOffsetCalibrationItems.test.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/PipetteOffsetCalibrationItems.test.tsx index 2cd4c6077df..2a6cf82726f 100644 --- a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/PipetteOffsetCalibrationItems.test.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/PipetteOffsetCalibrationItems.test.tsx @@ -9,8 +9,10 @@ import { mockAttachedPipette, mockAttachedPipetteInformation, } from '/app/redux/pipettes/__fixtures__' -import { useAttachedPipettesFromInstrumentsQuery } from '/app/organisms/Devices/hooks' -import { useAttachedPipettes } from '/app/resources/instruments' +import { + useAttachedPipettes, + useAttachedPipettesFromInstrumentsQuery, +} from '/app/resources/instruments' import { useIsFlex } from '/app/redux-resources/robots' import { renderWithProviders } from '/app/__testing-utils__' import { PipetteOffsetCalibrationItems } from '../PipetteOffsetCalibrationItems' @@ -60,7 +62,6 @@ vi.mock('/app/redux/custom-labware/selectors') vi.mock('/app/redux/sessions/selectors') vi.mock('/app/redux/discovery') vi.mock('/app/assets/labware/findLabware') -vi.mock('/app/organisms/Devices/hooks') vi.mock('/app/redux-resources/robots') vi.mock('/app/resources/instruments') vi.mock('../OverflowMenu') diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/TipLengthCalibrationItems.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/TipLengthCalibrationItems.test.tsx similarity index 98% rename from app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/TipLengthCalibrationItems.test.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/TipLengthCalibrationItems.test.tsx index 71746c541c7..014ec28ee2c 100644 --- a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/TipLengthCalibrationItems.test.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/TipLengthCalibrationItems.test.tsx @@ -13,7 +13,7 @@ vi.mock('/app/redux/config') vi.mock('/app/redux/sessions/selectors') vi.mock('/app/redux/discovery') vi.mock('/app/assets/labware/findLabware') -vi.mock('/app/organisms/Devices/hooks') +vi.mock('/app/organisms/Desktop/Devices/hooks') vi.mock('../OverflowMenu') const ROBOT_NAME = 'otie' diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/utils.test.ts b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/utils.test.ts similarity index 100% rename from app/src/organisms/RobotSettingsCalibration/CalibrationDetails/__tests__/utils.test.ts rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/utils.test.ts diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDetails/utils.ts b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/utils.ts similarity index 100% rename from app/src/organisms/RobotSettingsCalibration/CalibrationDetails/utils.ts rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/utils.ts diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationHealthCheck.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationHealthCheck.tsx similarity index 95% rename from app/src/organisms/RobotSettingsCalibration/CalibrationHealthCheck.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationHealthCheck.tsx index 833dc965770..5543070ef83 100644 --- a/app/src/organisms/RobotSettingsCalibration/CalibrationHealthCheck.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationHealthCheck.tsx @@ -16,9 +16,9 @@ import { useHoverTooltip, } from '@opentrons/components' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { TertiaryButton } from '/app/atoms/buttons' -import { AskForCalibrationBlockModal } from '/app/organisms/CalibrateTipLength/AskForCalibrationBlockModal' +import { AskForCalibrationBlockModal } from '../CalibrateTipLength/AskForCalibrationBlockModal' import { useTrackEvent, ANALYTICS_CALIBRATION_HEALTH_CHECK_BUTTON_CLICKED, @@ -27,7 +27,7 @@ import * as Calibration from '/app/redux/calibration' import * as Config from '/app/redux/config' import * as Pipettes from '/app/redux/pipettes' import * as Sessions from '/app/redux/sessions' -import { useRunStatuses } from '/app/organisms/Devices/hooks' +import { useRunStatuses } from '../Devices/hooks' import { useAttachedPipettes, useAttachedPipetteCalibrations, diff --git a/app/src/organisms/RobotSettingsCalibration/DeckCalibrationConfirmModal.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/DeckCalibrationConfirmModal.tsx similarity index 100% rename from app/src/organisms/RobotSettingsCalibration/DeckCalibrationConfirmModal.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/DeckCalibrationConfirmModal.tsx diff --git a/app/src/organisms/RobotSettingsCalibration/RobotSettingsDeckCalibration.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/RobotSettingsDeckCalibration.tsx similarity index 92% rename from app/src/organisms/RobotSettingsCalibration/RobotSettingsDeckCalibration.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/RobotSettingsDeckCalibration.tsx index 48a34c166fe..c78e53fc3f6 100644 --- a/app/src/organisms/RobotSettingsCalibration/RobotSettingsDeckCalibration.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/RobotSettingsDeckCalibration.tsx @@ -11,8 +11,8 @@ import { LegacyStyledText, } from '@opentrons/components' -import { formatLastModified } from '/app/organisms/CalibrationPanels/utils' -import { useDeckCalibrationData } from '/app/organisms/Devices/hooks' +import { formatLastModified } from '../CalibrationPanels/utils' +import { useDeckCalibrationData } from '/app/organisms/Desktop/Devices/hooks' import { useRobot } from '/app/redux-resources/robots' import * as RobotApi from '/app/redux/robot-api' diff --git a/app/src/organisms/RobotSettingsCalibration/RobotSettingsGripperCalibration.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/RobotSettingsGripperCalibration.tsx similarity index 100% rename from app/src/organisms/RobotSettingsCalibration/RobotSettingsGripperCalibration.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/RobotSettingsGripperCalibration.tsx diff --git a/app/src/organisms/RobotSettingsCalibration/RobotSettingsModuleCalibration.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/RobotSettingsModuleCalibration.tsx similarity index 100% rename from app/src/organisms/RobotSettingsCalibration/RobotSettingsModuleCalibration.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/RobotSettingsModuleCalibration.tsx diff --git a/app/src/organisms/RobotSettingsCalibration/RobotSettingsPipetteOffsetCalibration.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/RobotSettingsPipetteOffsetCalibration.tsx similarity index 95% rename from app/src/organisms/RobotSettingsCalibration/RobotSettingsPipetteOffsetCalibration.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/RobotSettingsPipetteOffsetCalibration.tsx index d066d2b74f0..b2a774a0e9e 100644 --- a/app/src/organisms/RobotSettingsCalibration/RobotSettingsPipetteOffsetCalibration.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/RobotSettingsPipetteOffsetCalibration.tsx @@ -9,10 +9,8 @@ import { } from '@opentrons/components' import { useInstrumentsQuery } from '@opentrons/react-api-client' -import { - useAttachedPipettesFromInstrumentsQuery, - usePipetteOffsetCalibrations, -} from '../Devices/hooks' +import { usePipetteOffsetCalibrations } from '../Devices/hooks' +import { useAttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' import { useIsFlex } from '/app/redux-resources/robots' import { getShowPipetteCalibrationWarning } from '/app/transformations/instruments' import { PipetteRecalibrationWarning } from '../Devices/PipetteCard/PipetteRecalibrationWarning' diff --git a/app/src/organisms/RobotSettingsCalibration/RobotSettingsTipLengthCalibration.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/RobotSettingsTipLengthCalibration.tsx similarity index 100% rename from app/src/organisms/RobotSettingsCalibration/RobotSettingsTipLengthCalibration.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/RobotSettingsTipLengthCalibration.tsx diff --git a/app/src/organisms/RobotSettingsCalibration/__tests__/CalibrationDataDownload.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/CalibrationDataDownload.test.tsx similarity index 98% rename from app/src/organisms/RobotSettingsCalibration/__tests__/CalibrationDataDownload.test.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/CalibrationDataDownload.test.tsx index 54e795a1d1e..b84b25e2e16 100644 --- a/app/src/organisms/RobotSettingsCalibration/__tests__/CalibrationDataDownload.test.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/CalibrationDataDownload.test.tsx @@ -38,7 +38,7 @@ import { useDeckCalibrationData, usePipetteOffsetCalibrations, useTipLengthCalibrations, -} from '/app/organisms/Devices/hooks' +} from '/app/organisms/Desktop/Devices/hooks' import { useRobot, useIsFlex } from '/app/redux-resources/robots' import { renderWithProviders } from '/app/__testing-utils__' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' @@ -54,7 +54,7 @@ vi.mock('file-saver', async importOriginal => { }) vi.mock('@opentrons/react-api-client') vi.mock('/app/redux/analytics') -vi.mock('/app/organisms/Devices/hooks') +vi.mock('/app/organisms/Desktop/Devices/hooks') vi.mock('/app/redux-resources/robots') vi.mock('/app/resources/devices/hooks/useIsEstopNotDisengaged') diff --git a/app/src/organisms/RobotSettingsCalibration/__tests__/CalibrationHealthCheck.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/CalibrationHealthCheck.test.tsx similarity index 97% rename from app/src/organisms/RobotSettingsCalibration/__tests__/CalibrationHealthCheck.test.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/CalibrationHealthCheck.test.tsx index 3c2f2c5b3db..7b42bc7bdfb 100644 --- a/app/src/organisms/RobotSettingsCalibration/__tests__/CalibrationHealthCheck.test.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/CalibrationHealthCheck.test.tsx @@ -19,7 +19,7 @@ import { mockTipLengthCalibration2, } from '/app/redux/calibration/tip-length/__fixtures__' import { mockAttachedPipette } from '/app/redux/pipettes/__fixtures__' -import { useRunStatuses } from '/app/organisms/Devices/hooks' +import { useRunStatuses } from '../../Devices/hooks' import { useAttachedPipettes, @@ -36,7 +36,7 @@ import type { vi.mock('/app/redux/analytics') vi.mock('/app/redux/config') vi.mock('/app/redux/pipettes') -vi.mock('/app/organisms/Devices/hooks') +vi.mock('../../Devices/hooks') vi.mock('/app/resources/instruments') vi.mock('/app/redux-resources/robots') diff --git a/app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsCalibration.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsCalibration.test.tsx similarity index 96% rename from app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsCalibration.test.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsCalibration.test.tsx index 763963dfb76..d5ca36ad9c6 100644 --- a/app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsCalibration.test.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsCalibration.test.tsx @@ -4,7 +4,7 @@ import { describe, it, expect, beforeEach, vi } from 'vitest' import '@testing-library/jest-dom/vitest' import { useInstrumentsQuery } from '@opentrons/react-api-client' import { i18n } from '/app/i18n' -import { CalibrationStatusCard } from '/app/organisms/CalibrationStatusCard' +import { CalibrationStatusCard } from '../..//CalibrationStatusCard' import { useFeatureFlag } from '/app/redux/config' import * as RobotApi from '/app/redux/robot-api' import { renderWithProviders } from '/app/__testing-utils__' @@ -21,9 +21,11 @@ import { import { usePipetteOffsetCalibrations, useRunStatuses, +} from '/app/organisms/Desktop/Devices/hooks' +import { + useAttachedPipettes, useAttachedPipettesFromInstrumentsQuery, -} from '/app/organisms/Devices/hooks' -import { useAttachedPipettes } from '/app/resources/instruments' +} from '/app/resources/instruments' import { useRobot, useIsFlex } from '/app/redux-resources/robots' import { CalibrationDataDownload } from '../CalibrationDataDownload' @@ -44,13 +46,13 @@ vi.mock('@opentrons/react-api-client', async importOriginal => { useInstrumentsQuery: vi.fn(), } }) -vi.mock('/app/organisms/CalibrationStatusCard') +vi.mock('../../CalibrationStatusCard') vi.mock('/app/redux/config') vi.mock('/app/redux/sessions/selectors') vi.mock('/app/redux/robot-api/selectors') vi.mock('/app/redux-resources/robots') vi.mock('/app/resources/instruments') -vi.mock('/app/organisms/Devices/hooks') +vi.mock('/app/organisms/Desktop/Devices/hooks') vi.mock('../CalibrationDataDownload') vi.mock('../CalibrationHealthCheck') vi.mock('../RobotSettingsDeckCalibration') diff --git a/app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsDeckCalibration.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsDeckCalibration.test.tsx similarity index 94% rename from app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsDeckCalibration.test.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsDeckCalibration.test.tsx index fb48e3c3ff5..2c46916fc3c 100644 --- a/app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsDeckCalibration.test.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsDeckCalibration.test.tsx @@ -10,7 +10,7 @@ import { } from '/app/redux/calibration/__fixtures__' import { mockConnectableRobot } from '/app/redux/discovery/__fixtures__' import { mockAttachedPipette } from '/app/redux/pipettes/__fixtures__' -import { useDeckCalibrationData } from '/app/organisms/Devices/hooks' +import { useDeckCalibrationData } from '/app/organisms/Desktop/Devices/hooks' import { useAttachedPipettes } from '/app/resources/instruments' import { useRobot } from '/app/redux-resources/robots' import { renderWithProviders } from '/app/__testing-utils__' @@ -19,10 +19,10 @@ import { RobotSettingsDeckCalibration } from '../RobotSettingsDeckCalibration' import type { AttachedPipettesByMount } from '/app/redux/pipettes/types' -vi.mock('/app/organisms/CalibrationStatusCard') +vi.mock('../..//CalibrationStatusCard') vi.mock('/app/redux/robot-api/selectors') vi.mock('/app/redux-resources/robots') -vi.mock('/app/organisms/Devices/hooks') +vi.mock('/app/organisms/Desktop/Devices/hooks') vi.mock('/app/resources/instruments') const mockAttachedPipettes: AttachedPipettesByMount = { diff --git a/app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsGripperCalibration.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsGripperCalibration.test.tsx similarity index 100% rename from app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsGripperCalibration.test.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsGripperCalibration.test.tsx diff --git a/app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsModuleCalibration.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsModuleCalibration.test.tsx similarity index 100% rename from app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsModuleCalibration.test.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsModuleCalibration.test.tsx diff --git a/app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsPipetteOffsetCalibration.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsPipetteOffsetCalibration.test.tsx similarity index 92% rename from app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsPipetteOffsetCalibration.test.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsPipetteOffsetCalibration.test.tsx index 5133923e071..0f628dddfef 100644 --- a/app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsPipetteOffsetCalibration.test.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsPipetteOffsetCalibration.test.tsx @@ -9,10 +9,8 @@ import { mockPipetteOffsetCalibration2, mockPipetteOffsetCalibration3, } from '/app/redux/calibration/pipette-offset/__fixtures__' -import { - usePipetteOffsetCalibrations, - useAttachedPipettesFromInstrumentsQuery, -} from '/app/organisms/Devices/hooks' +import { usePipetteOffsetCalibrations } from '/app/organisms/Desktop/Devices/hooks' +import { useAttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' import { renderWithProviders } from '/app/__testing-utils__' import { mockAttachedPipetteInformation } from '/app/redux/pipettes/__fixtures__' import { useIsFlex } from '/app/redux-resources/robots' @@ -22,7 +20,8 @@ import { PipetteOffsetCalibrationItems } from '../CalibrationDetails/PipetteOffs import type { FormattedPipetteOffsetCalibration } from '..' -vi.mock('/app/organisms/Devices/hooks') +vi.mock('/app/organisms/Desktop/Devices/hooks') +vi.mock('/app/resources/instruments') vi.mock('/app/redux-resources/robots') vi.mock('../CalibrationDetails/PipetteOffsetCalibrationItems') diff --git a/app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsTipLengthCalibration.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsTipLengthCalibration.test.tsx similarity index 94% rename from app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsTipLengthCalibration.test.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsTipLengthCalibration.test.tsx index b2934dceac4..d9b229c0f4e 100644 --- a/app/src/organisms/RobotSettingsCalibration/__tests__/RobotSettingsTipLengthCalibration.test.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsTipLengthCalibration.test.tsx @@ -9,7 +9,7 @@ import { mockTipLengthCalibration3, } from '/app/redux/calibration/tip-length/__fixtures__' import { mockAttachedPipette } from '/app/redux/pipettes/__fixtures__' -import { useTipLengthCalibrations } from '/app/organisms/Devices/hooks' +import { useTipLengthCalibrations } from '/app/organisms/Desktop/Devices/hooks' import { useAttachedPipettes } from '/app/resources/instruments' import { RobotSettingsTipLengthCalibration } from '../RobotSettingsTipLengthCalibration' @@ -19,7 +19,7 @@ import type { FormattedPipetteOffsetCalibration } from '..' import type { AttachedPipettesByMount } from '/app/redux/pipettes/types' vi.mock('/app/redux/config') -vi.mock('/app/organisms/Devices/hooks') +vi.mock('/app/organisms/Desktop/Devices/hooks') vi.mock('../CalibrationDetails/TipLengthCalibrationItems') vi.mock('/app/resources/instruments') diff --git a/app/src/organisms/RobotSettingsCalibration/index.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/index.tsx similarity index 96% rename from app/src/organisms/RobotSettingsCalibration/index.tsx rename to app/src/organisms/Desktop/RobotSettingsCalibration/index.tsx index cc6571ccf9c..5c93824c5ca 100644 --- a/app/src/organisms/RobotSettingsCalibration/index.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/index.tsx @@ -16,17 +16,15 @@ import { useModulesQuery, } from '@opentrons/react-api-client' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { Line } from '/app/atoms/structure' -import { CalibrateDeck } from '/app/organisms/CalibrateDeck' -import { CalibrationStatusCard } from '/app/organisms/CalibrationStatusCard' -import { CheckCalibration } from '/app/organisms/CheckCalibration' -import { - useRunStatuses, - useAttachedPipettesFromInstrumentsQuery, -} from '/app/organisms/Devices/hooks' +import { CalibrateDeck } from '../CalibrateDeck' +import { CalibrationStatusCard } from '../CalibrationStatusCard' +import { CheckCalibration } from '../CheckCalibration' +import { useRunStatuses } from '/app/organisms/Desktop/Devices/hooks' +import { useAttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' import { useRobot, useIsFlex } from '/app/redux-resources/robots' -import { HowCalibrationWorksModal } from '/app/organisms/HowCalibrationWorksModal' +import { HowCalibrationWorksModal } from '../HowCalibrationWorksModal' import { CONNECTABLE } from '/app/redux/discovery' import * as RobotApi from '/app/redux/robot-api' import { getDeckCalibrationSession } from '/app/redux/sessions/deck-calibration/selectors' diff --git a/app/src/organisms/RunProgressMeter/InterventionTicks.tsx b/app/src/organisms/Desktop/RunProgressMeter/InterventionTicks.tsx similarity index 100% rename from app/src/organisms/RunProgressMeter/InterventionTicks.tsx rename to app/src/organisms/Desktop/RunProgressMeter/InterventionTicks.tsx diff --git a/app/src/organisms/RunProgressMeter/Tick.tsx b/app/src/organisms/Desktop/RunProgressMeter/Tick.tsx similarity index 98% rename from app/src/organisms/RunProgressMeter/Tick.tsx rename to app/src/organisms/Desktop/RunProgressMeter/Tick.tsx index 1976e8d4553..ddb3d0a7c79 100644 --- a/app/src/organisms/RunProgressMeter/Tick.tsx +++ b/app/src/organisms/Desktop/RunProgressMeter/Tick.tsx @@ -14,7 +14,7 @@ import { useHoverTooltip, } from '@opentrons/components' -import { getModalPortalEl } from '../../App/portal' +import { getModalPortalEl } from '/app/App/portal' import type { IconName } from '@opentrons/components' import type { RunTimeCommand } from '@opentrons/shared-data' diff --git a/app/src/organisms/RunProgressMeter/__fixtures__/index.ts b/app/src/organisms/Desktop/RunProgressMeter/__fixtures__/index.ts similarity index 100% rename from app/src/organisms/RunProgressMeter/__fixtures__/index.ts rename to app/src/organisms/Desktop/RunProgressMeter/__fixtures__/index.ts diff --git a/app/src/organisms/RunProgressMeter/__tests__/InterventionTicks.test.tsx b/app/src/organisms/Desktop/RunProgressMeter/__tests__/InterventionTicks.test.tsx similarity index 100% rename from app/src/organisms/RunProgressMeter/__tests__/InterventionTicks.test.tsx rename to app/src/organisms/Desktop/RunProgressMeter/__tests__/InterventionTicks.test.tsx diff --git a/app/src/organisms/RunProgressMeter/__tests__/RunProgressMeter.test.tsx b/app/src/organisms/Desktop/RunProgressMeter/__tests__/RunProgressMeter.test.tsx similarity index 96% rename from app/src/organisms/RunProgressMeter/__tests__/RunProgressMeter.test.tsx rename to app/src/organisms/Desktop/RunProgressMeter/__tests__/RunProgressMeter.test.tsx index 2c517f601e6..4217ce8618a 100644 --- a/app/src/organisms/RunProgressMeter/__tests__/RunProgressMeter.test.tsx +++ b/app/src/organisms/Desktop/RunProgressMeter/__tests__/RunProgressMeter.test.tsx @@ -16,9 +16,9 @@ import { i18n } from '/app/i18n' import { useInterventionModal, InterventionModal, -} from '../../InterventionModal' +} from '/app/organisms/InterventionModal' import { ProgressBar } from '/app/atoms/ProgressBar' -import { useRunControls } from '../../RunTimeControl/hooks' +import { useRunControls } from '/app/organisms/RunTimeControl' import { useNotifyRunQuery, useNotifyAllCommandsQuery, @@ -47,10 +47,10 @@ vi.mock('@opentrons/react-api-client', async importOriginal => { useCommandQuery: vi.fn(), } }) -vi.mock('../../RunTimeControl/hooks') +vi.mock('/app/organisms/RunTimeControl') vi.mock('/app/resources/runs') vi.mock('/app/atoms/ProgressBar') -vi.mock('../../InterventionModal') +vi.mock('/app/organisms/InterventionModal') vi.mock('../../Devices/hooks') vi.mock('/app/resources/protocols/hooks') vi.mock('/app/redux-resources/robots') diff --git a/app/src/organisms/RunProgressMeter/constants.ts b/app/src/organisms/Desktop/RunProgressMeter/constants.ts similarity index 100% rename from app/src/organisms/RunProgressMeter/constants.ts rename to app/src/organisms/Desktop/RunProgressMeter/constants.ts diff --git a/app/src/organisms/RunProgressMeter/hooks/index.ts b/app/src/organisms/Desktop/RunProgressMeter/hooks/index.ts similarity index 100% rename from app/src/organisms/RunProgressMeter/hooks/index.ts rename to app/src/organisms/Desktop/RunProgressMeter/hooks/index.ts diff --git a/app/src/organisms/RunProgressMeter/hooks/useRunProgressCopy.tsx b/app/src/organisms/Desktop/RunProgressMeter/hooks/useRunProgressCopy.tsx similarity index 100% rename from app/src/organisms/RunProgressMeter/hooks/useRunProgressCopy.tsx rename to app/src/organisms/Desktop/RunProgressMeter/hooks/useRunProgressCopy.tsx diff --git a/app/src/organisms/RunProgressMeter/index.tsx b/app/src/organisms/Desktop/RunProgressMeter/index.tsx similarity index 96% rename from app/src/organisms/RunProgressMeter/index.tsx rename to app/src/organisms/Desktop/RunProgressMeter/index.tsx index 078ea646687..6c4e7081fa9 100644 --- a/app/src/organisms/RunProgressMeter/index.tsx +++ b/app/src/organisms/Desktop/RunProgressMeter/index.tsx @@ -29,9 +29,12 @@ import { RUN_STATUS_RUNNING, } from '@opentrons/api-client' -import { getModalPortalEl } from '../../App/portal' -import { useRunControls } from '../RunTimeControl/hooks' -import { InterventionModal, useInterventionModal } from '../InterventionModal' +import { getModalPortalEl } from '/app/App/portal' +import { useRunControls } from '/app/organisms/RunTimeControl' +import { + InterventionModal, + useInterventionModal, +} from '/app/organisms/InterventionModal' import { ProgressBar } from '/app/atoms/ProgressBar' import { useDownloadRunLog } from '../Devices/hooks' import { InterventionTicks } from './InterventionTicks' diff --git a/app/src/organisms/SendProtocolToFlexSlideout/__tests__/SendProtocolToFlexSlideout.test.tsx b/app/src/organisms/Desktop/SendProtocolToFlexSlideout/__tests__/SendProtocolToFlexSlideout.test.tsx similarity index 98% rename from app/src/organisms/SendProtocolToFlexSlideout/__tests__/SendProtocolToFlexSlideout.test.tsx rename to app/src/organisms/Desktop/SendProtocolToFlexSlideout/__tests__/SendProtocolToFlexSlideout.test.tsx index d9d4532af73..5ed8f96fb1a 100644 --- a/app/src/organisms/SendProtocolToFlexSlideout/__tests__/SendProtocolToFlexSlideout.test.tsx +++ b/app/src/organisms/Desktop/SendProtocolToFlexSlideout/__tests__/SendProtocolToFlexSlideout.test.tsx @@ -7,10 +7,10 @@ import { MemoryRouter } from 'react-router-dom' import { mockOT3HealthResponse, mockOT3ServerHealthResponse, -} from '../../../../../discovery-client/src/fixtures' +} from '../../../../../../discovery-client/src/fixtures' import { useCreateProtocolMutation } from '@opentrons/react-api-client' -import { mockSuccessQueryResults } from '../../../__fixtures__' +import { mockSuccessQueryResults } from '/app/__fixtures__' import { i18n } from '/app/i18n' import { useToaster } from '/app/organisms/ToasterOven' import { diff --git a/app/src/organisms/SendProtocolToFlexSlideout/index.tsx b/app/src/organisms/Desktop/SendProtocolToFlexSlideout/index.tsx similarity index 96% rename from app/src/organisms/SendProtocolToFlexSlideout/index.tsx rename to app/src/organisms/Desktop/SendProtocolToFlexSlideout/index.tsx index 176fa22e3c9..0326b750ce4 100644 --- a/app/src/organisms/SendProtocolToFlexSlideout/index.tsx +++ b/app/src/organisms/Desktop/SendProtocolToFlexSlideout/index.tsx @@ -12,11 +12,9 @@ import { INFO_TOAST, SUCCESS_TOAST, } from '@opentrons/components' -import { ChooseRobotSlideout } from '/app/organisms/ChooseRobotSlideout' -import { - getAnalysisStatus, - getProtocolDisplayName, -} from '/app/organisms/ProtocolsLanding/utils' +import { ChooseRobotSlideout } from '../ChooseRobotSlideout' +import { getAnalysisStatus } from '/app/transformations/analysis' +import { getProtocolDisplayName } from '/app/transformations/protocols' import { useToaster } from '/app/organisms/ToasterOven' import { appShellRequestor } from '/app/redux/shell/remote' import { OPENTRONS_USB } from '/app/redux/discovery' diff --git a/app/src/organisms/UpdateAppModal/__tests__/UpdateAppModal.test.tsx b/app/src/organisms/Desktop/UpdateAppModal/__tests__/UpdateAppModal.test.tsx similarity index 100% rename from app/src/organisms/UpdateAppModal/__tests__/UpdateAppModal.test.tsx rename to app/src/organisms/Desktop/UpdateAppModal/__tests__/UpdateAppModal.test.tsx diff --git a/app/src/organisms/UpdateAppModal/index.tsx b/app/src/organisms/Desktop/UpdateAppModal/index.tsx similarity index 100% rename from app/src/organisms/UpdateAppModal/index.tsx rename to app/src/organisms/Desktop/UpdateAppModal/index.tsx diff --git a/app/src/organisms/UpdateRobotBanner/__tests__/UpdateRobotBanner.test.tsx b/app/src/organisms/Desktop/UpdateRobotBanner/__tests__/UpdateRobotBanner.test.tsx similarity index 100% rename from app/src/organisms/UpdateRobotBanner/__tests__/UpdateRobotBanner.test.tsx rename to app/src/organisms/Desktop/UpdateRobotBanner/__tests__/UpdateRobotBanner.test.tsx diff --git a/app/src/organisms/UpdateRobotBanner/index.tsx b/app/src/organisms/Desktop/UpdateRobotBanner/index.tsx similarity index 100% rename from app/src/organisms/UpdateRobotBanner/index.tsx rename to app/src/organisms/Desktop/UpdateRobotBanner/index.tsx diff --git a/app/src/organisms/DeviceDetailsDeckConfiguration/__tests__/DeviceDetailsDeckConfiguration.test.tsx b/app/src/organisms/DeviceDetailsDeckConfiguration/__tests__/DeviceDetailsDeckConfiguration.test.tsx index dc47261fac8..2456a9dfb24 100644 --- a/app/src/organisms/DeviceDetailsDeckConfiguration/__tests__/DeviceDetailsDeckConfiguration.test.tsx +++ b/app/src/organisms/DeviceDetailsDeckConfiguration/__tests__/DeviceDetailsDeckConfiguration.test.tsx @@ -12,7 +12,7 @@ import { import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { useIsRobotViewable, useRunStatuses } from '../../Devices/hooks' +import { useIsRobotViewable, useRunStatuses } from '../../Desktop/Devices/hooks' import { DeckFixtureSetupInstructionsModal } from '../DeckFixtureSetupInstructionsModal' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' import { DeviceDetailsDeckConfiguration } from '../' @@ -36,7 +36,7 @@ vi.mock('@opentrons/components', async importOriginal => { }) vi.mock('@opentrons/react-api-client') vi.mock('../DeckFixtureSetupInstructionsModal') -vi.mock('../../Devices/hooks') +vi.mock('../../Desktop/Devices/hooks') vi.mock('/app/resources/maintenance_runs') vi.mock('/app/resources/devices/hooks/useIsEstopNotDisengaged') vi.mock('/app/resources/deck_configuration') diff --git a/app/src/organisms/DeviceDetailsDeckConfiguration/index.tsx b/app/src/organisms/DeviceDetailsDeckConfiguration/index.tsx index da66506191c..dcea75e58f7 100644 --- a/app/src/organisms/DeviceDetailsDeckConfiguration/index.tsx +++ b/app/src/organisms/DeviceDetailsDeckConfiguration/index.tsx @@ -31,7 +31,7 @@ import { import { useNotifyCurrentMaintenanceRun } from '/app/resources/maintenance_runs' import { DeckFixtureSetupInstructionsModal } from './DeckFixtureSetupInstructionsModal' -import { useIsRobotViewable, useRunStatuses } from '../Devices/hooks' +import { useIsRobotViewable, useRunStatuses } from '../Desktop/Devices/hooks' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' import { useDeckConfigurationEditingTools, diff --git a/app/src/organisms/DropTipWizardFlows/DropTipWizard.tsx b/app/src/organisms/DropTipWizardFlows/DropTipWizard.tsx index cb3f0691113..55b4d73d9b7 100644 --- a/app/src/organisms/DropTipWizardFlows/DropTipWizard.tsx +++ b/app/src/organisms/DropTipWizardFlows/DropTipWizard.tsx @@ -19,7 +19,7 @@ import { OVERFLOW_HIDDEN, } from '@opentrons/components' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { getIsOnDevice } from '/app/redux/config' import { ExitConfirmation } from './ExitConfirmation' import { diff --git a/app/src/organisms/EmergencyStop/EstopMissingModal.tsx b/app/src/organisms/EmergencyStop/EstopMissingModal.tsx index f6f7075b6f2..3b862a94a9d 100644 --- a/app/src/organisms/EmergencyStop/EstopMissingModal.tsx +++ b/app/src/organisms/EmergencyStop/EstopMissingModal.tsx @@ -12,7 +12,7 @@ import { Modal, } from '@opentrons/components' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { OddModal } from '/app/molecules/OddModal' import { getIsOnDevice } from '/app/redux/config' diff --git a/app/src/organisms/EmergencyStop/EstopPressedModal.tsx b/app/src/organisms/EmergencyStop/EstopPressedModal.tsx index b36962d4045..8dc996c3374 100644 --- a/app/src/organisms/EmergencyStop/EstopPressedModal.tsx +++ b/app/src/organisms/EmergencyStop/EstopPressedModal.tsx @@ -24,7 +24,7 @@ import { import { useAcknowledgeEstopDisengageMutation } from '@opentrons/react-api-client' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { SmallButton } from '/app/atoms/buttons' import { OddModal } from '/app/molecules/OddModal' import { getIsOnDevice } from '/app/redux/config' diff --git a/app/src/organisms/ErrorRecoveryFlows/RecoveryOptions/ManageTips.tsx b/app/src/organisms/ErrorRecoveryFlows/RecoveryOptions/ManageTips.tsx index 7cd9aee55c9..5d2ad93c80a 100644 --- a/app/src/organisms/ErrorRecoveryFlows/RecoveryOptions/ManageTips.tsx +++ b/app/src/organisms/ErrorRecoveryFlows/RecoveryOptions/ManageTips.tsx @@ -19,15 +19,15 @@ import { RecoveryFooterButtons, RecoverySingleColumnContentWrapper, } from '../shared' -import { DropTipWizardFlows } from '../../DropTipWizardFlows' -import { DT_ROUTES } from '../../DropTipWizardFlows/constants' +import { DropTipWizardFlows } from '/app/organisms/DropTipWizardFlows' +import { DT_ROUTES } from '/app/organisms/DropTipWizardFlows/constants' import { SelectRecoveryOption } from './SelectRecoveryOption' import type { RecoveryContentProps, RecoveryRoute, RouteStep } from '../types' import type { FixitCommandTypeUtils, PipetteWithTip, -} from '../../DropTipWizardFlows' +} from '/app/organisms/DropTipWizardFlows' // The Drop Tip flow entry point. Includes entry from SelectRecoveryOption and CancelRun. export function ManageTips(props: RecoveryContentProps): JSX.Element { diff --git a/app/src/organisms/ErrorRecoveryFlows/RecoveryOptions/SelectRecoveryOption.tsx b/app/src/organisms/ErrorRecoveryFlows/RecoveryOptions/SelectRecoveryOption.tsx index 09fa11e8071..9b33e5a1b2b 100644 --- a/app/src/organisms/ErrorRecoveryFlows/RecoveryOptions/SelectRecoveryOption.tsx +++ b/app/src/organisms/ErrorRecoveryFlows/RecoveryOptions/SelectRecoveryOption.tsx @@ -24,7 +24,7 @@ import { } from '../shared' import type { ErrorKind, RecoveryContentProps, RecoveryRoute } from '../types' -import type { PipetteWithTip } from '../../DropTipWizardFlows' +import type { PipetteWithTip } from '/app/organisms/DropTipWizardFlows' // The "home" route within Error Recovery. When a user completes a non-terminal flow or presses "Go back" enough // to escape the boundaries of any route, they will be redirected here. diff --git a/app/src/organisms/ErrorRecoveryFlows/RecoveryOptions/__tests__/ManageTips.test.tsx b/app/src/organisms/ErrorRecoveryFlows/RecoveryOptions/__tests__/ManageTips.test.tsx index f177138f586..dd86409e7d6 100644 --- a/app/src/organisms/ErrorRecoveryFlows/RecoveryOptions/__tests__/ManageTips.test.tsx +++ b/app/src/organisms/ErrorRecoveryFlows/RecoveryOptions/__tests__/ManageTips.test.tsx @@ -13,15 +13,15 @@ import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { ManageTips, useDropTipFlowUtils } from '../ManageTips' import { RECOVERY_MAP } from '../../constants' -import { DropTipWizardFlows } from '../../../DropTipWizardFlows' -import { DT_ROUTES } from '../../../DropTipWizardFlows/constants' +import { DropTipWizardFlows } from '/app/organisms/DropTipWizardFlows' +import { DT_ROUTES } from '/app/organisms/DropTipWizardFlows/constants' import { SelectRecoveryOption } from '../SelectRecoveryOption' import { clickButtonLabeled } from '../../__tests__/util' import type { Mock } from 'vitest' import type { PipetteModelSpecs } from '@opentrons/shared-data' -vi.mock('../../../DropTipWizardFlows') +vi.mock('/app/organisms/DropTipWizardFlows') vi.mock('../SelectRecoveryOption') const { DROP_TIP_FLOWS, RETRY_NEW_TIPS } = RECOVERY_MAP diff --git a/app/src/organisms/ErrorRecoveryFlows/hooks/useRecoveryTipStatus.ts b/app/src/organisms/ErrorRecoveryFlows/hooks/useRecoveryTipStatus.ts index 698b8f6cf22..a715d12c83f 100644 --- a/app/src/organisms/ErrorRecoveryFlows/hooks/useRecoveryTipStatus.ts +++ b/app/src/organisms/ErrorRecoveryFlows/hooks/useRecoveryTipStatus.ts @@ -3,13 +3,13 @@ import head from 'lodash/head' import { useHost } from '@opentrons/react-api-client' import { getPipetteModelSpecs } from '@opentrons/shared-data' -import { useTipAttachmentStatus } from '../../DropTipWizardFlows' +import { useTipAttachmentStatus } from '/app/organisms/DropTipWizardFlows' import type { Run, Instruments, PipetteData } from '@opentrons/api-client' import type { PipetteWithTip, TipAttachmentStatusResult, -} from '../../DropTipWizardFlows' +} from '/app/organisms/DropTipWizardFlows' interface UseRecoveryTipStatusProps { runId: string diff --git a/app/src/organisms/ErrorRecoveryFlows/shared/ErrorDetailsModal.tsx b/app/src/organisms/ErrorRecoveryFlows/shared/ErrorDetailsModal.tsx index e81c4c2106b..1db46ad7f0e 100644 --- a/app/src/organisms/ErrorRecoveryFlows/shared/ErrorDetailsModal.tsx +++ b/app/src/organisms/ErrorRecoveryFlows/shared/ErrorDetailsModal.tsx @@ -16,7 +16,7 @@ import { import { useErrorName } from '../hooks' import { OddModal } from '/app/molecules/OddModal' -import { getModalPortalEl, getTopPortalEl } from '../../../App/portal' +import { getModalPortalEl, getTopPortalEl } from '/app/App/portal' import { ERROR_KINDS } from '../constants' import { InlineNotification } from '/app/atoms/InlineNotification' import { StepInfo } from './StepInfo' diff --git a/app/src/organisms/ErrorRecoveryFlows/shared/RecoveryInterventionModal.tsx b/app/src/organisms/ErrorRecoveryFlows/shared/RecoveryInterventionModal.tsx index 2d73bba9e22..77fe7de3715 100644 --- a/app/src/organisms/ErrorRecoveryFlows/shared/RecoveryInterventionModal.tsx +++ b/app/src/organisms/ErrorRecoveryFlows/shared/RecoveryInterventionModal.tsx @@ -5,7 +5,7 @@ import { css } from 'styled-components' import { Flex, RESPONSIVENESS, SPACING } from '@opentrons/components' import { InterventionModal } from '/app/molecules/InterventionModal' -import { getModalPortalEl, getTopPortalEl } from '../../../App/portal' +import { getModalPortalEl, getTopPortalEl } from '/app/App/portal' import type { ModalType } from '/app/molecules/InterventionModal' import type { DesktopSizeType } from '../types' diff --git a/app/src/organisms/ErrorRecoveryFlows/shared/TipSelectionModal.tsx b/app/src/organisms/ErrorRecoveryFlows/shared/TipSelectionModal.tsx index 57a5ac4c678..897a7d1f44c 100644 --- a/app/src/organisms/ErrorRecoveryFlows/shared/TipSelectionModal.tsx +++ b/app/src/organisms/ErrorRecoveryFlows/shared/TipSelectionModal.tsx @@ -2,7 +2,7 @@ import { useTranslation } from 'react-i18next' import { createPortal } from 'react-dom' import { OddModal } from '/app/molecules/OddModal' -import { getTopPortalEl } from '../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { TipSelection } from './TipSelection' import type { OddModalHeaderBaseProps } from '/app/molecules/OddModal/types' diff --git a/app/src/organisms/ErrorRecoveryFlows/types.ts b/app/src/organisms/ErrorRecoveryFlows/types.ts index 53a5fc64e62..b31ff677402 100644 --- a/app/src/organisms/ErrorRecoveryFlows/types.ts +++ b/app/src/organisms/ErrorRecoveryFlows/types.ts @@ -4,7 +4,7 @@ import type { ErrorRecoveryWizardProps } from './ErrorRecoveryWizard' import type { DropTipFlowsRoute, DropTipFlowsStep, -} from '../DropTipWizardFlows/types' +} from '/app/organisms/DropTipWizardFlows/types' /** * Misc Recovery Types diff --git a/app/src/organisms/FirmwareUpdateModal/FirmwareUpdateTakeover.tsx b/app/src/organisms/FirmwareUpdateModal/FirmwareUpdateTakeover.tsx index 615165a6f26..ca5d0948ae5 100644 --- a/app/src/organisms/FirmwareUpdateModal/FirmwareUpdateTakeover.tsx +++ b/app/src/organisms/FirmwareUpdateModal/FirmwareUpdateTakeover.tsx @@ -7,7 +7,7 @@ import { useSubsystemUpdateQuery, } from '@opentrons/react-api-client' import { useNotifyCurrentMaintenanceRun } from '/app/resources/maintenance_runs' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { useIsUnboxingFlowOngoing } from '../ODD/hooks' import { UpdateInProgressModal } from './UpdateInProgressModal' import { UpdateNeededModal } from './UpdateNeededModal' diff --git a/app/src/organisms/FirmwareUpdateModal/UpdateNeededModal.tsx b/app/src/organisms/FirmwareUpdateModal/UpdateNeededModal.tsx index fa925c11e0b..c4e0db2225a 100644 --- a/app/src/organisms/FirmwareUpdateModal/UpdateNeededModal.tsx +++ b/app/src/organisms/FirmwareUpdateModal/UpdateNeededModal.tsx @@ -15,7 +15,7 @@ import { useUpdateSubsystemMutation, } from '@opentrons/react-api-client' import { LEFT, RIGHT } from '@opentrons/shared-data' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { SmallButton } from '/app/atoms/buttons' import { OddModal } from '/app/molecules/OddModal' import { UpdateInProgressModal } from './UpdateInProgressModal' diff --git a/app/src/organisms/GripperWizardFlows/index.tsx b/app/src/organisms/GripperWizardFlows/index.tsx index ceb19eecbf3..34f07d39a35 100644 --- a/app/src/organisms/GripperWizardFlows/index.tsx +++ b/app/src/organisms/GripperWizardFlows/index.tsx @@ -19,7 +19,7 @@ import { useChainMaintenanceCommands, useNotifyCurrentMaintenanceRun, } from '/app/resources/maintenance_runs' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { WizardHeader } from '/app/molecules/WizardHeader' import { SimpleWizardBody } from '/app/molecules/SimpleWizardBody' import { FirmwareUpdateModal } from '../FirmwareUpdateModal' diff --git a/app/src/organisms/IncompatibleModule/IncompatibleModuleTakeover.tsx b/app/src/organisms/IncompatibleModule/IncompatibleModuleTakeover.tsx index 52e75a0aead..b110ffb0a1e 100644 --- a/app/src/organisms/IncompatibleModule/IncompatibleModuleTakeover.tsx +++ b/app/src/organisms/IncompatibleModule/IncompatibleModuleTakeover.tsx @@ -1,7 +1,7 @@ import { createPortal } from 'react-dom' import { IncompatibleModuleODDModalBody } from './IncompatibleModuleODDModalBody' import { IncompatibleModuleDesktopModalBody } from './IncompatibleModuleDesktopModalBody' -import { getTopPortalEl, getModalPortalEl } from '../../App/portal' +import { getTopPortalEl, getModalPortalEl } from '/app/App/portal' import { useIncompatibleModulesAttached } from './hooks' const POLL_INTERVAL_MS = 5000 diff --git a/app/src/organisms/IncompatibleModule/__tests__/IncompatibleModuleTakeover.test.tsx b/app/src/organisms/IncompatibleModule/__tests__/IncompatibleModuleTakeover.test.tsx index 0a7f6b05db2..d3da5d17958 100644 --- a/app/src/organisms/IncompatibleModule/__tests__/IncompatibleModuleTakeover.test.tsx +++ b/app/src/organisms/IncompatibleModule/__tests__/IncompatibleModuleTakeover.test.tsx @@ -15,7 +15,7 @@ import { TopPortalRoot, MODAL_PORTAL_ID, TOP_PORTAL_ID, -} from '../../../App/portal' +} from '/app/App/portal' import * as Fixtures from '../__fixtures__' vi.mock('../hooks') diff --git a/app/src/organisms/InstrumentInfo/__tests__/InstrumentInfo.test.tsx b/app/src/organisms/InstrumentInfo/__tests__/InstrumentInfo.test.tsx index 4b857d4d288..a478716483d 100644 --- a/app/src/organisms/InstrumentInfo/__tests__/InstrumentInfo.test.tsx +++ b/app/src/organisms/InstrumentInfo/__tests__/InstrumentInfo.test.tsx @@ -4,8 +4,8 @@ import { describe, it, vi, beforeEach, expect } from 'vitest' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { mockPipetteData1Channel } from '/app/redux/pipettes/__fixtures__' -import { PipetteWizardFlows } from '../../PipetteWizardFlows' -import { GripperWizardFlows } from '../../GripperWizardFlows' +import { PipetteWizardFlows } from '/app/organisms/PipetteWizardFlows' +import { GripperWizardFlows } from '/app/organisms/GripperWizardFlows' import { InstrumentInfo } from '..' import type { GripperData } from '@opentrons/api-client' @@ -13,8 +13,8 @@ import type * as Dom from 'react-router-dom' const mockNavigate = vi.fn() -vi.mock('../../PipetteWizardFlows') -vi.mock('../../GripperWizardFlows') +vi.mock('/app/organisms/PipetteWizardFlows') +vi.mock('/app/organisms/GripperWizardFlows') vi.mock('react-router-dom', async importOriginal => { const reactRouterDom = await importOriginal() return { diff --git a/app/src/organisms/InstrumentInfo/index.tsx b/app/src/organisms/InstrumentInfo/index.tsx index c4c77cbf100..68c3ebd5388 100644 --- a/app/src/organisms/InstrumentInfo/index.tsx +++ b/app/src/organisms/InstrumentInfo/index.tsx @@ -16,11 +16,11 @@ import { SINGLE_MOUNT_PIPETTES, NINETY_SIX_CHANNEL, } from '@opentrons/shared-data' -import { PipetteWizardFlows } from '../PipetteWizardFlows' -import { GripperWizardFlows } from '../GripperWizardFlows' +import { PipetteWizardFlows } from '/app/organisms/PipetteWizardFlows' +import { GripperWizardFlows } from '/app/organisms/GripperWizardFlows' import { MediumButton } from '/app/atoms/buttons' -import { FLOWS } from '../PipetteWizardFlows/constants' -import { GRIPPER_FLOW_TYPES } from '../GripperWizardFlows/constants' +import { FLOWS } from '/app/organisms/PipetteWizardFlows/constants' +import { GRIPPER_FLOW_TYPES } from '/app/organisms/GripperWizardFlows/constants' import { formatTimeWithUtcLabel } from '/app/resources/runs' import type { InstrumentData } from '@opentrons/api-client' diff --git a/app/src/organisms/InstrumentMountItem/AttachedInstrumentMountItem.tsx b/app/src/organisms/InstrumentMountItem/AttachedInstrumentMountItem.tsx index 7d54755f86e..d2de81b8fdc 100644 --- a/app/src/organisms/InstrumentMountItem/AttachedInstrumentMountItem.tsx +++ b/app/src/organisms/InstrumentMountItem/AttachedInstrumentMountItem.tsx @@ -7,17 +7,17 @@ import { useGripperDisplayName, usePipetteModelSpecs, } from '/app/local-resources/instruments' -import { ChoosePipette } from '../PipetteWizardFlows/ChoosePipette' -import { FLOWS } from '../PipetteWizardFlows/constants' -import { GRIPPER_FLOW_TYPES } from '../GripperWizardFlows/constants' +import { ChoosePipette } from '/app/organisms/PipetteWizardFlows/ChoosePipette' +import { FLOWS } from '/app/organisms/PipetteWizardFlows/constants' +import { GRIPPER_FLOW_TYPES } from '/app/organisms/GripperWizardFlows/constants' import { LabeledMount } from './LabeledMount' import type { InstrumentData } from '@opentrons/api-client' import type { GripperModel, PipetteModel } from '@opentrons/shared-data' import type { Mount } from '/app/redux/pipettes/types' -import type { SelectablePipettes } from '../PipetteWizardFlows/types' -import type { GripperWizardFlows } from '../GripperWizardFlows' -import type { PipetteWizardFlows } from '../PipetteWizardFlows' +import type { SelectablePipettes } from '/app/organisms/PipetteWizardFlows/types' +import type { GripperWizardFlows } from '/app/organisms/GripperWizardFlows' +import type { PipetteWizardFlows } from '/app/organisms/PipetteWizardFlows' interface AttachedInstrumentMountItemProps { mount: Mount | 'extension' diff --git a/app/src/organisms/InstrumentMountItem/ProtocolInstrumentMountItem.tsx b/app/src/organisms/InstrumentMountItem/ProtocolInstrumentMountItem.tsx index 3ae2b2e85d2..be034e8fb7a 100644 --- a/app/src/organisms/InstrumentMountItem/ProtocolInstrumentMountItem.tsx +++ b/app/src/organisms/InstrumentMountItem/ProtocolInstrumentMountItem.tsx @@ -23,9 +23,9 @@ import { useGripperDisplayName, usePipetteNameSpecs, } from '/app/local-resources/instruments' -import { FLOWS } from '../PipetteWizardFlows/constants' -import { PipetteWizardFlows } from '../PipetteWizardFlows' -import { GripperWizardFlows } from '../GripperWizardFlows' +import { FLOWS } from '/app/organisms/PipetteWizardFlows/constants' +import { PipetteWizardFlows } from '/app/organisms/PipetteWizardFlows' +import { GripperWizardFlows } from '/app/organisms/GripperWizardFlows' import type { InstrumentData } from '@opentrons/api-client' import type { diff --git a/app/src/organisms/InstrumentMountItem/__tests__/ProtocolInstrumentMountItem.test.tsx b/app/src/organisms/InstrumentMountItem/__tests__/ProtocolInstrumentMountItem.test.tsx index 3ed34b5a7d6..6c4c308b8d2 100644 --- a/app/src/organisms/InstrumentMountItem/__tests__/ProtocolInstrumentMountItem.test.tsx +++ b/app/src/organisms/InstrumentMountItem/__tests__/ProtocolInstrumentMountItem.test.tsx @@ -4,12 +4,12 @@ import { renderWithProviders } from '/app/__testing-utils__' import { LEFT } from '@opentrons/shared-data' import { fireEvent, screen } from '@testing-library/react' import { i18n } from '/app/i18n' -import { PipetteWizardFlows } from '../../PipetteWizardFlows' -import { GripperWizardFlows } from '../../GripperWizardFlows' +import { PipetteWizardFlows } from '/app/organisms/PipetteWizardFlows' +import { GripperWizardFlows } from '/app/organisms/GripperWizardFlows' import { ProtocolInstrumentMountItem } from '..' -vi.mock('../../PipetteWizardFlows') -vi.mock('../../GripperWizardFlows') +vi.mock('/app/organisms/PipetteWizardFlows') +vi.mock('/app/organisms/GripperWizardFlows') vi.mock('../../TakeoverModal') const mockGripperData = { diff --git a/app/src/organisms/LabwarePositionCheck/AttachProbe.tsx b/app/src/organisms/LabwarePositionCheck/AttachProbe.tsx index 7c374a6cf99..b421b4be81f 100644 --- a/app/src/organisms/LabwarePositionCheck/AttachProbe.tsx +++ b/app/src/organisms/LabwarePositionCheck/AttachProbe.tsx @@ -8,7 +8,7 @@ import { } from '@opentrons/components' import { getPipetteNameSpecs } from '@opentrons/shared-data' import { css } from 'styled-components' -import { ProbeNotAttached } from '../PipetteWizardFlows/ProbeNotAttached' +import { ProbeNotAttached } from '/app/organisms/PipetteWizardFlows/ProbeNotAttached' import { RobotMotionLoader } from './RobotMotionLoader' import attachProbe1 from '/app/assets/videos/pipette-wizard-flows/Pipette_Attach_Probe_1.webm' import attachProbe8 from '/app/assets/videos/pipette-wizard-flows/Pipette_Attach_Probe_8.webm' diff --git a/app/src/organisms/LabwarePositionCheck/CheckItem.tsx b/app/src/organisms/LabwarePositionCheck/CheckItem.tsx index 45c237d5a93..995552ae415 100644 --- a/app/src/organisms/LabwarePositionCheck/CheckItem.tsx +++ b/app/src/organisms/LabwarePositionCheck/CheckItem.tsx @@ -25,7 +25,7 @@ import { useSelector } from 'react-redux' import { getLabwareDef } from './utils/labware' import { getLabwareDefinitionsFromCommands } from '/app/molecules/Command/utils/getLabwareDefinitionsFromCommands' import { UnorderedList } from '/app/molecules/UnorderedList' -import { getCurrentOffsetForLabwareInLocation } from '../Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation' +import { getCurrentOffsetForLabwareInLocation } from '../Desktop/Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation' import { getIsOnDevice } from '/app/redux/config' import { getDisplayLocation } from './utils/getDisplayLocation' diff --git a/app/src/organisms/LabwarePositionCheck/FatalErrorModal.tsx b/app/src/organisms/LabwarePositionCheck/FatalErrorModal.tsx index 69d9d6f1028..ee98e776055 100644 --- a/app/src/organisms/LabwarePositionCheck/FatalErrorModal.tsx +++ b/app/src/organisms/LabwarePositionCheck/FatalErrorModal.tsx @@ -19,7 +19,7 @@ import { TEXT_TRANSFORM_CAPITALIZE, TYPOGRAPHY, } from '@opentrons/components' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { WizardHeader } from '/app/molecules/WizardHeader' import { i18n } from '/app/i18n' diff --git a/app/src/organisms/LabwarePositionCheck/IntroScreen/index.tsx b/app/src/organisms/LabwarePositionCheck/IntroScreen/index.tsx index aa7dd002c2a..8c372750b78 100644 --- a/app/src/organisms/LabwarePositionCheck/IntroScreen/index.tsx +++ b/app/src/organisms/LabwarePositionCheck/IntroScreen/index.tsx @@ -23,12 +23,12 @@ import { getPrepCommands } from './getPrepCommands' import { WizardRequiredEquipmentList } from '/app/molecules/WizardRequiredEquipmentList' import { getLatestCurrentOffsets } from '/app/transformations/runs' import { getIsOnDevice } from '/app/redux/config' -import { NeedHelpLink } from '../../CalibrationPanels' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import { useSelector } from 'react-redux' import { TwoUpTileLayout } from '../TwoUpTileLayout' -import { getTopPortalEl } from '../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { SmallButton } from '/app/atoms/buttons' -import { CALIBRATION_PROBE } from '../../PipetteWizardFlows/constants' +import { CALIBRATION_PROBE } from '/app/organisms/PipetteWizardFlows/constants' import { TerseOffsetTable } from '../ResultsSummary' import { getLabwareDefinitionsFromCommands } from '/app/molecules/Command/utils/getLabwareDefinitionsFromCommands' diff --git a/app/src/organisms/LabwarePositionCheck/JogToWell.tsx b/app/src/organisms/LabwarePositionCheck/JogToWell.tsx index c61c3751498..e212af695a5 100644 --- a/app/src/organisms/LabwarePositionCheck/JogToWell.tsx +++ b/app/src/organisms/LabwarePositionCheck/JogToWell.tsx @@ -34,9 +34,9 @@ import levelWithLabware from '/app/assets/images/lpc_level_with_labware.svg' import levelProbeWithTip from '/app/assets/images/lpc_level_probe_with_tip.svg' import levelProbeWithLabware from '/app/assets/images/lpc_level_probe_with_labware.svg' import { getIsOnDevice } from '/app/redux/config' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { SmallButton } from '/app/atoms/buttons' -import { NeedHelpLink } from '../CalibrationPanels' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import { JogControls } from '/app/molecules/JogControls' import { LiveOffsetValue } from './LiveOffsetValue' diff --git a/app/src/organisms/LabwarePositionCheck/LabwarePositionCheckComponent.tsx b/app/src/organisms/LabwarePositionCheck/LabwarePositionCheckComponent.tsx index 2671d98b611..6f0953093a6 100644 --- a/app/src/organisms/LabwarePositionCheck/LabwarePositionCheckComponent.tsx +++ b/app/src/organisms/LabwarePositionCheck/LabwarePositionCheckComponent.tsx @@ -11,7 +11,7 @@ import { } from '@opentrons/react-api-client' import { FIXED_TRASH_ID, FLEX_ROBOT_TYPE } from '@opentrons/shared-data' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' // import { useTrackEvent } from '/app/redux/analytics' import { IntroScreen } from './IntroScreen' import { ExitConfirmation } from './ExitConfirmation' diff --git a/app/src/organisms/LabwarePositionCheck/PickUpTip.tsx b/app/src/organisms/LabwarePositionCheck/PickUpTip.tsx index 10e3fc73838..235cebf37d1 100644 --- a/app/src/organisms/LabwarePositionCheck/PickUpTip.tsx +++ b/app/src/organisms/LabwarePositionCheck/PickUpTip.tsx @@ -19,7 +19,7 @@ import { RobotMotionLoader } from './RobotMotionLoader' import { PrepareSpace } from './PrepareSpace' import { JogToWell } from './JogToWell' import { UnorderedList } from '/app/molecules/UnorderedList' -import { getCurrentOffsetForLabwareInLocation } from '../Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation' +import { getCurrentOffsetForLabwareInLocation } from '../Desktop/Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation' import { TipConfirmation } from './TipConfirmation' import { getLabwareDef } from './utils/labware' import { getLabwareDefinitionsFromCommands } from '/app/molecules/Command/utils/getLabwareDefinitionsFromCommands' diff --git a/app/src/organisms/LabwarePositionCheck/PrepareSpace.tsx b/app/src/organisms/LabwarePositionCheck/PrepareSpace.tsx index c26af819b10..8820acfef33 100644 --- a/app/src/organisms/LabwarePositionCheck/PrepareSpace.tsx +++ b/app/src/organisms/LabwarePositionCheck/PrepareSpace.tsx @@ -20,7 +20,7 @@ import { THERMOCYCLER_MODULE_TYPE, getModuleType } from '@opentrons/shared-data' import { getIsOnDevice } from '/app/redux/config' import { SmallButton } from '/app/atoms/buttons' -import { NeedHelpLink } from '../CalibrationPanels' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import { useNotifyDeckConfigurationQuery } from '/app/resources/deck_configuration' import type { diff --git a/app/src/organisms/LabwarePositionCheck/ResultsSummary.tsx b/app/src/organisms/LabwarePositionCheck/ResultsSummary.tsx index 8fdd84884f7..58f5f98785a 100644 --- a/app/src/organisms/LabwarePositionCheck/ResultsSummary.tsx +++ b/app/src/organisms/LabwarePositionCheck/ResultsSummary.tsx @@ -11,7 +11,7 @@ import { getVectorSum, IDENTITY_VECTOR, } from '@opentrons/shared-data' -import { NeedHelpLink } from '../CalibrationPanels' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import { ALIGN_CENTER, ALIGN_FLEX_END, @@ -36,8 +36,8 @@ import { getIsOnDevice, } from '/app/redux/config' import { SmallButton } from '/app/atoms/buttons' -import { LabwareOffsetTabs } from '../LabwareOffsetTabs' -import { getCurrentOffsetForLabwareInLocation } from '../Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation' +import { LabwareOffsetTabs } from '/app/organisms/LabwareOffsetTabs' +import { getCurrentOffsetForLabwareInLocation } from '../Desktop/Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation' import { getLabwareDefinitionsFromCommands } from '/app/molecules/Command/utils/getLabwareDefinitionsFromCommands' import { getDisplayLocation } from './utils/getDisplayLocation' diff --git a/app/src/organisms/LabwarePositionCheck/TipConfirmation.tsx b/app/src/organisms/LabwarePositionCheck/TipConfirmation.tsx index 9a4df89265f..ec8c87daea4 100644 --- a/app/src/organisms/LabwarePositionCheck/TipConfirmation.tsx +++ b/app/src/organisms/LabwarePositionCheck/TipConfirmation.tsx @@ -12,7 +12,7 @@ import { } from '@opentrons/components' import { useTranslation } from 'react-i18next' -import { NeedHelpLink } from '../CalibrationPanels' +import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import { useSelector } from 'react-redux' import { getIsOnDevice } from '/app/redux/config' import { SimpleWizardBody } from '/app/molecules/SimpleWizardBody' diff --git a/app/src/organisms/LabwarePositionCheck/__tests__/CheckItem.test.tsx b/app/src/organisms/LabwarePositionCheck/__tests__/CheckItem.test.tsx index 82fb4da874a..17442dfc42b 100644 --- a/app/src/organisms/LabwarePositionCheck/__tests__/CheckItem.test.tsx +++ b/app/src/organisms/LabwarePositionCheck/__tests__/CheckItem.test.tsx @@ -18,7 +18,7 @@ import { mockCompletedAnalysis, mockExistingOffsets } from '../__fixtures__' import type { Mock } from 'vitest' vi.mock('/app/redux/config') -vi.mock('../../Devices/hooks') +vi.mock('../../Desktop/Devices/hooks') const mockStartPosition = { x: 10, y: 20, z: 30 } const mockEndPosition = { x: 9, y: 19, z: 29 } diff --git a/app/src/organisms/LabwarePositionCheck/utils/doesPipetteVisitAllTipracks.ts b/app/src/organisms/LabwarePositionCheck/utils/doesPipetteVisitAllTipracks.ts index 0976aab8b1b..30bbd8be9b4 100644 --- a/app/src/organisms/LabwarePositionCheck/utils/doesPipetteVisitAllTipracks.ts +++ b/app/src/organisms/LabwarePositionCheck/utils/doesPipetteVisitAllTipracks.ts @@ -1,6 +1,6 @@ import { getIsTiprack } from '@opentrons/shared-data' -import { getPickUpTipCommandsWithPipette } from '../../Devices/ProtocolRun/utils/getPickUpTipCommandsWithPipette' -import { getTipracksVisited } from '../../Devices/ProtocolRun/utils/getTipracksVisited' +import { getPickUpTipCommandsWithPipette } from '../../Desktop/Devices/ProtocolRun/utils/getPickUpTipCommandsWithPipette' +import { getTipracksVisited } from '../../Desktop/Devices/ProtocolRun/utils/getTipracksVisited' import type { LoadedLabware, RunTimeCommand, diff --git a/app/src/organisms/ModuleCard/AboutModuleSlideout.tsx b/app/src/organisms/ModuleCard/AboutModuleSlideout.tsx index 8fedee8299a..e1ad4d94ce9 100644 --- a/app/src/organisms/ModuleCard/AboutModuleSlideout.tsx +++ b/app/src/organisms/ModuleCard/AboutModuleSlideout.tsx @@ -17,7 +17,7 @@ import { } from '@opentrons/components' import { getModuleDisplayName } from '@opentrons/shared-data' import { Slideout } from '../../atoms/Slideout' -import { useCurrentRunStatus } from '../RunTimeControl/hooks' +import { useCurrentRunStatus } from '/app/organisms/RunTimeControl' import type { AttachedModule } from '/app/redux/modules/types' diff --git a/app/src/organisms/ModuleCard/ErrorInfo.tsx b/app/src/organisms/ModuleCard/ErrorInfo.tsx index 77476e23307..d3f0d966e49 100644 --- a/app/src/organisms/ModuleCard/ErrorInfo.tsx +++ b/app/src/organisms/ModuleCard/ErrorInfo.tsx @@ -20,7 +20,7 @@ import { LegacyStyledText, TYPOGRAPHY, } from '@opentrons/components' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import type { AttachedModule } from '/app/redux/modules/types' diff --git a/app/src/organisms/ModuleCard/ModuleOverflowMenu.tsx b/app/src/organisms/ModuleCard/ModuleOverflowMenu.tsx index a451846c2fb..c55c302287d 100644 --- a/app/src/organisms/ModuleCard/ModuleOverflowMenu.tsx +++ b/app/src/organisms/ModuleCard/ModuleOverflowMenu.tsx @@ -21,7 +21,7 @@ import { useCurrentRunId } from '/app/resources/runs' import { useRunStatuses, useIsLegacySessionInProgress, -} from '/app/organisms/Devices/hooks' +} from '/app/organisms/Desktop/Devices/hooks' import { useIsFlex } from '/app/redux-resources/robots' import { useModuleOverflowMenu } from './hooks' diff --git a/app/src/organisms/ModuleCard/ModuleSetupModal.tsx b/app/src/organisms/ModuleCard/ModuleSetupModal.tsx index e4a9d6d458d..16d3dec77d2 100644 --- a/app/src/organisms/ModuleCard/ModuleSetupModal.tsx +++ b/app/src/organisms/ModuleCard/ModuleSetupModal.tsx @@ -14,7 +14,7 @@ import { LegacyStyledText, TYPOGRAPHY, } from '@opentrons/components' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' const MODULE_SETUP_URL = 'https://support.opentrons.com/s/modules' diff --git a/app/src/organisms/ModuleCard/TestShakeSlideout.tsx b/app/src/organisms/ModuleCard/TestShakeSlideout.tsx index d7bfb0e97a9..7f0c8a8e576 100644 --- a/app/src/organisms/ModuleCard/TestShakeSlideout.tsx +++ b/app/src/organisms/ModuleCard/TestShakeSlideout.tsx @@ -32,7 +32,7 @@ import { } from '@opentrons/shared-data' import { getIsHeaterShakerAttached } from '/app/redux/config' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { Slideout } from '/app/atoms/Slideout' import { TertiaryButton } from '/app/atoms/buttons' import { Divider } from '/app/atoms/structure' diff --git a/app/src/organisms/ModuleCard/__tests__/AboutModuleSlideout.test.tsx b/app/src/organisms/ModuleCard/__tests__/AboutModuleSlideout.test.tsx index c7f90a42b23..35eb81ab169 100644 --- a/app/src/organisms/ModuleCard/__tests__/AboutModuleSlideout.test.tsx +++ b/app/src/organisms/ModuleCard/__tests__/AboutModuleSlideout.test.tsx @@ -17,10 +17,10 @@ import { mockTemperatureModuleGen2, mockThermocycler, } from '/app/redux/modules/__fixtures__' -import { useCurrentRunStatus } from '../../RunTimeControl/hooks' +import { useCurrentRunStatus } from '/app/organisms/RunTimeControl' import { AboutModuleSlideout } from '../AboutModuleSlideout' -vi.mock('../../RunTimeControl/hooks') +vi.mock('/app/organisms/RunTimeControl') const render = (props: React.ComponentProps) => { return renderWithProviders(, { diff --git a/app/src/organisms/ModuleCard/__tests__/ModuleCard.test.tsx b/app/src/organisms/ModuleCard/__tests__/ModuleCard.test.tsx index a0628e1ddc2..d30a885b759 100644 --- a/app/src/organisms/ModuleCard/__tests__/ModuleCard.test.tsx +++ b/app/src/organisms/ModuleCard/__tests__/ModuleCard.test.tsx @@ -15,9 +15,9 @@ import { mockHeaterShaker, } from '/app/redux/modules/__fixtures__' import { mockRobot } from '/app/redux/robot-api/__fixtures__' -import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' +import { useIsEstopNotDisengaged } from '/app/resources/devices' import { FAILURE, getRequestById, PENDING, SUCCESS } from '/app/redux/robot-api' -import { useCurrentRunStatus } from '/app/organisms/RunTimeControl/hooks' +import { useCurrentRunStatus } from '/app/organisms/RunTimeControl' import { useToaster } from '/app/organisms/ToasterOven' import { useIsFlex } from '/app/redux-resources/robots' import { MagneticModuleData } from '../MagneticModuleData' @@ -29,7 +29,6 @@ import { FirmwareUpdateFailedModal } from '../FirmwareUpdateFailedModal' import { ErrorInfo } from '../ErrorInfo' import { ModuleCard } from '..' -import type { NavigateFunction } from 'react-router-dom' import type { HeaterShakerModule, MagneticModule, @@ -44,20 +43,12 @@ vi.mock('../ThermocyclerModuleData') vi.mock('../HeaterShakerModuleData') vi.mock('/app/redux/config') vi.mock('../ModuleOverflowMenu') -vi.mock('../../RunTimeControl/hooks') +vi.mock('/app/organisms/RunTimeControl') vi.mock('../FirmwareUpdateFailedModal') vi.mock('/app/redux/robot-api') vi.mock('/app/redux-resources/robots') vi.mock('/app/organisms/ToasterOven') -vi.mock('/app/organisms/Devices/hooks') -vi.mock('/app/resources/devices/hooks/useIsEstopNotDisengaged') -vi.mock('react-router-dom', async importOriginal => { - const actual = await importOriginal() - return { - ...actual, - useNavigate: () => vi.fn(), - } -}) +vi.mock('/app/resources/devices') const mockMagneticModuleHub = { id: 'magdeck_id', diff --git a/app/src/organisms/ModuleCard/__tests__/ModuleOverflowMenu.test.tsx b/app/src/organisms/ModuleCard/__tests__/ModuleOverflowMenu.test.tsx index 0bb611f585e..ed1500346e1 100644 --- a/app/src/organisms/ModuleCard/__tests__/ModuleOverflowMenu.test.tsx +++ b/app/src/organisms/ModuleCard/__tests__/ModuleOverflowMenu.test.tsx @@ -14,14 +14,14 @@ import { import { useRunStatuses, useIsLegacySessionInProgress, -} from '/app/organisms/Devices/hooks' +} from '/app/organisms/Desktop/Devices/hooks' import { useIsFlex } from '/app/redux-resources/robots' import { useCurrentRunId } from '/app/resources/runs' import { ModuleOverflowMenu } from '../ModuleOverflowMenu' import type { TemperatureStatus } from '@opentrons/api-client' -vi.mock('../../Devices/hooks') +vi.mock('../../Desktop/Devices/hooks') vi.mock('/app/redux-resources/robots') vi.mock('/app/resources/runs') diff --git a/app/src/organisms/ModuleCard/__tests__/hooks.test.tsx b/app/src/organisms/ModuleCard/__tests__/hooks.test.tsx index f363eb7c0e0..4cdc85a2307 100644 --- a/app/src/organisms/ModuleCard/__tests__/hooks.test.tsx +++ b/app/src/organisms/ModuleCard/__tests__/hooks.test.tsx @@ -17,7 +17,7 @@ import { mockThermocycler, mockThermocyclerGen2, } from '/app/redux/modules/__fixtures__' -import { useIsRobotBusy, useRunStatuses } from '../../Devices/hooks' +import { useIsRobotBusy, useRunStatuses } from '../../Desktop/Devices/hooks' import { useCurrentRunId, @@ -34,7 +34,7 @@ import type { State } from '/app/redux/types' vi.mock('@opentrons/react-api-client') vi.mock('/app/resources/runs') -vi.mock('../../Devices/hooks') +vi.mock('../../Desktop/Devices/hooks') const mockCloseLatchHeaterShaker = { id: 'heatershaker_id', diff --git a/app/src/organisms/ModuleCard/index.tsx b/app/src/organisms/ModuleCard/index.tsx index d2d2dd1b838..7b9cce9ea1c 100644 --- a/app/src/organisms/ModuleCard/index.tsx +++ b/app/src/organisms/ModuleCard/index.tsx @@ -44,7 +44,7 @@ import { } from '/app/redux/robot-api' import { UpdateBanner } from '/app/molecules/UpdateBanner' import { useChainLiveCommands } from '/app/resources/runs' -import { useCurrentRunStatus } from '/app/organisms/RunTimeControl/hooks' +import { useCurrentRunStatus } from '/app/organisms/RunTimeControl' import { useIsFlex } from '/app/redux-resources/robots' import { getModuleTooHot } from '/app/transformations/modules' import { useToaster } from '/app/organisms/ToasterOven' @@ -59,13 +59,13 @@ import { AboutModuleSlideout } from './AboutModuleSlideout' import { HeaterShakerModuleData } from './HeaterShakerModuleData' import { HeaterShakerSlideout } from './HeaterShakerSlideout' import { TestShakeSlideout } from './TestShakeSlideout' -import { ModuleWizardFlows } from '../ModuleWizardFlows' +import { ModuleWizardFlows } from '/app/organisms/ModuleWizardFlows' import { getModulePrepCommands } from '/app/local-resources/modules' import { getModuleCardImage } from './utils' import { FirmwareUpdateFailedModal } from './FirmwareUpdateFailedModal' import { ErrorInfo } from './ErrorInfo' import { ModuleSetupModal } from './ModuleSetupModal' -import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' +import { useIsEstopNotDisengaged } from '/app/resources/devices' import type { IconProps } from '@opentrons/components' import type { diff --git a/app/src/organisms/ModuleWizardFlows/index.tsx b/app/src/organisms/ModuleWizardFlows/index.tsx index f964c2a1600..27a3555d70c 100644 --- a/app/src/organisms/ModuleWizardFlows/index.tsx +++ b/app/src/organisms/ModuleWizardFlows/index.tsx @@ -14,9 +14,9 @@ import { getDeckDefFromRobotType, FLEX_ROBOT_TYPE, } from '@opentrons/shared-data' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { WizardHeader } from '/app/molecules/WizardHeader' -import { useAttachedPipettesFromInstrumentsQuery } from '/app/organisms/Devices/hooks' +import { useAttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' import { useCreateTargetedMaintenanceRunMutation } from '/app/resources/runs' import { getIsOnDevice } from '/app/redux/config' import { diff --git a/app/src/organisms/Navigation/NavigationMenu.tsx b/app/src/organisms/Navigation/NavigationMenu.tsx index 1b18bc19029..5d2a765d572 100644 --- a/app/src/organisms/Navigation/NavigationMenu.tsx +++ b/app/src/organisms/Navigation/NavigationMenu.tsx @@ -17,8 +17,8 @@ import { } from '@opentrons/components' import { home, ROBOT } from '/app/redux/robot-controls' -import { useLights } from '../Devices/hooks' -import { getTopPortalEl } from '../../App/portal' +import { useLights } from '../Desktop/Devices/hooks' +import { getTopPortalEl } from '/app/App/portal' import { RestartRobotConfirmationModal } from './RestartRobotConfirmationModal' import type { Dispatch } from '/app/redux/types' diff --git a/app/src/organisms/Navigation/__tests__/NavigationMenu.test.tsx b/app/src/organisms/Navigation/__tests__/NavigationMenu.test.tsx index 291c07c6c39..fd1d9d03287 100644 --- a/app/src/organisms/Navigation/__tests__/NavigationMenu.test.tsx +++ b/app/src/organisms/Navigation/__tests__/NavigationMenu.test.tsx @@ -5,7 +5,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { home } from '/app/redux/robot-controls' -import { useLights } from '../../Devices/hooks' +import { useLights } from '../../Desktop/Devices/hooks' import { RestartRobotConfirmationModal } from '../RestartRobotConfirmationModal' import { NavigationMenu } from '../NavigationMenu' @@ -13,7 +13,7 @@ import type { NavigateFunction } from 'react-router-dom' vi.mock('/app/redux/robot-admin') vi.mock('/app/redux/robot-controls') -vi.mock('../../Devices/hooks') +vi.mock('../../Desktop/Devices/hooks') vi.mock('../RestartRobotConfirmationModal') const mockNavigate = vi.fn() diff --git a/app/src/organisms/Navigation/index.tsx b/app/src/organisms/Navigation/index.tsx index 2515761f2a4..a49d88a8ca9 100644 --- a/app/src/organisms/Navigation/index.tsx +++ b/app/src/organisms/Navigation/index.tsx @@ -31,7 +31,7 @@ import { ODD_FOCUS_VISIBLE } from '/app/atoms/buttons/constants' import { useNetworkConnection } from '/app/resources/networking/hooks/useNetworkConnection' import { getLocalRobot } from '/app/redux/discovery' import { NavigationMenu } from './NavigationMenu' -import type { ON_DEVICE_DISPLAY_PATHS } from '../../App/OnDeviceDisplayApp' +import type { ON_DEVICE_DISPLAY_PATHS } from '/app/App/OnDeviceDisplayApp' const NAV_LINKS: Array = [ '/protocols', diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupDeckConfiguration/index.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupDeckConfiguration/index.tsx index f52d620e03a..27b7bd5e776 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupDeckConfiguration/index.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupDeckConfiguration/index.tsx @@ -23,7 +23,7 @@ import { ChildNavigation } from '../../../ChildNavigation' import { AddFixtureModal } from '../../../DeviceDetailsDeckConfiguration/AddFixtureModal' import { DeckConfigurationDiscardChangesModal } from '../../../DeviceDetailsDeckConfiguration/DeckConfigurationDiscardChangesModal' import { useMostRecentCompletedAnalysis } from '/app/resources/runs' -import { getTopPortalEl } from '../../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { useNotifyDeckConfigurationQuery } from '/app/resources/deck_configuration' import type { diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/LabwareMapView.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/LabwareMapView.tsx index b22844cca13..21b6fb20854 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/LabwareMapView.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/LabwareMapView.tsx @@ -15,7 +15,7 @@ import type { LabwareDefinition2, LoadedLabwareByAdapter, } from '@opentrons/shared-data' -import type { AttachedProtocolModuleMatch } from '../ProtocolSetupModulesAndDeck/utils' +import type { AttachedProtocolModuleMatch } from '/app/transformations/analysis' interface LabwareMapViewProps { attachedProtocolModuleMatches: AttachedProtocolModuleMatch[] diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/SingleLabwareModal.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/SingleLabwareModal.tsx index 36145dad085..91ccd682acf 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/SingleLabwareModal.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/SingleLabwareModal.tsx @@ -16,7 +16,7 @@ import { } from '@opentrons/components' import { getLabwareDisplayName } from '@opentrons/shared-data' -import { getTopPortalEl } from '../../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { OddModal } from '/app/molecules/OddModal' import type { diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/__tests__/ProtocolSetupLabware.test.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/__tests__/ProtocolSetupLabware.test.tsx index 08ec91b7e10..0f34b8ebd9e 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/__tests__/ProtocolSetupLabware.test.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/__tests__/ProtocolSetupLabware.test.tsx @@ -15,7 +15,7 @@ import { import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { useMostRecentCompletedAnalysis } from '/app/resources/runs' -import { getProtocolModulesInfo } from '/app/transformations/analysis' +import { getProtocolModulesInfo } from '/app/transformations/analysis/getProtocolModulesInfo' import { ProtocolSetupLabware } from '..' import { mockProtocolModuleInfo, @@ -40,7 +40,7 @@ vi.mock('@opentrons/react-api-client', async importOriginal => { }) vi.mock('/app/resources/runs') -vi.mock('/app/transformations/analysis') +vi.mock('/app/transformations/analysis/getProtocolModulesInfo') vi.mock('/app/resources/deck_configuration') const RUN_ID = "otie's run" diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/index.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/index.tsx index d7563c0dc6d..1a54e2fc00d 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/index.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/index.tsx @@ -41,11 +41,13 @@ import { getLabwareSetupItemGroups, getNestedLabwareInfo, } from '/app/transformations/commands' -import { getProtocolModulesInfo } from '/app/transformations/analysis' +import { + getAttachedProtocolModuleMatches, + getProtocolModulesInfo, +} from '/app/transformations/analysis' import { useNotifyDeckConfigurationQuery } from '/app/resources/deck_configuration' import { LabwareStackModal } from '/app/molecules/LabwareStackModal' import { useMostRecentCompletedAnalysis } from '/app/resources/runs' -import { getAttachedProtocolModuleMatches } from '../ProtocolSetupModulesAndDeck/utils' import { LabwareMapView } from './LabwareMapView' import { SingleLabwareModal } from './SingleLabwareModal' @@ -64,7 +66,7 @@ import type { NestedLabwareInfo, } from '/app/transformations/commands' import type { SetupScreens } from '../types' -import type { AttachedProtocolModuleMatch } from '../ProtocolSetupModulesAndDeck/utils' +import type { AttachedProtocolModuleMatch } from '/app/transformations/analysis' const MODULE_REFETCH_INTERVAL_MS = 5000 const DECK_CONFIG_POLL_MS = 5000 diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ModuleTable.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ModuleTable.tsx index fb20fd56fe1..5c402706ba7 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ModuleTable.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ModuleTable.tsx @@ -42,7 +42,7 @@ import type { CommandData } from '@opentrons/api-client' import type { CutoutConfig, DeckDefinition } from '@opentrons/shared-data' import type { ModulePrepCommandsType } from '/app/local-resources/modules' import type { ProtocolCalibrationStatus } from '/app/resources/runs' -import type { AttachedProtocolModuleMatch } from './utils' +import type { AttachedProtocolModuleMatch } from '/app/transformations/analysis' const DECK_CONFIG_REFETCH_INTERVAL = 5000 diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ModulesAndDeckMapView.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ModulesAndDeckMapView.tsx index 48cab5f70cb..0a84cd19b7e 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ModulesAndDeckMapView.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ModulesAndDeckMapView.tsx @@ -8,7 +8,7 @@ import { ModuleInfo } from '/app/molecules/ModuleInfo' import { getStandardDeckViewLayerBlockList } from '/app/local-resources/deck_configuration' import type { CompletedProtocolAnalysis } from '@opentrons/shared-data' -import type { AttachedProtocolModuleMatch } from './utils' +import type { AttachedProtocolModuleMatch } from '/app/transformations/analysis' interface ModulesAndDeckMapViewProps { attachedProtocolModuleMatches: AttachedProtocolModuleMatch[] diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ProtocolSetupModulesAndDeck.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ProtocolSetupModulesAndDeck.tsx index ac457d98054..9f4ed8fc8b6 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ProtocolSetupModulesAndDeck.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ProtocolSetupModulesAndDeck.tsx @@ -17,20 +17,20 @@ import { } from '@opentrons/shared-data' import { RUN_STATUS_STOPPED } from '@opentrons/api-client' -import { getTopPortalEl } from '../../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { FloatingActionButton } from '/app/atoms/buttons' import { InlineNotification } from '/app/atoms/InlineNotification' import { ChildNavigation } from '/app/organisms/ChildNavigation' import { useAttachedModules } from '/app/resources/modules' -import { getProtocolModulesInfo } from '/app/transformations/analysis' +import { + getProtocolModulesInfo, + getAttachedProtocolModuleMatches, +} from '/app/transformations/analysis' import { useRunStatus, useMostRecentCompletedAnalysis, } from '/app/resources/runs' -import { - getAttachedProtocolModuleMatches, - getUnmatchedModulesForProtocol, -} from './utils' +import { getUnmatchedModulesForProtocol } from './utils' import { SetupInstructionsModal } from './SetupInstructionsModal' import { FixtureTable } from './FixtureTable' import { ModuleTable } from './ModuleTable' diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/__tests__/ProtocolSetupModulesAndDeck.test.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/__tests__/ProtocolSetupModulesAndDeck.test.tsx index 4cf2fb65a53..010a1f43f70 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/__tests__/ProtocolSetupModulesAndDeck.test.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/__tests__/ProtocolSetupModulesAndDeck.test.tsx @@ -20,15 +20,15 @@ import { } from '/app/resources/runs' import { mockRobotSideAnalysis } from '/app/molecules/Command/__fixtures__' import { useAttachedModules } from '/app/resources/modules' -import { getProtocolModulesInfo } from '/app/transformations/analysis' +import { + getProtocolModulesInfo, + getAttachedProtocolModuleMatches, +} from '/app/transformations/analysis' import { mockApiHeaterShaker } from '/app/redux/modules/__fixtures__' import { mockProtocolModuleInfo } from '../../ProtocolSetupInstruments/__fixtures__' import { getLocalRobot } from '/app/redux/discovery' import { mockConnectedRobot } from '/app/redux/discovery/__fixtures__' -import { - getAttachedProtocolModuleMatches, - getUnmatchedModulesForProtocol, -} from '../utils' +import { getUnmatchedModulesForProtocol } from '../utils' import { LocationConflictModal } from '/app/organisms/LocationConflictModal' import { ModuleWizardFlows } from '/app/organisms/ModuleWizardFlows' import { SetupInstructionsModal } from '../SetupInstructionsModal' diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/__tests__/utils.test.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/__tests__/utils.test.tsx index 81fb410bc30..c8d92ad5530 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/__tests__/utils.test.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/__tests__/utils.test.tsx @@ -1,14 +1,8 @@ import { describe, it, expect } from 'vitest' -import { - TEMPERATURE_MODULE_V2_FIXTURE, - getModuleDef2, -} from '@opentrons/shared-data' +import { getModuleDef2 } from '@opentrons/shared-data' import { mockTemperatureModuleGen2 } from '/app/redux/modules/__fixtures__' -import { - getAttachedProtocolModuleMatches, - getUnmatchedModulesForProtocol, -} from '../utils' +import { getUnmatchedModulesForProtocol } from '../utils' const temperatureProtocolModule = { moduleId: 'mockTempModuleId', @@ -36,58 +30,6 @@ const magneticProtocolModule = { slotName: 'D1', } -describe('getAttachedProtocolModuleMatches', () => { - it('returns no module matches when no modules attached', () => { - const result = getAttachedProtocolModuleMatches( - [], - [temperatureProtocolModule, magneticProtocolModule], - [] - ) - expect(result).toEqual([ - { ...temperatureProtocolModule, attachedModuleMatch: null }, - { ...magneticProtocolModule, attachedModuleMatch: null }, - ]) - }) - - it('returns no module matches when no modules match', () => { - const result = getAttachedProtocolModuleMatches( - [mockTemperatureModuleGen2], - [magneticProtocolModule], - [ - { - cutoutId: 'cutoutD1', - cutoutFixtureId: TEMPERATURE_MODULE_V2_FIXTURE, - opentronsModuleSerialNumber: mockTemperatureModuleGen2.serialNumber, - }, - ] - ) - expect(result).toEqual([ - { ...magneticProtocolModule, attachedModuleMatch: null }, - ]) - }) - - it('returns module match when modules match', () => { - const result = getAttachedProtocolModuleMatches( - [mockTemperatureModuleGen2], - [temperatureProtocolModule, magneticProtocolModule], - [ - { - cutoutId: 'cutoutD1', - cutoutFixtureId: TEMPERATURE_MODULE_V2_FIXTURE, - opentronsModuleSerialNumber: mockTemperatureModuleGen2.serialNumber, - }, - ] - ) - expect(result).toEqual([ - { - ...temperatureProtocolModule, - attachedModuleMatch: mockTemperatureModuleGen2, - }, - { ...magneticProtocolModule, attachedModuleMatch: null }, - ]) - }) -}) - describe('getUnmatchedModulesForProtocol', () => { it('returns no missing module ids or remaining attached modules when no modules required or attached', () => { const result = getUnmatchedModulesForProtocol([], []) diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/utils.ts b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/utils.ts index e272aa5994d..11862dcca94 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/utils.ts +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/utils.ts @@ -1,81 +1,11 @@ import { - FLEX_ROBOT_TYPE, NON_CONNECTING_MODULE_TYPES, - OT2_ROBOT_TYPE, - checkModuleCompatibility, - getCutoutFixturesForModuleModel, - getCutoutIdsFromModuleSlotName, - getDeckDefFromRobotType, getModuleType, } from '@opentrons/shared-data' -import type { DeckConfiguration, RobotType } from '@opentrons/shared-data' import type { ProtocolModuleInfo } from '/app/transformations/analysis' import type { AttachedModule } from '/app/redux/modules/types' -export type AttachedProtocolModuleMatch = ProtocolModuleInfo & { - attachedModuleMatch: AttachedModule | null -} - -// NOTE: some logic copied from useModuleRenderInfoForProtocolById -export function getAttachedProtocolModuleMatches( - attachedModules: AttachedModule[], - protocolModulesInfo: ProtocolModuleInfo[], - deckConfig: DeckConfiguration, - robotType: RobotType = FLEX_ROBOT_TYPE -): AttachedProtocolModuleMatch[] { - const deckDef = getDeckDefFromRobotType(robotType) - const robotSupportsModuleConfig = robotType !== OT2_ROBOT_TYPE - const matchedAttachedModules: AttachedModule[] = [] - const attachedProtocolModuleMatches = protocolModulesInfo.map( - protocolModule => { - const moduleFixtures = getCutoutFixturesForModuleModel( - protocolModule.moduleDef.model, - deckDef - ) - const moduleCutoutIds = getCutoutIdsFromModuleSlotName( - protocolModule.slotName, - moduleFixtures, - deckDef - ) - const compatibleAttachedModule = - attachedModules.find( - attachedModule => - checkModuleCompatibility( - attachedModule.moduleModel, - protocolModule.moduleDef.model - ) && - // check id instead of object reference in useModuleRenderInfoForProtocolById - !matchedAttachedModules.some( - matchedAttachedModule => - matchedAttachedModule.serialNumber === - attachedModule.serialNumber - ) && - // then if robotType supports configurable modules check the deck config has a - // a module with the expected serial number in the expected location - (!robotSupportsModuleConfig || - deckConfig.some( - ({ cutoutId, opentronsModuleSerialNumber }) => - attachedModule.serialNumber === opentronsModuleSerialNumber && - moduleCutoutIds.includes(cutoutId) - )) - ) ?? null - if (compatibleAttachedModule !== null) { - matchedAttachedModules.push(compatibleAttachedModule) - return { - ...protocolModule, - attachedModuleMatch: compatibleAttachedModule, - } - } - return { - ...protocolModule, - attachedModuleMatch: null, - } - } - ) - return attachedProtocolModuleMatches -} - interface UnmatchedModuleResults { missingModuleIds: string[] remainingAttachedModules: AttachedModule[] diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/TouchScreenSleep.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/TouchScreenSleep.tsx index 520adff8438..7a32cedb519 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/TouchScreenSleep.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/TouchScreenSleep.tsx @@ -14,7 +14,7 @@ import { getOnDeviceDisplaySettings, updateConfigValue, } from '/app/redux/config' -import { SLEEP_NEVER_MS } from '../../../App/constants' +import { SLEEP_NEVER_MS } from '/app/App/constants' import type { Dispatch } from '/app/redux/types' import type { SetSettingOption } from './types' diff --git a/app/src/organisms/ODD/RunningProtocol/RunFailedModal.tsx b/app/src/organisms/ODD/RunningProtocol/RunFailedModal.tsx index 78d5e06d2d2..29cef598fd0 100644 --- a/app/src/organisms/ODD/RunningProtocol/RunFailedModal.tsx +++ b/app/src/organisms/ODD/RunningProtocol/RunFailedModal.tsx @@ -19,6 +19,7 @@ import { useStopRunMutation } from '@opentrons/react-api-client' import { SmallButton } from '/app/atoms/buttons' import { OddModal } from '/app/molecules/OddModal' import { RUN_STATUS_SUCCEEDED } from '@opentrons/api-client' +import { getHighestPriorityError } from '/app/transformations/runs' import type { OddModalHeaderBaseProps } from '/app/molecules/OddModal/types' import type { @@ -203,67 +204,3 @@ const SCROLL_BAR_STYLE = css` border-radius: 11px; } ` - -const _getHighestPriorityError = (error: RunError): RunError => { - if ( - error == null || - error.wrappedErrors == null || - error.wrappedErrors.length === 0 - ) { - return error - } - - let highestPriorityError = error - - error.wrappedErrors.forEach(wrappedError => { - const e = _getHighestPriorityError(wrappedError) - const isHigherPriority = _getIsHigherPriority( - e.errorCode, - highestPriorityError.errorCode - ) - if (isHigherPriority) { - highestPriorityError = e - } - }) - return highestPriorityError -} - -/** - * returns true if the first error code is higher priority than the second, false otherwise - */ -const _getIsHigherPriority = ( - errorCode1: string, - errorCode2: string -): boolean => { - const errorNumber1 = Number(errorCode1) - const errorNumber2 = Number(errorCode2) - - const isSameCategory = - Math.floor(errorNumber1 / 1000) === Math.floor(errorNumber2 / 1000) - const isCode1GenericError = errorNumber1 % 1000 === 0 - - let isHigherPriority = null - - if ( - (isSameCategory && !isCode1GenericError) || - (!isSameCategory && errorNumber1 < errorNumber2) - ) { - isHigherPriority = true - } else { - isHigherPriority = false - } - - return isHigherPriority -} - -export const getHighestPriorityError = (errors: RunError[]): RunError => { - const highestFirstWrappedError = _getHighestPriorityError(errors[0]) - return [highestFirstWrappedError, ...errors.slice(1)].reduce((acc, val) => { - const e = _getHighestPriorityError(val) - const isHigherPriority = _getIsHigherPriority(e.errorCode, acc.errorCode) - if (isHigherPriority) { - return e - } - return acc - }) -} diff --git a/app/src/organisms/OpenDoorAlertModal/index.tsx b/app/src/organisms/OpenDoorAlertModal/index.tsx index f9ac5440823..b879f14e3a4 100644 --- a/app/src/organisms/OpenDoorAlertModal/index.tsx +++ b/app/src/organisms/OpenDoorAlertModal/index.tsx @@ -12,7 +12,7 @@ import { LegacyStyledText, TYPOGRAPHY, } from '@opentrons/components' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { OddModal } from '/app/molecules/OddModal' export function OpenDoorAlertModal(): JSX.Element { diff --git a/app/src/organisms/PipetteWizardFlows/ChoosePipette.tsx b/app/src/organisms/PipetteWizardFlows/ChoosePipette.tsx index 8f146e5b57d..f8d31f1adec 100644 --- a/app/src/organisms/PipetteWizardFlows/ChoosePipette.tsx +++ b/app/src/organisms/PipetteWizardFlows/ChoosePipette.tsx @@ -35,13 +35,13 @@ import { } from '@opentrons/shared-data' import { i18n } from '/app/i18n' import { getIsOnDevice } from '/app/redux/config' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { SmallButton } from '/app/atoms/buttons' import { WizardHeader } from '/app/molecules/WizardHeader' import { ModalContentOneColSimpleButtons } from '/app/molecules/InterventionModal' import singleChannelAndEightChannel from '/app/assets/images/change-pip/1_and_8_channel.png' import ninetySixChannel from '/app/assets/images/change-pip/ninety-six-channel.png' -import { useAttachedPipettesFromInstrumentsQuery } from '../Devices/hooks' +import { useAttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' import { ExitModal } from './ExitModal' import { FLOWS } from './constants' import { getIsGantryEmpty } from './utils' diff --git a/app/src/organisms/PipetteWizardFlows/__tests__/BeforeBeginning.test.tsx b/app/src/organisms/PipetteWizardFlows/__tests__/BeforeBeginning.test.tsx index e8f96570caa..a75e8bfe97a 100644 --- a/app/src/organisms/PipetteWizardFlows/__tests__/BeforeBeginning.test.tsx +++ b/app/src/organisms/PipetteWizardFlows/__tests__/BeforeBeginning.test.tsx @@ -13,7 +13,7 @@ import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { mockAttachedPipetteInformation } from '/app/redux/pipettes/__fixtures__' import { InProgressModal } from '/app/molecules/InProgressModal/InProgressModal' -// import { NeedHelpLink } from '../../CalibrationPanels' +// import { NeedHelpLink } from '/app/molecules/OT2CalibrationNeedHelpLink' import { RUN_ID_1 } from '/app/resources/runs/__fixtures__' import { BeforeBeginning } from '../BeforeBeginning' import { FLOWS } from '../constants' diff --git a/app/src/organisms/PipetteWizardFlows/__tests__/ChoosePipette.test.tsx b/app/src/organisms/PipetteWizardFlows/__tests__/ChoosePipette.test.tsx index e0627082be6..bda196f388c 100644 --- a/app/src/organisms/PipetteWizardFlows/__tests__/ChoosePipette.test.tsx +++ b/app/src/organisms/PipetteWizardFlows/__tests__/ChoosePipette.test.tsx @@ -13,12 +13,12 @@ import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { mockAttachedPipetteInformation } from '/app/redux/pipettes/__fixtures__' import { getIsOnDevice } from '/app/redux/config' -import { useAttachedPipettesFromInstrumentsQuery } from '../../Devices/hooks' +import { useAttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' import { ChoosePipette } from '../ChoosePipette' import { getIsGantryEmpty } from '../utils' vi.mock('../utils') -vi.mock('../../Devices/hooks') +vi.mock('/app/resources/instruments') vi.mock('/app/redux/config') const render = (props: React.ComponentProps) => { diff --git a/app/src/organisms/PipetteWizardFlows/getPipetteWizardStepsForProtocol.ts b/app/src/organisms/PipetteWizardFlows/getPipetteWizardStepsForProtocol.ts index 50e271082e0..296c428bc75 100644 --- a/app/src/organisms/PipetteWizardFlows/getPipetteWizardStepsForProtocol.ts +++ b/app/src/organisms/PipetteWizardFlows/getPipetteWizardStepsForProtocol.ts @@ -2,7 +2,7 @@ import { LEFT, RIGHT } from '@opentrons/shared-data' import { FLOWS, SECTIONS } from './constants' import type { LoadedPipette } from '@opentrons/shared-data' import type { Mount } from '/app/redux/pipettes/types' -import type { AttachedPipettesFromInstrumentsQuery } from '../Devices/hooks' +import type { AttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' import type { PipetteWizardStep } from './types' const calibrateAlreadyAttachedPipetteOn = ( diff --git a/app/src/organisms/PipetteWizardFlows/hooks.tsx b/app/src/organisms/PipetteWizardFlows/hooks.tsx index 8d727aeeb75..4d07586c9de 100644 --- a/app/src/organisms/PipetteWizardFlows/hooks.tsx +++ b/app/src/organisms/PipetteWizardFlows/hooks.tsx @@ -3,7 +3,7 @@ import capitalize from 'lodash/capitalize' import { LEFT, RIGHT, SINGLE_MOUNT_PIPETTES } from '@opentrons/shared-data' import { FLOWS } from './constants' import type { LoadedPipette, PipetteMount } from '@opentrons/shared-data' -import type { AttachedPipettesFromInstrumentsQuery } from '../Devices/hooks' +import type { AttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' import type { PipetteWizardFlow, SelectablePipettes } from './types' interface PipetteFlowWizardHeaderTextProps { diff --git a/app/src/organisms/PipetteWizardFlows/index.tsx b/app/src/organisms/PipetteWizardFlows/index.tsx index dccb6a01c64..39022810b56 100644 --- a/app/src/organisms/PipetteWizardFlows/index.tsx +++ b/app/src/organisms/PipetteWizardFlows/index.tsx @@ -21,12 +21,12 @@ import { useChainMaintenanceCommands, useNotifyCurrentMaintenanceRun, } from '/app/resources/maintenance_runs' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { WizardHeader } from '/app/molecules/WizardHeader' import { FirmwareUpdateModal } from '../FirmwareUpdateModal' import { getIsOnDevice } from '/app/redux/config' import { SimpleWizardBody } from '/app/molecules/SimpleWizardBody' -import { useAttachedPipettesFromInstrumentsQuery } from '../Devices/hooks' +import { useAttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' import { usePipetteFlowWizardHeaderText } from './hooks' import { getPipetteWizardSteps } from './getPipetteWizardSteps' import { getPipetteWizardStepsForProtocol } from './getPipetteWizardStepsForProtocol' diff --git a/app/src/organisms/PipetteWizardFlows/types.ts b/app/src/organisms/PipetteWizardFlows/types.ts index 587e7d84e1f..a8785e8a31c 100644 --- a/app/src/organisms/PipetteWizardFlows/types.ts +++ b/app/src/organisms/PipetteWizardFlows/types.ts @@ -1,7 +1,7 @@ import type { SECTIONS, FLOWS } from './constants' import type { useCreateCommandMutation } from '@opentrons/react-api-client' import type { PipetteMount, CreateCommand } from '@opentrons/shared-data' -import type { AttachedPipettesFromInstrumentsQuery } from '../Devices/hooks/useAttachedPipettesFromInstrumentsQuery' +import type { AttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' export type PipetteWizardStep = | BeforeBeginningStep diff --git a/app/src/organisms/PipetteWizardFlows/utils.tsx b/app/src/organisms/PipetteWizardFlows/utils.tsx index c4be3be880d..98a2adeabb4 100644 --- a/app/src/organisms/PipetteWizardFlows/utils.tsx +++ b/app/src/organisms/PipetteWizardFlows/utils.tsx @@ -23,7 +23,7 @@ import zAxisDetach96 from '/app/assets/videos/pipette-wizard-flows/Pipette_Zaxis import attachProbe96 from '/app/assets/videos/pipette-wizard-flows/Pipette_Attach_Probe_96.webm' import detachProbe96 from '/app/assets/videos/pipette-wizard-flows/Pipette_Detach_Probe_96.webm' -import type { AttachedPipettesFromInstrumentsQuery } from '../Devices/hooks' +import type { AttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' import type { PipetteWizardFlow, PipetteWizardStep } from './types' export function getIsGantryEmpty( diff --git a/app/src/organisms/QuickTransferFlow/NameQuickTransfer.tsx b/app/src/organisms/QuickTransferFlow/NameQuickTransfer.tsx index 97e6872e70b..2c08275f431 100644 --- a/app/src/organisms/QuickTransferFlow/NameQuickTransfer.tsx +++ b/app/src/organisms/QuickTransferFlow/NameQuickTransfer.tsx @@ -14,7 +14,7 @@ import { TYPOGRAPHY, } from '@opentrons/components' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { FullKeyboard } from '/app/atoms/SoftwareKeyboard' import { ChildNavigation } from '../ChildNavigation' diff --git a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/BlowOut.tsx b/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/BlowOut.tsx index ea402bc9c12..0a070b30e85 100644 --- a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/BlowOut.tsx +++ b/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/BlowOut.tsx @@ -16,7 +16,7 @@ import { TRASH_BIN_ADAPTER_FIXTURE, } from '@opentrons/shared-data' import { ANALYTICS_QUICK_TRANSFER_SETTING_SAVED } from '../../../redux/analytics' -import { getTopPortalEl } from '../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { useNotifyDeckConfigurationQuery } from '/app/resources/deck_configuration' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { ChildNavigation } from '../../ChildNavigation' diff --git a/app/src/organisms/QuickTransferFlow/SelectDestWells.tsx b/app/src/organisms/QuickTransferFlow/SelectDestWells.tsx index de18fafbc73..d871420b4c9 100644 --- a/app/src/organisms/QuickTransferFlow/SelectDestWells.tsx +++ b/app/src/organisms/QuickTransferFlow/SelectDestWells.tsx @@ -14,7 +14,7 @@ import { getAllDefinitions } from '@opentrons/shared-data' import { ANALYTICS_QUICK_TRANSFER_WELL_SELECTION_DURATION } from '../../redux/analytics' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { OddModal } from '/app/molecules/OddModal' import { ChildNavigation } from '/app/organisms/ChildNavigation' import { useToaster } from '/app/organisms/ToasterOven' diff --git a/app/src/organisms/RunTimeControl/index.ts b/app/src/organisms/RunTimeControl/index.ts new file mode 100644 index 00000000000..fc78d35129c --- /dev/null +++ b/app/src/organisms/RunTimeControl/index.ts @@ -0,0 +1 @@ +export * from './hooks' diff --git a/app/src/organisms/TakeoverModal/TakeoverModal.tsx b/app/src/organisms/TakeoverModal/TakeoverModal.tsx index b76d6e98d53..8f6441124a7 100644 --- a/app/src/organisms/TakeoverModal/TakeoverModal.tsx +++ b/app/src/organisms/TakeoverModal/TakeoverModal.tsx @@ -14,7 +14,7 @@ import { TYPOGRAPHY, } from '@opentrons/components' -import { getTopPortalEl } from '../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { SmallButton } from '/app/atoms/buttons' import { OddModal } from '/app/molecules/OddModal' diff --git a/app/src/pages/Desktop/AppSettings/AdvancedSettings.tsx b/app/src/pages/Desktop/AppSettings/AdvancedSettings.tsx index 78900fb719e..eb3515016e8 100644 --- a/app/src/pages/Desktop/AppSettings/AdvancedSettings.tsx +++ b/app/src/pages/Desktop/AppSettings/AdvancedSettings.tsx @@ -11,7 +11,7 @@ import { U2EInformation, UpdatedChannel, AdditionalCustomLabwareSourceFolder, -} from '/app/organisms/AdvancedSettings' +} from '/app/organisms/Desktop/AdvancedSettings' export function AdvancedSettings(): JSX.Element { return ( diff --git a/app/src/pages/Desktop/AppSettings/GeneralSettings.tsx b/app/src/pages/Desktop/AppSettings/GeneralSettings.tsx index 96fd7ef0b35..82960177c9b 100644 --- a/app/src/pages/Desktop/AppSettings/GeneralSettings.tsx +++ b/app/src/pages/Desktop/AppSettings/GeneralSettings.tsx @@ -40,10 +40,10 @@ import { useTrackEvent, ANALYTICS_APP_UPDATE_NOTIFICATIONS_TOGGLED, } from '/app/redux/analytics' -import { UpdateAppModal } from '/app/organisms/UpdateAppModal' -import { PreviousVersionModal } from '/app/organisms/AppSettings/PreviousVersionModal' -import { ConnectRobotSlideout } from '/app/organisms/AppSettings/ConnectRobotSlideout' -import { getTopPortalEl } from '../../../App/portal' +import { UpdateAppModal } from '/app/organisms/Desktop/UpdateAppModal' +import { PreviousVersionModal } from '/app/organisms/Desktop/AppSettings/PreviousVersionModal' +import { ConnectRobotSlideout } from '/app/organisms/Desktop/AppSettings/ConnectRobotSlideout' +import { getTopPortalEl } from '/app/App/portal' import type { Dispatch, State } from '/app/redux/types' diff --git a/app/src/pages/Desktop/AppSettings/__test__/AdvancedSettings.test.tsx b/app/src/pages/Desktop/AppSettings/__test__/AdvancedSettings.test.tsx index 0a1fcdb5ee4..ac4285014bb 100644 --- a/app/src/pages/Desktop/AppSettings/__test__/AdvancedSettings.test.tsx +++ b/app/src/pages/Desktop/AppSettings/__test__/AdvancedSettings.test.tsx @@ -16,7 +16,7 @@ import { ShowLabwareOffsetSnippets, U2EInformation, UpdatedChannel, -} from '/app/organisms/AdvancedSettings' +} from '/app/organisms/Desktop/AdvancedSettings' import { AdvancedSettings } from '../AdvancedSettings' @@ -28,7 +28,7 @@ vi.mock('/app/redux/protocol-analysis') vi.mock('/app/redux/system-info') vi.mock('@opentrons/components/src/hooks') vi.mock('/app/redux/analytics') -vi.mock('/app/organisms/AdvancedSettings') +vi.mock('/app/organisms/Desktop/AdvancedSettings') const render = (): ReturnType => { return renderWithProviders( diff --git a/app/src/pages/Desktop/AppSettings/__test__/AppSettings.test.tsx b/app/src/pages/Desktop/AppSettings/__test__/AppSettings.test.tsx index cff6b6f93aa..da48a1c690e 100644 --- a/app/src/pages/Desktop/AppSettings/__test__/AppSettings.test.tsx +++ b/app/src/pages/Desktop/AppSettings/__test__/AppSettings.test.tsx @@ -9,14 +9,14 @@ import * as Config from '/app/redux/config' import { GeneralSettings } from '../GeneralSettings' import { PrivacySettings } from '../PrivacySettings' import { AdvancedSettings } from '../AdvancedSettings' -import { FeatureFlags } from '/app/organisms/AppSettings/FeatureFlags' +import { FeatureFlags } from '/app/organisms/Desktop/AppSettings/FeatureFlags' import { AppSettings } from '..' vi.mock('/app/redux/config') vi.mock('../GeneralSettings') vi.mock('../PrivacySettings') vi.mock('../AdvancedSettings') -vi.mock('/app/organisms/AppSettings/FeatureFlags') +vi.mock('/app/organisms/Desktop/AppSettings/FeatureFlags') const render = (path = '/'): ReturnType => { return renderWithProviders( diff --git a/app/src/pages/Desktop/AppSettings/index.tsx b/app/src/pages/Desktop/AppSettings/index.tsx index 00b8b5ca0a0..be7853b36b7 100644 --- a/app/src/pages/Desktop/AppSettings/index.tsx +++ b/app/src/pages/Desktop/AppSettings/index.tsx @@ -18,11 +18,11 @@ import * as Config from '/app/redux/config' import { GeneralSettings } from './GeneralSettings' import { PrivacySettings } from './PrivacySettings' import { AdvancedSettings } from './AdvancedSettings' -import { FeatureFlags } from '/app/organisms/AppSettings/FeatureFlags' +import { FeatureFlags } from '/app/organisms/Desktop/AppSettings/FeatureFlags' import { NavTab } from '/app/molecules/NavTab' import { Line } from '/app/atoms/structure' -import type { DesktopRouteParams, AppSettingsTab } from '../../../App/types' +import type { DesktopRouteParams, AppSettingsTab } from '/app/App/types' export function AppSettings(): JSX.Element { const { t } = useTranslation('app_settings') diff --git a/app/src/pages/Desktop/Devices/CalibrationDashboard/__tests__/CalibrationDashboard.test.tsx b/app/src/pages/Desktop/Devices/CalibrationDashboard/__tests__/CalibrationDashboard.test.tsx index f11f674ec3d..a1076795490 100644 --- a/app/src/pages/Desktop/Devices/CalibrationDashboard/__tests__/CalibrationDashboard.test.tsx +++ b/app/src/pages/Desktop/Devices/CalibrationDashboard/__tests__/CalibrationDashboard.test.tsx @@ -6,17 +6,17 @@ import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { CalibrationDashboard } from '..' -import { useCalibrationTaskList } from '/app/organisms/Devices/hooks' +import { useCalibrationTaskList } from '/app/organisms/Desktop/Devices/hooks' import { useDashboardCalibratePipOffset } from '../hooks/useDashboardCalibratePipOffset' import { useDashboardCalibrateTipLength } from '../hooks/useDashboardCalibrateTipLength' import { useDashboardCalibrateDeck } from '../hooks/useDashboardCalibrateDeck' -import { expectedTaskList } from '/app/organisms/Devices/hooks/__fixtures__/taskListFixtures' +import { expectedTaskList } from '/app/organisms/Desktop/Devices/hooks/__fixtures__/taskListFixtures' import { mockLeftProtoPipette } from '/app/redux/pipettes/__fixtures__' import { useNotifyAllRunsQuery } from '/app/resources/runs' import { useAttachedPipettes } from '/app/resources/instruments' vi.mock('/app/redux-resources/robots') -vi.mock('/app/organisms/Devices/hooks') +vi.mock('/app/organisms/Desktop/Devices/hooks') vi.mock('../hooks/useDashboardCalibratePipOffset') vi.mock('../hooks/useDashboardCalibrateTipLength') vi.mock('../hooks/useDashboardCalibrateDeck') diff --git a/app/src/pages/Desktop/Devices/CalibrationDashboard/hooks/useDashboardCalibrateDeck.tsx b/app/src/pages/Desktop/Devices/CalibrationDashboard/hooks/useDashboardCalibrateDeck.tsx index 908ad25aa3a..b4f23bbdb67 100644 --- a/app/src/pages/Desktop/Devices/CalibrationDashboard/hooks/useDashboardCalibrateDeck.tsx +++ b/app/src/pages/Desktop/Devices/CalibrationDashboard/hooks/useDashboardCalibrateDeck.tsx @@ -4,16 +4,16 @@ import { useSelector } from 'react-redux' import { useTranslation } from 'react-i18next' import { ModalShell } from '@opentrons/components' -import { getTopPortalEl } from '../../../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { WizardHeader } from '/app/molecules/WizardHeader' -import { CalibrateDeck } from '/app/organisms/CalibrateDeck' -import { LoadingState } from '/app/organisms/CalibrationPanels' +import { CalibrateDeck } from '/app/organisms/Desktop/CalibrateDeck' +import { LoadingState } from '/app/organisms/Desktop/CalibrationPanels' import * as RobotApi from '/app/redux/robot-api' import * as Sessions from '/app/redux/sessions' import { getDeckCalibrationSession } from '/app/redux/sessions/deck-calibration/selectors' import type { State } from '/app/redux/types' -import type { DashboardCalDeckInvoker } from '/app/organisms/Devices/hooks/useCalibrationTaskList' +import type { DashboardCalDeckInvoker } from '/app/organisms/Desktop/Devices/hooks/useCalibrationTaskList' import type { DeckCalibrationSession } from '/app/redux/sessions' import type { SessionCommandString } from '/app/redux/sessions/types' import type { RequestState } from '/app/redux/robot-api/types' diff --git a/app/src/pages/Desktop/Devices/CalibrationDashboard/hooks/useDashboardCalibratePipOffset.tsx b/app/src/pages/Desktop/Devices/CalibrationDashboard/hooks/useDashboardCalibratePipOffset.tsx index 12fef601e17..029065ea5a7 100644 --- a/app/src/pages/Desktop/Devices/CalibrationDashboard/hooks/useDashboardCalibratePipOffset.tsx +++ b/app/src/pages/Desktop/Devices/CalibrationDashboard/hooks/useDashboardCalibratePipOffset.tsx @@ -4,15 +4,15 @@ import { useSelector, useDispatch } from 'react-redux' import { useTranslation } from 'react-i18next' import { ModalShell } from '@opentrons/components' -import { getTopPortalEl } from '../../../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { WizardHeader } from '/app/molecules/WizardHeader' -import { CalibratePipetteOffset } from '/app/organisms/CalibratePipetteOffset' -import { LoadingState } from '/app/organisms/CalibrationPanels' +import { CalibratePipetteOffset } from '/app/organisms/Desktop/CalibratePipetteOffset' +import { LoadingState } from '/app/organisms/Desktop/CalibrationPanels' import * as RobotApi from '/app/redux/robot-api' import * as Sessions from '/app/redux/sessions' import { getPipetteOffsetCalibrationSession } from '/app/redux/sessions/pipette-offset-calibration/selectors' import { pipetteOffsetCalibrationStarted } from '/app/redux/analytics' -import type { DashboardCalOffsetInvoker } from '/app/organisms/Devices/hooks/useCalibrationTaskList' +import type { DashboardCalOffsetInvoker } from '/app/organisms/Desktop/Devices/hooks/useCalibrationTaskList' import type { State } from '/app/redux/types' import type { SessionCommandString, diff --git a/app/src/pages/Desktop/Devices/CalibrationDashboard/hooks/useDashboardCalibrateTipLength.tsx b/app/src/pages/Desktop/Devices/CalibrationDashboard/hooks/useDashboardCalibrateTipLength.tsx index e26e485801a..deddb78c198 100644 --- a/app/src/pages/Desktop/Devices/CalibrationDashboard/hooks/useDashboardCalibrateTipLength.tsx +++ b/app/src/pages/Desktop/Devices/CalibrationDashboard/hooks/useDashboardCalibrateTipLength.tsx @@ -4,11 +4,11 @@ import { useSelector, useDispatch } from 'react-redux' import { useTranslation } from 'react-i18next' import { ModalShell } from '@opentrons/components' -import { getTopPortalEl } from '../../../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { WizardHeader } from '/app/molecules/WizardHeader' -import { CalibrateTipLength } from '/app/organisms/CalibrateTipLength' -import { AskForCalibrationBlockModal } from '/app/organisms/CalibrateTipLength/AskForCalibrationBlockModal' -import { LoadingState } from '/app/organisms/CalibrationPanels' +import { CalibrateTipLength } from '/app/organisms/Desktop/CalibrateTipLength' +import { AskForCalibrationBlockModal } from '/app/organisms/Desktop/CalibrateTipLength/AskForCalibrationBlockModal' +import { LoadingState } from '/app/organisms/Desktop/CalibrationPanels' import * as RobotApi from '/app/redux/robot-api' import * as Sessions from '/app/redux/sessions' import { tipLengthCalibrationStarted } from '/app/redux/analytics' @@ -22,7 +22,7 @@ import type { TipLengthCalibrationSessionParams, } from '/app/redux/sessions/types' import type { State } from '/app/redux/types' -import type { DashboardCalTipLengthInvoker } from '/app/organisms/Devices/hooks/useCalibrationTaskList' +import type { DashboardCalTipLengthInvoker } from '/app/organisms/Desktop/Devices/hooks/useCalibrationTaskList' // tip length calibration commands for which the full page spinner should not appear const spinnerCommandBlockList: SessionCommandString[] = [ diff --git a/app/src/pages/Desktop/Devices/CalibrationDashboard/index.tsx b/app/src/pages/Desktop/Devices/CalibrationDashboard/index.tsx index 512dbdfe35d..226e44e15d8 100644 --- a/app/src/pages/Desktop/Devices/CalibrationDashboard/index.tsx +++ b/app/src/pages/Desktop/Devices/CalibrationDashboard/index.tsx @@ -1,6 +1,6 @@ import { useParams } from 'react-router-dom' import { ApiHostProvider } from '@opentrons/react-api-client' -import { CalibrationTaskList } from '/app/organisms/CalibrationTaskList' +import { CalibrationTaskList } from '/app/organisms/Desktop/CalibrationTaskList' import { OPENTRONS_USB } from '/app/redux/discovery' import { appShellRequestor } from '/app/redux/shell/remote' import { useDashboardCalibrateDeck } from './hooks/useDashboardCalibrateDeck' @@ -8,7 +8,7 @@ import { useDashboardCalibratePipOffset } from './hooks/useDashboardCalibratePip import { useDashboardCalibrateTipLength } from './hooks/useDashboardCalibrateTipLength' import { useRobot } from '/app/redux-resources/robots' -import type { DesktopRouteParams } from '../../../../App/types' +import type { DesktopRouteParams } from '/app/App/types' export function CalibrationDashboard(): JSX.Element { const { robotName } = useParams< diff --git a/app/src/pages/Desktop/Devices/DeviceDetails/DeviceDetailsComponent.tsx b/app/src/pages/Desktop/Devices/DeviceDetails/DeviceDetailsComponent.tsx index 4812edcb0f5..ced0067d758 100644 --- a/app/src/pages/Desktop/Devices/DeviceDetails/DeviceDetailsComponent.tsx +++ b/app/src/pages/Desktop/Devices/DeviceDetails/DeviceDetailsComponent.tsx @@ -10,10 +10,10 @@ import { } from '@opentrons/components' import { DeviceDetailsDeckConfiguration } from '/app/organisms/DeviceDetailsDeckConfiguration' -import { RobotOverview } from '/app/organisms/Devices/RobotOverview' -import { InstrumentsAndModules } from '/app/organisms/Devices/InstrumentsAndModules' -import { RecentProtocolRuns } from '/app/organisms/Devices/RecentProtocolRuns' -import { EstopBanner } from '/app/organisms/Devices/EstopBanner' +import { RobotOverview } from '/app/organisms/Desktop/Devices/RobotOverview' +import { InstrumentsAndModules } from '/app/organisms/Desktop/Devices/InstrumentsAndModules' +import { RecentProtocolRuns } from '/app/organisms/Desktop/Devices/RecentProtocolRuns' +import { EstopBanner } from '/app/organisms/Desktop/Devices/EstopBanner' import { DISENGAGED, useEstopContext } from '/app/organisms/EmergencyStop' import { useIsFlex } from '/app/redux-resources/robots' diff --git a/app/src/pages/Desktop/Devices/DeviceDetails/__tests__/DeviceDetails.test.tsx b/app/src/pages/Desktop/Devices/DeviceDetails/__tests__/DeviceDetails.test.tsx index ff3963f95f3..ddb4e62e8a4 100644 --- a/app/src/pages/Desktop/Devices/DeviceDetails/__tests__/DeviceDetails.test.tsx +++ b/app/src/pages/Desktop/Devices/DeviceDetails/__tests__/DeviceDetails.test.tsx @@ -6,10 +6,10 @@ import { MemoryRouter, Route, Routes } from 'react-router-dom' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { useSyncRobotClock } from '/app/organisms/Devices/hooks' -import { InstrumentsAndModules } from '/app/organisms/Devices/InstrumentsAndModules' -import { RecentProtocolRuns } from '/app/organisms/Devices/RecentProtocolRuns' -import { RobotOverview } from '/app/organisms/Devices/RobotOverview' +import { useSyncRobotClock } from '/app/organisms/Desktop/Devices/hooks' +import { InstrumentsAndModules } from '/app/organisms/Desktop/Devices/InstrumentsAndModules' +import { RecentProtocolRuns } from '/app/organisms/Desktop/Devices/RecentProtocolRuns' +import { RobotOverview } from '/app/organisms/Desktop/Devices/RobotOverview' import { getScanning } from '/app/redux/discovery' import { mockConnectableRobot } from '/app/redux/discovery/__fixtures__' import { useRobot } from '/app/redux-resources/robots' @@ -17,10 +17,10 @@ import { DeviceDetails } from '..' import type { State } from '/app/redux/types' -vi.mock('/app/organisms/Devices/hooks') -vi.mock('/app/organisms/Devices/InstrumentsAndModules') -vi.mock('/app/organisms/Devices/RecentProtocolRuns') -vi.mock('/app/organisms/Devices/RobotOverview') +vi.mock('/app/organisms/Desktop/Devices/hooks') +vi.mock('/app/organisms/Desktop/Devices/InstrumentsAndModules') +vi.mock('/app/organisms/Desktop/Devices/RecentProtocolRuns') +vi.mock('/app/organisms/Desktop/Devices/RobotOverview') vi.mock('/app/redux/discovery') vi.mock('/app/redux-resources/robots') diff --git a/app/src/pages/Desktop/Devices/DeviceDetails/__tests__/DeviceDetailsComponent.test.tsx b/app/src/pages/Desktop/Devices/DeviceDetails/__tests__/DeviceDetailsComponent.test.tsx index 418f638464d..e725f35fcaf 100644 --- a/app/src/pages/Desktop/Devices/DeviceDetails/__tests__/DeviceDetailsComponent.test.tsx +++ b/app/src/pages/Desktop/Devices/DeviceDetails/__tests__/DeviceDetailsComponent.test.tsx @@ -5,9 +5,9 @@ import { renderWithProviders } from '/app/__testing-utils__' import { useEstopQuery } from '@opentrons/react-api-client' import { i18n } from '/app/i18n' -import { InstrumentsAndModules } from '/app/organisms/Devices/InstrumentsAndModules' -import { RecentProtocolRuns } from '/app/organisms/Devices/RecentProtocolRuns' -import { RobotOverview } from '/app/organisms/Devices/RobotOverview' +import { InstrumentsAndModules } from '/app/organisms/Desktop/Devices/InstrumentsAndModules' +import { RecentProtocolRuns } from '/app/organisms/Desktop/Devices/RecentProtocolRuns' +import { RobotOverview } from '/app/organisms/Desktop/Devices/RobotOverview' import { DISENGAGED, NOT_PRESENT } from '/app/organisms/EmergencyStop' import { DeviceDetailsDeckConfiguration } from '/app/organisms/DeviceDetailsDeckConfiguration' import { useIsFlex } from '/app/redux-resources/robots' @@ -15,9 +15,9 @@ import { DeviceDetailsComponent } from '../DeviceDetailsComponent' vi.mock('@opentrons/react-api-client') vi.mock('/app/redux-resources/robots') -vi.mock('/app/organisms/Devices/InstrumentsAndModules') -vi.mock('/app/organisms/Devices/RecentProtocolRuns') -vi.mock('/app/organisms/Devices/RobotOverview') +vi.mock('/app/organisms/Desktop/Devices/InstrumentsAndModules') +vi.mock('/app/organisms/Desktop/Devices/RecentProtocolRuns') +vi.mock('/app/organisms/Desktop/Devices/RobotOverview') vi.mock('/app/organisms/DeviceDetailsDeckConfiguration') vi.mock('/app/redux/discovery') diff --git a/app/src/pages/Desktop/Devices/DeviceDetails/index.tsx b/app/src/pages/Desktop/Devices/DeviceDetails/index.tsx index b96ffdb3b45..1baef896c97 100644 --- a/app/src/pages/Desktop/Devices/DeviceDetails/index.tsx +++ b/app/src/pages/Desktop/Devices/DeviceDetails/index.tsx @@ -3,13 +3,13 @@ import { Navigate, useParams } from 'react-router-dom' import { ApiHostProvider } from '@opentrons/react-api-client' -import { useSyncRobotClock } from '/app/organisms/Devices/hooks' +import { useSyncRobotClock } from '/app/organisms/Desktop/Devices/hooks' import { getScanning, OPENTRONS_USB } from '/app/redux/discovery' import { appShellRequestor } from '/app/redux/shell/remote' import { DeviceDetailsComponent } from './DeviceDetailsComponent' import { useRobot } from '/app/redux-resources/robots' -import type { DesktopRouteParams } from '../../../../App/types' +import type { DesktopRouteParams } from '/app/App/types' export function DeviceDetails(): JSX.Element | null { const { robotName } = useParams< diff --git a/app/src/pages/Desktop/Devices/DevicesLanding/NewRobotSetupHelp.tsx b/app/src/pages/Desktop/Devices/DevicesLanding/NewRobotSetupHelp.tsx index 80747a7607b..d3fba7af095 100644 --- a/app/src/pages/Desktop/Devices/DevicesLanding/NewRobotSetupHelp.tsx +++ b/app/src/pages/Desktop/Devices/DevicesLanding/NewRobotSetupHelp.tsx @@ -14,7 +14,7 @@ import { Modal, } from '@opentrons/components' -import { getTopPortalEl } from '../../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { ExternalLink } from '/app/atoms/Link/ExternalLink' const NEW_FLEX_SETUP_SUPPORT_ARTICLE_HREF = diff --git a/app/src/pages/Desktop/Devices/DevicesLanding/__tests__/DevicesLanding.test.tsx b/app/src/pages/Desktop/Devices/DevicesLanding/__tests__/DevicesLanding.test.tsx index b2548ac50ac..2b34b24ff96 100644 --- a/app/src/pages/Desktop/Devices/DevicesLanding/__tests__/DevicesLanding.test.tsx +++ b/app/src/pages/Desktop/Devices/DevicesLanding/__tests__/DevicesLanding.test.tsx @@ -3,8 +3,8 @@ import { vi, it, describe, expect, beforeEach, afterEach } from 'vitest' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { DevicesEmptyState } from '/app/organisms/Devices/DevicesEmptyState' -import { RobotCard } from '/app/organisms/Devices/RobotCard' +import { DevicesEmptyState } from '/app/organisms/Desktop/Devices/DevicesEmptyState' +import { RobotCard } from '/app/organisms/Desktop/Devices/RobotCard' import { getScanning, getConnectableRobots, @@ -18,8 +18,8 @@ import { } from '/app/redux/discovery/__fixtures__' import { DevicesLanding } from '..' -vi.mock('/app/organisms/Devices/DevicesEmptyState') -vi.mock('/app/organisms/Devices/RobotCard') +vi.mock('/app/organisms/Desktop/Devices/DevicesEmptyState') +vi.mock('/app/organisms/Desktop/Devices/RobotCard') vi.mock('/app/redux/discovery') const render = () => { diff --git a/app/src/pages/Desktop/Devices/DevicesLanding/index.tsx b/app/src/pages/Desktop/Devices/DevicesLanding/index.tsx index 7e53817e3ec..a3ebf7114e6 100644 --- a/app/src/pages/Desktop/Devices/DevicesLanding/index.tsx +++ b/app/src/pages/Desktop/Devices/DevicesLanding/index.tsx @@ -27,8 +27,8 @@ import { OPENTRONS_USB, } from '/app/redux/discovery' import { appShellRequestor } from '/app/redux/shell/remote' -import { RobotCard } from '/app/organisms/Devices/RobotCard' -import { DevicesEmptyState } from '/app/organisms/Devices/DevicesEmptyState' +import { RobotCard } from '/app/organisms/Desktop/Devices/RobotCard' +import { DevicesEmptyState } from '/app/organisms/Desktop/Devices/DevicesEmptyState' import { CollapsibleSection } from '/app/molecules/CollapsibleSection' import { Divider } from '/app/atoms/structure' diff --git a/app/src/pages/Desktop/Devices/ProtocolRunDetails/__tests__/ProtocolRunDetails.test.tsx b/app/src/pages/Desktop/Devices/ProtocolRunDetails/__tests__/ProtocolRunDetails.test.tsx index 192c2e6971d..68f8406f489 100644 --- a/app/src/pages/Desktop/Devices/ProtocolRunDetails/__tests__/ProtocolRunDetails.test.tsx +++ b/app/src/pages/Desktop/Devices/ProtocolRunDetails/__tests__/ProtocolRunDetails.test.tsx @@ -6,12 +6,15 @@ import { when } from 'vitest-when' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { mockConnectableRobot } from '/app/redux/discovery/__fixtures__' -import { useRunStatuses, useSyncRobotClock } from '/app/organisms/Devices/hooks' -import { ProtocolRunHeader } from '/app/organisms/Devices/ProtocolRun/ProtocolRunHeader' -import { ProtocolRunModuleControls } from '/app/organisms/Devices/ProtocolRun/ProtocolRunModuleControls' -import { ProtocolRunSetup } from '/app/organisms/Devices/ProtocolRun/ProtocolRunSetup' -import { RunPreviewComponent } from '/app/organisms/RunPreview' -import { ProtocolRunRuntimeParameters } from '/app/organisms/Devices/ProtocolRun/ProtocolRunRunTimeParameters' +import { + useRunStatuses, + useSyncRobotClock, +} from '/app/organisms/Desktop/Devices/hooks' +import { ProtocolRunHeader } from '/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader' +import { ProtocolRunModuleControls } from '/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunModuleControls' +import { ProtocolRunSetup } from '/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunSetup' +import { RunPreviewComponent } from '/app/organisms/Desktop/Devices/RunPreview' +import { ProtocolRunRuntimeParameters } from '/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunRunTimeParameters' import { useCurrentRunId, useMostRecentCompletedAnalysis, @@ -24,13 +27,15 @@ import { ProtocolRunDetails } from '..' import type { ModuleModel, ModuleType } from '@opentrons/shared-data' -vi.mock('/app/organisms/Devices/hooks') -vi.mock('/app/organisms/Devices/ProtocolRun/ProtocolRunHeader') -vi.mock('/app/organisms/Devices/ProtocolRun/ProtocolRunSetup') -vi.mock('/app/organisms/RunPreview') -vi.mock('/app/organisms/Devices/ProtocolRun/ProtocolRunModuleControls') +vi.mock('/app/organisms/Desktop/Devices/hooks') +vi.mock('/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader') +vi.mock('/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunSetup') +vi.mock('/app/organisms/Desktop/Devices/RunPreview') +vi.mock('/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunModuleControls') vi.mock('/app/resources/runs') -vi.mock('/app/organisms/Devices/ProtocolRun/ProtocolRunRunTimeParameters') +vi.mock( + '/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunRunTimeParameters' +) vi.mock('/app/redux/config') vi.mock('/app/redux-resources/robots') diff --git a/app/src/pages/Desktop/Devices/ProtocolRunDetails/index.tsx b/app/src/pages/Desktop/Devices/ProtocolRunDetails/index.tsx index 53bc8d60c3a..ffbc50f80b9 100644 --- a/app/src/pages/Desktop/Devices/ProtocolRunDetails/index.tsx +++ b/app/src/pages/Desktop/Devices/ProtocolRunDetails/index.tsx @@ -22,16 +22,19 @@ import { useHoverTooltip, } from '@opentrons/components' import { ApiHostProvider } from '@opentrons/react-api-client' -import { useRunStatuses, useSyncRobotClock } from '/app/organisms/Devices/hooks' -import { ProtocolRunHeader } from '/app/organisms/Devices/ProtocolRun/ProtocolRunHeader' -import { RunPreview } from '/app/organisms/RunPreview' +import { + useRunStatuses, + useSyncRobotClock, +} from '/app/organisms/Desktop/Devices/hooks' +import { ProtocolRunHeader } from '/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader' +import { RunPreview } from '/app/organisms/Desktop/Devices/RunPreview' import { ProtocolRunSetup, initialMissingSteps, -} from '/app/organisms/Devices/ProtocolRun/ProtocolRunSetup' -import { BackToTopButton } from '/app/organisms/Devices/ProtocolRun/BackToTopButton' -import { ProtocolRunModuleControls } from '/app/organisms/Devices/ProtocolRun/ProtocolRunModuleControls' -import { ProtocolRunRuntimeParameters } from '/app/organisms/Devices/ProtocolRun/ProtocolRunRunTimeParameters' +} from '/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunSetup' +import { BackToTopButton } from '/app/organisms/Desktop/Devices/ProtocolRun/BackToTopButton' +import { ProtocolRunModuleControls } from '/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunModuleControls' +import { ProtocolRunRuntimeParameters } from '/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunRunTimeParameters' import { useCurrentRunId, useMostRecentCompletedAnalysis, @@ -44,10 +47,7 @@ import { appShellRequestor } from '/app/redux/shell/remote' import { useRobot, useRobotType } from '/app/redux-resources/robots' import type { ViewportListRef } from 'react-viewport-list' -import type { - DesktopRouteParams, - ProtocolRunDetailsTab, -} from '../../../../App/types' +import type { DesktopRouteParams, ProtocolRunDetailsTab } from '/app/App/types' import type { Dispatch } from '/app/redux/types' const baseRoundTabStyling = css` diff --git a/app/src/pages/Desktop/Devices/RobotSettings/__tests__/RobotSettings.test.tsx b/app/src/pages/Desktop/Devices/RobotSettings/__tests__/RobotSettings.test.tsx index 7e0ed778aca..2d63a704a6f 100644 --- a/app/src/pages/Desktop/Devices/RobotSettings/__tests__/RobotSettings.test.tsx +++ b/app/src/pages/Desktop/Devices/RobotSettings/__tests__/RobotSettings.test.tsx @@ -4,9 +4,9 @@ import { Route, MemoryRouter, Routes } from 'react-router-dom' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { RobotSettingsCalibration } from '/app/organisms/RobotSettingsCalibration' -import { RobotSettingsNetworking } from '/app/organisms/Devices/RobotSettings/RobotSettingsNetworking' -import { RobotSettingsAdvanced } from '/app/organisms/Devices/RobotSettings/RobotSettingsAdvanced' +import { RobotSettingsCalibration } from '/app/organisms/Desktop/RobotSettingsCalibration' +import { RobotSettingsNetworking } from '/app/organisms/Desktop/Devices/RobotSettings/RobotSettingsNetworking' +import { RobotSettingsAdvanced } from '/app/organisms/Desktop/Devices/RobotSettings/RobotSettingsAdvanced' import { useRobot } from '/app/redux-resources/robots' import { RobotSettings } from '..' import { when } from 'vitest-when' @@ -17,9 +17,9 @@ import { } from '/app/redux/discovery/__fixtures__' import { getRobotUpdateSession } from '/app/redux/robot-update' -vi.mock('/app/organisms/RobotSettingsCalibration') -vi.mock('/app/organisms/Devices/RobotSettings/RobotSettingsNetworking') -vi.mock('/app/organisms/Devices/RobotSettings/RobotSettingsAdvanced') +vi.mock('/app/organisms/Desktop/RobotSettingsCalibration') +vi.mock('/app/organisms/Desktop/Devices/RobotSettings/RobotSettingsNetworking') +vi.mock('/app/organisms/Desktop/Devices/RobotSettings/RobotSettingsAdvanced') vi.mock('/app/redux-resources/robots') vi.mock('/app/redux/discovery/selectors') vi.mock('/app/redux/robot-update') diff --git a/app/src/pages/Desktop/Devices/RobotSettings/index.tsx b/app/src/pages/Desktop/Devices/RobotSettings/index.tsx index ffabfc447ea..4c44b9b3beb 100644 --- a/app/src/pages/Desktop/Devices/RobotSettings/index.tsx +++ b/app/src/pages/Desktop/Devices/RobotSettings/index.tsx @@ -29,16 +29,13 @@ import { getDevtoolsEnabled } from '/app/redux/config' import { useRobot } from '/app/redux-resources/robots' import { Line } from '/app/atoms/structure' import { NavTab } from '/app/molecules/NavTab' -import { RobotSettingsCalibration } from '/app/organisms/RobotSettingsCalibration' -import { RobotSettingsAdvanced } from '/app/organisms/Devices/RobotSettings/RobotSettingsAdvanced' -import { RobotSettingsNetworking } from '/app/organisms/Devices/RobotSettings/RobotSettingsNetworking' -import { RobotSettingsFeatureFlags } from '/app/organisms/Devices/RobotSettings/RobotSettingsFeatureFlags' -import { ReachableBanner } from '/app/organisms/Devices/ReachableBanner' +import { RobotSettingsCalibration } from '/app/organisms/Desktop/RobotSettingsCalibration' +import { RobotSettingsAdvanced } from '/app/organisms/Desktop/Devices/RobotSettings/RobotSettingsAdvanced' +import { RobotSettingsNetworking } from '/app/organisms/Desktop/Devices/RobotSettings/RobotSettingsNetworking' +import { RobotSettingsFeatureFlags } from '/app/organisms/Desktop/Devices/RobotSettings/RobotSettingsFeatureFlags' +import { ReachableBanner } from '/app/organisms/Desktop/Devices/ReachableBanner' -import type { - DesktopRouteParams, - RobotSettingsTab, -} from '../../../../App/types' +import type { DesktopRouteParams, RobotSettingsTab } from '/app/App/types' export function RobotSettings(): JSX.Element | null { const { t } = useTranslation('device_settings') diff --git a/app/src/pages/Desktop/Protocols/ProtocolDetails/ProtocolTimeline.tsx b/app/src/pages/Desktop/Protocols/ProtocolDetails/ProtocolTimeline.tsx index f113d863888..e781987b8b6 100644 --- a/app/src/pages/Desktop/Protocols/ProtocolDetails/ProtocolTimeline.tsx +++ b/app/src/pages/Desktop/Protocols/ProtocolDetails/ProtocolTimeline.tsx @@ -3,10 +3,10 @@ import { useParams } from 'react-router-dom' import { useDispatch, useSelector } from 'react-redux' import { Icon, Box, SPACING } from '@opentrons/components' import { fetchProtocols, getStoredProtocol } from '/app/redux/protocol-storage' -import { ProtocolTimelineScrubber } from '/app/organisms/ProtocolTimelineScrubber' +import { ProtocolTimelineScrubber } from '/app/organisms/Desktop/ProtocolTimelineScrubber' import type { Dispatch, State } from '/app/redux/types' -import type { DesktopRouteParams } from '../../../../App/types' +import type { DesktopRouteParams } from '/app/App/types' export function ProtocolTimeline(): JSX.Element { const { protocolKey } = useParams< diff --git a/app/src/pages/Desktop/Protocols/ProtocolDetails/__tests__/ProtocolDetails.test.tsx b/app/src/pages/Desktop/Protocols/ProtocolDetails/__tests__/ProtocolDetails.test.tsx index c710350180a..e9e7b273d54 100644 --- a/app/src/pages/Desktop/Protocols/ProtocolDetails/__tests__/ProtocolDetails.test.tsx +++ b/app/src/pages/Desktop/Protocols/ProtocolDetails/__tests__/ProtocolDetails.test.tsx @@ -7,7 +7,7 @@ import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { getStoredProtocol } from '/app/redux/protocol-storage' import { storedProtocolData } from '/app/redux/protocol-storage/__fixtures__' -import { ProtocolDetails as ProtocolDetailsContents } from '/app/organisms/ProtocolDetails' +import { ProtocolDetails as ProtocolDetailsContents } from '/app/organisms/Desktop/ProtocolDetails' import { ProtocolDetails } from '../' @@ -16,7 +16,7 @@ import type { State } from '/app/redux/types' const mockProtocolKey = 'protocolKeyStub' vi.mock('/app/redux/protocol-storage') -vi.mock('/app/organisms/ProtocolDetails') +vi.mock('/app/organisms/Desktop/ProtocolDetails') const MOCK_STATE: State = { protocolStorage: { diff --git a/app/src/pages/Desktop/Protocols/ProtocolDetails/index.tsx b/app/src/pages/Desktop/Protocols/ProtocolDetails/index.tsx index d2e97de4147..66402416da7 100644 --- a/app/src/pages/Desktop/Protocols/ProtocolDetails/index.tsx +++ b/app/src/pages/Desktop/Protocols/ProtocolDetails/index.tsx @@ -3,10 +3,10 @@ import { useParams, Navigate } from 'react-router-dom' import { useDispatch, useSelector } from 'react-redux' import { fetchProtocols, getStoredProtocol } from '/app/redux/protocol-storage' -import { ProtocolDetails as ProtocolDetailsContents } from '/app/organisms/ProtocolDetails' +import { ProtocolDetails as ProtocolDetailsContents } from '/app/organisms/Desktop/ProtocolDetails' import type { Dispatch, State } from '/app/redux/types' -import type { DesktopRouteParams } from '../../../../App/types' +import type { DesktopRouteParams } from '/app/App/types' export function ProtocolDetails(): JSX.Element { const { protocolKey } = useParams< diff --git a/app/src/pages/Desktop/Protocols/ProtocolsLanding/__tests__/ProtocolsLanding.test.tsx b/app/src/pages/Desktop/Protocols/ProtocolsLanding/__tests__/ProtocolsLanding.test.tsx index 3b00caf21dd..8f1e87fef38 100644 --- a/app/src/pages/Desktop/Protocols/ProtocolsLanding/__tests__/ProtocolsLanding.test.tsx +++ b/app/src/pages/Desktop/Protocols/ProtocolsLanding/__tests__/ProtocolsLanding.test.tsx @@ -2,15 +2,15 @@ import { vi, it, describe } from 'vitest' import { screen } from '@testing-library/react' import { renderWithProviders } from '/app/__testing-utils__' -import { ProtocolsEmptyState } from '/app/organisms/ProtocolsLanding/ProtocolsEmptyState' +import { ProtocolsEmptyState } from '/app/organisms/Desktop/ProtocolsLanding/ProtocolsEmptyState' import { getStoredProtocols } from '/app/redux/protocol-storage' import { storedProtocolData } from '/app/redux/protocol-storage/__fixtures__' -import { ProtocolList } from '/app/organisms/ProtocolsLanding/ProtocolList' +import { ProtocolList } from '/app/organisms/Desktop/ProtocolsLanding/ProtocolList' import { ProtocolsLanding } from '..' vi.mock('/app/redux/protocol-storage') -vi.mock('/app/organisms/ProtocolsLanding/ProtocolsEmptyState') -vi.mock('/app/organisms/ProtocolsLanding/ProtocolList') +vi.mock('/app/organisms/Desktop/ProtocolsLanding/ProtocolsEmptyState') +vi.mock('/app/organisms/Desktop/ProtocolsLanding/ProtocolList') const render = () => { return renderWithProviders()[0] diff --git a/app/src/pages/Desktop/Protocols/ProtocolsLanding/index.tsx b/app/src/pages/Desktop/Protocols/ProtocolsLanding/index.tsx index e600441fc00..b88ca50d90f 100644 --- a/app/src/pages/Desktop/Protocols/ProtocolsLanding/index.tsx +++ b/app/src/pages/Desktop/Protocols/ProtocolsLanding/index.tsx @@ -1,8 +1,8 @@ import { useEffect } from 'react' import { useDispatch, useSelector } from 'react-redux' import { fetchProtocols, getStoredProtocols } from '/app/redux/protocol-storage' -import { ProtocolsEmptyState } from '/app/organisms/ProtocolsLanding/ProtocolsEmptyState' -import { ProtocolList } from '/app/organisms/ProtocolsLanding/ProtocolList' +import { ProtocolsEmptyState } from '/app/organisms/Desktop/ProtocolsLanding/ProtocolsEmptyState' +import { ProtocolList } from '/app/organisms/Desktop/ProtocolsLanding/ProtocolList' import type { Dispatch, State } from '/app/redux/types' diff --git a/app/src/pages/Desktop/Protocols/hooks/__tests__/hooks.test.tsx b/app/src/pages/Desktop/Protocols/hooks/__tests__/hooks.test.tsx index acb9c03ba2d..3671538519c 100644 --- a/app/src/pages/Desktop/Protocols/hooks/__tests__/hooks.test.tsx +++ b/app/src/pages/Desktop/Protocols/hooks/__tests__/hooks.test.tsx @@ -17,7 +17,7 @@ import type { import type { Protocol } from '@opentrons/api-client' vi.mock('@opentrons/react-api-client') -vi.mock('/app/organisms/Devices/hooks') +vi.mock('/app/organisms/Desktop/Devices/hooks') const PROTOCOL_ID = 'fake_protocol_id' const mockRTPData = [ diff --git a/app/src/pages/ODD/DeckConfiguration/index.tsx b/app/src/pages/ODD/DeckConfiguration/index.tsx index e759572daf7..608752a842c 100644 --- a/app/src/pages/ODD/DeckConfiguration/index.tsx +++ b/app/src/pages/ODD/DeckConfiguration/index.tsx @@ -14,7 +14,7 @@ import { import { ChildNavigation } from '/app/organisms/ChildNavigation' import { DeckFixtureSetupInstructionsModal } from '/app/organisms/DeviceDetailsDeckConfiguration/DeckFixtureSetupInstructionsModal' import { DeckConfigurationDiscardChangesModal } from '/app/organisms/DeviceDetailsDeckConfiguration/DeckConfigurationDiscardChangesModal' -import { getTopPortalEl } from '../../../App/portal' +import { getTopPortalEl } from '/app/App/portal' import { useDeckConfigurationEditingTools, useNotifyDeckConfigurationQuery, diff --git a/app/src/pages/ODD/ProtocolDashboard/LongPressModal.tsx b/app/src/pages/ODD/ProtocolDashboard/LongPressModal.tsx index aee792f5ae0..604db5c42c0 100644 --- a/app/src/pages/ODD/ProtocolDashboard/LongPressModal.tsx +++ b/app/src/pages/ODD/ProtocolDashboard/LongPressModal.tsx @@ -14,7 +14,7 @@ import { } from '@opentrons/components' import { useCreateRunMutation } from '@opentrons/react-api-client' -import { MAXIMUM_PINNED_PROTOCOLS } from '../../../App/constants' +import { MAXIMUM_PINNED_PROTOCOLS } from '/app/App/constants' import { SmallModalChildren } from '/app/molecules/OddModal' import { useToaster } from '/app/organisms/ToasterOven' import { getPinnedProtocolIds, updateConfigValue } from '/app/redux/config' diff --git a/app/src/pages/ODD/ProtocolDetails/index.tsx b/app/src/pages/ODD/ProtocolDetails/index.tsx index d75e0aea198..aa228068fd4 100644 --- a/app/src/pages/ODD/ProtocolDetails/index.tsx +++ b/app/src/pages/ODD/ProtocolDetails/index.tsx @@ -31,7 +31,7 @@ import { useProtocolAnalysisAsDocumentQuery, useProtocolQuery, } from '@opentrons/react-api-client' -import { MAXIMUM_PINNED_PROTOCOLS } from '../../../App/constants' +import { MAXIMUM_PINNED_PROTOCOLS } from '/app/App/constants' import { MediumButton, SmallButton } from '/app/atoms/buttons' import { ProtocolDetailsHeaderChipSkeleton, @@ -60,7 +60,7 @@ import { formatTimeWithUtcLabel } from '/app/resources/runs' import type { Protocol } from '@opentrons/api-client' import type { OddModalHeaderBaseProps } from '/app/molecules/OddModal/types' import type { Dispatch } from '/app/redux/types' -import type { OnDeviceRouteParams } from '../../../App/types' +import type { OnDeviceRouteParams } from '/app/App/types' interface ProtocolHeaderProps { title?: string | null diff --git a/app/src/pages/ODD/ProtocolSetup/index.tsx b/app/src/pages/ODD/ProtocolSetup/index.tsx index 7351c68ecef..a9c45be592f 100644 --- a/app/src/pages/ODD/ProtocolSetup/index.tsx +++ b/app/src/pages/ODD/ProtocolSetup/index.tsx @@ -84,7 +84,7 @@ import { import type { Run } from '@opentrons/api-client' import type { CutoutFixtureId, CutoutId } from '@opentrons/shared-data' -import type { OnDeviceRouteParams } from '../../../App/types' +import type { OnDeviceRouteParams } from '/app/App/types' import type { ProtocolModuleInfo } from '/app/transformations/analysis' import type { SetupScreens } from '/app/organisms/ODD/ProtocolSetup' import type { diff --git a/app/src/pages/ODD/QuickTransferDashboard/LongPressModal.tsx b/app/src/pages/ODD/QuickTransferDashboard/LongPressModal.tsx index 854ee2dfc98..bc92b1d26da 100644 --- a/app/src/pages/ODD/QuickTransferDashboard/LongPressModal.tsx +++ b/app/src/pages/ODD/QuickTransferDashboard/LongPressModal.tsx @@ -12,7 +12,7 @@ import { } from '@opentrons/components' import { useCreateRunMutation } from '@opentrons/react-api-client' -import { MAXIMUM_PINNED_PROTOCOLS } from '../../../App/constants' +import { MAXIMUM_PINNED_PROTOCOLS } from '/app/App/constants' import { SmallModalChildren } from '/app/molecules/OddModal' import { useToaster } from '/app/organisms/ToasterOven' import { getPinnedQuickTransferIds, updateConfigValue } from '/app/redux/config' diff --git a/app/src/pages/ODD/RunSummary/index.tsx b/app/src/pages/ODD/RunSummary/index.tsx index abc565ce88b..6d1f9ddfc2d 100644 --- a/app/src/pages/ODD/RunSummary/index.tsx +++ b/app/src/pages/ODD/RunSummary/index.tsx @@ -72,7 +72,7 @@ import { } from '/app/organisms/DropTipWizardFlows' import type { IconName } from '@opentrons/components' -import type { OnDeviceRouteParams } from '../../../App/types' +import type { OnDeviceRouteParams } from '/app/App/types' import type { PipetteWithTip } from '/app/organisms/DropTipWizardFlows' export function RunSummary(): JSX.Element { diff --git a/app/src/pages/ODD/RunningProtocol/__tests__/RunningProtocol.test.tsx b/app/src/pages/ODD/RunningProtocol/__tests__/RunningProtocol.test.tsx index 56e9d82e363..9fe5e3194a8 100644 --- a/app/src/pages/ODD/RunningProtocol/__tests__/RunningProtocol.test.tsx +++ b/app/src/pages/ODD/RunningProtocol/__tests__/RunningProtocol.test.tsx @@ -22,7 +22,7 @@ import { CurrentRunningProtocolCommand, RunningProtocolSkeleton, } from '/app/organisms/ODD/RunningProtocol' -import { mockUseAllCommandsResponseNonDeterministic } from '/app/organisms/RunProgressMeter/__fixtures__' +import { mockUseAllCommandsResponseNonDeterministic } from '/app/organisms/Desktop/RunProgressMeter/__fixtures__' import { getLocalRobot } from '/app/redux/discovery' import { CancelingRunModal } from '/app/organisms/ODD/RunningProtocol/CancelingRunModal' import { useTrackProtocolRunEvent } from '/app/redux-resources/analytics' diff --git a/app/src/pages/ODD/RunningProtocol/index.tsx b/app/src/pages/ODD/RunningProtocol/index.tsx index 35058ebb063..6611a6f3e31 100644 --- a/app/src/pages/ODD/RunningProtocol/index.tsx +++ b/app/src/pages/ODD/RunningProtocol/index.tsx @@ -58,7 +58,7 @@ import { ErrorRecoveryFlows, } from '/app/organisms/ErrorRecoveryFlows' -import type { OnDeviceRouteParams } from '../../../App/types' +import type { OnDeviceRouteParams } from '/app/App/types' const RUN_STATUS_REFETCH_INTERVAL = 5000 const LIVE_RUN_COMMANDS_POLL_MS = 3000 diff --git a/app/src/redux/config/schema-types.ts b/app/src/redux/config/schema-types.ts index d37cd10e155..4dbc4f97fd1 100644 --- a/app/src/redux/config/schema-types.ts +++ b/app/src/redux/config/schema-types.ts @@ -1,5 +1,5 @@ import type { LogLevel } from '../../logger' -import type { ProtocolSort } from '/app/organisms/ProtocolsLanding/hooks' +import type { ProtocolSort } from '/app/redux/protocol-storage' export type UrlProtocol = 'file:' | 'http:' diff --git a/app/src/redux/config/selectors.ts b/app/src/redux/config/selectors.ts index 2ff13a2fdc2..e13f8792039 100644 --- a/app/src/redux/config/selectors.ts +++ b/app/src/redux/config/selectors.ts @@ -1,5 +1,5 @@ import { createSelector } from 'reselect' -import { SLEEP_NEVER_MS } from '../../App/constants' +import { SLEEP_NEVER_MS } from '/app/App/constants' import type { State } from '../types' import type { Config, @@ -10,7 +10,7 @@ import type { OnDeviceDisplaySettings, } from './types' import type { SelectOption } from '/app/atoms/SelectField/Select' -import type { ProtocolSort } from '/app/organisms/ProtocolsLanding/hooks' +import type { ProtocolSort } from '/app/redux/protocol-storage' export const getConfig = (state: State): Config | null => state.config diff --git a/app/src/redux/protocol-storage/types.ts b/app/src/redux/protocol-storage/types.ts index 807bae7fe26..e406cee24ca 100644 --- a/app/src/redux/protocol-storage/types.ts +++ b/app/src/redux/protocol-storage/types.ts @@ -2,6 +2,14 @@ import type { ProtocolAnalysisOutput } from '@opentrons/shared-data' +export type ProtocolSort = + | 'alphabetical' + | 'reverse' + | 'recent' + | 'oldest' + | 'flex' + | 'ot2' + export interface StoredProtocolDir { dirPath: string modified: number diff --git a/app/src/resources/devices/hooks/index.ts b/app/src/resources/devices/hooks/index.ts new file mode 100644 index 00000000000..5ce74c72c6e --- /dev/null +++ b/app/src/resources/devices/hooks/index.ts @@ -0,0 +1 @@ +export * from './useIsEstopNotDisengaged' diff --git a/app/src/resources/devices/index.ts b/app/src/resources/devices/index.ts new file mode 100644 index 00000000000..fc78d35129c --- /dev/null +++ b/app/src/resources/devices/index.ts @@ -0,0 +1 @@ +export * from './hooks' diff --git a/app/src/organisms/Devices/hooks/__tests__/useAttachedPipettesFromInstrumentsQuery.test.ts b/app/src/resources/instruments/__tests__/useAttachedPipettesFromInstrumentsQuery.test.ts similarity index 100% rename from app/src/organisms/Devices/hooks/__tests__/useAttachedPipettesFromInstrumentsQuery.test.ts rename to app/src/resources/instruments/__tests__/useAttachedPipettesFromInstrumentsQuery.test.ts diff --git a/app/src/resources/instruments/index.ts b/app/src/resources/instruments/index.ts index 6a1b0d08a29..16fae1ecad8 100644 --- a/app/src/resources/instruments/index.ts +++ b/app/src/resources/instruments/index.ts @@ -1,2 +1,3 @@ export * from './useAttachedPipettes' export * from './useAttachedPipetteCalibrations' +export * from './useAttachedPipettesFromInstrumentsQuery' diff --git a/app/src/organisms/Devices/hooks/useAttachedPipettesFromInstrumentsQuery.ts b/app/src/resources/instruments/useAttachedPipettesFromInstrumentsQuery.ts similarity index 100% rename from app/src/organisms/Devices/hooks/useAttachedPipettesFromInstrumentsQuery.ts rename to app/src/resources/instruments/useAttachedPipettesFromInstrumentsQuery.ts diff --git a/app/src/transformations/analysis/__tests__/getAnalysisStatus.test.ts b/app/src/transformations/analysis/__tests__/getAnalysisStatus.test.ts new file mode 100644 index 00000000000..1b39caa99d9 --- /dev/null +++ b/app/src/transformations/analysis/__tests__/getAnalysisStatus.test.ts @@ -0,0 +1,37 @@ +import { describe, it, expect } from 'vitest' +import { getAnalysisStatus } from '../getAnalysisStatus' +import type { ProtocolAnalysisOutput } from '@opentrons/shared-data' + +const mockAnalysisOutput = { + robotType: 'OT-3 Standard', +} as ProtocolAnalysisOutput + +describe('getAnalysisStatus', () => { + it('should return stale if no liquids in analysis', () => { + const result = getAnalysisStatus(false, { + ...mockAnalysisOutput, + liquids: [], + errors: [], + }) + expect(result).toBe('stale') + }) + + it('should return stale if no runTimeParameters in analysis', () => { + const result = getAnalysisStatus(false, { + ...mockAnalysisOutput, + runTimeParameters: [], + errors: [], + }) + expect(result).toBe('stale') + }) + + it('should return complete if liquids and runTimeParameters in analysis', () => { + const result = getAnalysisStatus(false, { + ...mockAnalysisOutput, + liquids: [], + runTimeParameters: [], + errors: [], + }) + expect(result).toBe('complete') + }) +}) diff --git a/app/src/transformations/analysis/__tests__/getAttachedProtocolModuleMatches.test.ts b/app/src/transformations/analysis/__tests__/getAttachedProtocolModuleMatches.test.ts new file mode 100644 index 00000000000..058ee6fb237 --- /dev/null +++ b/app/src/transformations/analysis/__tests__/getAttachedProtocolModuleMatches.test.ts @@ -0,0 +1,86 @@ +import { describe, it, expect } from 'vitest' +import { + TEMPERATURE_MODULE_V2_FIXTURE, + getModuleDef2, +} from '@opentrons/shared-data' + +import { mockTemperatureModuleGen2 } from '/app/redux/modules/__fixtures__' +import { getAttachedProtocolModuleMatches } from '../getAttachedProtocolModuleMatches' + +const temperatureProtocolModule = { + moduleId: 'mockTempModuleId', + x: 0, + y: 0, + z: 0, + moduleDef: getModuleDef2('temperatureModuleV2'), + nestedLabwareDef: null, + nestedLabwareId: null, + nestedLabwareDisplayName: null, + protocolLoadOrder: 0, + slotName: 'D1', +} + +const magneticProtocolModule = { + moduleId: 'mockMagneticModuleId', + x: 0, + y: 0, + z: 0, + moduleDef: getModuleDef2('magneticModuleV2'), + nestedLabwareDef: null, + nestedLabwareId: null, + nestedLabwareDisplayName: null, + protocolLoadOrder: 0, + slotName: 'D1', +} + +describe('getAttachedProtocolModuleMatches', () => { + it('returns no module matches when no modules attached', () => { + const result = getAttachedProtocolModuleMatches( + [], + [temperatureProtocolModule, magneticProtocolModule], + [] + ) + expect(result).toEqual([ + { ...temperatureProtocolModule, attachedModuleMatch: null }, + { ...magneticProtocolModule, attachedModuleMatch: null }, + ]) + }) + + it('returns no module matches when no modules match', () => { + const result = getAttachedProtocolModuleMatches( + [mockTemperatureModuleGen2], + [magneticProtocolModule], + [ + { + cutoutId: 'cutoutD1', + cutoutFixtureId: TEMPERATURE_MODULE_V2_FIXTURE, + opentronsModuleSerialNumber: mockTemperatureModuleGen2.serialNumber, + }, + ] + ) + expect(result).toEqual([ + { ...magneticProtocolModule, attachedModuleMatch: null }, + ]) + }) + + it('returns module match when modules match', () => { + const result = getAttachedProtocolModuleMatches( + [mockTemperatureModuleGen2], + [temperatureProtocolModule, magneticProtocolModule], + [ + { + cutoutId: 'cutoutD1', + cutoutFixtureId: TEMPERATURE_MODULE_V2_FIXTURE, + opentronsModuleSerialNumber: mockTemperatureModuleGen2.serialNumber, + }, + ] + ) + expect(result).toEqual([ + { + ...temperatureProtocolModule, + attachedModuleMatch: mockTemperatureModuleGen2, + }, + { ...magneticProtocolModule, attachedModuleMatch: null }, + ]) + }) +}) diff --git a/app/src/transformations/analysis/getAnalysisStatus.ts b/app/src/transformations/analysis/getAnalysisStatus.ts new file mode 100644 index 00000000000..1495c6f494a --- /dev/null +++ b/app/src/transformations/analysis/getAnalysisStatus.ts @@ -0,0 +1,30 @@ +import type { ProtocolAnalysisOutput } from '@opentrons/shared-data' +export type AnalysisStatus = + | 'missing' + | 'loading' + | 'error' + | 'complete' + | 'stale' + | 'parameterRequired' + +export function getAnalysisStatus( + isAnalyzing: boolean, + analysis?: ProtocolAnalysisOutput | null +): AnalysisStatus { + if (isAnalyzing) { + return 'loading' + } + if (analysis == null || analysis === undefined) { + return 'missing' + } + if (analysis.liquids == null || analysis.runTimeParameters == null) { + return 'stale' + } + if (analysis.result === 'parameter-value-required') { + return 'parameterRequired' + } + if (analysis.errors.length > 0) { + return 'error' + } + return 'complete' +} diff --git a/app/src/transformations/analysis/getAttachedProtocolModuleMatches.ts b/app/src/transformations/analysis/getAttachedProtocolModuleMatches.ts new file mode 100644 index 00000000000..96f3ab4df02 --- /dev/null +++ b/app/src/transformations/analysis/getAttachedProtocolModuleMatches.ts @@ -0,0 +1,75 @@ +import { + FLEX_ROBOT_TYPE, + OT2_ROBOT_TYPE, + checkModuleCompatibility, + getCutoutFixturesForModuleModel, + getCutoutIdsFromModuleSlotName, + getDeckDefFromRobotType, +} from '@opentrons/shared-data' + +import type { DeckConfiguration, RobotType } from '@opentrons/shared-data' +import type { ProtocolModuleInfo } from '/app/transformations/analysis' +import type { AttachedModule } from '/app/redux/modules/types' + +export type AttachedProtocolModuleMatch = ProtocolModuleInfo & { + attachedModuleMatch: AttachedModule | null +} + +// NOTE: some logic copied from useModuleRenderInfoForProtocolById +export function getAttachedProtocolModuleMatches( + attachedModules: AttachedModule[], + protocolModulesInfo: ProtocolModuleInfo[], + deckConfig: DeckConfiguration, + robotType: RobotType = FLEX_ROBOT_TYPE +): AttachedProtocolModuleMatch[] { + const deckDef = getDeckDefFromRobotType(robotType) + const robotSupportsModuleConfig = robotType !== OT2_ROBOT_TYPE + const matchedAttachedModules: AttachedModule[] = [] + const attachedProtocolModuleMatches = protocolModulesInfo.map( + protocolModule => { + const moduleFixtures = getCutoutFixturesForModuleModel( + protocolModule.moduleDef.model, + deckDef + ) + const moduleCutoutIds = getCutoutIdsFromModuleSlotName( + protocolModule.slotName, + moduleFixtures, + deckDef + ) + const compatibleAttachedModule = + attachedModules.find( + attachedModule => + checkModuleCompatibility( + attachedModule.moduleModel, + protocolModule.moduleDef.model + ) && + // check id instead of object reference in useModuleRenderInfoForProtocolById + !matchedAttachedModules.some( + matchedAttachedModule => + matchedAttachedModule.serialNumber === + attachedModule.serialNumber + ) && + // then if robotType supports configurable modules check the deck config has a + // a module with the expected serial number in the expected location + (!robotSupportsModuleConfig || + deckConfig.some( + ({ cutoutId, opentronsModuleSerialNumber }) => + attachedModule.serialNumber === opentronsModuleSerialNumber && + moduleCutoutIds.includes(cutoutId) + )) + ) ?? null + if (compatibleAttachedModule !== null) { + matchedAttachedModules.push(compatibleAttachedModule) + return { + ...protocolModule, + attachedModuleMatch: compatibleAttachedModule, + } + } + return { + ...protocolModule, + attachedModuleMatch: null, + } + } + ) + return attachedProtocolModuleMatches +} diff --git a/app/src/transformations/analysis/index.ts b/app/src/transformations/analysis/index.ts index 6194166db5e..d7bddc9853e 100644 --- a/app/src/transformations/analysis/index.ts +++ b/app/src/transformations/analysis/index.ts @@ -3,3 +3,5 @@ export * from './getProtocolModulesInfo' export * from './getLabwareOffsetLocation' export * from './getLabwareRenderInfo' export * from './liquids' +export * from './getAttachedProtocolModuleMatches' +export * from './getAnalysisStatus' diff --git a/app/src/transformations/protocols/getProtocolDisplayName.ts b/app/src/transformations/protocols/getProtocolDisplayName.ts new file mode 100644 index 00000000000..99953011bd8 --- /dev/null +++ b/app/src/transformations/protocols/getProtocolDisplayName.ts @@ -0,0 +1,10 @@ +import first from 'lodash/first' +import type { ProtocolAnalysisOutput } from '@opentrons/shared-data' + +export function getProtocolDisplayName( + protocolKey: string, + srcFileNames: string[], + analysis?: ProtocolAnalysisOutput | null +): string { + return analysis?.metadata?.protocolName ?? first(srcFileNames) ?? protocolKey +} diff --git a/app/src/transformations/protocols/index.ts b/app/src/transformations/protocols/index.ts index a59205ca683..4b7d6afbacf 100644 --- a/app/src/transformations/protocols/index.ts +++ b/app/src/transformations/protocols/index.ts @@ -1 +1,2 @@ export * from './getLabwareDefinitionUri' +export * from './getProtocolDisplayName' diff --git a/app/src/transformations/runs/getHighestPriorityError.ts b/app/src/transformations/runs/getHighestPriorityError.ts new file mode 100644 index 00000000000..5d3a2641daa --- /dev/null +++ b/app/src/transformations/runs/getHighestPriorityError.ts @@ -0,0 +1,65 @@ +import type { RunError } from '@opentrons/api-client' + +const _getHighestPriorityError = (error: RunError): RunError => { + if ( + error == null || + error.wrappedErrors == null || + error.wrappedErrors.length === 0 + ) { + return error + } + + let highestPriorityError = error + + error.wrappedErrors.forEach(wrappedError => { + const e = _getHighestPriorityError(wrappedError) + const isHigherPriority = _getIsHigherPriority( + e.errorCode, + highestPriorityError.errorCode + ) + if (isHigherPriority) { + highestPriorityError = e + } + }) + return highestPriorityError +} + +/** + * returns true if the first error code is higher priority than the second, false otherwise + */ +const _getIsHigherPriority = ( + errorCode1: string, + errorCode2: string +): boolean => { + const errorNumber1 = Number(errorCode1) + const errorNumber2 = Number(errorCode2) + + const isSameCategory = + Math.floor(errorNumber1 / 1000) === Math.floor(errorNumber2 / 1000) + const isCode1GenericError = errorNumber1 % 1000 === 0 + + let isHigherPriority = null + + if ( + (isSameCategory && !isCode1GenericError) || + (!isSameCategory && errorNumber1 < errorNumber2) + ) { + isHigherPriority = true + } else { + isHigherPriority = false + } + + return isHigherPriority +} + +export const getHighestPriorityError = (errors: RunError[]): RunError => { + const highestFirstWrappedError = _getHighestPriorityError(errors[0]) + return [highestFirstWrappedError, ...errors.slice(1)].reduce((acc, val) => { + const e = _getHighestPriorityError(val) + const isHigherPriority = _getIsHigherPriority(e.errorCode, acc.errorCode) + if (isHigherPriority) { + return e + } + return acc + }) +} diff --git a/app/src/transformations/runs/index.ts b/app/src/transformations/runs/index.ts index cd5a54ca735..fb909e16043 100644 --- a/app/src/transformations/runs/index.ts +++ b/app/src/transformations/runs/index.ts @@ -3,3 +3,4 @@ export * from './getRunTimeParameterFilesForRun' export * from './getLatestCurrentOffsets' export * from './formatTimestamp' export * from './onDeviceDisplayFormatTimestamp' +export * from './getHighestPriorityError' From f8a02aa0619969a16f55ff48f9c37e4320b14cce Mon Sep 17 00:00:00 2001 From: TamarZanzouri Date: Fri, 27 Sep 2024 15:39:31 -0400 Subject: [PATCH 11/18] feature(api): Put command implementations in charge of `PipetteStore` updates for tip state and pipette config (#16365) # Overview closes [EXEC-733](https://opentrons.atlassian.net/browse/EXEC-733) update pipette store from command implementation for: LoadPipetteResult DropTipResult, DropTipInPlaceResult, unsafe.UnsafeDropTipInPlaceResult, PickUpTipResult PipetteNozzleLayoutResultMixin PipetteConfigUpdateResultMixin for: ## Test Plan and Hands on Testing upload a protocol with the following commands/side effects and make sure its acting as expected. ## Review requests did I miss anything? ## Risk assessment Medium. need to smoke test to make sure nothing is affected. [EXEC-733]: https://opentrons.atlassian.net/browse/EXEC-733?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --- .../commands/configure_for_volume.py | 9 + .../commands/configure_nozzle_layout.py | 7 + .../protocol_engine/commands/drop_tip.py | 2 + .../commands/drop_tip_in_place.py | 9 +- .../protocol_engine/commands/load_pipette.py | 15 ++ .../protocol_engine/commands/pick_up_tip.py | 10 +- .../unsafe/unsafe_drop_tip_in_place.py | 8 +- .../protocol_engine/state/pipettes.py | 235 ++++++++-------- .../protocol_engine/state/update_types.py | 92 ++++++- .../protocol_runner/legacy_command_mapper.py | 9 +- .../commands/test_configure_for_volume.py | 9 + .../commands/test_configure_nozzle_layout.py | 10 + .../protocol_engine/commands/test_drop_tip.py | 10 +- .../commands/test_drop_tip_in_place.py | 12 +- .../commands/test_load_pipette.py | 31 +++ .../commands/test_pick_up_tip.py | 6 +- .../unsafe/test_unsafe_drop_tip_in_place.py | 12 +- .../state/test_pipette_store.py | 250 +++++++++++++++--- .../test_legacy_command_mapper.py | 9 + 19 files changed, 584 insertions(+), 161 deletions(-) diff --git a/api/src/opentrons/protocol_engine/commands/configure_for_volume.py b/api/src/opentrons/protocol_engine/commands/configure_for_volume.py index 8415c401fe7..93a56ca8805 100644 --- a/api/src/opentrons/protocol_engine/commands/configure_for_volume.py +++ b/api/src/opentrons/protocol_engine/commands/configure_for_volume.py @@ -8,6 +8,7 @@ from .command import AbstractCommandImpl, BaseCommand, BaseCommandCreate, SuccessData from ..errors.error_occurrence import ErrorOccurrence from .configuring_common import PipetteConfigUpdateResultMixin +from ..state.update_types import StateUpdate if TYPE_CHECKING: from ..execution import EquipmentHandler @@ -67,6 +68,13 @@ async def execute( tip_overlap_version=params.tipOverlapNotAfterVersion, ) + state_update = StateUpdate() + state_update.update_pipette_config( + pipette_id=pipette_result.pipette_id, + config=pipette_result.static_config, + serial_number=pipette_result.serial_number, + ) + return SuccessData( public=ConfigureForVolumeResult(), private=ConfigureForVolumePrivateResult( @@ -74,6 +82,7 @@ async def execute( serial_number=pipette_result.serial_number, config=pipette_result.static_config, ), + state_update=state_update, ) diff --git a/api/src/opentrons/protocol_engine/commands/configure_nozzle_layout.py b/api/src/opentrons/protocol_engine/commands/configure_nozzle_layout.py index 74681098ab9..0d9a5e8c5e7 100644 --- a/api/src/opentrons/protocol_engine/commands/configure_nozzle_layout.py +++ b/api/src/opentrons/protocol_engine/commands/configure_nozzle_layout.py @@ -1,5 +1,6 @@ """Configure nozzle layout command request, result, and implementation models.""" from __future__ import annotations +from opentrons.protocol_engine.state.update_types import StateUpdate from pydantic import BaseModel from typing import TYPE_CHECKING, Optional, Type, Union from typing_extensions import Literal @@ -85,12 +86,18 @@ async def execute( **nozzle_params, ) + update_state = StateUpdate() + update_state.update_pipette_nozzle( + pipette_id=params.pipetteId, nozzle_map=nozzle_map + ) + return SuccessData( public=ConfigureNozzleLayoutResult(), private=ConfigureNozzleLayoutPrivateResult( pipette_id=params.pipetteId, nozzle_map=nozzle_map, ), + state_update=update_state, ) diff --git a/api/src/opentrons/protocol_engine/commands/drop_tip.py b/api/src/opentrons/protocol_engine/commands/drop_tip.py index 416472fc440..021c7a47bc5 100644 --- a/api/src/opentrons/protocol_engine/commands/drop_tip.py +++ b/api/src/opentrons/protocol_engine/commands/drop_tip.py @@ -114,6 +114,8 @@ async def execute(self, params: DropTipParams) -> SuccessData[DropTipResult, Non await self._tip_handler.drop_tip(pipette_id=pipette_id, home_after=home_after) + state_update.update_tip_state(pipette_id=params.pipetteId, tip_geometry=None) + return SuccessData( public=DropTipResult(position=deck_point), private=None, diff --git a/api/src/opentrons/protocol_engine/commands/drop_tip_in_place.py b/api/src/opentrons/protocol_engine/commands/drop_tip_in_place.py index cf27732a6a5..a8e62354f40 100644 --- a/api/src/opentrons/protocol_engine/commands/drop_tip_in_place.py +++ b/api/src/opentrons/protocol_engine/commands/drop_tip_in_place.py @@ -1,5 +1,6 @@ """Drop tip in place command request, result, and implementation models.""" from __future__ import annotations +from opentrons.protocol_engine.state import update_types from pydantic import Field, BaseModel from typing import TYPE_CHECKING, Optional, Type from typing_extensions import Literal @@ -54,7 +55,13 @@ async def execute( pipette_id=params.pipetteId, home_after=params.homeAfter ) - return SuccessData(public=DropTipInPlaceResult(), private=None) + state_update = update_types.StateUpdate() + + state_update.update_tip_state(pipette_id=params.pipetteId, tip_geometry=None) + + return SuccessData( + public=DropTipInPlaceResult(), private=None, state_update=state_update + ) class DropTipInPlace( diff --git a/api/src/opentrons/protocol_engine/commands/load_pipette.py b/api/src/opentrons/protocol_engine/commands/load_pipette.py index d791a251873..5961272ae7c 100644 --- a/api/src/opentrons/protocol_engine/commands/load_pipette.py +++ b/api/src/opentrons/protocol_engine/commands/load_pipette.py @@ -1,6 +1,7 @@ """Load pipette command request, result, and implementation models.""" from __future__ import annotations +from opentrons.protocol_engine.state.update_types import StateUpdate from opentrons_shared_data.pipette.pipette_load_name_conversions import ( convert_to_pipette_name_type, ) @@ -123,6 +124,19 @@ async def execute( tip_overlap_version=params.tipOverlapNotAfterVersion, ) + state_update = StateUpdate() + state_update.set_load_pipette( + pipette_id=loaded_pipette.pipette_id, + pipette_name=params.pipetteName, + mount=params.mount, + liquid_presence_detection=params.liquidPresenceDetection, + ) + state_update.update_pipette_config( + pipette_id=loaded_pipette.pipette_id, + serial_number=loaded_pipette.serial_number, + config=loaded_pipette.static_config, + ) + return SuccessData( public=LoadPipetteResult(pipetteId=loaded_pipette.pipette_id), private=LoadPipettePrivateResult( @@ -130,6 +144,7 @@ async def execute( serial_number=loaded_pipette.serial_number, config=loaded_pipette.static_config, ), + state_update=state_update, ) diff --git a/api/src/opentrons/protocol_engine/commands/pick_up_tip.py b/api/src/opentrons/protocol_engine/commands/pick_up_tip.py index c30d2f953db..86d64d3034e 100644 --- a/api/src/opentrons/protocol_engine/commands/pick_up_tip.py +++ b/api/src/opentrons/protocol_engine/commands/pick_up_tip.py @@ -9,7 +9,7 @@ from ..errors import ErrorOccurrence, TipNotAttachedError from ..resources import ModelUtils from ..state import update_types -from ..types import DeckPoint +from ..types import DeckPoint, TipGeometry from .pipetting_common import ( PipetteIdMixin, WellLocationMixin, @@ -130,6 +130,14 @@ async def execute( labware_id=labware_id, well_name=well_name, ) + state_update.update_tip_state( + pipette_id=pipette_id, + tip_geometry=TipGeometry( + volume=tip_geometry.volume, + length=tip_geometry.length, + diameter=tip_geometry.diameter, + ), + ) except TipNotAttachedError as e: return DefinedErrorData( public=TipPhysicallyMissingError( diff --git a/api/src/opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py b/api/src/opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py index 6bf2d4a3a3f..e27a118ea60 100644 --- a/api/src/opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py +++ b/api/src/opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py @@ -1,5 +1,6 @@ """Command models to drop tip in place while plunger positions are unknown.""" from __future__ import annotations +from opentrons.protocol_engine.state.update_types import StateUpdate from pydantic import Field, BaseModel from typing import TYPE_CHECKING, Optional, Type from typing_extensions import Literal @@ -72,7 +73,12 @@ async def execute( pipette_id=params.pipetteId, home_after=params.homeAfter ) - return SuccessData(public=UnsafeDropTipInPlaceResult(), private=None) + state_update = StateUpdate() + state_update.update_tip_state(pipette_id=params.pipetteId, tip_geometry=None) + + return SuccessData( + public=UnsafeDropTipInPlaceResult(), private=None, state_update=state_update + ) class UnsafeDropTipInPlace( diff --git a/api/src/opentrons/protocol_engine/state/pipettes.py b/api/src/opentrons/protocol_engine/state/pipettes.py index 6f942281906..e558d3a0fe6 100644 --- a/api/src/opentrons/protocol_engine/state/pipettes.py +++ b/api/src/opentrons/protocol_engine/state/pipettes.py @@ -38,10 +38,6 @@ CurrentPipetteLocation, TipGeometry, ) -from ..commands.configuring_common import ( - PipetteConfigUpdateResultMixin, - PipetteNozzleLayoutResultMixin, -) from ..actions import ( Action, SetPipetteMovementSpeedAction, @@ -149,72 +145,32 @@ def handle_action(self, action: Action) -> None: elif isinstance(action, SetPipetteMovementSpeedAction): self._state.movement_speed_by_id[action.pipette_id] = action.speed - def _handle_command( # noqa: C901 + def _handle_command( self, action: Union[SucceedCommandAction, FailCommandAction] ) -> None: + self._set_load_pipette(action) self._update_current_location(action) + self._update_pipette_config(action) + self._update_pipette_nozzle_map(action) + self._update_tip_state(action) self._update_volumes(action) - if not isinstance(action, SucceedCommandAction): - return - - command, private_result = action.command, action.private_result - - if isinstance(private_result, PipetteConfigUpdateResultMixin): - config = private_result.config - self._state.static_config_by_id[ - private_result.pipette_id - ] = StaticPipetteConfig( - serial_number=private_result.serial_number, - model=config.model, - display_name=config.display_name, - min_volume=config.min_volume, - max_volume=config.max_volume, - channels=config.channels, - tip_configuration_lookup_table=config.tip_configuration_lookup_table, - nominal_tip_overlap=config.nominal_tip_overlap, - home_position=config.home_position, - nozzle_offset_z=config.nozzle_offset_z, - pipette_bounding_box_offsets=PipetteBoundingBoxOffsets( - back_left_corner=config.back_left_corner_offset, - front_right_corner=config.front_right_corner_offset, - back_right_corner=Point( - config.front_right_corner_offset.x, - config.back_left_corner_offset.y, - config.back_left_corner_offset.z, - ), - front_left_corner=Point( - config.back_left_corner_offset.x, - config.front_right_corner_offset.y, - config.back_left_corner_offset.z, - ), - ), - bounding_nozzle_offsets=BoundingNozzlesOffsets( - back_left_offset=config.nozzle_map.back_left_nozzle_offset, - front_right_offset=config.nozzle_map.front_right_nozzle_offset, - ), - default_nozzle_map=config.nozzle_map, - lld_settings=config.pipette_lld_settings, - ) - self._state.flow_rates_by_id[private_result.pipette_id] = config.flow_rates - self._state.nozzle_configuration_by_id[ - private_result.pipette_id - ] = config.nozzle_map - elif isinstance(private_result, PipetteNozzleLayoutResultMixin): - self._state.nozzle_configuration_by_id[ - private_result.pipette_id - ] = private_result.nozzle_map - - if isinstance(command.result, commands.LoadPipetteResult): - pipette_id = command.result.pipetteId + def _set_load_pipette( + self, action: Union[SucceedCommandAction, FailCommandAction] + ) -> None: + if ( + isinstance(action, SucceedCommandAction) + and action.state_update.loaded_pipette != update_types.NO_CHANGE + ): + pipette_id = action.state_update.loaded_pipette.pipette_id self._state.pipettes_by_id[pipette_id] = LoadedPipette( id=pipette_id, - pipetteName=command.params.pipetteName, - mount=command.params.mount, + pipetteName=action.state_update.loaded_pipette.pipette_name, + mount=action.state_update.loaded_pipette.mount, ) self._state.liquid_presence_detection_by_id[pipette_id] = ( - command.params.liquidPresenceDetection or False + action.state_update.loaded_pipette.liquid_presence_detection or False ) self._state.aspirated_volume_by_id[pipette_id] = None self._state.movement_speed_by_id[pipette_id] = None @@ -225,61 +181,60 @@ def _handle_command( # noqa: C901 pipette_id ] = static_config.default_nozzle_map - elif isinstance(command.result, commands.PickUpTipResult): - pipette_id = command.params.pipetteId - attached_tip = TipGeometry( - length=command.result.tipLength, - volume=command.result.tipVolume, - diameter=command.result.tipDiameter, - ) + def _update_tip_state( + self, action: Union[SucceedCommandAction, FailCommandAction] + ) -> None: - self._state.attached_tip_by_id[pipette_id] = attached_tip - self._state.aspirated_volume_by_id[pipette_id] = 0 + if ( + isinstance(action, SucceedCommandAction) + and action.state_update.pipette_tip_state != update_types.NO_CHANGE + ): + pipette_id = action.state_update.pipette_tip_state.pipette_id + if action.state_update.pipette_tip_state.tip_geometry: + attached_tip = action.state_update.pipette_tip_state.tip_geometry + + self._state.attached_tip_by_id[pipette_id] = attached_tip + self._state.aspirated_volume_by_id[pipette_id] = 0 + + static_config = self._state.static_config_by_id.get(pipette_id) + if static_config: + try: + tip_configuration = ( + static_config.tip_configuration_lookup_table[ + attached_tip.volume + ] + ) + except KeyError: + # TODO(seth,9/11/2023): this is a bad way of doing defaults but better than max volume. + # we used to look up a default tip config via the pipette max volume, but if that isn't + # tip volume (as it isn't when we're in low-volume mode) then that lookup fails. Using + # the first entry in the table is ok I guess but we really need to generally rethink how + # we identify tip classes - looking things up by volume is not enough. + tip_configuration = list( + static_config.tip_configuration_lookup_table.values() + )[0] + self._state.flow_rates_by_id[pipette_id] = FlowRates( + default_blow_out=tip_configuration.default_blowout_flowrate.values_by_api_level, + default_aspirate=tip_configuration.default_aspirate_flowrate.values_by_api_level, + default_dispense=tip_configuration.default_dispense_flowrate.values_by_api_level, + ) - static_config = self._state.static_config_by_id.get(pipette_id) - if static_config: - try: - tip_configuration = static_config.tip_configuration_lookup_table[ - attached_tip.volume - ] - except KeyError: - # TODO(seth,9/11/2023): this is a bad way of doing defaults but better than max volume. - # we used to look up a default tip config via the pipette max volume, but if that isn't - # tip volume (as it isn't when we're in low-volume mode) then that lookup fails. Using - # the first entry in the table is ok I guess but we really need to generally rethink how - # we identify tip classes - looking things up by volume is not enough. + else: + pipette_id = action.state_update.pipette_tip_state.pipette_id + self._state.aspirated_volume_by_id[pipette_id] = None + self._state.attached_tip_by_id[pipette_id] = None + + static_config = self._state.static_config_by_id.get(pipette_id) + if static_config: + # TODO(seth,9/11/2023): bad way to do defaulting, see above. tip_configuration = list( static_config.tip_configuration_lookup_table.values() )[0] - self._state.flow_rates_by_id[pipette_id] = FlowRates( - default_blow_out=tip_configuration.default_blowout_flowrate.values_by_api_level, - default_aspirate=tip_configuration.default_aspirate_flowrate.values_by_api_level, - default_dispense=tip_configuration.default_dispense_flowrate.values_by_api_level, - ) - - elif isinstance( - command.result, - ( - commands.DropTipResult, - commands.DropTipInPlaceResult, - commands.unsafe.UnsafeDropTipInPlaceResult, - ), - ): - pipette_id = command.params.pipetteId - self._state.aspirated_volume_by_id[pipette_id] = None - self._state.attached_tip_by_id[pipette_id] = None - - static_config = self._state.static_config_by_id.get(pipette_id) - if static_config: - # TODO(seth,9/11/2023): bad way to do defaulting, see above. - tip_configuration = list( - static_config.tip_configuration_lookup_table.values() - )[0] - self._state.flow_rates_by_id[pipette_id] = FlowRates( - default_blow_out=tip_configuration.default_blowout_flowrate.values_by_api_level, - default_aspirate=tip_configuration.default_aspirate_flowrate.values_by_api_level, - default_dispense=tip_configuration.default_dispense_flowrate.values_by_api_level, - ) + self._state.flow_rates_by_id[pipette_id] = FlowRates( + default_blow_out=tip_configuration.default_blowout_flowrate.values_by_api_level, + default_aspirate=tip_configuration.default_aspirate_flowrate.values_by_api_level, + default_dispense=tip_configuration.default_dispense_flowrate.values_by_api_level, + ) def _update_current_location( self, action: Union[SucceedCommandAction, FailCommandAction] @@ -327,6 +282,66 @@ def _update_current_location( mount=loaded_pipette.mount, deck_point=new_deck_point ) + def _update_pipette_config( + self, action: Union[SucceedCommandAction, FailCommandAction] + ) -> None: + if ( + isinstance(action, SucceedCommandAction) + and action.state_update.pipette_config != update_types.NO_CHANGE + ): + config = action.state_update.pipette_config.config + self._state.static_config_by_id[ + action.state_update.pipette_config.pipette_id + ] = StaticPipetteConfig( + serial_number=action.state_update.pipette_config.serial_number, + model=config.model, + display_name=config.display_name, + min_volume=config.min_volume, + max_volume=config.max_volume, + channels=config.channels, + tip_configuration_lookup_table=config.tip_configuration_lookup_table, + nominal_tip_overlap=config.nominal_tip_overlap, + home_position=config.home_position, + nozzle_offset_z=config.nozzle_offset_z, + pipette_bounding_box_offsets=PipetteBoundingBoxOffsets( + back_left_corner=config.back_left_corner_offset, + front_right_corner=config.front_right_corner_offset, + back_right_corner=Point( + config.front_right_corner_offset.x, + config.back_left_corner_offset.y, + config.back_left_corner_offset.z, + ), + front_left_corner=Point( + config.back_left_corner_offset.x, + config.front_right_corner_offset.y, + config.back_left_corner_offset.z, + ), + ), + bounding_nozzle_offsets=BoundingNozzlesOffsets( + back_left_offset=config.nozzle_map.back_left_nozzle_offset, + front_right_offset=config.nozzle_map.front_right_nozzle_offset, + ), + default_nozzle_map=config.nozzle_map, + lld_settings=config.pipette_lld_settings, + ) + self._state.flow_rates_by_id[ + action.state_update.pipette_config.pipette_id + ] = config.flow_rates + self._state.nozzle_configuration_by_id[ + action.state_update.pipette_config.pipette_id + ] = config.nozzle_map + + def _update_pipette_nozzle_map( + self, action: Union[SucceedCommandAction, FailCommandAction] + ) -> None: + if ( + isinstance(action, SucceedCommandAction) + and action.state_update.pipette_nozzle_map != update_types.NO_CHANGE + ): + self._state.nozzle_configuration_by_id[ + action.state_update.pipette_nozzle_map.pipette_id + ] = action.state_update.pipette_nozzle_map.nozzle_map + def _update_volumes( self, action: Union[SucceedCommandAction, FailCommandAction] ) -> None: diff --git a/api/src/opentrons/protocol_engine/state/update_types.py b/api/src/opentrons/protocol_engine/state/update_types.py index 6d5e28e3e6b..91cdf0194a3 100644 --- a/api/src/opentrons/protocol_engine/state/update_types.py +++ b/api/src/opentrons/protocol_engine/state/update_types.py @@ -5,8 +5,12 @@ import enum import typing -from opentrons.protocol_engine.types import DeckPoint, LabwareLocation +from opentrons.hardware_control.nozzle_manager import NozzleMap +from opentrons.protocol_engine.resources import pipette_data_provider +from opentrons.protocol_engine.types import DeckPoint, LabwareLocation, TipGeometry +from opentrons.types import MountType from opentrons_shared_data.labware.labware_definition import LabwareDefinition +from opentrons_shared_data.pipette.types import PipetteNameType class _NoChangeEnum(enum.Enum): @@ -97,12 +101,55 @@ class LoadedLabwareUpdate(LabwareLocationUpdate): definition: LabwareDefinition +@dataclasses.dataclass +class LoadPipetteUpdate: + """Update loaded pipette.""" + + pipette_id: str + pipette_name: PipetteNameType + mount: MountType + liquid_presence_detection: typing.Optional[bool] + + +@dataclasses.dataclass +class PipetteConfigUpdate: + """Update pipette config.""" + + pipette_id: str + serial_number: str + config: pipette_data_provider.LoadedStaticPipetteData + + +@dataclasses.dataclass +class PipetteNozzleMapUpdate: + """Update pipette nozzle map.""" + + pipette_id: str + nozzle_map: NozzleMap + + +@dataclasses.dataclass +class PipetteTipStateUpdate: + """Update pipette tip state.""" + + pipette_id: str + tip_geometry: typing.Optional[TipGeometry] + + @dataclasses.dataclass class StateUpdate: """Represents an update to perform on engine state.""" pipette_location: PipetteLocationUpdate | NoChangeType | ClearType = NO_CHANGE + loaded_pipette: LoadPipetteUpdate | NoChangeType = NO_CHANGE + + pipette_config: PipetteConfigUpdate | NoChangeType = NO_CHANGE + + pipette_nozzle_map: PipetteNozzleMapUpdate | NoChangeType = NO_CHANGE + + pipette_tip_state: PipetteTipStateUpdate | NoChangeType = NO_CHANGE + labware_location: LabwareLocationUpdate | NoChangeType = NO_CHANGE loaded_labware: LoadedLabwareUpdate | NoChangeType = NO_CHANGE @@ -160,13 +207,14 @@ def set_pipette_location( # noqa: D102 new_deck_point=new_deck_point, ) - def set_labware_location( # noqa: D102 + def set_labware_location( self, *, labware_id: str, new_location: LabwareLocation, new_offset_id: str | None, ) -> None: + """Set labware location.""" self.labware_location = LabwareLocationUpdate( labware_id=labware_id, new_location=new_location, @@ -193,3 +241,43 @@ def set_loaded_labware( def clear_all_pipette_locations(self) -> None: """Mark all pipettes as having an unknown location.""" self.pipette_location = CLEAR + + def set_load_pipette( + self, + pipette_id: str, + pipette_name: PipetteNameType, + mount: MountType, + liquid_presence_detection: typing.Optional[bool], + ) -> None: + """Add loaded pipette to state.""" + self.loaded_pipette = LoadPipetteUpdate( + pipette_id=pipette_id, + pipette_name=pipette_name, + mount=mount, + liquid_presence_detection=liquid_presence_detection, + ) + + def update_pipette_config( + self, + pipette_id: str, + config: pipette_data_provider.LoadedStaticPipetteData, + serial_number: str, + ) -> None: + """Update pipette config.""" + self.pipette_config = PipetteConfigUpdate( + pipette_id=pipette_id, config=config, serial_number=serial_number + ) + + def update_pipette_nozzle(self, pipette_id: str, nozzle_map: NozzleMap) -> None: + """Update pipette nozzle map.""" + self.pipette_nozzle_map = PipetteNozzleMapUpdate( + pipette_id=pipette_id, nozzle_map=nozzle_map + ) + + def update_tip_state( + self, pipette_id: str, tip_geometry: typing.Optional[TipGeometry] + ) -> None: + """Update tip state.""" + self.pipette_tip_state = PipetteTipStateUpdate( + pipette_id=pipette_id, tip_geometry=tip_geometry + ) diff --git a/api/src/opentrons/protocol_runner/legacy_command_mapper.py b/api/src/opentrons/protocol_runner/legacy_command_mapper.py index 8ffb67d3560..686560c1ca2 100644 --- a/api/src/opentrons/protocol_runner/legacy_command_mapper.py +++ b/api/src/opentrons/protocol_runner/legacy_command_mapper.py @@ -754,10 +754,17 @@ def _map_instrument_load( # We just set this above, so we know it's not None. started_at=succeeded_command.startedAt, # type: ignore[arg-type] ) + state_update = StateUpdate() + state_update.set_load_pipette( + pipette_id=pipette_id, + mount=succeeded_command.params.mount, + pipette_name=succeeded_command.params.pipetteName, + liquid_presence_detection=succeeded_command.params.liquidPresenceDetection, + ) succeed_action = pe_actions.SucceedCommandAction( command=succeeded_command, private_result=pipette_config_result, - state_update=StateUpdate(), + state_update=state_update, ) self._command_count["LOAD_PIPETTE"] = count + 1 diff --git a/api/tests/opentrons/protocol_engine/commands/test_configure_for_volume.py b/api/tests/opentrons/protocol_engine/commands/test_configure_for_volume.py index 95e1e856bd4..2279f2a0ebf 100644 --- a/api/tests/opentrons/protocol_engine/commands/test_configure_for_volume.py +++ b/api/tests/opentrons/protocol_engine/commands/test_configure_for_volume.py @@ -1,4 +1,8 @@ """Test load pipette commands.""" +from opentrons.protocol_engine.state.update_types import ( + PipetteConfigUpdate, + StateUpdate, +) import pytest from decoy import Decoy @@ -84,4 +88,9 @@ async def test_configure_for_volume_implementation( private=ConfigureForVolumePrivateResult( pipette_id="pipette-id", serial_number="some number", config=config ), + state_update=StateUpdate( + pipette_config=PipetteConfigUpdate( + pipette_id="pipette-id", serial_number="some number", config=config + ) + ), ) diff --git a/api/tests/opentrons/protocol_engine/commands/test_configure_nozzle_layout.py b/api/tests/opentrons/protocol_engine/commands/test_configure_nozzle_layout.py index 2f318b147ac..d4a9c671dd3 100644 --- a/api/tests/opentrons/protocol_engine/commands/test_configure_nozzle_layout.py +++ b/api/tests/opentrons/protocol_engine/commands/test_configure_nozzle_layout.py @@ -1,4 +1,8 @@ """Test configure nozzle layout commands.""" +from opentrons.protocol_engine.state.update_types import ( + PipetteNozzleMapUpdate, + StateUpdate, +) import pytest from decoy import Decoy from typing import Union, Dict @@ -146,4 +150,10 @@ async def test_configure_nozzle_layout_implementation( pipette_id="pipette-id", nozzle_map=expected_nozzlemap, ), + state_update=StateUpdate( + pipette_nozzle_map=PipetteNozzleMapUpdate( + pipette_id="pipette-id", + nozzle_map=expected_nozzlemap, + ) + ), ) diff --git a/api/tests/opentrons/protocol_engine/commands/test_drop_tip.py b/api/tests/opentrons/protocol_engine/commands/test_drop_tip.py index d0d69eeccfa..a44b6892401 100644 --- a/api/tests/opentrons/protocol_engine/commands/test_drop_tip.py +++ b/api/tests/opentrons/protocol_engine/commands/test_drop_tip.py @@ -123,7 +123,10 @@ async def test_drop_tip_implementation( well_name="A3", ), new_deck_point=DeckPoint(x=111, y=222, z=333), - ) + ), + pipette_tip_state=update_types.PipetteTipStateUpdate( + pipette_id="abc", tip_geometry=None + ), ), ) @@ -196,6 +199,9 @@ async def test_drop_tip_with_alternating_locations( well_name="A3", ), new_deck_point=DeckPoint(x=111, y=222, z=333), - ) + ), + pipette_tip_state=update_types.PipetteTipStateUpdate( + pipette_id="abc", tip_geometry=None + ), ), ) diff --git a/api/tests/opentrons/protocol_engine/commands/test_drop_tip_in_place.py b/api/tests/opentrons/protocol_engine/commands/test_drop_tip_in_place.py index 4bfefe4fdbe..aa7854f6105 100644 --- a/api/tests/opentrons/protocol_engine/commands/test_drop_tip_in_place.py +++ b/api/tests/opentrons/protocol_engine/commands/test_drop_tip_in_place.py @@ -1,4 +1,8 @@ """Test drop tip in place commands.""" +from opentrons.protocol_engine.state.update_types import ( + PipetteTipStateUpdate, + StateUpdate, +) import pytest from decoy import Decoy @@ -29,7 +33,13 @@ async def test_drop_tip_implementation( result = await subject.execute(params) - assert result == SuccessData(public=DropTipInPlaceResult(), private=None) + assert result == SuccessData( + public=DropTipInPlaceResult(), + private=None, + state_update=StateUpdate( + pipette_tip_state=PipetteTipStateUpdate(pipette_id="abc", tip_geometry=None) + ), + ) decoy.verify( await mock_tip_handler.drop_tip(pipette_id="abc", home_after=False), diff --git a/api/tests/opentrons/protocol_engine/commands/test_load_pipette.py b/api/tests/opentrons/protocol_engine/commands/test_load_pipette.py index 6b7bd77c32c..5884e015342 100644 --- a/api/tests/opentrons/protocol_engine/commands/test_load_pipette.py +++ b/api/tests/opentrons/protocol_engine/commands/test_load_pipette.py @@ -1,4 +1,9 @@ """Test load pipette commands.""" +from opentrons.protocol_engine.state.update_types import ( + LoadPipetteUpdate, + PipetteConfigUpdate, + StateUpdate, +) import pytest from decoy import Decoy @@ -88,6 +93,19 @@ async def test_load_pipette_implementation( private=LoadPipettePrivateResult( pipette_id="some id", serial_number="some-serial-number", config=config_data ), + state_update=StateUpdate( + loaded_pipette=LoadPipetteUpdate( + pipette_name=PipetteNameType.P300_SINGLE, + mount=MountType.LEFT, + pipette_id="some id", + liquid_presence_detection=None, + ), + pipette_config=PipetteConfigUpdate( + pipette_id="some id", + serial_number="some-serial-number", + config=config_data, + ), + ), ) @@ -143,6 +161,19 @@ async def test_load_pipette_implementation_96_channel( private=LoadPipettePrivateResult( pipette_id="pipette-id", serial_number="some id", config=config_data ), + state_update=StateUpdate( + loaded_pipette=LoadPipetteUpdate( + pipette_name=PipetteNameType.P1000_96, + mount=MountType.LEFT, + pipette_id="pipette-id", + liquid_presence_detection=None, + ), + pipette_config=PipetteConfigUpdate( + pipette_id="pipette-id", + serial_number="some id", + config=config_data, + ), + ), ) diff --git a/api/tests/opentrons/protocol_engine/commands/test_pick_up_tip.py b/api/tests/opentrons/protocol_engine/commands/test_pick_up_tip.py index 9b92fd219a0..c4ff37c501d 100644 --- a/api/tests/opentrons/protocol_engine/commands/test_pick_up_tip.py +++ b/api/tests/opentrons/protocol_engine/commands/test_pick_up_tip.py @@ -78,7 +78,11 @@ async def test_success( pipette_id="pipette-id", new_location=update_types.Well(labware_id="labware-id", well_name="A3"), new_deck_point=DeckPoint(x=111, y=222, z=333), - ) + ), + pipette_tip_state=update_types.PipetteTipStateUpdate( + pipette_id="pipette-id", + tip_geometry=TipGeometry(length=42, diameter=5, volume=300), + ), ), ) diff --git a/api/tests/opentrons/protocol_engine/commands/unsafe/test_unsafe_drop_tip_in_place.py b/api/tests/opentrons/protocol_engine/commands/unsafe/test_unsafe_drop_tip_in_place.py index 6d739f97442..4913fe3c444 100644 --- a/api/tests/opentrons/protocol_engine/commands/unsafe/test_unsafe_drop_tip_in_place.py +++ b/api/tests/opentrons/protocol_engine/commands/unsafe/test_unsafe_drop_tip_in_place.py @@ -1,4 +1,8 @@ """Test unsafe drop tip in place commands.""" +from opentrons.protocol_engine.state.update_types import ( + PipetteTipStateUpdate, + StateUpdate, +) import pytest from decoy import Decoy @@ -44,7 +48,13 @@ async def test_drop_tip_implementation( result = await subject.execute(params) - assert result == SuccessData(public=UnsafeDropTipInPlaceResult(), private=None) + assert result == SuccessData( + public=UnsafeDropTipInPlaceResult(), + private=None, + state_update=StateUpdate( + pipette_tip_state=PipetteTipStateUpdate(pipette_id="abc", tip_geometry=None) + ), + ) decoy.verify( await ot3_hardware_api.update_axis_position_estimations([Axis.P_L]), diff --git a/api/tests/opentrons/protocol_engine/state/test_pipette_store.py b/api/tests/opentrons/protocol_engine/state/test_pipette_store.py index 0ba973e4cd1..81ddf13f5d8 100644 --- a/api/tests/opentrons/protocol_engine/state/test_pipette_store.py +++ b/api/tests/opentrons/protocol_engine/state/test_pipette_store.py @@ -99,7 +99,13 @@ def test_location_state_update(subject: PipetteStore) -> None: well_name="let's go party", ), new_deck_point=DeckPoint(x=111, y=222, z=333), - ) + ), + loaded_pipette=update_types.LoadPipetteUpdate( + pipette_id="pipette-id", + liquid_presence_detection=None, + pipette_name=PipetteNameType.P300_SINGLE, + mount=MountType.RIGHT, + ), ), ) ) @@ -193,7 +199,20 @@ def test_handles_load_pipette(subject: PipetteStore) -> None: mount=MountType.LEFT, ) - subject.handle_action(SucceedCommandAction(private_result=None, command=command)) + subject.handle_action( + SucceedCommandAction( + private_result=None, + command=command, + state_update=update_types.StateUpdate( + loaded_pipette=update_types.LoadPipetteUpdate( + pipette_id="pipette-id", + pipette_name=PipetteNameType.P300_SINGLE, + mount=MountType.LEFT, + liquid_presence_detection=None, + ) + ), + ) + ) result = subject.state @@ -224,10 +243,31 @@ def test_handles_pick_up_and_drop_tip(subject: PipetteStore) -> None: ) subject.handle_action( - SucceedCommandAction(private_result=None, command=load_pipette_command) + SucceedCommandAction( + private_result=None, + command=load_pipette_command, + state_update=update_types.StateUpdate( + loaded_pipette=update_types.LoadPipetteUpdate( + pipette_id="abc", + pipette_name=PipetteNameType.P300_SINGLE, + mount=MountType.LEFT, + liquid_presence_detection=None, + ) + ), + ) ) + subject.handle_action( - SucceedCommandAction(private_result=None, command=pick_up_tip_command) + SucceedCommandAction( + private_result=None, + command=pick_up_tip_command, + state_update=update_types.StateUpdate( + pipette_tip_state=update_types.PipetteTipStateUpdate( + pipette_id="abc", + tip_geometry=TipGeometry(volume=42, length=101, diameter=8.0), + ) + ), + ) ) assert subject.state.attached_tip_by_id["abc"] == TipGeometry( volume=42, length=101, diameter=8.0 @@ -235,7 +275,15 @@ def test_handles_pick_up_and_drop_tip(subject: PipetteStore) -> None: assert subject.state.aspirated_volume_by_id["abc"] == 0 subject.handle_action( - SucceedCommandAction(private_result=None, command=drop_tip_command) + SucceedCommandAction( + private_result=None, + command=drop_tip_command, + state_update=update_types.StateUpdate( + pipette_tip_state=update_types.PipetteTipStateUpdate( + pipette_id="abc", tip_geometry=None + ) + ), + ) ) assert subject.state.attached_tip_by_id["abc"] is None assert subject.state.aspirated_volume_by_id["abc"] is None @@ -258,10 +306,30 @@ def test_handles_drop_tip_in_place(subject: PipetteStore) -> None: ) subject.handle_action( - SucceedCommandAction(private_result=None, command=load_pipette_command) + SucceedCommandAction( + private_result=None, + command=load_pipette_command, + state_update=update_types.StateUpdate( + loaded_pipette=update_types.LoadPipetteUpdate( + pipette_id="xyz", + pipette_name=PipetteNameType.P300_SINGLE, + mount=MountType.LEFT, + liquid_presence_detection=None, + ) + ), + ) ) subject.handle_action( - SucceedCommandAction(private_result=None, command=pick_up_tip_command) + SucceedCommandAction( + private_result=None, + command=pick_up_tip_command, + state_update=update_types.StateUpdate( + pipette_tip_state=update_types.PipetteTipStateUpdate( + pipette_id="xyz", + tip_geometry=TipGeometry(volume=42, length=101, diameter=8.0), + ) + ), + ) ) assert subject.state.attached_tip_by_id["xyz"] == TipGeometry( volume=42, length=101, diameter=8.0 @@ -269,7 +337,15 @@ def test_handles_drop_tip_in_place(subject: PipetteStore) -> None: assert subject.state.aspirated_volume_by_id["xyz"] == 0 subject.handle_action( - SucceedCommandAction(private_result=None, command=drop_tip_in_place_command) + SucceedCommandAction( + private_result=None, + command=drop_tip_in_place_command, + state_update=update_types.StateUpdate( + pipette_tip_state=update_types.PipetteTipStateUpdate( + pipette_id="xyz", tip_geometry=None + ) + ), + ) ) assert subject.state.attached_tip_by_id["xyz"] is None assert subject.state.aspirated_volume_by_id["xyz"] is None @@ -292,10 +368,30 @@ def test_handles_unsafe_drop_tip_in_place(subject: PipetteStore) -> None: ) subject.handle_action( - SucceedCommandAction(private_result=None, command=load_pipette_command) + SucceedCommandAction( + private_result=None, + command=load_pipette_command, + state_update=update_types.StateUpdate( + loaded_pipette=update_types.LoadPipetteUpdate( + pipette_id="xyz", + pipette_name=PipetteNameType.P300_SINGLE, + mount=MountType.LEFT, + liquid_presence_detection=None, + ) + ), + ) ) subject.handle_action( - SucceedCommandAction(private_result=None, command=pick_up_tip_command) + SucceedCommandAction( + private_result=None, + command=pick_up_tip_command, + state_update=update_types.StateUpdate( + pipette_tip_state=update_types.PipetteTipStateUpdate( + pipette_id="xyz", + tip_geometry=TipGeometry(volume=42, length=101, diameter=8.0), + ) + ), + ) ) assert subject.state.attached_tip_by_id["xyz"] == TipGeometry( volume=42, length=101, diameter=8.0 @@ -304,7 +400,13 @@ def test_handles_unsafe_drop_tip_in_place(subject: PipetteStore) -> None: subject.handle_action( SucceedCommandAction( - private_result=None, command=unsafe_drop_tip_in_place_command + private_result=None, + command=unsafe_drop_tip_in_place_command, + state_update=update_types.StateUpdate( + pipette_tip_state=update_types.PipetteTipStateUpdate( + pipette_id="xyz", tip_geometry=None + ) + ), ) ) assert subject.state.attached_tip_by_id["xyz"] is None @@ -331,7 +433,18 @@ def test_aspirate_adds_volume( ) subject.handle_action( - SucceedCommandAction(private_result=None, command=load_command) + SucceedCommandAction( + private_result=None, + command=load_command, + state_update=update_types.StateUpdate( + loaded_pipette=update_types.LoadPipetteUpdate( + pipette_id="pipette-id", + pipette_name=PipetteNameType.P300_SINGLE, + mount=MountType.LEFT, + liquid_presence_detection=None, + ) + ), + ) ) subject.handle_action( SucceedCommandAction(private_result=None, command=aspirate_command) @@ -373,7 +486,18 @@ def test_dispense_subtracts_volume( ) subject.handle_action( - SucceedCommandAction(private_result=None, command=load_command) + SucceedCommandAction( + private_result=None, + command=load_command, + state_update=update_types.StateUpdate( + loaded_pipette=update_types.LoadPipetteUpdate( + pipette_id="pipette-id", + pipette_name=PipetteNameType.P300_SINGLE, + mount=MountType.LEFT, + liquid_presence_detection=None, + ) + ), + ) ) subject.handle_action( SucceedCommandAction(private_result=None, command=aspirate_command) @@ -415,7 +539,18 @@ def test_blow_out_clears_volume( ) subject.handle_action( - SucceedCommandAction(private_result=None, command=load_command) + SucceedCommandAction( + private_result=None, + command=load_command, + state_update=update_types.StateUpdate( + loaded_pipette=update_types.LoadPipetteUpdate( + pipette_id="pipette-id", + pipette_name=PipetteNameType.P300_SINGLE, + mount=MountType.LEFT, + liquid_presence_detection=None, + ) + ), + ) ) subject.handle_action( SucceedCommandAction(private_result=None, command=aspirate_command) @@ -455,32 +590,42 @@ def test_add_pipette_config( ), result=cmd.LoadPipetteResult(pipetteId="pipette-id"), ) - private_result = cmd.LoadPipettePrivateResult( - pipette_id="pipette-id", - serial_number="pipette-serial", - config=LoadedStaticPipetteData( - model="pipette-model", - display_name="pipette name", - min_volume=1.23, - max_volume=4.56, - channels=7, - flow_rates=FlowRates( - default_aspirate={"a": 1}, - default_dispense={"b": 2}, - default_blow_out={"c": 3}, - ), - tip_configuration_lookup_table={4: supported_tip_fixture}, - nominal_tip_overlap={"default": 5}, - home_position=8.9, - nozzle_offset_z=10.11, - nozzle_map=get_default_nozzle_map(PipetteNameType.P300_SINGLE), - back_left_corner_offset=Point(x=1, y=2, z=3), - front_right_corner_offset=Point(x=4, y=5, z=6), - pipette_lld_settings={}, + config = LoadedStaticPipetteData( + model="pipette-model", + display_name="pipette name", + min_volume=1.23, + max_volume=4.56, + channels=7, + flow_rates=FlowRates( + default_aspirate={"a": 1}, + default_dispense={"b": 2}, + default_blow_out={"c": 3}, ), + tip_configuration_lookup_table={4: supported_tip_fixture}, + nominal_tip_overlap={"default": 5}, + home_position=8.9, + nozzle_offset_z=10.11, + nozzle_map=get_default_nozzle_map(PipetteNameType.P300_SINGLE), + back_left_corner_offset=Point(x=1, y=2, z=3), + front_right_corner_offset=Point(x=4, y=5, z=6), + pipette_lld_settings={}, + ) + + private_result = cmd.LoadPipettePrivateResult( + pipette_id="pipette-id", serial_number="pipette-serial", config=config ) subject.handle_action( - SucceedCommandAction(command=command, private_result=private_result) + SucceedCommandAction( + command=command, + private_result=private_result, + state_update=update_types.StateUpdate( + pipette_config=update_types.PipetteConfigUpdate( + pipette_id="pipette-id", + config=config, + serial_number="pipette-serial", + ) + ), + ) ) assert subject.state.static_config_by_id["pipette-id"] == StaticPipetteConfig( @@ -532,13 +677,38 @@ def test_prepare_to_aspirate_marks_pipette_ready( pipette_id="pipette-id", tip_volume=42, tip_length=101, tip_diameter=8.0 ) subject.handle_action( - SucceedCommandAction(private_result=None, command=load_pipette_command) + SucceedCommandAction( + private_result=None, + command=load_pipette_command, + state_update=update_types.StateUpdate( + loaded_pipette=update_types.LoadPipetteUpdate( + pipette_id="pipette-id", + pipette_name=PipetteNameType.P50_MULTI_FLEX, + mount=MountType.LEFT, + liquid_presence_detection=None, + ) + ), + ) ) subject.handle_action( - SucceedCommandAction(private_result=None, command=pick_up_tip_command) + SucceedCommandAction( + private_result=None, + command=pick_up_tip_command, + state_update=update_types.StateUpdate( + pipette_tip_state=update_types.PipetteTipStateUpdate( + pipette_id="pipette-id", + tip_geometry=TipGeometry(volume=42, length=101, diameter=8.0), + ) + ), + ) ) - subject.handle_action(SucceedCommandAction(private_result=None, command=previous)) + subject.handle_action( + SucceedCommandAction( + private_result=None, + command=previous, + ) + ) prepare_to_aspirate_command = create_prepare_to_aspirate_command( pipette_id="pipette-id" diff --git a/api/tests/opentrons/protocol_runner/test_legacy_command_mapper.py b/api/tests/opentrons/protocol_runner/test_legacy_command_mapper.py index b58032d6cba..8663c3e0a8d 100644 --- a/api/tests/opentrons/protocol_runner/test_legacy_command_mapper.py +++ b/api/tests/opentrons/protocol_runner/test_legacy_command_mapper.py @@ -4,6 +4,7 @@ from typing import cast from opentrons.protocol_engine.state.update_types import ( + LoadPipetteUpdate, LoadedLabwareUpdate, StateUpdate, ) @@ -382,6 +383,14 @@ def test_map_instrument_load(decoy: Decoy) -> None: private_result=pe_commands.LoadPipettePrivateResult( pipette_id="pipette-0", serial_number="fizzbuzz", config=pipette_config ), + state_update=StateUpdate( + loaded_pipette=LoadPipetteUpdate( + pipette_id="pipette-0", + mount=expected_params.mount, + pipette_name=expected_params.pipetteName, + liquid_presence_detection=expected_params.liquidPresenceDetection, + ) + ), ) [ From 6471dd4c224ceb094bf6e6c7d4286a93ff33aa26 Mon Sep 17 00:00:00 2001 From: Jethary Alcid <66035149+jerader@users.noreply.github.com> Date: Fri, 27 Sep 2024 16:33:10 -0400 Subject: [PATCH 12/18] fix(labware-library): use search params to route to labware (#16371) closes RESC-334 Co-authored-by: Jamey Huffnagle --- labware-library/src/components/App/index.tsx | 16 ++------------ .../components/LabwareList/LabwareCard.tsx | 2 +- labware-library/src/components/ui/Link.tsx | 22 ++++++++++--------- labware-library/src/definitions.tsx | 8 ++++--- 4 files changed, 20 insertions(+), 28 deletions(-) diff --git a/labware-library/src/components/App/index.tsx b/labware-library/src/components/App/index.tsx index df1a3a4b96c..ebdea67358d 100644 --- a/labware-library/src/components/App/index.tsx +++ b/labware-library/src/components/App/index.tsx @@ -1,10 +1,9 @@ // main application wrapper component import { useRef, useEffect } from 'react' import cx from 'classnames' -import { Navigate, Route, Routes, useLocation } from 'react-router-dom' +import { useLocation } from 'react-router-dom' import { DefinitionRoute } from '../../definitions' import { useFilters } from '../../filters' -import { getPublicPath } from '../../public-path' import { Nav, Breadcrumbs } from '../Nav' import { Sidebar } from '../Sidebar' import { Page } from './Page' @@ -51,16 +50,5 @@ export function AppComponent(props: DefinitionRouteRenderProps): JSX.Element { } export function App(): JSX.Element { - return ( - - } /> - } - /> - } /> - } /> - - ) + return } /> } diff --git a/labware-library/src/components/LabwareList/LabwareCard.tsx b/labware-library/src/components/LabwareList/LabwareCard.tsx index 77cdac48a16..a8056b54142 100644 --- a/labware-library/src/components/LabwareList/LabwareCard.tsx +++ b/labware-library/src/components/LabwareList/LabwareCard.tsx @@ -76,7 +76,7 @@ function Title(props: LabwareCardProps): JSX.Element { const { displayName } = props.definition.metadata return ( - +

{displayName} diff --git a/labware-library/src/components/ui/Link.tsx b/labware-library/src/components/ui/Link.tsx index b8cab6996e0..509b0ee7a4b 100644 --- a/labware-library/src/components/ui/Link.tsx +++ b/labware-library/src/components/ui/Link.tsx @@ -1,21 +1,23 @@ // internal link that preserves query parameters -import type * as React from 'react' -import { Link as BaseLink, useLocation } from 'react-router-dom' +import { Link as BaseLink } from 'react-router-dom' + +import type { ReactNode } from 'react' export interface LinkProps { to: string - children?: React.ReactNode + search?: string + children?: ReactNode className?: string } -export function Link({ to, children, className }: LinkProps): JSX.Element { - const location = useLocation() - +export function Link({ + to, + children, + className, + search, +}: LinkProps): JSX.Element { return ( - + {children} ) diff --git a/labware-library/src/definitions.tsx b/labware-library/src/definitions.tsx index bbea44f2c8d..22ad9a4113a 100644 --- a/labware-library/src/definitions.tsx +++ b/labware-library/src/definitions.tsx @@ -1,7 +1,6 @@ // labware definition helpers // TODO(mc, 2019-03-18): move to shared-data? -import type * as React from 'react' -import { useParams } from 'react-router-dom' +import { useLocation } from 'react-router-dom' import groupBy from 'lodash/groupBy' import uniq from 'lodash/uniq' import { @@ -9,6 +8,7 @@ import { getAllDefinitions as _getAllDefinitions, } from '@opentrons/shared-data' +import type * as React from 'react' import type { LabwareDefinition2 } from '@opentrons/shared-data' import type { LabwareList, LabwareDefinition } from './types' @@ -83,7 +83,9 @@ export interface DefinitionRouteProps { } export const DefinitionRoute: React.FC = ({ render }) => { - const { loadName } = useParams<{ loadName: string }>() + const location = useLocation() + const searchParams = new URLSearchParams(location.search) + const loadName = searchParams.get('loadName') const definition = getDefinition(loadName) // TODO: handle 404 if loadName exists but definition isn't found From 6fb93ad62c3cacf0bfeadaf7704e0d47a7a6cb68 Mon Sep 17 00:00:00 2001 From: Seth Foster Date: Fri, 27 Sep 2024 17:02:36 -0400 Subject: [PATCH 13/18] chore(app): add custom eslint rules for imports (#16373) Now that we've gone to all this trouble to separate app code so that nothing imports from higher on the tree of life and desktop and ODD are cleanly separated (well, ODD isn't yet, but it soon will be) it's Quite Important To My Emotional Health And State Of Mind that it stays that way. A good way to make it stay that way is a custom eslint hook, which was... fun... to write, but now can be a place we add more stuff like this if we want in the future. That plugin lives as a module that's added as a dev-dependency to the root package json (because eslint <9 needs plugins to work this way, sadly) so you'll have to run setup-js, but then it will yell at you if you import up the tree of life or across applications in `app/` (it can also do it elsewhere but it's disabled there - normal eslint rule overrides can change this if you want). Oh and also there were a couple lint fixes. Nothing big, just like 100 files of random little imports that violated the rules that I missed over the previous PRs. --- .eslintrc.js | 22 +++- app/src/App/OnDeviceDisplayApp.tsx | 2 +- app/src/App/constants.ts | 1 - app/src/index.tsx | 1 + app/src/local-resources/config/constants.ts | 1 + app/src/local-resources/config/index.ts | 1 + .../Desktop/Devices/InstrumentsAndModules.tsx | 5 +- .../__tests__/ProtocolRunHeader.test.tsx | 3 +- .../ProtocolRun/ProtocolRunHeader/index.tsx | 2 +- .../__tests__/SetupLiquidsMap.test.tsx | 1 + .../SetupTipLengthCalibrationButton.tsx | 1 + .../SetupTipLengthCalibrationButton.test.tsx | 1 + .../ProtocolRun/useLabwareOffsetForLabware.ts | 6 +- .../Desktop/Devices/RecentProtocolRuns.tsx | 8 +- .../Desktop/Devices/RobotOverflowMenu.tsx | 2 +- .../Desktop/Devices/RobotOverview.tsx | 8 +- .../Devices/RobotOverviewOverflowMenu.tsx | 2 +- .../RobotSettings/RobotSettingsAdvanced.tsx | 7 +- .../RobotSettings/RobotSettingsNetworking.tsx | 3 +- .../UpdateBuildroot/UpdateRobotModal.tsx | 2 +- .../__tests__/UpdateRobotModal.test.tsx | 4 +- .../__tests__/RobotSettingsAdvanced.test.tsx | 4 +- .../RobotSettingsNetworking.test.tsx | 4 +- .../__tests__/InstrumentsAndModules.test.tsx | 6 +- .../__tests__/RecentProtocolRuns.test.tsx | 6 +- .../__tests__/RobotOverflowMenu.test.tsx | 3 +- .../Devices/__tests__/RobotOverview.test.tsx | 12 +- .../RobotOverviewOverflowMenu.test.tsx | 3 +- .../organisms/Desktop/Devices/hooks/index.ts | 5 - .../ModuleCalibrationOverflowMenu.tsx | 3 +- .../CalibrationDetails/OverflowMenu.tsx | 2 +- .../ModuleCalibrationOverflowMenu.test.tsx | 4 +- .../__tests__/OverflowMenu.test.tsx | 4 +- .../CalibrationHealthCheck.tsx | 2 +- .../__tests__/CalibrationHealthCheck.test.tsx | 4 +- .../RobotSettingsCalibration.test.tsx | 7 +- .../RobotSettingsCalibration/index.tsx | 2 +- .../DeviceDetailsDeckConfiguration.test.tsx | 6 +- .../DeviceDetailsDeckConfiguration/index.tsx | 3 +- .../organisms/EmergencyStop/EstopTakeover.tsx | 2 +- .../__tests__/EstopTakeover.test.tsx | 4 +- .../FirmwareUpdateTakeover.tsx | 2 +- .../__tests__/FirmwareUpdateTakeover.test.tsx | 4 +- .../LabwarePositionCheck/CheckItem.tsx | 2 +- .../LabwarePositionCheck/PickUpTip.tsx | 2 +- .../LabwarePositionCheck/ResultsSummary.tsx | 2 +- .../utils/doesPipetteVisitAllTipracks.ts | 8 +- .../ModuleCard/ModuleOverflowMenu.tsx | 7 +- .../__tests__/ModuleOverflowMenu.test.tsx | 9 +- .../ModuleCard/__tests__/hooks.test.tsx | 5 +- .../organisms/Navigation/NavigationMenu.tsx | 2 +- .../__tests__/NavigationMenu.test.tsx | 4 +- .../SelectAuthenticationType.tsx | 2 +- .../ODD/NetworkSettings/SetWifiCred.tsx | 2 +- .../ODD/NetworkSettings/SetWifiSsid.tsx | 2 +- .../SelectAuthenticationType.test.tsx | 4 +- .../PipetteRecalibrationODDWarning.tsx | 0 .../PipetteRecalibrationODDWarning.test.tsx | 0 .../PipetteRecalibrationODDWarning/index.ts | 1 + .../ProtocolSetupInstruments.tsx | 2 +- .../TouchScreenSleep.tsx | 2 +- .../RunningProtocolSkeleton.tsx | 1 + .../__tests__/ProtocolRunDetails.test.tsx | 6 +- .../Devices/ProtocolRunDetails/index.tsx | 6 +- .../pages/Desktop/Protocols/hooks/index.ts | 82 -------------- .../pages/ODD/InstrumentsDashboard/index.tsx | 2 +- .../NameRobot/__tests__/NameRobot.test.tsx | 4 +- app/src/pages/ODD/NameRobot/index.tsx | 2 +- .../pages/ODD/ProtocolDetails/Hardware.tsx | 2 +- app/src/pages/ODD/ProtocolDetails/Labware.tsx | 2 +- .../pages/ODD/ProtocolDetails/Parameters.tsx | 2 +- .../__tests__/Hardware.test.tsx | 4 +- .../__tests__/Labware.test.tsx | 4 +- .../__tests__/Parameters.test.tsx | 4 +- .../__tests__/ProtocolDetails.test.tsx | 4 +- app/src/pages/ODD/ProtocolDetails/index.tsx | 2 +- .../ODD/QuickTransferDetails/Hardware.tsx | 2 +- .../ODD/QuickTransferDetails/Labware.tsx | 2 +- .../__tests__/Hardware.test.tsx | 4 +- .../__tests__/Labware.test.tsx | 4 +- .../__tests__/RunningProtocol.test.tsx | 1 + .../useIsUnboxingFlowOngoing.test.tsx | 0 .../hooks => redux-resources/config}/index.ts | 0 .../config}/useIsUnboxingFlowOngoing.ts | 0 .../hooks/__tests__/useIsRobotBusy.test.ts | 15 +-- .../__tests__/useIsRobotViewable.test.tsx | 2 +- app/src/redux-resources/robots/hooks/index.ts | 2 + .../robots}/hooks/useIsRobotBusy.ts | 5 +- .../robots}/hooks/useIsRobotViewable.ts | 0 app/src/redux/config/selectors.ts | 9 +- .../resources/deck_configuration/hooks.tsx | 2 + .../useIsEstopNotDisengaged.test.tsx | 20 ++-- .../hooks/__tests__/useLights.test.tsx | 2 +- app/src/resources/devices/hooks/index.ts | 1 + .../devices/hooks/useIsEstopNotDisengaged.ts | 3 +- .../devices}/hooks/useLights.ts | 0 .../useIsLegacySessionInProgress.test.ts | 0 app/src/resources/legacy_sessions/index.ts | 1 + .../useIsLegacySessionInProgress.ts | 0 .../protocols/hooks/__fixtures__/index.ts} | 105 ++---------------- .../__tests__/useRequiredProtocolLabware.ts | 75 +++++++++++++ .../__tests__/useRunTimeParameters.test.tsx | 38 +++++++ app/src/resources/protocols/hooks/index.ts | 12 +- .../hooks/useRequiredProtocolHardware.ts | 27 +++++ .../hooks/useRequiredProtocolLabware.ts | 30 +++++ .../protocols/hooks/useRunTimeParameters.ts | 27 +++++ .../runs}/__tests__/useRunStatuses.test.tsx | 8 +- app/src/resources/runs/hooks.ts | 2 + app/src/resources/runs/index.ts | 1 + .../runs}/useRunStatuses.ts | 0 .../getCurrentOffsetForLabwareInLocation.ts | 0 app/src/transformations/analysis/index.ts | 1 + .../getPickUpTipCommandsWithPipette.ts | 0 .../transformations}/getTipracksVisited.ts | 0 .../commands/transformations/index.ts | 2 + package.json | 1 + scripts/eslint-plugin-opentrons/README.md | 53 +++++++++ .../eslint-plugin-opentrons/eslint.config.mjs | 9 ++ scripts/eslint-plugin-opentrons/lib/index.js | 7 ++ .../rules/no-imports-across-applications.js | 66 +++++++++++ .../rules/no-imports-up-the-tree-of-life.js | 56 ++++++++++ scripts/eslint-plugin-opentrons/package.json | 36 ++++++ yarn.lock | 4 + 123 files changed, 644 insertions(+), 349 deletions(-) create mode 100644 app/src/local-resources/config/constants.ts create mode 100644 app/src/local-resources/config/index.ts rename app/src/{pages/ODD/InstrumentsDashboard => organisms/ODD/PipetteRecalibrationODDWarning}/PipetteRecalibrationODDWarning.tsx (100%) rename app/src/{pages/ODD/InstrumentsDashboard => organisms/ODD/PipetteRecalibrationODDWarning}/__tests__/PipetteRecalibrationODDWarning.test.tsx (100%) create mode 100644 app/src/organisms/ODD/PipetteRecalibrationODDWarning/index.ts delete mode 100644 app/src/pages/Desktop/Protocols/hooks/index.ts rename app/src/{organisms/ODD/hooks => redux-resources/config}/__tests__/useIsUnboxingFlowOngoing.test.tsx (100%) rename app/src/{organisms/ODD/hooks => redux-resources/config}/index.ts (100%) rename app/src/{organisms/ODD/hooks => redux-resources/config}/useIsUnboxingFlowOngoing.ts (100%) rename app/src/{organisms/Desktop/Devices => redux-resources/robots}/hooks/__tests__/useIsRobotBusy.test.ts (95%) rename app/src/{organisms/Desktop/Devices => redux-resources/robots}/hooks/__tests__/useIsRobotViewable.test.tsx (97%) rename app/src/{organisms/Desktop/Devices => redux-resources/robots}/hooks/useIsRobotBusy.ts (92%) rename app/src/{organisms/Desktop/Devices => redux-resources/robots}/hooks/useIsRobotViewable.ts (100%) rename app/src/resources/devices/{ => hooks}/__tests__/useIsEstopNotDisengaged.test.tsx (85%) rename app/src/{organisms/Desktop/Devices => resources/devices}/hooks/__tests__/useLights.test.tsx (97%) rename app/src/{organisms/Desktop/Devices => resources/devices}/hooks/useLights.ts (100%) rename app/src/{organisms/Desktop/Devices/hooks => resources/legacy_sessions}/__tests__/useIsLegacySessionInProgress.test.ts (100%) create mode 100644 app/src/resources/legacy_sessions/index.ts rename app/src/{organisms/Desktop/Devices/hooks => resources/legacy_sessions}/useIsLegacySessionInProgress.ts (100%) rename app/src/{pages/Desktop/Protocols/hooks/__tests__/hooks.test.tsx => resources/protocols/hooks/__fixtures__/index.ts} (51%) create mode 100644 app/src/resources/protocols/hooks/__tests__/useRequiredProtocolLabware.ts create mode 100644 app/src/resources/protocols/hooks/__tests__/useRunTimeParameters.test.tsx create mode 100644 app/src/resources/protocols/hooks/useRequiredProtocolHardware.ts create mode 100644 app/src/resources/protocols/hooks/useRequiredProtocolLabware.ts create mode 100644 app/src/resources/protocols/hooks/useRunTimeParameters.ts rename app/src/{organisms/Desktop/Devices/hooks => resources/runs}/__tests__/useRunStatuses.test.tsx (96%) rename app/src/{organisms/Desktop/Devices/hooks => resources/runs}/useRunStatuses.ts (100%) rename app/src/{organisms/Desktop/Devices/ProtocolRun/utils => transformations/analysis}/getCurrentOffsetForLabwareInLocation.ts (100%) rename app/src/{organisms/Desktop/Devices/ProtocolRun/utils => transformations/commands/transformations}/getPickUpTipCommandsWithPipette.ts (100%) rename app/src/{organisms/Desktop/Devices/ProtocolRun/utils => transformations/commands/transformations}/getTipracksVisited.ts (100%) create mode 100644 scripts/eslint-plugin-opentrons/README.md create mode 100644 scripts/eslint-plugin-opentrons/eslint.config.mjs create mode 100644 scripts/eslint-plugin-opentrons/lib/index.js create mode 100644 scripts/eslint-plugin-opentrons/lib/rules/no-imports-across-applications.js create mode 100644 scripts/eslint-plugin-opentrons/lib/rules/no-imports-up-the-tree-of-life.js create mode 100644 scripts/eslint-plugin-opentrons/package.json diff --git a/.eslintrc.js b/.eslintrc.js index 4528c2fed2d..7de339ebde5 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -16,7 +16,7 @@ module.exports = { 'plugin:react/jsx-runtime', ], - plugins: ['react', 'react-hooks', 'json', 'testing-library'], + plugins: ['react', 'react-hooks', 'json', 'testing-library', 'opentrons'], rules: { camelcase: 'off', @@ -168,5 +168,25 @@ module.exports = { 'no-restricted-imports': 'off', }, }, + // Apply tree-of-life import requirements to app as errors + { + files: ['./app/src/**/*.@(ts|tsx)'], + rules: { + 'opentrons/no-imports-up-the-tree-of-life': 'error', + }, + }, + { + files: ['./protocol-designer/src/**/*.@(ts|tsx)'], + rules: { + 'opentrons/no-imports-up-the-tree-of-life': 'warn', + }, + }, + // apply application structure import requirements to app + { + files: ['./app/src/**/*.@(ts|tsx)'], + rules: { + 'opentrons/no-imports-across-applications': 'error', + }, + }, ], } diff --git a/app/src/App/OnDeviceDisplayApp.tsx b/app/src/App/OnDeviceDisplayApp.tsx index 396cfdb4484..1085428e906 100644 --- a/app/src/App/OnDeviceDisplayApp.tsx +++ b/app/src/App/OnDeviceDisplayApp.tsx @@ -51,7 +51,7 @@ import { updateConfigValue, } from '/app/redux/config' import { updateBrightness } from '/app/redux/shell' -import { SLEEP_NEVER_MS } from './constants' +import { SLEEP_NEVER_MS } from '/app/local-resources/config' import { useProtocolReceiptToast, useSoftwareUpdatePoll } from './hooks' import { ODDTopLevelRedirects } from './ODDTopLevelRedirects' diff --git a/app/src/App/constants.ts b/app/src/App/constants.ts index 73380a6da99..86dc3aa3128 100644 --- a/app/src/App/constants.ts +++ b/app/src/App/constants.ts @@ -1,6 +1,5 @@ // defines a constant for the nav bar width - used in run log component to calculate centering export const NAV_BAR_WIDTH = '5.625rem' -export const SLEEP_NEVER_MS = 604800000 // What is the maximum number of protocols one can pin? This many. export const MAXIMUM_PINNED_PROTOCOLS = 8 diff --git a/app/src/index.tsx b/app/src/index.tsx index 9640ffbd7ad..a668270ac17 100644 --- a/app/src/index.tsx +++ b/app/src/index.tsx @@ -1,3 +1,4 @@ +/* eslint-disable opentrons/no-imports-across-applications */ // client entry point and application manifest import ReactDom from 'react-dom/client' import { Provider } from 'react-redux' diff --git a/app/src/local-resources/config/constants.ts b/app/src/local-resources/config/constants.ts new file mode 100644 index 00000000000..1c7b0e2727d --- /dev/null +++ b/app/src/local-resources/config/constants.ts @@ -0,0 +1 @@ +export const SLEEP_NEVER_MS = 604800000 diff --git a/app/src/local-resources/config/index.ts b/app/src/local-resources/config/index.ts new file mode 100644 index 00000000000..f87cf0102a1 --- /dev/null +++ b/app/src/local-resources/config/index.ts @@ -0,0 +1 @@ +export * from './constants' diff --git a/app/src/organisms/Desktop/Devices/InstrumentsAndModules.tsx b/app/src/organisms/Desktop/Devices/InstrumentsAndModules.tsx index af7913eae37..75f1140efed 100644 --- a/app/src/organisms/Desktop/Devices/InstrumentsAndModules.tsx +++ b/app/src/organisms/Desktop/Devices/InstrumentsAndModules.tsx @@ -21,10 +21,9 @@ import { } from '@opentrons/components' import { PipetteRecalibrationWarning } from './PipetteCard/PipetteRecalibrationWarning' -import { useCurrentRunId } from '/app/resources/runs' -import { useIsFlex } from '/app/redux-resources/robots' +import { useCurrentRunId, useRunStatuses } from '/app/resources/runs' +import { useIsFlex, useIsRobotViewable } from '/app/redux-resources/robots' import { ModuleCard } from '/app/organisms/ModuleCard' -import { useIsRobotViewable, useRunStatuses } from './hooks' import { getShowPipetteCalibrationWarning } from '/app/transformations/instruments' import { PipetteCard } from './PipetteCard' import { FlexPipetteCard } from './PipetteCard/FlexPipetteCard' diff --git a/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/__tests__/ProtocolRunHeader.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/__tests__/ProtocolRunHeader.test.tsx index f9996372b8a..9cc357d0565 100644 --- a/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/__tests__/ProtocolRunHeader.test.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/__tests__/ProtocolRunHeader.test.tsx @@ -9,7 +9,7 @@ import { useModulesQuery } from '@opentrons/react-api-client' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { ProtocolRunHeader } from '..' -import { useIsRobotViewable } from '../../../hooks' +import { useIsRobotViewable } from '/app/redux-resources/robots' import { useRunStatus, useProtocolDetailsForRun, @@ -29,7 +29,6 @@ import { vi.mock('react-router-dom') vi.mock('@opentrons/react-api-client') vi.mock('/app/redux-resources/robots') -vi.mock('../../../hooks') vi.mock('/app/resources/runs') vi.mock('../RunHeaderModalContainer') vi.mock('../RunHeaderBannerContainer') diff --git a/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/index.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/index.tsx index 9de0be2702b..b9641fcc96b 100644 --- a/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/index.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader/index.tsx @@ -12,7 +12,7 @@ import { import { useModulesQuery } from '@opentrons/react-api-client' import { RUN_STATUS_IDLE, RUN_STATUS_RUNNING } from '@opentrons/api-client' -import { useIsRobotViewable } from '../../hooks' +import { useIsRobotViewable } from '/app/redux-resources/robots' import { RunProgressMeter } from '../../../RunProgressMeter' import { useNotifyRunQuery, diff --git a/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsMap.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsMap.test.tsx index db54010b559..023e73af09c 100644 --- a/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsMap.test.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupLiquids/__tests__/SetupLiquidsMap.test.tsx @@ -29,6 +29,7 @@ import { getProtocolModulesInfo, getLabwareRenderInfo, } from '/app/transformations/analysis' +/* eslint-disable-next-line opentrons/no-imports-across-applications */ import { mockProtocolModuleInfo } from '/app/organisms/ODD/ProtocolSetup/ProtocolSetupLabware/__fixtures__' import { mockFetchModulesSuccessActionPayloadModules } from '/app/redux/modules/__fixtures__' diff --git a/app/src/organisms/Desktop/Devices/ProtocolRun/SetupTipLengthCalibrationButton.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupTipLengthCalibrationButton.tsx index 11a7d65655e..bc4ad701f72 100644 --- a/app/src/organisms/Desktop/Devices/ProtocolRun/SetupTipLengthCalibrationButton.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/SetupTipLengthCalibrationButton.tsx @@ -23,6 +23,7 @@ import { TertiaryButton } from '/app/atoms/buttons' import { useAttachedPipettes } from '/app/resources/instruments' import { useRunHasStarted } from '/app/resources/runs' import { useDeckCalibrationData } from '../hooks' +// eslint-disable-next-line opentrons/no-imports-up-the-tree-of-life import { useDashboardCalibrateTipLength } from '/app/pages/Desktop/Devices/CalibrationDashboard/hooks/useDashboardCalibrateTipLength' import type { Mount } from '@opentrons/components' diff --git a/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupTipLengthCalibrationButton.test.tsx b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupTipLengthCalibrationButton.test.tsx index ed636c628d2..4dac2e3c8d5 100644 --- a/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupTipLengthCalibrationButton.test.tsx +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/__tests__/SetupTipLengthCalibrationButton.test.tsx @@ -11,6 +11,7 @@ import { mockDeckCalData } from '/app/redux/calibration/__fixtures__' import { mockTipLengthCalLauncher } from '../../hooks/__fixtures__/taskListFixtures' import { useDeckCalibrationData } from '../../hooks' import { useRunHasStarted } from '/app/resources/runs' +// eslint-disable-next-line opentrons/no-imports-up-the-tree-of-life import { useDashboardCalibrateTipLength } from '/app/pages/Desktop/Devices/CalibrationDashboard/hooks/useDashboardCalibrateTipLength' import { SetupTipLengthCalibrationButton } from '../SetupTipLengthCalibrationButton' diff --git a/app/src/organisms/Desktop/Devices/ProtocolRun/useLabwareOffsetForLabware.ts b/app/src/organisms/Desktop/Devices/ProtocolRun/useLabwareOffsetForLabware.ts index 5a88d626080..d2ba3c19058 100644 --- a/app/src/organisms/Desktop/Devices/ProtocolRun/useLabwareOffsetForLabware.ts +++ b/app/src/organisms/Desktop/Devices/ProtocolRun/useLabwareOffsetForLabware.ts @@ -1,8 +1,10 @@ import { getLoadedLabwareDefinitionsByUri } from '@opentrons/shared-data' -import { getCurrentOffsetForLabwareInLocation } from './utils/getCurrentOffsetForLabwareInLocation' import { getLabwareDefinitionUri } from '/app/transformations/protocols' -import { getLabwareOffsetLocation } from '/app/transformations/analysis' +import { + getLabwareOffsetLocation, + getCurrentOffsetForLabwareInLocation, +} from '/app/transformations/analysis' import { useNotifyRunQuery, useMostRecentCompletedAnalysis, diff --git a/app/src/organisms/Desktop/Devices/RecentProtocolRuns.tsx b/app/src/organisms/Desktop/Devices/RecentProtocolRuns.tsx index 6f31f0f7688..48d566be520 100644 --- a/app/src/organisms/Desktop/Devices/RecentProtocolRuns.tsx +++ b/app/src/organisms/Desktop/Devices/RecentProtocolRuns.tsx @@ -16,8 +16,12 @@ import { } from '@opentrons/components' import { HistoricalProtocolRun } from './HistoricalProtocolRun' -import { useIsRobotViewable, useRunStatuses } from './hooks' -import { useNotifyAllRunsQuery, useCurrentRunId } from '/app/resources/runs' +import { useIsRobotViewable } from '/app/redux-resources/robots' +import { + useNotifyAllRunsQuery, + useCurrentRunId, + useRunStatuses, +} from '/app/resources/runs' interface RecentProtocolRunsProps { robotName: string diff --git a/app/src/organisms/Desktop/Devices/RobotOverflowMenu.tsx b/app/src/organisms/Desktop/Devices/RobotOverflowMenu.tsx index 997bf0d4180..287c2ff032f 100644 --- a/app/src/organisms/Desktop/Devices/RobotOverflowMenu.tsx +++ b/app/src/organisms/Desktop/Devices/RobotOverflowMenu.tsx @@ -29,7 +29,7 @@ import { getTopPortalEl } from '/app/App/portal' import { ChooseProtocolSlideout } from '/app/organisms/Desktop/ChooseProtocolSlideout' import { useCurrentRunId } from '/app/resources/runs' import { ConnectionTroubleshootingModal } from './ConnectionTroubleshootingModal' -import { useIsRobotBusy } from './hooks' +import { useIsRobotBusy } from '/app/redux-resources/robots' import type { StyleProps } from '@opentrons/components' import type { DiscoveredRobot } from '/app/redux/discovery/types' diff --git a/app/src/organisms/Desktop/Devices/RobotOverview.tsx b/app/src/organisms/Desktop/Devices/RobotOverview.tsx index 73d9c4ef443..591cb34379c 100644 --- a/app/src/organisms/Desktop/Devices/RobotOverview.tsx +++ b/app/src/organisms/Desktop/Devices/RobotOverview.tsx @@ -23,7 +23,11 @@ import OT2_PNG from '/app/assets/images/OT2-R_HERO.png' import FLEX_PNG from '/app/assets/images/FLEX.png' import { ToggleButton } from '/app/atoms/buttons' import { getConfig } from '/app/redux/config' -import { useRobot } from '/app/redux-resources/robots' +import { + useRobot, + useIsRobotBusy, + useIsRobotViewable, +} from '/app/redux-resources/robots' import { CONNECTABLE, getRobotAddressesByName, @@ -34,7 +38,7 @@ import { UpdateRobotBanner } from '../UpdateRobotBanner' import { RobotStatusHeader } from './RobotStatusHeader' import { ReachableBanner } from './ReachableBanner' import { RobotOverviewOverflowMenu } from './RobotOverviewOverflowMenu' -import { useIsRobotBusy, useIsRobotViewable, useLights } from './hooks' +import { useLights } from '/app/resources/devices' import { CalibrationStatusBanner } from './CalibrationStatusBanner' import { ErrorRecoveryBanner, diff --git a/app/src/organisms/Desktop/Devices/RobotOverviewOverflowMenu.tsx b/app/src/organisms/Desktop/Devices/RobotOverviewOverflowMenu.tsx index b953a7ff9a9..3b6dda678ca 100644 --- a/app/src/organisms/Desktop/Devices/RobotOverviewOverflowMenu.tsx +++ b/app/src/organisms/Desktop/Devices/RobotOverviewOverflowMenu.tsx @@ -31,7 +31,7 @@ import { UNREACHABLE, CONNECTABLE, REACHABLE } from '/app/redux/discovery' import { checkShellUpdate } from '/app/redux/shell' import { restartRobot } from '/app/redux/robot-admin' import { home, ROBOT } from '/app/redux/robot-controls' -import { useIsRobotBusy } from './hooks' +import { useIsRobotBusy } from '/app/redux-resources/robots' import { useCanDisconnect } from '/app/resources/networking/hooks' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' import { useCurrentRunId } from '/app/resources/runs' diff --git a/app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsAdvanced.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsAdvanced.tsx index 337588d6f71..5d8ee694784 100644 --- a/app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsAdvanced.tsx +++ b/app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsAdvanced.tsx @@ -14,7 +14,6 @@ import { import { Divider } from '/app/atoms/structure' import { ToggleButton } from '/app/atoms/buttons' -import { useIsRobotBusy } from '../hooks' import { DeviceReset, DisplayRobotName, @@ -31,7 +30,11 @@ import { UsageSettings, UseOlderAspirateBehavior, } from './AdvancedTab' -import { useRobot, useIsFlex } from '/app/redux-resources/robots' +import { + useRobot, + useIsFlex, + useIsRobotBusy, +} from '/app/redux-resources/robots' import { updateSetting, getRobotSettings, diff --git a/app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsNetworking.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsNetworking.tsx index 3c76306099a..f51f90bbb03 100644 --- a/app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsNetworking.tsx +++ b/app/src/organisms/Desktop/Devices/RobotSettings/RobotSettingsNetworking.tsx @@ -28,8 +28,7 @@ import { OPENTRONS_USB, } from '/app/redux/discovery' import { fetchStatus, getNetworkInterfaces } from '/app/redux/networking' -import { useIsFlex } from '/app/redux-resources/robots' -import { useIsRobotBusy } from '../hooks' +import { useIsFlex, useIsRobotBusy } from '/app/redux-resources/robots' import { DisconnectModal } from './ConnectNetwork/DisconnectModal' import { SelectNetwork } from './SelectNetwork' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' diff --git a/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/UpdateRobotModal.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/UpdateRobotModal.tsx index 7814a0d7d4e..4b2225fe868 100644 --- a/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/UpdateRobotModal.tsx +++ b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/UpdateRobotModal.tsx @@ -30,7 +30,7 @@ import { } from '/app/redux/robot-update' import { ExternalLink } from '/app/atoms/Link/ExternalLink' import { ReleaseNotes } from '/app/molecules/ReleaseNotes' -import { useIsRobotBusy } from '../../hooks' +import { useIsRobotBusy } from '/app/redux-resources/robots' import { useDispatchStartRobotUpdate } from '/app/redux/robot-update/hooks' import type { State, Dispatch } from '/app/redux/types' diff --git a/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/__tests__/UpdateRobotModal.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/__tests__/UpdateRobotModal.test.tsx index 9eb328092eb..e77a0df9533 100644 --- a/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/__tests__/UpdateRobotModal.test.tsx +++ b/app/src/organisms/Desktop/Devices/RobotSettings/UpdateBuildroot/__tests__/UpdateRobotModal.test.tsx @@ -12,14 +12,14 @@ import { } from '/app/redux/robot-update' import { getDiscoverableRobotByName } from '/app/redux/discovery' import { UpdateRobotModal, RELEASE_NOTES_URL_BASE } from '../UpdateRobotModal' -import { useIsRobotBusy } from '../../../hooks' +import { useIsRobotBusy } from '/app/redux-resources/robots' import type { Store } from 'redux' import type { State } from '/app/redux/types' vi.mock('/app/redux/robot-update') vi.mock('/app/redux/discovery') -vi.mock('../../../hooks') +vi.mock('/app/redux-resources/robots') const render = (props: React.ComponentProps) => { return renderWithProviders(, { diff --git a/app/src/organisms/Desktop/Devices/RobotSettings/__tests__/RobotSettingsAdvanced.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/__tests__/RobotSettingsAdvanced.test.tsx index b2eb4a4dafa..ee6bb051f28 100644 --- a/app/src/organisms/Desktop/Devices/RobotSettings/__tests__/RobotSettingsAdvanced.test.tsx +++ b/app/src/organisms/Desktop/Devices/RobotSettings/__tests__/RobotSettingsAdvanced.test.tsx @@ -7,8 +7,7 @@ import '@testing-library/jest-dom/vitest' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { getShellUpdateState } from '/app/redux/shell' -import { useIsFlex } from '/app/redux-resources/robots' -import { useIsRobotBusy } from '../../hooks' +import { useIsRobotBusy, useIsFlex } from '/app/redux-resources/robots' import { DeviceReset, DisplayRobotName, @@ -39,7 +38,6 @@ vi.mock('/app/redux/shell/update', async importOriginal => { getShellUpdateState: vi.fn(), } }) -vi.mock('../../hooks') vi.mock('../AdvancedTab/DeviceReset') vi.mock('../AdvancedTab/DisplayRobotName') vi.mock('../AdvancedTab/EnableStatusLight') diff --git a/app/src/organisms/Desktop/Devices/RobotSettings/__tests__/RobotSettingsNetworking.test.tsx b/app/src/organisms/Desktop/Devices/RobotSettings/__tests__/RobotSettingsNetworking.test.tsx index 7c37ebd0b45..4918671b49e 100644 --- a/app/src/organisms/Desktop/Devices/RobotSettings/__tests__/RobotSettingsNetworking.test.tsx +++ b/app/src/organisms/Desktop/Devices/RobotSettings/__tests__/RobotSettingsNetworking.test.tsx @@ -15,8 +15,7 @@ import { import * as Networking from '/app/redux/networking' import { useCanDisconnect, useWifiList } from '/app/resources/networking/hooks' import * as Fixtures from '/app/redux/networking/__fixtures__' -import { useIsFlex } from '/app/redux-resources/robots' -import { useIsRobotBusy } from '../../hooks' +import { useIsFlex, useIsRobotBusy } from '/app/redux-resources/robots' import { DisconnectModal } from '../ConnectNetwork/DisconnectModal' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' @@ -30,7 +29,6 @@ vi.mock('/app/redux/networking') vi.mock('/app/redux/robot-api/selectors') vi.mock('/app/resources/networking/hooks') vi.mock('/app/redux-resources/robots') -vi.mock('../../hooks') vi.mock('../ConnectNetwork/DisconnectModal') vi.mock('/app/resources/devices/hooks/useIsEstopNotDisengaged') diff --git a/app/src/organisms/Desktop/Devices/__tests__/InstrumentsAndModules.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/InstrumentsAndModules.test.tsx index e055ace4d9a..4bfb1339d39 100644 --- a/app/src/organisms/Desktop/Devices/__tests__/InstrumentsAndModules.test.tsx +++ b/app/src/organisms/Desktop/Devices/__tests__/InstrumentsAndModules.test.tsx @@ -11,8 +11,7 @@ import { import { i18n } from '/app/i18n' import { mockMagneticModule } from '/app/redux/modules/__fixtures__' -import { useIsFlex } from '/app/redux-resources/robots' -import { useIsRobotViewable, useRunStatuses } from '../hooks' +import { useIsFlex, useIsRobotViewable } from '/app/redux-resources/robots' import { ModuleCard } from '/app/organisms/ModuleCard' import { InstrumentsAndModules } from '../InstrumentsAndModules' import { GripperCard } from '../GripperCard' @@ -21,7 +20,7 @@ import { FlexPipetteCard } from '../PipetteCard/FlexPipetteCard' import { PipetteRecalibrationWarning } from '../PipetteCard/PipetteRecalibrationWarning' import { getShowPipetteCalibrationWarning } from '/app/transformations/instruments' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' -import { useCurrentRunId } from '/app/resources/runs' +import { useCurrentRunId, useRunStatuses } from '/app/resources/runs' import type * as Components from '@opentrons/components' vi.mock('@opentrons/components', async importOriginal => { @@ -32,7 +31,6 @@ vi.mock('@opentrons/components', async importOriginal => { } }) vi.mock('@opentrons/react-api-client') -vi.mock('../hooks') vi.mock('../GripperCard') vi.mock('/app/organisms/ModuleCard') vi.mock('../PipetteCard') diff --git a/app/src/organisms/Desktop/Devices/__tests__/RecentProtocolRuns.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/RecentProtocolRuns.test.tsx index 3127fab7c1e..3b258d2c199 100644 --- a/app/src/organisms/Desktop/Devices/__tests__/RecentProtocolRuns.test.tsx +++ b/app/src/organisms/Desktop/Devices/__tests__/RecentProtocolRuns.test.tsx @@ -2,9 +2,9 @@ import { screen } from '@testing-library/react' import { describe, it, vi, beforeEach } from 'vitest' import '@testing-library/jest-dom/vitest' import { renderWithProviders } from '/app/__testing-utils__' -import { useNotifyAllRunsQuery } from '/app/resources/runs' +import { useNotifyAllRunsQuery, useRunStatuses } from '/app/resources/runs' import { i18n } from '/app/i18n' -import { useIsRobotViewable, useRunStatuses } from '../hooks' +import { useIsRobotViewable } from '/app/redux-resources/robots' import { RecentProtocolRuns } from '../RecentProtocolRuns' import { HistoricalProtocolRun } from '../HistoricalProtocolRun' @@ -12,7 +12,7 @@ import type { UseQueryResult } from 'react-query' import type { Runs } from '@opentrons/api-client' import type { AxiosError } from 'axios' -vi.mock('../hooks') +vi.mock('/app/redux-resources/robots') vi.mock('/app/resources/runs') vi.mock('../HistoricalProtocolRun') diff --git a/app/src/organisms/Desktop/Devices/__tests__/RobotOverflowMenu.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/RobotOverflowMenu.test.tsx index a157fe929c7..b3735e72a77 100644 --- a/app/src/organisms/Desktop/Devices/__tests__/RobotOverflowMenu.test.tsx +++ b/app/src/organisms/Desktop/Devices/__tests__/RobotOverflowMenu.test.tsx @@ -9,7 +9,7 @@ import { useCurrentRunId } from '/app/resources/runs' import { ChooseProtocolSlideout } from '/app/organisms/Desktop/ChooseProtocolSlideout' import { RobotOverflowMenu } from '../RobotOverflowMenu' import { useIsRobotOnWrongVersionOfSoftware } from '/app/redux/robot-update' -import { useIsRobotBusy } from '../hooks' +import { useIsRobotBusy } from '/app/redux-resources/robots' import { mockUnreachableRobot, @@ -20,6 +20,7 @@ vi.mock('/app/redux/robot-update/hooks') vi.mock('/app/resources/runs') vi.mock('/app/organisms/Desktop/ChooseProtocolSlideout') vi.mock('../hooks') +vi.mock('/app/redux-resources/robots') vi.mock('/app/resources/devices/hooks/useIsEstopNotDisengaged') const render = (props: React.ComponentProps) => { diff --git a/app/src/organisms/Desktop/Devices/__tests__/RobotOverview.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/RobotOverview.test.tsx index c8523f927e0..5d2513bec23 100644 --- a/app/src/organisms/Desktop/Devices/__tests__/RobotOverview.test.tsx +++ b/app/src/organisms/Desktop/Devices/__tests__/RobotOverview.test.tsx @@ -9,7 +9,7 @@ import * as DiscoveryClientFixtures from '../../../../../../discovery-client/src import { useAuthorization } from '@opentrons/react-api-client' import { i18n } from '/app/i18n' -import { useCurrentRunId } from '/app/resources/runs' +import { useCurrentRunId, useRunStatuses } from '/app/resources/runs' import { mockConnectableRobot } from '/app/redux/discovery/__fixtures__' import { getRobotUpdateDisplayInfo } from '/app/redux/robot-update' import { getConfig, useFeatureFlag } from '/app/redux/config' @@ -22,14 +22,13 @@ import { OPENTRONS_USB, ROBOT_MODEL_OT3, } from '/app/redux/discovery/constants' -import { useRobot } from '/app/redux-resources/robots' import { - useCalibrationTaskList, useIsRobotBusy, - useLights, - useRunStatuses, useIsRobotViewable, -} from '../hooks' + useRobot, +} from '/app/redux-resources/robots' +import { useLights } from '/app/resources/devices' +import { useCalibrationTaskList } from '../hooks' import { expectedBadDeckTaskList, expectedBadDeckAndPipetteOffsetTaskList, @@ -66,6 +65,7 @@ vi.mock('/app/redux/robot-update/selectors') vi.mock('/app/redux/config') vi.mock('/app/redux/discovery/selectors') vi.mock('/app/resources/runs') +vi.mock('/app/resources/devices') vi.mock('../hooks') vi.mock('/app/redux-resources/robots') vi.mock('../RobotStatusHeader') diff --git a/app/src/organisms/Desktop/Devices/__tests__/RobotOverviewOverflowMenu.test.tsx b/app/src/organisms/Desktop/Devices/__tests__/RobotOverviewOverflowMenu.test.tsx index 696786efb26..c4d384d0805 100644 --- a/app/src/organisms/Desktop/Devices/__tests__/RobotOverviewOverflowMenu.test.tsx +++ b/app/src/organisms/Desktop/Devices/__tests__/RobotOverviewOverflowMenu.test.tsx @@ -19,7 +19,7 @@ import { useCanDisconnect } from '/app/resources/networking/hooks' import { DisconnectModal } from '../RobotSettings/ConnectNetwork/DisconnectModal' import { ChooseProtocolSlideout } from '/app/organisms/Desktop/ChooseProtocolSlideout' import { useCurrentRunId } from '/app/resources/runs' -import { useIsRobotBusy } from '../hooks' +import { useIsRobotBusy } from '/app/redux-resources/robots' import { handleUpdateBuildroot } from '../RobotSettings/UpdateBuildroot' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' import { RobotOverviewOverflowMenu } from '../RobotOverviewOverflowMenu' @@ -34,6 +34,7 @@ vi.mock('/app/organisms/Desktop/ChooseProtocolSlideout') vi.mock('/app/resources/runs') vi.mock('../RobotSettings/UpdateBuildroot') vi.mock('/app/resources/devices/hooks/useIsEstopNotDisengaged') +vi.mock('/app/redux-resources/robots') const render = ( props: React.ComponentProps diff --git a/app/src/organisms/Desktop/Devices/hooks/index.ts b/app/src/organisms/Desktop/Devices/hooks/index.ts index 356a02cb4c4..41930662ad3 100644 --- a/app/src/organisms/Desktop/Devices/hooks/index.ts +++ b/app/src/organisms/Desktop/Devices/hooks/index.ts @@ -1,15 +1,10 @@ export * from './useDeckCalibrationData' export * from './useDownloadRunLog' export * from './useCalibrationTaskList' -export * from './useIsRobotBusy' -export * from './useIsRobotViewable' -export * from './useLights' export * from './useLPCSuccessToast' export * from './usePipetteOffsetCalibrations' export * from './usePipetteOffsetCalibration' export * from './useTipLengthCalibrations' export * from './useRunStartedOrLegacySessionInProgress' export * from './useTrackCreateProtocolRunEvent' -export * from './useRunStatuses' export * from './useSyncRobotClock' -export * from './useIsLegacySessionInProgress' diff --git a/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationOverflowMenu.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationOverflowMenu.tsx index 08d1ca68c4e..c44be36fa4a 100644 --- a/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationOverflowMenu.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/ModuleCalibrationOverflowMenu.tsx @@ -17,8 +17,7 @@ import { useOnClickOutside, } from '@opentrons/components' -import { useChainLiveCommands } from '/app/resources/runs' -import { useRunStatuses } from '/app/organisms/Desktop/Devices/hooks' +import { useChainLiveCommands, useRunStatuses } from '/app/resources/runs' import { getModulePrepCommands } from '/app/local-resources/modules' import { ModuleWizardFlows } from '/app/organisms/ModuleWizardFlows' import { getModuleTooHot } from '/app/transformations/modules' diff --git a/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/OverflowMenu.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/OverflowMenu.tsx index 3601bd51f22..ee95d1abf73 100644 --- a/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/OverflowMenu.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/OverflowMenu.tsx @@ -29,7 +29,7 @@ import { useTrackEvent, ANALYTICS_CALIBRATION_DATA_DOWNLOADED, } from '/app/redux/analytics' -import { useRunStatuses } from '/app/organisms/Desktop/Devices/hooks' +import { useRunStatuses } from '/app/resources/runs' import { PipetteWizardFlows } from '/app/organisms/PipetteWizardFlows' import { FLOWS } from '/app/organisms/PipetteWizardFlows/constants' import { useIsEstopNotDisengaged } from '/app/resources/devices' diff --git a/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationOverflowMenu.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationOverflowMenu.test.tsx index f60a7311bc1..47b5dbec249 100644 --- a/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationOverflowMenu.test.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/ModuleCalibrationOverflowMenu.test.tsx @@ -5,10 +5,9 @@ import { describe, it, expect, vi, beforeEach } from 'vitest' import { i18n } from '/app/i18n' import { renderWithProviders } from '/app/__testing-utils__' import { ModuleWizardFlows } from '/app/organisms/ModuleWizardFlows' -import { useChainLiveCommands } from '/app/resources/runs' +import { useChainLiveCommands, useRunStatuses } from '/app/resources/runs' import { mockThermocyclerGen2 } from '/app/redux/modules/__fixtures__' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' -import { useRunStatuses } from '/app/organisms/Desktop/Devices/hooks' import { ModuleCalibrationOverflowMenu } from '../ModuleCalibrationOverflowMenu' @@ -16,7 +15,6 @@ import type { Mount } from '@opentrons/components' vi.mock('@opentrons/react-api-client') vi.mock('/app/organisms/ModuleWizardFlows') -vi.mock('/app/organisms/Desktop/Devices/hooks') vi.mock('/app/resources/runs') vi.mock('/app/resources/devices/hooks/useIsEstopNotDisengaged') diff --git a/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/OverflowMenu.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/OverflowMenu.test.tsx index bf5c400fcf0..a0d2ff20096 100644 --- a/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/OverflowMenu.test.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationDetails/__tests__/OverflowMenu.test.tsx @@ -14,9 +14,10 @@ import { i18n } from '/app/i18n' import { mockDeckCalData } from '/app/redux/calibration/__fixtures__' import { PipetteWizardFlows } from '/app/organisms/PipetteWizardFlows' import { useCalibratePipetteOffset } from '/app/organisms/Desktop/CalibratePipetteOffset/useCalibratePipetteOffset' -import { useDeckCalibrationData, useRunStatuses } from '../../../Devices/hooks' +import { useDeckCalibrationData } from '../../../Devices/hooks' import { useAttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' import { mockAttachedPipetteInformation } from '/app/redux/pipettes/__fixtures__' +import { useRunStatuses } from '/app/resources/runs' import { mockPipetteOffsetCalibrationsResponse, mockTipLengthCalibrationResponse, @@ -68,6 +69,7 @@ vi.mock('../../../Devices/hooks') vi.mock('/app/organisms/PipetteWizardFlows') vi.mock('/app/resources/devices') vi.mock('/app/resources/instruments') +vi.mock('/app/resources/runs') const RUN_STATUSES = { isRunRunning: false, diff --git a/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationHealthCheck.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationHealthCheck.tsx index 5543070ef83..f61b87c81ce 100644 --- a/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationHealthCheck.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/CalibrationHealthCheck.tsx @@ -27,7 +27,7 @@ import * as Calibration from '/app/redux/calibration' import * as Config from '/app/redux/config' import * as Pipettes from '/app/redux/pipettes' import * as Sessions from '/app/redux/sessions' -import { useRunStatuses } from '../Devices/hooks' +import { useRunStatuses } from '/app/resources/runs' import { useAttachedPipettes, useAttachedPipetteCalibrations, diff --git a/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/CalibrationHealthCheck.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/CalibrationHealthCheck.test.tsx index 7b42bc7bdfb..ee965c9d042 100644 --- a/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/CalibrationHealthCheck.test.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/CalibrationHealthCheck.test.tsx @@ -19,7 +19,7 @@ import { mockTipLengthCalibration2, } from '/app/redux/calibration/tip-length/__fixtures__' import { mockAttachedPipette } from '/app/redux/pipettes/__fixtures__' -import { useRunStatuses } from '../../Devices/hooks' +import { useRunStatuses } from '/app/resources/runs' import { useAttachedPipettes, @@ -36,7 +36,7 @@ import type { vi.mock('/app/redux/analytics') vi.mock('/app/redux/config') vi.mock('/app/redux/pipettes') -vi.mock('../../Devices/hooks') +vi.mock('/app/resources/runs') vi.mock('/app/resources/instruments') vi.mock('/app/redux-resources/robots') diff --git a/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsCalibration.test.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsCalibration.test.tsx index d5ca36ad9c6..f883fcfe4c8 100644 --- a/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsCalibration.test.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/__tests__/RobotSettingsCalibration.test.tsx @@ -18,15 +18,13 @@ import { mockAttachedPipette, mockAttachedPipetteInformation, } from '/app/redux/pipettes/__fixtures__' -import { - usePipetteOffsetCalibrations, - useRunStatuses, -} from '/app/organisms/Desktop/Devices/hooks' +import { usePipetteOffsetCalibrations } from '/app/organisms/Desktop/Devices/hooks' import { useAttachedPipettes, useAttachedPipettesFromInstrumentsQuery, } from '/app/resources/instruments' import { useRobot, useIsFlex } from '/app/redux-resources/robots' +import { useRunStatuses } from '/app/resources/runs' import { CalibrationDataDownload } from '../CalibrationDataDownload' import { CalibrationHealthCheck } from '../CalibrationHealthCheck' @@ -53,6 +51,7 @@ vi.mock('/app/redux/robot-api/selectors') vi.mock('/app/redux-resources/robots') vi.mock('/app/resources/instruments') vi.mock('/app/organisms/Desktop/Devices/hooks') +vi.mock('/app/resources/runs') vi.mock('../CalibrationDataDownload') vi.mock('../CalibrationHealthCheck') vi.mock('../RobotSettingsDeckCalibration') diff --git a/app/src/organisms/Desktop/RobotSettingsCalibration/index.tsx b/app/src/organisms/Desktop/RobotSettingsCalibration/index.tsx index 5c93824c5ca..76e5d8f9171 100644 --- a/app/src/organisms/Desktop/RobotSettingsCalibration/index.tsx +++ b/app/src/organisms/Desktop/RobotSettingsCalibration/index.tsx @@ -21,7 +21,7 @@ import { Line } from '/app/atoms/structure' import { CalibrateDeck } from '../CalibrateDeck' import { CalibrationStatusCard } from '../CalibrationStatusCard' import { CheckCalibration } from '../CheckCalibration' -import { useRunStatuses } from '/app/organisms/Desktop/Devices/hooks' +import { useRunStatuses } from '/app/resources/runs' import { useAttachedPipettesFromInstrumentsQuery } from '/app/resources/instruments' import { useRobot, useIsFlex } from '/app/redux-resources/robots' import { HowCalibrationWorksModal } from '../HowCalibrationWorksModal' diff --git a/app/src/organisms/DeviceDetailsDeckConfiguration/__tests__/DeviceDetailsDeckConfiguration.test.tsx b/app/src/organisms/DeviceDetailsDeckConfiguration/__tests__/DeviceDetailsDeckConfiguration.test.tsx index 2456a9dfb24..16ef3db90a7 100644 --- a/app/src/organisms/DeviceDetailsDeckConfiguration/__tests__/DeviceDetailsDeckConfiguration.test.tsx +++ b/app/src/organisms/DeviceDetailsDeckConfiguration/__tests__/DeviceDetailsDeckConfiguration.test.tsx @@ -12,7 +12,8 @@ import { import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { useIsRobotViewable, useRunStatuses } from '../../Desktop/Devices/hooks' +import { useRunStatuses } from '/app/resources/runs' +import { useIsRobotViewable } from '/app/redux-resources/robots' import { DeckFixtureSetupInstructionsModal } from '../DeckFixtureSetupInstructionsModal' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' import { DeviceDetailsDeckConfiguration } from '../' @@ -36,7 +37,8 @@ vi.mock('@opentrons/components', async importOriginal => { }) vi.mock('@opentrons/react-api-client') vi.mock('../DeckFixtureSetupInstructionsModal') -vi.mock('../../Desktop/Devices/hooks') +vi.mock('/app/resources/runs') +vi.mock('/app/redux-resources/robots') vi.mock('/app/resources/maintenance_runs') vi.mock('/app/resources/devices/hooks/useIsEstopNotDisengaged') vi.mock('/app/resources/deck_configuration') diff --git a/app/src/organisms/DeviceDetailsDeckConfiguration/index.tsx b/app/src/organisms/DeviceDetailsDeckConfiguration/index.tsx index dcea75e58f7..1e3ef81960a 100644 --- a/app/src/organisms/DeviceDetailsDeckConfiguration/index.tsx +++ b/app/src/organisms/DeviceDetailsDeckConfiguration/index.tsx @@ -31,7 +31,8 @@ import { import { useNotifyCurrentMaintenanceRun } from '/app/resources/maintenance_runs' import { DeckFixtureSetupInstructionsModal } from './DeckFixtureSetupInstructionsModal' -import { useIsRobotViewable, useRunStatuses } from '../Desktop/Devices/hooks' +import { useRunStatuses } from '/app/resources/runs' +import { useIsRobotViewable } from '/app/redux-resources/robots' import { useIsEstopNotDisengaged } from '/app/resources/devices/hooks/useIsEstopNotDisengaged' import { useDeckConfigurationEditingTools, diff --git a/app/src/organisms/EmergencyStop/EstopTakeover.tsx b/app/src/organisms/EmergencyStop/EstopTakeover.tsx index 4792901caa4..5967edae75a 100644 --- a/app/src/organisms/EmergencyStop/EstopTakeover.tsx +++ b/app/src/organisms/EmergencyStop/EstopTakeover.tsx @@ -5,7 +5,7 @@ import { useEstopQuery } from '@opentrons/react-api-client' import { EstopPressedModal } from './EstopPressedModal' import { EstopMissingModal } from './EstopMissingModal' import { useEstopContext } from './hooks' -import { useIsUnboxingFlowOngoing } from '../ODD/hooks' +import { useIsUnboxingFlowOngoing } from '/app/redux-resources/config' import { getLocalRobot } from '/app/redux/discovery' import { PHYSICALLY_ENGAGED, diff --git a/app/src/organisms/EmergencyStop/__tests__/EstopTakeover.test.tsx b/app/src/organisms/EmergencyStop/__tests__/EstopTakeover.test.tsx index f50048f2cf4..3ff0503dc69 100644 --- a/app/src/organisms/EmergencyStop/__tests__/EstopTakeover.test.tsx +++ b/app/src/organisms/EmergencyStop/__tests__/EstopTakeover.test.tsx @@ -8,7 +8,7 @@ import { useEstopQuery } from '@opentrons/react-api-client' import { i18n } from '/app/i18n' import { EstopMissingModal } from '../EstopMissingModal' import { EstopPressedModal } from '../EstopPressedModal' -import { useIsUnboxingFlowOngoing } from '../../ODD/hooks' +import { useIsUnboxingFlowOngoing } from '/app/redux-resources/config' import { ENGAGED, LOGICALLY_ENGAGED, @@ -22,7 +22,7 @@ import { EstopTakeover } from '../EstopTakeover' vi.mock('@opentrons/react-api-client') vi.mock('../EstopMissingModal') vi.mock('../EstopPressedModal') -vi.mock('../../ODD/hooks') +vi.mock('/app/redux-resources/config') vi.mock('/app/redux/discovery') const mockPressed = { diff --git a/app/src/organisms/FirmwareUpdateModal/FirmwareUpdateTakeover.tsx b/app/src/organisms/FirmwareUpdateModal/FirmwareUpdateTakeover.tsx index ca5d0948ae5..4611fb9372b 100644 --- a/app/src/organisms/FirmwareUpdateModal/FirmwareUpdateTakeover.tsx +++ b/app/src/organisms/FirmwareUpdateModal/FirmwareUpdateTakeover.tsx @@ -8,7 +8,7 @@ import { } from '@opentrons/react-api-client' import { useNotifyCurrentMaintenanceRun } from '/app/resources/maintenance_runs' import { getTopPortalEl } from '/app/App/portal' -import { useIsUnboxingFlowOngoing } from '../ODD/hooks' +import { useIsUnboxingFlowOngoing } from '/app/redux-resources/config' import { UpdateInProgressModal } from './UpdateInProgressModal' import { UpdateNeededModal } from './UpdateNeededModal' import type { Subsystem, InstrumentData } from '@opentrons/api-client' diff --git a/app/src/organisms/FirmwareUpdateModal/__tests__/FirmwareUpdateTakeover.test.tsx b/app/src/organisms/FirmwareUpdateModal/__tests__/FirmwareUpdateTakeover.test.tsx index 6d619555834..ae70b8ab2db 100644 --- a/app/src/organisms/FirmwareUpdateModal/__tests__/FirmwareUpdateTakeover.test.tsx +++ b/app/src/organisms/FirmwareUpdateModal/__tests__/FirmwareUpdateTakeover.test.tsx @@ -11,7 +11,7 @@ import { import { i18n } from '/app/i18n' import { UpdateNeededModal } from '../UpdateNeededModal' import { UpdateInProgressModal } from '../UpdateInProgressModal' -import { useIsUnboxingFlowOngoing } from '../../ODD/hooks' +import { useIsUnboxingFlowOngoing } from '/app/redux-resources/config' import { FirmwareUpdateTakeover } from '../FirmwareUpdateTakeover' import { useNotifyCurrentMaintenanceRun } from '/app/resources/maintenance_runs' @@ -20,7 +20,7 @@ import type { BadPipette, PipetteData } from '@opentrons/api-client' vi.mock('@opentrons/react-api-client') vi.mock('../UpdateNeededModal') vi.mock('../UpdateInProgressModal') -vi.mock('../../ODD/hooks') +vi.mock('/app/redux-resources/config') vi.mock('/app/resources/maintenance_runs') const render = () => { diff --git a/app/src/organisms/LabwarePositionCheck/CheckItem.tsx b/app/src/organisms/LabwarePositionCheck/CheckItem.tsx index 995552ae415..9659319d24d 100644 --- a/app/src/organisms/LabwarePositionCheck/CheckItem.tsx +++ b/app/src/organisms/LabwarePositionCheck/CheckItem.tsx @@ -25,7 +25,7 @@ import { useSelector } from 'react-redux' import { getLabwareDef } from './utils/labware' import { getLabwareDefinitionsFromCommands } from '/app/molecules/Command/utils/getLabwareDefinitionsFromCommands' import { UnorderedList } from '/app/molecules/UnorderedList' -import { getCurrentOffsetForLabwareInLocation } from '../Desktop/Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation' +import { getCurrentOffsetForLabwareInLocation } from '/app/transformations/analysis' import { getIsOnDevice } from '/app/redux/config' import { getDisplayLocation } from './utils/getDisplayLocation' diff --git a/app/src/organisms/LabwarePositionCheck/PickUpTip.tsx b/app/src/organisms/LabwarePositionCheck/PickUpTip.tsx index 235cebf37d1..f93d2febe1b 100644 --- a/app/src/organisms/LabwarePositionCheck/PickUpTip.tsx +++ b/app/src/organisms/LabwarePositionCheck/PickUpTip.tsx @@ -19,7 +19,7 @@ import { RobotMotionLoader } from './RobotMotionLoader' import { PrepareSpace } from './PrepareSpace' import { JogToWell } from './JogToWell' import { UnorderedList } from '/app/molecules/UnorderedList' -import { getCurrentOffsetForLabwareInLocation } from '../Desktop/Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation' +import { getCurrentOffsetForLabwareInLocation } from '/app/transformations/analysis' import { TipConfirmation } from './TipConfirmation' import { getLabwareDef } from './utils/labware' import { getLabwareDefinitionsFromCommands } from '/app/molecules/Command/utils/getLabwareDefinitionsFromCommands' diff --git a/app/src/organisms/LabwarePositionCheck/ResultsSummary.tsx b/app/src/organisms/LabwarePositionCheck/ResultsSummary.tsx index 58f5f98785a..e4489cea914 100644 --- a/app/src/organisms/LabwarePositionCheck/ResultsSummary.tsx +++ b/app/src/organisms/LabwarePositionCheck/ResultsSummary.tsx @@ -37,7 +37,7 @@ import { } from '/app/redux/config' import { SmallButton } from '/app/atoms/buttons' import { LabwareOffsetTabs } from '/app/organisms/LabwareOffsetTabs' -import { getCurrentOffsetForLabwareInLocation } from '../Desktop/Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation' +import { getCurrentOffsetForLabwareInLocation } from '/app/transformations/analysis' import { getLabwareDefinitionsFromCommands } from '/app/molecules/Command/utils/getLabwareDefinitionsFromCommands' import { getDisplayLocation } from './utils/getDisplayLocation' diff --git a/app/src/organisms/LabwarePositionCheck/utils/doesPipetteVisitAllTipracks.ts b/app/src/organisms/LabwarePositionCheck/utils/doesPipetteVisitAllTipracks.ts index 30bbd8be9b4..f2f336ae0fd 100644 --- a/app/src/organisms/LabwarePositionCheck/utils/doesPipetteVisitAllTipracks.ts +++ b/app/src/organisms/LabwarePositionCheck/utils/doesPipetteVisitAllTipracks.ts @@ -1,12 +1,16 @@ import { getIsTiprack } from '@opentrons/shared-data' -import { getPickUpTipCommandsWithPipette } from '../../Desktop/Devices/ProtocolRun/utils/getPickUpTipCommandsWithPipette' -import { getTipracksVisited } from '../../Desktop/Devices/ProtocolRun/utils/getTipracksVisited' + import type { LoadedLabware, RunTimeCommand, LabwareDefinition2, } from '@opentrons/shared-data' +import { + getPickUpTipCommandsWithPipette, + getTipracksVisited, +} from '/app/transformations/commands' + export const doesPipetteVisitAllTipracks = ( pipetteId: string, labware: LoadedLabware[], diff --git a/app/src/organisms/ModuleCard/ModuleOverflowMenu.tsx b/app/src/organisms/ModuleCard/ModuleOverflowMenu.tsx index c55c302287d..d37be183b8d 100644 --- a/app/src/organisms/ModuleCard/ModuleOverflowMenu.tsx +++ b/app/src/organisms/ModuleCard/ModuleOverflowMenu.tsx @@ -17,11 +17,8 @@ import { TEMPERATURE_MODULE_TYPE, THERMOCYCLER_MODULE_TYPE, } from '@opentrons/shared-data' -import { useCurrentRunId } from '/app/resources/runs' -import { - useRunStatuses, - useIsLegacySessionInProgress, -} from '/app/organisms/Desktop/Devices/hooks' +import { useCurrentRunId, useRunStatuses } from '/app/resources/runs' +import { useIsLegacySessionInProgress } from '/app/resources/legacy_sessions' import { useIsFlex } from '/app/redux-resources/robots' import { useModuleOverflowMenu } from './hooks' diff --git a/app/src/organisms/ModuleCard/__tests__/ModuleOverflowMenu.test.tsx b/app/src/organisms/ModuleCard/__tests__/ModuleOverflowMenu.test.tsx index ed1500346e1..75701934e36 100644 --- a/app/src/organisms/ModuleCard/__tests__/ModuleOverflowMenu.test.tsx +++ b/app/src/organisms/ModuleCard/__tests__/ModuleOverflowMenu.test.tsx @@ -11,17 +11,14 @@ import { mockHeaterShaker, mockThermocyclerGen2, } from '/app/redux/modules/__fixtures__' -import { - useRunStatuses, - useIsLegacySessionInProgress, -} from '/app/organisms/Desktop/Devices/hooks' +import { useIsLegacySessionInProgress } from '/app/resources/legacy_sessions' import { useIsFlex } from '/app/redux-resources/robots' -import { useCurrentRunId } from '/app/resources/runs' +import { useCurrentRunId, useRunStatuses } from '/app/resources/runs' import { ModuleOverflowMenu } from '../ModuleOverflowMenu' import type { TemperatureStatus } from '@opentrons/api-client' -vi.mock('../../Desktop/Devices/hooks') +vi.mock('/app/resources/legacy_sessions') vi.mock('/app/redux-resources/robots') vi.mock('/app/resources/runs') diff --git a/app/src/organisms/ModuleCard/__tests__/hooks.test.tsx b/app/src/organisms/ModuleCard/__tests__/hooks.test.tsx index 4cdc85a2307..ce0f0450179 100644 --- a/app/src/organisms/ModuleCard/__tests__/hooks.test.tsx +++ b/app/src/organisms/ModuleCard/__tests__/hooks.test.tsx @@ -17,11 +17,12 @@ import { mockThermocycler, mockThermocyclerGen2, } from '/app/redux/modules/__fixtures__' -import { useIsRobotBusy, useRunStatuses } from '../../Desktop/Devices/hooks' +import { useIsRobotBusy } from '/app/redux-resources/robots' import { useCurrentRunId, useMostRecentCompletedAnalysis, + useRunStatuses, } from '/app/resources/runs' import { useLatchControls, @@ -34,7 +35,7 @@ import type { State } from '/app/redux/types' vi.mock('@opentrons/react-api-client') vi.mock('/app/resources/runs') -vi.mock('../../Desktop/Devices/hooks') +vi.mock('/app/redux-resources/robots') const mockCloseLatchHeaterShaker = { id: 'heatershaker_id', diff --git a/app/src/organisms/Navigation/NavigationMenu.tsx b/app/src/organisms/Navigation/NavigationMenu.tsx index 5d2a765d572..d2347bf52b0 100644 --- a/app/src/organisms/Navigation/NavigationMenu.tsx +++ b/app/src/organisms/Navigation/NavigationMenu.tsx @@ -17,7 +17,7 @@ import { } from '@opentrons/components' import { home, ROBOT } from '/app/redux/robot-controls' -import { useLights } from '../Desktop/Devices/hooks' +import { useLights } from '/app/resources/devices' import { getTopPortalEl } from '/app/App/portal' import { RestartRobotConfirmationModal } from './RestartRobotConfirmationModal' diff --git a/app/src/organisms/Navigation/__tests__/NavigationMenu.test.tsx b/app/src/organisms/Navigation/__tests__/NavigationMenu.test.tsx index fd1d9d03287..b40122cdd6b 100644 --- a/app/src/organisms/Navigation/__tests__/NavigationMenu.test.tsx +++ b/app/src/organisms/Navigation/__tests__/NavigationMenu.test.tsx @@ -5,7 +5,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { home } from '/app/redux/robot-controls' -import { useLights } from '../../Desktop/Devices/hooks' +import { useLights } from '/app/resources/devices' import { RestartRobotConfirmationModal } from '../RestartRobotConfirmationModal' import { NavigationMenu } from '../NavigationMenu' @@ -13,7 +13,7 @@ import type { NavigateFunction } from 'react-router-dom' vi.mock('/app/redux/robot-admin') vi.mock('/app/redux/robot-controls') -vi.mock('../../Desktop/Devices/hooks') +vi.mock('/app/resources/devices') vi.mock('../RestartRobotConfirmationModal') const mockNavigate = vi.fn() diff --git a/app/src/organisms/ODD/NetworkSettings/SelectAuthenticationType.tsx b/app/src/organisms/ODD/NetworkSettings/SelectAuthenticationType.tsx index b017af2a927..b918d48df5e 100644 --- a/app/src/organisms/ODD/NetworkSettings/SelectAuthenticationType.tsx +++ b/app/src/organisms/ODD/NetworkSettings/SelectAuthenticationType.tsx @@ -18,7 +18,7 @@ import { import { getLocalRobot } from '/app/redux/discovery' import { getNetworkInterfaces, fetchStatus } from '/app/redux/networking' -import { useIsUnboxingFlowOngoing } from '../hooks' +import { useIsUnboxingFlowOngoing } from '/app/redux-resources/config' import { AlternativeSecurityTypeModal } from './AlternativeSecurityTypeModal' import type { WifiSecurityType } from '@opentrons/api-client' diff --git a/app/src/organisms/ODD/NetworkSettings/SetWifiCred.tsx b/app/src/organisms/ODD/NetworkSettings/SetWifiCred.tsx index c7fd6914717..7d53b34f20c 100644 --- a/app/src/organisms/ODD/NetworkSettings/SetWifiCred.tsx +++ b/app/src/organisms/ODD/NetworkSettings/SetWifiCred.tsx @@ -19,7 +19,7 @@ import { } from '@opentrons/components' import { FullKeyboard } from '/app/atoms/SoftwareKeyboard' -import { useIsUnboxingFlowOngoing } from '../hooks' +import { useIsUnboxingFlowOngoing } from '/app/redux-resources/config' interface SetWifiCredProps { password: string diff --git a/app/src/organisms/ODD/NetworkSettings/SetWifiSsid.tsx b/app/src/organisms/ODD/NetworkSettings/SetWifiSsid.tsx index c537aa3dab6..d2ea891a254 100644 --- a/app/src/organisms/ODD/NetworkSettings/SetWifiSsid.tsx +++ b/app/src/organisms/ODD/NetworkSettings/SetWifiSsid.tsx @@ -13,7 +13,7 @@ import { } from '@opentrons/components' import { FullKeyboard } from '/app/atoms/SoftwareKeyboard' -import { useIsUnboxingFlowOngoing } from '../hooks' +import { useIsUnboxingFlowOngoing } from '/app/redux-resources/config' interface SetWifiSsidProps { errorMessage?: string | null diff --git a/app/src/organisms/ODD/NetworkSettings/__tests__/SelectAuthenticationType.test.tsx b/app/src/organisms/ODD/NetworkSettings/__tests__/SelectAuthenticationType.test.tsx index 4611d1be5f0..bfce05cc22d 100644 --- a/app/src/organisms/ODD/NetworkSettings/__tests__/SelectAuthenticationType.test.tsx +++ b/app/src/organisms/ODD/NetworkSettings/__tests__/SelectAuthenticationType.test.tsx @@ -6,7 +6,7 @@ import { afterEach, beforeEach, describe, it, vi } from 'vitest' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { getNetworkInterfaces, INTERFACE_WIFI } from '/app/redux/networking' -import { useIsUnboxingFlowOngoing } from '../../hooks' +import { useIsUnboxingFlowOngoing } from '/app/redux-resources/config' import { AlternativeSecurityTypeModal } from '../AlternativeSecurityTypeModal' import { SelectAuthenticationType } from '../SelectAuthenticationType' import { SetWifiCred } from '../SetWifiCred' @@ -20,7 +20,7 @@ vi.mock('../SetWifiCred') vi.mock('/app/redux/networking') vi.mock('/app/redux/discovery/selectors') vi.mock('../AlternativeSecurityTypeModal') -vi.mock('../../hooks') +vi.mock('/app/redux-resources/config') vi.mock('react-router-dom', async importOriginal => { const actual = await importOriginal() return { diff --git a/app/src/pages/ODD/InstrumentsDashboard/PipetteRecalibrationODDWarning.tsx b/app/src/organisms/ODD/PipetteRecalibrationODDWarning/PipetteRecalibrationODDWarning.tsx similarity index 100% rename from app/src/pages/ODD/InstrumentsDashboard/PipetteRecalibrationODDWarning.tsx rename to app/src/organisms/ODD/PipetteRecalibrationODDWarning/PipetteRecalibrationODDWarning.tsx diff --git a/app/src/pages/ODD/InstrumentsDashboard/__tests__/PipetteRecalibrationODDWarning.test.tsx b/app/src/organisms/ODD/PipetteRecalibrationODDWarning/__tests__/PipetteRecalibrationODDWarning.test.tsx similarity index 100% rename from app/src/pages/ODD/InstrumentsDashboard/__tests__/PipetteRecalibrationODDWarning.test.tsx rename to app/src/organisms/ODD/PipetteRecalibrationODDWarning/__tests__/PipetteRecalibrationODDWarning.test.tsx diff --git a/app/src/organisms/ODD/PipetteRecalibrationODDWarning/index.ts b/app/src/organisms/ODD/PipetteRecalibrationODDWarning/index.ts new file mode 100644 index 00000000000..822473abfc2 --- /dev/null +++ b/app/src/organisms/ODD/PipetteRecalibrationODDWarning/index.ts @@ -0,0 +1 @@ +export * from './PipetteRecalibrationODDWarning' diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupInstruments/ProtocolSetupInstruments.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupInstruments/ProtocolSetupInstruments.tsx index a6377b248bc..ffa946fc3b3 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupInstruments/ProtocolSetupInstruments.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupInstruments/ProtocolSetupInstruments.tsx @@ -12,7 +12,7 @@ import { } from '@opentrons/components' import { useInstrumentsQuery } from '@opentrons/react-api-client' import { ODDBackButton } from '/app/molecules/ODDBackButton' -import { PipetteRecalibrationODDWarning } from '/app/pages/ODD/InstrumentsDashboard/PipetteRecalibrationODDWarning' +import { PipetteRecalibrationODDWarning } from '/app/organisms/ODD/PipetteRecalibrationODDWarning' import { getShowPipetteCalibrationWarning } from '/app/transformations/instruments' import { useMostRecentCompletedAnalysis } from '/app/resources/runs' import { ProtocolInstrumentMountItem } from '../../../InstrumentMountItem' diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/TouchScreenSleep.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/TouchScreenSleep.tsx index 7a32cedb519..b657df16c29 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/TouchScreenSleep.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/TouchScreenSleep.tsx @@ -14,7 +14,7 @@ import { getOnDeviceDisplaySettings, updateConfigValue, } from '/app/redux/config' -import { SLEEP_NEVER_MS } from '/app/App/constants' +import { SLEEP_NEVER_MS } from '/app/local-resources/config' import type { Dispatch } from '/app/redux/types' import type { SetSettingOption } from './types' diff --git a/app/src/organisms/ODD/RunningProtocol/RunningProtocolSkeleton.tsx b/app/src/organisms/ODD/RunningProtocol/RunningProtocolSkeleton.tsx index d6bcc91ea21..f2427c6bbf4 100644 --- a/app/src/organisms/ODD/RunningProtocol/RunningProtocolSkeleton.tsx +++ b/app/src/organisms/ODD/RunningProtocol/RunningProtocolSkeleton.tsx @@ -12,6 +12,7 @@ import { PlayPauseButton } from './PlayPauseButton' import { StopButton } from './StopButton' import { Skeleton } from '/app/atoms/Skeleton' +// eslint-disable-next-line opentrons/no-imports-up-the-tree-of-life import type { ScreenOption } from '/app/pages/ODD/RunningProtocol' const CURRENT_RUNNING_PROTOCOL_COMMAND_SIZE = '99rem' // CurrentRunningProtocolCommand screen diff --git a/app/src/pages/Desktop/Devices/ProtocolRunDetails/__tests__/ProtocolRunDetails.test.tsx b/app/src/pages/Desktop/Devices/ProtocolRunDetails/__tests__/ProtocolRunDetails.test.tsx index 68f8406f489..d90285e6804 100644 --- a/app/src/pages/Desktop/Devices/ProtocolRunDetails/__tests__/ProtocolRunDetails.test.tsx +++ b/app/src/pages/Desktop/Devices/ProtocolRunDetails/__tests__/ProtocolRunDetails.test.tsx @@ -6,10 +6,7 @@ import { when } from 'vitest-when' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' import { mockConnectableRobot } from '/app/redux/discovery/__fixtures__' -import { - useRunStatuses, - useSyncRobotClock, -} from '/app/organisms/Desktop/Devices/hooks' +import { useSyncRobotClock } from '/app/organisms/Desktop/Devices/hooks' import { ProtocolRunHeader } from '/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader' import { ProtocolRunModuleControls } from '/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunModuleControls' import { ProtocolRunSetup } from '/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunSetup' @@ -20,6 +17,7 @@ import { useMostRecentCompletedAnalysis, useRunHasStarted, useModuleRenderInfoForProtocolById, + useRunStatuses, } from '/app/resources/runs' import { mockRobotSideAnalysis } from '/app/molecules/Command/__fixtures__' import { useRobot } from '/app/redux-resources/robots' diff --git a/app/src/pages/Desktop/Devices/ProtocolRunDetails/index.tsx b/app/src/pages/Desktop/Devices/ProtocolRunDetails/index.tsx index ffbc50f80b9..7ea4ceae7c6 100644 --- a/app/src/pages/Desktop/Devices/ProtocolRunDetails/index.tsx +++ b/app/src/pages/Desktop/Devices/ProtocolRunDetails/index.tsx @@ -22,10 +22,7 @@ import { useHoverTooltip, } from '@opentrons/components' import { ApiHostProvider } from '@opentrons/react-api-client' -import { - useRunStatuses, - useSyncRobotClock, -} from '/app/organisms/Desktop/Devices/hooks' +import { useSyncRobotClock } from '/app/organisms/Desktop/Devices/hooks' import { ProtocolRunHeader } from '/app/organisms/Desktop/Devices/ProtocolRun/ProtocolRunHeader' import { RunPreview } from '/app/organisms/Desktop/Devices/RunPreview' import { @@ -40,6 +37,7 @@ import { useMostRecentCompletedAnalysis, useRunHasStarted, useModuleRenderInfoForProtocolById, + useRunStatuses, } from '/app/resources/runs' import { OPENTRONS_USB } from '/app/redux/discovery' import { fetchProtocols } from '/app/redux/protocol-storage' diff --git a/app/src/pages/Desktop/Protocols/hooks/index.ts b/app/src/pages/Desktop/Protocols/hooks/index.ts deleted file mode 100644 index 2d4069e290c..00000000000 --- a/app/src/pages/Desktop/Protocols/hooks/index.ts +++ /dev/null @@ -1,82 +0,0 @@ -import last from 'lodash/last' -import { - useProtocolAnalysisAsDocumentQuery, - useProtocolQuery, -} from '@opentrons/react-api-client' - -import { - getLabwareSetupItemGroups, - useRequiredProtocolHardwareFromAnalysis, -} from '/app/transformations/commands' - -import type { - CompletedProtocolAnalysis, - RunTimeParameter, -} from '@opentrons/shared-data' -import type { - LabwareSetupItem, - ProtocolHardware, -} from '/app/transformations/commands' - -/** - * Returns an array of RunTimeParameters objects that are optional by the given protocol ID. - * - * @param {string} protocolId The ID of the protocol for which required hardware is being retrieved. - * @returns {RunTimeParameters[]} An array of RunTimeParameters objects that are required by the given protocol ID. - */ - -export const useRunTimeParameters = ( - protocolId: string -): RunTimeParameter[] => { - const { data: protocolData } = useProtocolQuery(protocolId) - const { data: analysis } = useProtocolAnalysisAsDocumentQuery( - protocolId, - last(protocolData?.data.analysisSummaries)?.id ?? null, - { enabled: protocolData != null } - ) - - return analysis?.runTimeParameters ?? [] -} - -/** - * Returns an array of ProtocolHardware objects that are required by the given protocol ID. - * - * @param {string} protocolId The ID of the protocol for which required hardware is being retrieved. - * @returns {ProtocolHardware[]} An array of ProtocolHardware objects that are required by the given protocol ID. - */ - -export const useRequiredProtocolHardware = ( - protocolId: string -): { requiredProtocolHardware: ProtocolHardware[]; isLoading: boolean } => { - const { data: protocolData } = useProtocolQuery(protocolId) - const { data: analysis } = useProtocolAnalysisAsDocumentQuery( - protocolId, - last(protocolData?.data.analysisSummaries)?.id ?? null, - { enabled: protocolData != null } - ) - - return useRequiredProtocolHardwareFromAnalysis(analysis ?? null) -} - -/** - * Returns an array of LabwareSetupItem objects that are required by the given protocol ID. - * - * @param {string} protocolId The ID of the protocol for which required labware setup items are being retrieved. - * @returns {LabwareSetupItem[]} An array of LabwareSetupItem objects that are required by the given protocol ID. - */ -export const useRequiredProtocolLabware = ( - protocolId: string -): LabwareSetupItem[] => { - const { data: protocolData } = useProtocolQuery(protocolId) - const { - data: mostRecentAnalysis, - } = useProtocolAnalysisAsDocumentQuery( - protocolId, - last(protocolData?.data.analysisSummaries)?.id ?? null, - { enabled: protocolData != null } - ) - const commands = - (mostRecentAnalysis as CompletedProtocolAnalysis)?.commands ?? [] - const { onDeckItems, offDeckItems } = getLabwareSetupItemGroups(commands) - return [...onDeckItems, ...offDeckItems] -} diff --git a/app/src/pages/ODD/InstrumentsDashboard/index.tsx b/app/src/pages/ODD/InstrumentsDashboard/index.tsx index 0b3d1ca00e1..321e2139610 100644 --- a/app/src/pages/ODD/InstrumentsDashboard/index.tsx +++ b/app/src/pages/ODD/InstrumentsDashboard/index.tsx @@ -6,7 +6,7 @@ import { Navigation } from '/app/organisms/Navigation' import { AttachedInstrumentMountItem } from '/app/organisms/InstrumentMountItem' import { GripperWizardFlows } from '/app/organisms/GripperWizardFlows' import { getShowPipetteCalibrationWarning } from '/app/transformations/instruments' -import { PipetteRecalibrationODDWarning } from './PipetteRecalibrationODDWarning' +import { PipetteRecalibrationODDWarning } from '/app/organisms/ODD/PipetteRecalibrationODDWarning' import type { GripperData, PipetteData } from '@opentrons/api-client' const FETCH_PIPETTE_CAL_POLL = 10000 diff --git a/app/src/pages/ODD/NameRobot/__tests__/NameRobot.test.tsx b/app/src/pages/ODD/NameRobot/__tests__/NameRobot.test.tsx index 22074b36d39..88e8c557160 100644 --- a/app/src/pages/ODD/NameRobot/__tests__/NameRobot.test.tsx +++ b/app/src/pages/ODD/NameRobot/__tests__/NameRobot.test.tsx @@ -10,7 +10,7 @@ import { getReachableRobots, getUnreachableRobots, } from '/app/redux/discovery' -import { useIsUnboxingFlowOngoing } from '/app/organisms/ODD/hooks' +import { useIsUnboxingFlowOngoing } from '/app/redux-resources/config' import { mockConnectableRobot, mockReachableRobot, @@ -23,7 +23,7 @@ import type { NavigateFunction } from 'react-router-dom' vi.mock('/app/redux/discovery/selectors') vi.mock('/app/redux/config') vi.mock('/app/redux/analytics') -vi.mock('/app/organisms/ODD/hooks') +vi.mock('/app/redux-resources/config') const mockNavigate = vi.fn() diff --git a/app/src/pages/ODD/NameRobot/index.tsx b/app/src/pages/ODD/NameRobot/index.tsx index 6649c573acf..b0162041963 100644 --- a/app/src/pages/ODD/NameRobot/index.tsx +++ b/app/src/pages/ODD/NameRobot/index.tsx @@ -35,7 +35,7 @@ import { useTrackEvent, ANALYTICS_RENAME_ROBOT } from '/app/redux/analytics' import { AlphanumericKeyboard } from '/app/atoms/SoftwareKeyboard' import { SmallButton } from '/app/atoms/buttons' import { StepMeter } from '/app/atoms/StepMeter' -import { useIsUnboxingFlowOngoing } from '/app/organisms/ODD/hooks' +import { useIsUnboxingFlowOngoing } from '/app/redux-resources/config' import { ConfirmRobotName } from '/app/organisms/ODD/NameRobot/ConfirmRobotName' import type { FieldError, Resolver } from 'react-hook-form' diff --git a/app/src/pages/ODD/ProtocolDetails/Hardware.tsx b/app/src/pages/ODD/ProtocolDetails/Hardware.tsx index 7d9bd16247d..ecf761edc92 100644 --- a/app/src/pages/ODD/ProtocolDetails/Hardware.tsx +++ b/app/src/pages/ODD/ProtocolDetails/Hardware.tsx @@ -28,7 +28,7 @@ import { useGripperDisplayName, usePipetteNameSpecs, } from '/app/local-resources/instruments' -import { useRequiredProtocolHardware } from '/app/pages/Desktop/Protocols/hooks' +import { useRequiredProtocolHardware } from '/app/resources/protocols' import { EmptySection } from './EmptySection' import type { TFunction } from 'i18next' diff --git a/app/src/pages/ODD/ProtocolDetails/Labware.tsx b/app/src/pages/ODD/ProtocolDetails/Labware.tsx index a8e765e0cff..51a9688c0ce 100644 --- a/app/src/pages/ODD/ProtocolDetails/Labware.tsx +++ b/app/src/pages/ODD/ProtocolDetails/Labware.tsx @@ -14,7 +14,7 @@ import { } from '@opentrons/components' import { getLabwareDisplayName } from '@opentrons/shared-data' -import { useRequiredProtocolLabware } from '/app/pages/Desktop/Protocols/hooks' +import { useRequiredProtocolLabware } from '/app/resources/protocols' import { EmptySection } from './EmptySection' const Table = styled('table')` diff --git a/app/src/pages/ODD/ProtocolDetails/Parameters.tsx b/app/src/pages/ODD/ProtocolDetails/Parameters.tsx index 4c880423b04..ef699837e6b 100644 --- a/app/src/pages/ODD/ProtocolDetails/Parameters.tsx +++ b/app/src/pages/ODD/ProtocolDetails/Parameters.tsx @@ -16,7 +16,7 @@ import { WRAP, } from '@opentrons/components' import { useToaster } from '/app/organisms/ToasterOven' -import { useRunTimeParameters } from '/app/pages/Desktop/Protocols/hooks' +import { useRunTimeParameters } from '/app/resources/protocols' import { EmptySection } from './EmptySection' import type { RunTimeParameter } from '@opentrons/shared-data' diff --git a/app/src/pages/ODD/ProtocolDetails/__tests__/Hardware.test.tsx b/app/src/pages/ODD/ProtocolDetails/__tests__/Hardware.test.tsx index 9ad2d010ece..a8f78c8a121 100644 --- a/app/src/pages/ODD/ProtocolDetails/__tests__/Hardware.test.tsx +++ b/app/src/pages/ODD/ProtocolDetails/__tests__/Hardware.test.tsx @@ -9,10 +9,10 @@ import { } from '@opentrons/shared-data' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { useRequiredProtocolHardware } from '/app/pages/Desktop/Protocols/hooks' +import { useRequiredProtocolHardware } from '/app/resources/protocols' import { Hardware } from '../Hardware' -vi.mock('/app/pages/Desktop/Protocols/hooks') +vi.mock('/app/resources/protocols') vi.mock('/app/redux/config') const MOCK_PROTOCOL_ID = 'mock_protocol_id' diff --git a/app/src/pages/ODD/ProtocolDetails/__tests__/Labware.test.tsx b/app/src/pages/ODD/ProtocolDetails/__tests__/Labware.test.tsx index 0308559048f..0c1aab61196 100644 --- a/app/src/pages/ODD/ProtocolDetails/__tests__/Labware.test.tsx +++ b/app/src/pages/ODD/ProtocolDetails/__tests__/Labware.test.tsx @@ -3,7 +3,7 @@ import { vi, it, describe, beforeEach, afterEach } from 'vitest' import { when } from 'vitest-when' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { useRequiredProtocolLabware } from '/app/pages/Desktop/Protocols/hooks' +import { useRequiredProtocolLabware } from '/app/resources/protocols' import { Labware } from '../Labware' import { @@ -15,7 +15,7 @@ import { import type { LabwareDefinition2 } from '@opentrons/shared-data' import { screen } from '@testing-library/react' -vi.mock('/app/pages/Desktop/Protocols/hooks') +vi.mock('/app/resources/protocols') const MOCK_PROTOCOL_ID = 'mock_protocol_id' diff --git a/app/src/pages/ODD/ProtocolDetails/__tests__/Parameters.test.tsx b/app/src/pages/ODD/ProtocolDetails/__tests__/Parameters.test.tsx index bc805733d25..f41115cf638 100644 --- a/app/src/pages/ODD/ProtocolDetails/__tests__/Parameters.test.tsx +++ b/app/src/pages/ODD/ProtocolDetails/__tests__/Parameters.test.tsx @@ -5,12 +5,12 @@ import { screen } from '@testing-library/react' import { i18n } from '/app/i18n' import { useToaster } from '/app/organisms/ToasterOven' import { renderWithProviders } from '/app/__testing-utils__' -import { useRunTimeParameters } from '/app/pages/Desktop/Protocols/hooks' +import { useRunTimeParameters } from '/app/resources/protocols' import { Parameters } from '../Parameters' import { mockRunTimeParameterData } from '/app/organisms/ODD/ProtocolSetup/__fixtures__' vi.mock('/app/organisms/ToasterOven') -vi.mock('/app/pages/Desktop/Protocols/hooks') +vi.mock('/app/resources/protocols') const render = (props: React.ComponentProps) => { return renderWithProviders(, { diff --git a/app/src/pages/ODD/ProtocolDetails/__tests__/ProtocolDetails.test.tsx b/app/src/pages/ODD/ProtocolDetails/__tests__/ProtocolDetails.test.tsx index 6a51ce910e9..dfe517c58aa 100644 --- a/app/src/pages/ODD/ProtocolDetails/__tests__/ProtocolDetails.test.tsx +++ b/app/src/pages/ODD/ProtocolDetails/__tests__/ProtocolDetails.test.tsx @@ -14,7 +14,7 @@ import { import { i18n } from '/app/i18n' import { useHardwareStatusText } from '/app/organisms/ODD/RobotDashboard/hooks' import { useOffsetCandidatesForAnalysis } from '/app/organisms/ApplyHistoricOffsets/hooks/useOffsetCandidatesForAnalysis' -import { useRunTimeParameters } from '/app/pages/Desktop/Protocols/hooks' +import { useRunTimeParameters } from '/app/resources/protocols' import { ProtocolSetupParameters } from '/app/organisms/ODD/ProtocolSetup/ProtocolSetupParameters' import { mockRunTimeParameterData } from '/app/organisms/ODD/ProtocolSetup/__fixtures__' import { formatTimeWithUtcLabel } from '/app/resources/runs' @@ -48,7 +48,7 @@ vi.mock('/app/organisms/ODD/RobotDashboard/hooks') vi.mock( '/app/organisms/ApplyHistoricOffsets/hooks/useOffsetCandidatesForAnalysis' ) -vi.mock('/app/pages/Desktop/Protocols/hooks') +vi.mock('/app/resources/protocols') vi.mock('/app/transformations/commands') vi.mock('../Deck') vi.mock('../Hardware') diff --git a/app/src/pages/ODD/ProtocolDetails/index.tsx b/app/src/pages/ODD/ProtocolDetails/index.tsx index aa228068fd4..0088c0c76d4 100644 --- a/app/src/pages/ODD/ProtocolDetails/index.tsx +++ b/app/src/pages/ODD/ProtocolDetails/index.tsx @@ -47,7 +47,7 @@ import { updateConfigValue, } from '/app/redux/config' import { useOffsetCandidatesForAnalysis } from '/app/organisms/ApplyHistoricOffsets/hooks/useOffsetCandidatesForAnalysis' -import { useRunTimeParameters } from '/app/pages/Desktop/Protocols/hooks' +import { useRunTimeParameters } from '/app/resources/protocols' import { useMissingProtocolHardware } from '/app/transformations/commands' import { ProtocolSetupParameters } from '/app/organisms/ODD/ProtocolSetup/ProtocolSetupParameters' import { Parameters } from './Parameters' diff --git a/app/src/pages/ODD/QuickTransferDetails/Hardware.tsx b/app/src/pages/ODD/QuickTransferDetails/Hardware.tsx index 4e91938b92f..163e9a2f560 100644 --- a/app/src/pages/ODD/QuickTransferDetails/Hardware.tsx +++ b/app/src/pages/ODD/QuickTransferDetails/Hardware.tsx @@ -26,7 +26,7 @@ import { useGripperDisplayName, usePipetteNameSpecs, } from '/app/local-resources/instruments' -import { useRequiredProtocolHardware } from '/app/pages/Desktop/Protocols/hooks' +import { useRequiredProtocolHardware } from '/app/resources/protocols' import type { ProtocolHardware, diff --git a/app/src/pages/ODD/QuickTransferDetails/Labware.tsx b/app/src/pages/ODD/QuickTransferDetails/Labware.tsx index c0f497d624a..c00113b6b1b 100644 --- a/app/src/pages/ODD/QuickTransferDetails/Labware.tsx +++ b/app/src/pages/ODD/QuickTransferDetails/Labware.tsx @@ -14,7 +14,7 @@ import { } from '@opentrons/components' import { getLabwareDisplayName } from '@opentrons/shared-data' -import { useRequiredProtocolLabware } from '/app/pages/Desktop/Protocols/hooks' +import { useRequiredProtocolLabware } from '/app/resources/protocols' const Table = styled('table')` ${TYPOGRAPHY.labelRegular} diff --git a/app/src/pages/ODD/QuickTransferDetails/__tests__/Hardware.test.tsx b/app/src/pages/ODD/QuickTransferDetails/__tests__/Hardware.test.tsx index 2287534a1a4..2b4af1a5178 100644 --- a/app/src/pages/ODD/QuickTransferDetails/__tests__/Hardware.test.tsx +++ b/app/src/pages/ODD/QuickTransferDetails/__tests__/Hardware.test.tsx @@ -9,11 +9,11 @@ import { } from '@opentrons/shared-data' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { useRequiredProtocolHardware } from '/app/pages/Desktop/Protocols/hooks' +import { useRequiredProtocolHardware } from '/app/resources/protocols' import { Hardware } from '../Hardware' vi.mock('/app/transformations/commands') -vi.mock('/app/pages/Desktop/Protocols/hooks') +vi.mock('/app/resources/protocols') vi.mock('/app/redux/config') const MOCK_PROTOCOL_ID = 'mock_protocol_id' diff --git a/app/src/pages/ODD/QuickTransferDetails/__tests__/Labware.test.tsx b/app/src/pages/ODD/QuickTransferDetails/__tests__/Labware.test.tsx index 00248a410a5..7dd49d4f279 100644 --- a/app/src/pages/ODD/QuickTransferDetails/__tests__/Labware.test.tsx +++ b/app/src/pages/ODD/QuickTransferDetails/__tests__/Labware.test.tsx @@ -3,7 +3,7 @@ import { vi, it, describe, beforeEach, afterEach } from 'vitest' import { when } from 'vitest-when' import { renderWithProviders } from '/app/__testing-utils__' import { i18n } from '/app/i18n' -import { useRequiredProtocolLabware } from '/app/pages/Desktop/Protocols/hooks' +import { useRequiredProtocolLabware } from '/app/resources/protocols' import { Labware } from '../Labware' import { @@ -15,7 +15,7 @@ import { import type { LabwareDefinition2 } from '@opentrons/shared-data' import { screen } from '@testing-library/react' -vi.mock('/app/pages/Desktop/Protocols/hooks') +vi.mock('/app/resources/protocols') const MOCK_PROTOCOL_ID = 'mock_protocol_id' diff --git a/app/src/pages/ODD/RunningProtocol/__tests__/RunningProtocol.test.tsx b/app/src/pages/ODD/RunningProtocol/__tests__/RunningProtocol.test.tsx index 9fe5e3194a8..9a441f2fed0 100644 --- a/app/src/pages/ODD/RunningProtocol/__tests__/RunningProtocol.test.tsx +++ b/app/src/pages/ODD/RunningProtocol/__tests__/RunningProtocol.test.tsx @@ -22,6 +22,7 @@ import { CurrentRunningProtocolCommand, RunningProtocolSkeleton, } from '/app/organisms/ODD/RunningProtocol' +/* eslint-disable-next-line opentrons/no-imports-across-applications */ import { mockUseAllCommandsResponseNonDeterministic } from '/app/organisms/Desktop/RunProgressMeter/__fixtures__' import { getLocalRobot } from '/app/redux/discovery' import { CancelingRunModal } from '/app/organisms/ODD/RunningProtocol/CancelingRunModal' diff --git a/app/src/organisms/ODD/hooks/__tests__/useIsUnboxingFlowOngoing.test.tsx b/app/src/redux-resources/config/__tests__/useIsUnboxingFlowOngoing.test.tsx similarity index 100% rename from app/src/organisms/ODD/hooks/__tests__/useIsUnboxingFlowOngoing.test.tsx rename to app/src/redux-resources/config/__tests__/useIsUnboxingFlowOngoing.test.tsx diff --git a/app/src/organisms/ODD/hooks/index.ts b/app/src/redux-resources/config/index.ts similarity index 100% rename from app/src/organisms/ODD/hooks/index.ts rename to app/src/redux-resources/config/index.ts diff --git a/app/src/organisms/ODD/hooks/useIsUnboxingFlowOngoing.ts b/app/src/redux-resources/config/useIsUnboxingFlowOngoing.ts similarity index 100% rename from app/src/organisms/ODD/hooks/useIsUnboxingFlowOngoing.ts rename to app/src/redux-resources/config/useIsUnboxingFlowOngoing.ts diff --git a/app/src/organisms/Desktop/Devices/hooks/__tests__/useIsRobotBusy.test.ts b/app/src/redux-resources/robots/hooks/__tests__/useIsRobotBusy.test.ts similarity index 95% rename from app/src/organisms/Desktop/Devices/hooks/__tests__/useIsRobotBusy.test.ts rename to app/src/redux-resources/robots/hooks/__tests__/useIsRobotBusy.test.ts index 472b96c3f00..de6a9401cbc 100644 --- a/app/src/organisms/Desktop/Devices/hooks/__tests__/useIsRobotBusy.test.ts +++ b/app/src/redux-resources/robots/hooks/__tests__/useIsRobotBusy.test.ts @@ -5,11 +5,6 @@ import { } from '@opentrons/react-api-client' import { vi, it, expect, describe, beforeEach, afterEach } from 'vitest' -import { - DISENGAGED, - NOT_PRESENT, - PHYSICALLY_ENGAGED, -} from '/app/organisms/EmergencyStop' import { useIsRobotBusy } from '../useIsRobotBusy' import { useIsFlex } from '/app/redux-resources/robots' import { useNotifyCurrentMaintenanceRun } from '/app/resources/maintenance_runs' @@ -26,9 +21,9 @@ vi.mock('/app/resources/maintenance_runs') const mockEstopStatus = { data: { - status: DISENGAGED, - leftEstopPhysicalStatus: DISENGAGED, - rightEstopPhysicalStatus: NOT_PRESENT, + status: 'disengaged', + leftEstopPhysicalStatus: 'disengaged', + rightEstopPhysicalStatus: 'notPresent', }, } @@ -149,7 +144,7 @@ describe('useIsRobotBusy', () => { const mockEngagedStatus = { data: { ...mockEstopStatus.data, - status: PHYSICALLY_ENGAGED, + status: 'physicallyEngaged', }, } vi.mocked(useEstopQuery).mockReturnValue({ data: mockEngagedStatus } as any) @@ -180,7 +175,7 @@ describe('useIsRobotBusy', () => { const mockEngagedStatus = { data: { ...mockEstopStatus.data, - status: PHYSICALLY_ENGAGED, + status: 'physicallyEngaged', }, } vi.mocked(useEstopQuery).mockReturnValue({ data: mockEngagedStatus } as any) diff --git a/app/src/organisms/Desktop/Devices/hooks/__tests__/useIsRobotViewable.test.tsx b/app/src/redux-resources/robots/hooks/__tests__/useIsRobotViewable.test.tsx similarity index 97% rename from app/src/organisms/Desktop/Devices/hooks/__tests__/useIsRobotViewable.test.tsx rename to app/src/redux-resources/robots/hooks/__tests__/useIsRobotViewable.test.tsx index ff3a6752800..8b659d25656 100644 --- a/app/src/organisms/Desktop/Devices/hooks/__tests__/useIsRobotViewable.test.tsx +++ b/app/src/redux-resources/robots/hooks/__tests__/useIsRobotViewable.test.tsx @@ -12,7 +12,7 @@ import { mockReachableRobot, mockUnreachableRobot, } from '/app/redux/discovery/__fixtures__' -import { useIsRobotViewable } from '..' +import { useIsRobotViewable } from '../useIsRobotViewable' import type { Store } from 'redux' vi.mock('/app/redux/discovery') diff --git a/app/src/redux-resources/robots/hooks/index.ts b/app/src/redux-resources/robots/hooks/index.ts index 43c2e9a805b..d3884071457 100644 --- a/app/src/redux-resources/robots/hooks/index.ts +++ b/app/src/redux-resources/robots/hooks/index.ts @@ -1,3 +1,5 @@ export * from './useRobot' export * from './useIsFlex' export * from './useRobotType' +export * from './useIsRobotViewable' +export * from './useIsRobotBusy' diff --git a/app/src/organisms/Desktop/Devices/hooks/useIsRobotBusy.ts b/app/src/redux-resources/robots/hooks/useIsRobotBusy.ts similarity index 92% rename from app/src/organisms/Desktop/Devices/hooks/useIsRobotBusy.ts rename to app/src/redux-resources/robots/hooks/useIsRobotBusy.ts index f43304eb724..53635028d6b 100644 --- a/app/src/organisms/Desktop/Devices/hooks/useIsRobotBusy.ts +++ b/app/src/redux-resources/robots/hooks/useIsRobotBusy.ts @@ -7,7 +7,6 @@ import { import { useNotifyCurrentMaintenanceRun } from '/app/resources/maintenance_runs' import { useNotifyAllRunsQuery } from '/app/resources/runs' -import { DISENGAGED } from '/app/organisms/EmergencyStop' import { useIsFlex } from '/app/redux-resources/robots' const ROBOT_STATUS_POLL_MS = 30000 @@ -50,7 +49,9 @@ export function useIsRobotBusy( isMaintenanceRunExisting || (allSessionsQueryResponse?.data?.data != null && allSessionsQueryResponse?.data?.data?.length !== 0) || - (isFlex && estopStatus?.data.status !== DISENGAGED && estopError == null) || + (isFlex && + estopStatus?.data.status !== 'disengaged' && + estopError == null) || isSubsystemUpdating ) } diff --git a/app/src/organisms/Desktop/Devices/hooks/useIsRobotViewable.ts b/app/src/redux-resources/robots/hooks/useIsRobotViewable.ts similarity index 100% rename from app/src/organisms/Desktop/Devices/hooks/useIsRobotViewable.ts rename to app/src/redux-resources/robots/hooks/useIsRobotViewable.ts diff --git a/app/src/redux/config/selectors.ts b/app/src/redux/config/selectors.ts index e13f8792039..53ba2c9d10f 100644 --- a/app/src/redux/config/selectors.ts +++ b/app/src/redux/config/selectors.ts @@ -1,5 +1,5 @@ import { createSelector } from 'reselect' -import { SLEEP_NEVER_MS } from '/app/App/constants' +import { SLEEP_NEVER_MS } from '/app/local-resources/config' import type { State } from '../types' import type { Config, @@ -9,9 +9,14 @@ import type { QuickTransfersOnDeviceSortKey, OnDeviceDisplaySettings, } from './types' -import type { SelectOption } from '/app/atoms/SelectField/Select' import type { ProtocolSort } from '/app/redux/protocol-storage' +export interface SelectOption { + value: string + label?: string + isDisabled?: boolean +} + export const getConfig = (state: State): Config | null => state.config export const getApplyHistoricOffsets: ( diff --git a/app/src/resources/deck_configuration/hooks.tsx b/app/src/resources/deck_configuration/hooks.tsx index 6e880e0d273..79a2e80124b 100644 --- a/app/src/resources/deck_configuration/hooks.tsx +++ b/app/src/resources/deck_configuration/hooks.tsx @@ -25,6 +25,8 @@ import type { } from '@opentrons/shared-data' import { useNotifyDeckConfigurationQuery } from './useNotifyDeckConfigurationQuery' +// TODO: return the arguments or something - don't instantiate ui in helper code like this +/* eslint-disable-next-line opentrons/no-imports-across-applications */ import { AddFixtureModal } from '/app/organisms/DeviceDetailsDeckConfiguration/AddFixtureModal' import { useUpdateDeckConfigurationMutation } from '@opentrons/react-api-client' diff --git a/app/src/resources/devices/__tests__/useIsEstopNotDisengaged.test.tsx b/app/src/resources/devices/hooks/__tests__/useIsEstopNotDisengaged.test.tsx similarity index 85% rename from app/src/resources/devices/__tests__/useIsEstopNotDisengaged.test.tsx rename to app/src/resources/devices/hooks/__tests__/useIsEstopNotDisengaged.test.tsx index dff94d57e64..189967e18dc 100644 --- a/app/src/resources/devices/__tests__/useIsEstopNotDisengaged.test.tsx +++ b/app/src/resources/devices/hooks/__tests__/useIsEstopNotDisengaged.test.tsx @@ -2,13 +2,7 @@ import { when } from 'vitest-when' import { describe, it, expect, vi, beforeEach } from 'vitest' import { useIsFlex } from '/app/redux-resources/robots' import { useEstopQuery } from '@opentrons/react-api-client' -import { - DISENGAGED, - NOT_PRESENT, - PHYSICALLY_ENGAGED, - LOGICALLY_ENGAGED, -} from '/app/organisms/EmergencyStop' -import { useIsEstopNotDisengaged } from '../hooks/useIsEstopNotDisengaged' +import { useIsEstopNotDisengaged } from '../useIsEstopNotDisengaged' vi.mock('@opentrons/react-api-client') vi.mock('/app/redux-resources/robots') @@ -16,27 +10,27 @@ vi.mock('/app/redux-resources/robots') const ROBOT_NAME = 'mockRobot' const mockEstopStatus = { data: { - status: DISENGAGED, - leftEstopPhysicalStatus: DISENGAGED, - rightEstopPhysicalStatus: NOT_PRESENT, + status: 'disengaged', + leftEstopPhysicalStatus: 'disengaged', + rightEstopPhysicalStatus: 'notPresent', }, } const mockPhysicallyEngagedStatus = { data: { ...mockEstopStatus.data, - status: PHYSICALLY_ENGAGED, + status: 'physicallyEngaged', }, } const mockLogicallyEngagedStatus = { data: { ...mockEstopStatus.data, - status: LOGICALLY_ENGAGED, + status: 'logicallyEngaged', }, } const mockNotPresentStatus = { data: { ...mockEstopStatus.data, - status: NOT_PRESENT, + status: 'notPresent', }, } diff --git a/app/src/organisms/Desktop/Devices/hooks/__tests__/useLights.test.tsx b/app/src/resources/devices/hooks/__tests__/useLights.test.tsx similarity index 97% rename from app/src/organisms/Desktop/Devices/hooks/__tests__/useLights.test.tsx rename to app/src/resources/devices/hooks/__tests__/useLights.test.tsx index 35fc2437826..7485a61f757 100644 --- a/app/src/organisms/Desktop/Devices/hooks/__tests__/useLights.test.tsx +++ b/app/src/resources/devices/hooks/__tests__/useLights.test.tsx @@ -9,7 +9,7 @@ import { useSetLightsMutation, } from '@opentrons/react-api-client' -import { useLights } from '..' +import { useLights } from '../useLights' import type { Store } from 'redux' import type { Mock } from 'vitest' diff --git a/app/src/resources/devices/hooks/index.ts b/app/src/resources/devices/hooks/index.ts index 5ce74c72c6e..49270b8c6bf 100644 --- a/app/src/resources/devices/hooks/index.ts +++ b/app/src/resources/devices/hooks/index.ts @@ -1 +1,2 @@ export * from './useIsEstopNotDisengaged' +export * from './useLights' diff --git a/app/src/resources/devices/hooks/useIsEstopNotDisengaged.ts b/app/src/resources/devices/hooks/useIsEstopNotDisengaged.ts index 5feeab664f1..55b70353602 100644 --- a/app/src/resources/devices/hooks/useIsEstopNotDisengaged.ts +++ b/app/src/resources/devices/hooks/useIsEstopNotDisengaged.ts @@ -1,6 +1,5 @@ import { useEstopQuery } from '@opentrons/react-api-client' import { useIsFlex } from '/app/redux-resources/robots' -import { DISENGAGED } from '/app/organisms/EmergencyStop' /** * Checks if the emergency stop is not disengaged. @@ -21,6 +20,6 @@ export const useIsEstopNotDisengaged = (robotName: string): boolean => { }) return isFlex - ? estopStatus?.data.status !== DISENGAGED || estopError !== null + ? estopStatus?.data.status !== 'disengaged' || estopError !== null : false } diff --git a/app/src/organisms/Desktop/Devices/hooks/useLights.ts b/app/src/resources/devices/hooks/useLights.ts similarity index 100% rename from app/src/organisms/Desktop/Devices/hooks/useLights.ts rename to app/src/resources/devices/hooks/useLights.ts diff --git a/app/src/organisms/Desktop/Devices/hooks/__tests__/useIsLegacySessionInProgress.test.ts b/app/src/resources/legacy_sessions/__tests__/useIsLegacySessionInProgress.test.ts similarity index 100% rename from app/src/organisms/Desktop/Devices/hooks/__tests__/useIsLegacySessionInProgress.test.ts rename to app/src/resources/legacy_sessions/__tests__/useIsLegacySessionInProgress.test.ts diff --git a/app/src/resources/legacy_sessions/index.ts b/app/src/resources/legacy_sessions/index.ts new file mode 100644 index 00000000000..377f9f635a4 --- /dev/null +++ b/app/src/resources/legacy_sessions/index.ts @@ -0,0 +1 @@ +export * from './useIsLegacySessionInProgress' diff --git a/app/src/organisms/Desktop/Devices/hooks/useIsLegacySessionInProgress.ts b/app/src/resources/legacy_sessions/useIsLegacySessionInProgress.ts similarity index 100% rename from app/src/organisms/Desktop/Devices/hooks/useIsLegacySessionInProgress.ts rename to app/src/resources/legacy_sessions/useIsLegacySessionInProgress.ts diff --git a/app/src/pages/Desktop/Protocols/hooks/__tests__/hooks.test.tsx b/app/src/resources/protocols/hooks/__fixtures__/index.ts similarity index 51% rename from app/src/pages/Desktop/Protocols/hooks/__tests__/hooks.test.tsx rename to app/src/resources/protocols/hooks/__fixtures__/index.ts index 3671538519c..860fd54fa84 100644 --- a/app/src/pages/Desktop/Protocols/hooks/__tests__/hooks.test.tsx +++ b/app/src/resources/protocols/hooks/__fixtures__/index.ts @@ -1,26 +1,8 @@ -import { vi, it, describe, expect, beforeEach, afterEach } from 'vitest' -import { renderHook } from '@testing-library/react' -import { when } from 'vitest-when' - -import { - useProtocolQuery, - useProtocolAnalysisAsDocumentQuery, -} from '@opentrons/react-api-client' import { fixtureTiprack300ul } from '@opentrons/shared-data' -import { useRequiredProtocolLabware, useRunTimeParameters } from '../index' - -import type { UseQueryResult } from 'react-query' -import type { - CompletedProtocolAnalysis, - LabwareDefinition2, -} from '@opentrons/shared-data' -import type { Protocol } from '@opentrons/api-client' +import type { LabwareDefinition2 } from '@opentrons/shared-data' -vi.mock('@opentrons/react-api-client') -vi.mock('/app/organisms/Desktop/Devices/hooks') - -const PROTOCOL_ID = 'fake_protocol_id' -const mockRTPData = [ +export const PROTOCOL_ID = 'fake_protocol_id' +export const MOCK_RTP_DATA = [ { displayName: 'Dry Run', variableName: 'DRYRUN', @@ -99,8 +81,8 @@ const mockRTPData = [ default: 'none', }, ] -const mockLabwareDef = fixtureTiprack300ul as LabwareDefinition2 -const PROTOCOL_ANALYSIS = { +export const mockLabwareDef = fixtureTiprack300ul as LabwareDefinition2 +export const PROTOCOL_ANALYSIS = { id: 'fake analysis', status: 'completed', labware: [], @@ -152,10 +134,10 @@ const PROTOCOL_ANALYSIS = { completedAt: 'fakeCompletedAtTimestamp', }, ], - runTimeParameters: mockRTPData, + runTimeParameters: MOCK_RTP_DATA, } as any -const NULL_COMMAND = { +export const NULL_COMMAND = { id: '97ba49a5-04f6-4f91-986a-04a0eb632882', createdAt: '2022-09-07T19:47:42.781065+00:00', commandType: 'loadPipette', @@ -172,78 +154,9 @@ const NULL_COMMAND = { startedAt: '2022-09-07T19:47:42.782665+00:00', completedAt: '2022-09-07T19:47:42.785061+00:00', } -const NULL_PROTOCOL_ANALYSIS = { + +export const NULL_PROTOCOL_ANALYSIS = { ...PROTOCOL_ANALYSIS, id: 'null_analysis', commands: [NULL_COMMAND], } as any - -describe('useRunTimeParameters', () => { - beforeEach(() => { - when(vi.mocked(useProtocolQuery)) - .calledWith(PROTOCOL_ID) - .thenReturn({ - data: { - data: { analysisSummaries: [{ id: PROTOCOL_ANALYSIS.id } as any] }, - }, - } as UseQueryResult) - when(vi.mocked(useProtocolAnalysisAsDocumentQuery)) - .calledWith(PROTOCOL_ID, PROTOCOL_ANALYSIS.id, { enabled: true }) - .thenReturn({ - data: PROTOCOL_ANALYSIS, - } as UseQueryResult) - }) - it('return RTP', () => { - const { result } = renderHook(() => useRunTimeParameters(PROTOCOL_ID)) - expect(result.current).toBe(mockRTPData) - }) -}) -describe('useRequiredProtocolLabware', () => { - beforeEach(() => { - when(vi.mocked(useProtocolQuery)) - .calledWith(PROTOCOL_ID) - .thenReturn({ - data: { - data: { analysisSummaries: [{ id: PROTOCOL_ANALYSIS.id } as any] }, - }, - } as UseQueryResult) - when(vi.mocked(useProtocolAnalysisAsDocumentQuery)) - .calledWith(PROTOCOL_ID, PROTOCOL_ANALYSIS.id, { enabled: true }) - .thenReturn({ - data: PROTOCOL_ANALYSIS, - } as UseQueryResult) - when(vi.mocked(useProtocolAnalysisAsDocumentQuery)) - .calledWith(PROTOCOL_ID, NULL_PROTOCOL_ANALYSIS.id, { enabled: true }) - .thenReturn({ - data: NULL_PROTOCOL_ANALYSIS, - } as UseQueryResult) - }) - - afterEach(() => { - vi.resetAllMocks() - }) - - it('should return LabwareSetupItem array', () => { - const { result } = renderHook(() => useRequiredProtocolLabware(PROTOCOL_ID)) - expect(result.current.length).toBe(1) - expect(result.current[0].nickName).toEqual('first labware nickname') - expect(result.current[0].definition.dimensions.xDimension).toBe(127.76) - expect(result.current[0].definition.metadata.displayName).toEqual( - '300ul Tiprack FIXTURE' - ) - }) - - it('should return empty array when there is no match with protocol id', () => { - when(vi.mocked(useProtocolQuery)) - .calledWith(PROTOCOL_ID) - .thenReturn({ - data: { - data: { - analysisSummaries: [{ id: NULL_PROTOCOL_ANALYSIS.id } as any], - }, - }, - } as UseQueryResult) - const { result } = renderHook(() => useRequiredProtocolLabware(PROTOCOL_ID)) - expect(result.current.length).toBe(0) - }) -}) diff --git a/app/src/resources/protocols/hooks/__tests__/useRequiredProtocolLabware.ts b/app/src/resources/protocols/hooks/__tests__/useRequiredProtocolLabware.ts new file mode 100644 index 00000000000..eff6eb034ad --- /dev/null +++ b/app/src/resources/protocols/hooks/__tests__/useRequiredProtocolLabware.ts @@ -0,0 +1,75 @@ +import { vi, it, describe, expect, beforeEach, afterEach } from 'vitest' +import { when } from 'vitest-when' +import { renderHook } from '@testing-library/react' + +import { + PROTOCOL_ID, + PROTOCOL_ANALYSIS, + NULL_PROTOCOL_ANALYSIS, +} from '../__fixtures__' + +import { + useProtocolQuery, + useProtocolAnalysisAsDocumentQuery, +} from '@opentrons/react-api-client' +import { useRequiredProtocolLabware } from '../useRequiredProtocolLabware' + +import type { UseQueryResult } from 'react-query' +import type { CompletedProtocolAnalysis } from '@opentrons/shared-data' +import type { Protocol } from '@opentrons/api-client' + +vi.mock('@opentrons/react-api-client') + +describe('useRequiredProtocolLabware', () => { + beforeEach(() => { + when(vi.mocked(useProtocolQuery)) + .calledWith(PROTOCOL_ID) + .thenReturn({ + data: { + data: { + analysisSummaries: [{ id: PROTOCOL_ANALYSIS.id } as any], + }, + }, + } as UseQueryResult) + when(vi.mocked(useProtocolAnalysisAsDocumentQuery)) + .calledWith(PROTOCOL_ID, PROTOCOL_ANALYSIS.id, { enabled: true }) + .thenReturn({ + data: PROTOCOL_ANALYSIS, + } as UseQueryResult) + when(vi.mocked(useProtocolAnalysisAsDocumentQuery)) + .calledWith(PROTOCOL_ID, NULL_PROTOCOL_ANALYSIS.id, { + enabled: true, + }) + .thenReturn({ + data: NULL_PROTOCOL_ANALYSIS, + } as UseQueryResult) + }) + + afterEach(() => { + vi.resetAllMocks() + }) + + it('should return LabwareSetupItem array', () => { + const { result } = renderHook(() => useRequiredProtocolLabware(PROTOCOL_ID)) + expect(result.current.length).toBe(1) + expect(result.current[0].nickName).toEqual('first labware nickname') + expect(result.current[0].definition.dimensions.xDimension).toBe(127.76) + expect(result.current[0].definition.metadata.displayName).toEqual( + '300ul Tiprack FIXTURE' + ) + }) + + it('should return empty array when there is no match with protocol id', () => { + when(vi.mocked(useProtocolQuery)) + .calledWith(PROTOCOL_ID) + .thenReturn({ + data: { + data: { + analysisSummaries: [{ id: NULL_PROTOCOL_ANALYSIS.id } as any], + }, + }, + } as UseQueryResult) + const { result } = renderHook(() => useRequiredProtocolLabware(PROTOCOL_ID)) + expect(result.current.length).toBe(0) + }) +}) diff --git a/app/src/resources/protocols/hooks/__tests__/useRunTimeParameters.test.tsx b/app/src/resources/protocols/hooks/__tests__/useRunTimeParameters.test.tsx new file mode 100644 index 00000000000..ec6b68ff0e7 --- /dev/null +++ b/app/src/resources/protocols/hooks/__tests__/useRunTimeParameters.test.tsx @@ -0,0 +1,38 @@ +import { vi, it, describe, expect, beforeEach } from 'vitest' +import { renderHook } from '@testing-library/react' +import { when } from 'vitest-when' + +import { + useProtocolQuery, + useProtocolAnalysisAsDocumentQuery, +} from '@opentrons/react-api-client' + +import { useRunTimeParameters } from '../useRunTimeParameters' +import { PROTOCOL_ID, PROTOCOL_ANALYSIS, MOCK_RTP_DATA } from '../__fixtures__' + +import type { UseQueryResult } from 'react-query' +import type { CompletedProtocolAnalysis } from '@opentrons/shared-data' +import type { Protocol } from '@opentrons/api-client' + +vi.mock('@opentrons/react-api-client') + +describe('useRunTimeParameters', () => { + beforeEach(() => { + when(vi.mocked(useProtocolQuery)) + .calledWith(PROTOCOL_ID) + .thenReturn({ + data: { + data: { analysisSummaries: [{ id: PROTOCOL_ANALYSIS.id } as any] }, + }, + } as UseQueryResult) + when(vi.mocked(useProtocolAnalysisAsDocumentQuery)) + .calledWith(PROTOCOL_ID, PROTOCOL_ANALYSIS.id, { enabled: true }) + .thenReturn({ + data: PROTOCOL_ANALYSIS, + } as UseQueryResult) + }) + it('return RTP', () => { + const { result } = renderHook(() => useRunTimeParameters(PROTOCOL_ID)) + expect(result.current).toBe(MOCK_RTP_DATA) + }) +}) diff --git a/app/src/resources/protocols/hooks/index.ts b/app/src/resources/protocols/hooks/index.ts index d71b9d0b57d..51801455ebe 100644 --- a/app/src/resources/protocols/hooks/index.ts +++ b/app/src/resources/protocols/hooks/index.ts @@ -1,5 +1,7 @@ -export { useLastRunProtocolCommand } from './useLastRunProtocolCommand' -export { useRunningStepCounts } from './useRunningStepCounts' -export { useCurrentProtocol } from './useCurrentProtocol' -export { useProtocolMetadata } from './useProtocolMetadata' -export type { StepCounts } from './useRunningStepCounts' +export * from './useLastRunProtocolCommand' +export * from './useRunningStepCounts' +export * from './useCurrentProtocol' +export * from './useProtocolMetadata' +export * from './useRequiredProtocolHardware' +export * from './useRequiredProtocolLabware' +export * from './useRunTimeParameters' diff --git a/app/src/resources/protocols/hooks/useRequiredProtocolHardware.ts b/app/src/resources/protocols/hooks/useRequiredProtocolHardware.ts new file mode 100644 index 00000000000..adfe2d70f72 --- /dev/null +++ b/app/src/resources/protocols/hooks/useRequiredProtocolHardware.ts @@ -0,0 +1,27 @@ +import last from 'lodash/last' +import { + useProtocolQuery, + useProtocolAnalysisAsDocumentQuery, +} from '@opentrons/react-api-client' +import { useRequiredProtocolHardwareFromAnalysis } from '/app/transformations/commands' +import type { ProtocolHardware } from '/app/transformations/commands' + +/** + * Returns an array of ProtocolHardware objects that are required by the given protocol ID. + * + * @param {string} protocolId The ID of the protocol for which required hardware is being retrieved. + * @returns {ProtocolHardware[]} An array of ProtocolHardware objects that are required by the given protocol ID. + */ + +export const useRequiredProtocolHardware = ( + protocolId: string +): { requiredProtocolHardware: ProtocolHardware[]; isLoading: boolean } => { + const { data: protocolData } = useProtocolQuery(protocolId) + const { data: analysis } = useProtocolAnalysisAsDocumentQuery( + protocolId, + last(protocolData?.data.analysisSummaries)?.id ?? null, + { enabled: protocolData != null } + ) + + return useRequiredProtocolHardwareFromAnalysis(analysis ?? null) +} diff --git a/app/src/resources/protocols/hooks/useRequiredProtocolLabware.ts b/app/src/resources/protocols/hooks/useRequiredProtocolLabware.ts new file mode 100644 index 00000000000..18c15b59db0 --- /dev/null +++ b/app/src/resources/protocols/hooks/useRequiredProtocolLabware.ts @@ -0,0 +1,30 @@ +import last from 'lodash/last' +import { + useProtocolAnalysisAsDocumentQuery, + useProtocolQuery, +} from '@opentrons/react-api-client' +import { getLabwareSetupItemGroups } from '/app/transformations/commands' +import type { CompletedProtocolAnalysis } from '@opentrons/shared-data' +import type { LabwareSetupItem } from '/app/transformations/commands' +/** + * Returns an array of LabwareSetupItem objects that are required by the given protocol ID. + * + * @param {string} protocolId The ID of the protocol for which required labware setup items are being retrieved. + * @returns {LabwareSetupItem[]} An array of LabwareSetupItem objects that are required by the given protocol ID. + */ +export const useRequiredProtocolLabware = ( + protocolId: string +): LabwareSetupItem[] => { + const { data: protocolData } = useProtocolQuery(protocolId) + const { + data: mostRecentAnalysis, + } = useProtocolAnalysisAsDocumentQuery( + protocolId, + last(protocolData?.data.analysisSummaries)?.id ?? null, + { enabled: protocolData != null } + ) + const commands = + (mostRecentAnalysis as CompletedProtocolAnalysis)?.commands ?? [] + const { onDeckItems, offDeckItems } = getLabwareSetupItemGroups(commands) + return [...onDeckItems, ...offDeckItems] +} diff --git a/app/src/resources/protocols/hooks/useRunTimeParameters.ts b/app/src/resources/protocols/hooks/useRunTimeParameters.ts new file mode 100644 index 00000000000..900fa4219e9 --- /dev/null +++ b/app/src/resources/protocols/hooks/useRunTimeParameters.ts @@ -0,0 +1,27 @@ +import last from 'lodash/last' +import { + useProtocolAnalysisAsDocumentQuery, + useProtocolQuery, +} from '@opentrons/react-api-client' + +import type { RunTimeParameter } from '@opentrons/shared-data' + +/** + * Returns an array of RunTimeParameters objects that are optional by the given protocol ID. + * + * @param {string} protocolId The ID of the protocol for which required hardware is being retrieved. + * @returns {RunTimeParameters[]} An array of RunTimeParameters objects that are required by the given protocol ID. + */ + +export const useRunTimeParameters = ( + protocolId: string +): RunTimeParameter[] => { + const { data: protocolData } = useProtocolQuery(protocolId) + const { data: analysis } = useProtocolAnalysisAsDocumentQuery( + protocolId, + last(protocolData?.data.analysisSummaries)?.id ?? null, + { enabled: protocolData != null } + ) + + return analysis?.runTimeParameters ?? [] +} diff --git a/app/src/organisms/Desktop/Devices/hooks/__tests__/useRunStatuses.test.tsx b/app/src/resources/runs/__tests__/useRunStatuses.test.tsx similarity index 96% rename from app/src/organisms/Desktop/Devices/hooks/__tests__/useRunStatuses.test.tsx rename to app/src/resources/runs/__tests__/useRunStatuses.test.tsx index ab37d965966..9c780c6efef 100644 --- a/app/src/organisms/Desktop/Devices/hooks/__tests__/useRunStatuses.test.tsx +++ b/app/src/resources/runs/__tests__/useRunStatuses.test.tsx @@ -14,10 +14,12 @@ import { } from '@opentrons/api-client' import { vi, it, expect, describe, beforeEach } from 'vitest' -import { useCurrentRunId, useRunStatus } from '/app/resources/runs' -import { useRunStatuses } from '..' +import { useCurrentRunId } from '../useCurrentRunId' +import { useRunStatus } from '../useRunStatus' +import { useRunStatuses } from '../useRunStatuses' -vi.mock('/app/resources/runs') +vi.mock('../useCurrentRunId') +vi.mock('../useRunStatus') describe('useRunStatuses', () => { beforeEach(() => { diff --git a/app/src/resources/runs/hooks.ts b/app/src/resources/runs/hooks.ts index c748ce12379..aeb05602714 100644 --- a/app/src/resources/runs/hooks.ts +++ b/app/src/resources/runs/hooks.ts @@ -13,6 +13,8 @@ import { setCommandIntent, } from './utils' import { getIsOnDevice } from '/app/redux/config' +// TODO: refactor this so helper code doesn't spawn UI +/* eslint-disable-next-line opentrons/no-imports-across-applications */ import { useMaintenanceRunTakeover } from '/app/organisms/TakeoverModal' import type { CreateCommand } from '@opentrons/shared-data' diff --git a/app/src/resources/runs/index.ts b/app/src/resources/runs/index.ts index 1146af8f5a0..5c97434dd31 100644 --- a/app/src/resources/runs/index.ts +++ b/app/src/resources/runs/index.ts @@ -28,3 +28,4 @@ export * from './useModuleRenderInfoForProtocolById' export * from './useModuleCalibrationStatus' export * from './useProtocolAnalysisErrors' export * from './useLastRunCommand' +export * from './useRunStatuses' diff --git a/app/src/organisms/Desktop/Devices/hooks/useRunStatuses.ts b/app/src/resources/runs/useRunStatuses.ts similarity index 100% rename from app/src/organisms/Desktop/Devices/hooks/useRunStatuses.ts rename to app/src/resources/runs/useRunStatuses.ts diff --git a/app/src/organisms/Desktop/Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation.ts b/app/src/transformations/analysis/getCurrentOffsetForLabwareInLocation.ts similarity index 100% rename from app/src/organisms/Desktop/Devices/ProtocolRun/utils/getCurrentOffsetForLabwareInLocation.ts rename to app/src/transformations/analysis/getCurrentOffsetForLabwareInLocation.ts diff --git a/app/src/transformations/analysis/index.ts b/app/src/transformations/analysis/index.ts index d7bddc9853e..ae657e5e494 100644 --- a/app/src/transformations/analysis/index.ts +++ b/app/src/transformations/analysis/index.ts @@ -5,3 +5,4 @@ export * from './getLabwareRenderInfo' export * from './liquids' export * from './getAttachedProtocolModuleMatches' export * from './getAnalysisStatus' +export * from './getCurrentOffsetForLabwareInLocation' diff --git a/app/src/organisms/Desktop/Devices/ProtocolRun/utils/getPickUpTipCommandsWithPipette.ts b/app/src/transformations/commands/transformations/getPickUpTipCommandsWithPipette.ts similarity index 100% rename from app/src/organisms/Desktop/Devices/ProtocolRun/utils/getPickUpTipCommandsWithPipette.ts rename to app/src/transformations/commands/transformations/getPickUpTipCommandsWithPipette.ts diff --git a/app/src/organisms/Desktop/Devices/ProtocolRun/utils/getTipracksVisited.ts b/app/src/transformations/commands/transformations/getTipracksVisited.ts similarity index 100% rename from app/src/organisms/Desktop/Devices/ProtocolRun/utils/getTipracksVisited.ts rename to app/src/transformations/commands/transformations/getTipracksVisited.ts diff --git a/app/src/transformations/commands/transformations/index.ts b/app/src/transformations/commands/transformations/index.ts index 8bf99cdc62a..9257ff1fb12 100644 --- a/app/src/transformations/commands/transformations/index.ts +++ b/app/src/transformations/commands/transformations/index.ts @@ -7,3 +7,5 @@ export * from './getNestedLabwareInfo' export * from './getLabwareLocation' export * from './getLocationInfoNames' export * from './getSlotLabwareDefinition' +export * from './getTipracksVisited' +export * from './getPickUpTipCommandsWithPipette' diff --git a/package.json b/package.json index f6e96c92987..5c088dd44f6 100755 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.cd77847.0" }, "devDependencies": { + "eslint-plugin-opentrons": "link:./scripts/eslint-plugin-opentrons", "@aws-sdk/client-cloudfront": "^3.582.0", "@aws-sdk/client-s3": "^3.582.0", "@aws-sdk/client-dynamodb": "^3.582.0", diff --git a/scripts/eslint-plugin-opentrons/README.md b/scripts/eslint-plugin-opentrons/README.md new file mode 100644 index 00000000000..0b5edc07077 --- /dev/null +++ b/scripts/eslint-plugin-opentrons/README.md @@ -0,0 +1,53 @@ +# eslint-plugin-app-import-structure + +Rules about importing different parts of the app code + +## Installation + +You'll first need to install [ESLint](https://eslint.org/): + +```sh +npm i eslint --save-dev +``` + +Next, install `eslint-plugin-app-import-structure`: + +```sh +npm install eslint-plugin-app-import-structure --save-dev +``` + +## Usage + +Add `app-import-structure` to the plugins section of your `.eslintrc` configuration file. You can omit the `eslint-plugin-` prefix: + +```json +{ + "plugins": ["app-import-structure"] +} +``` + +Then configure the rules you want to use under the rules section. + +```json +{ + "rules": { + "app-import-structure/rule-name": 2 + } +} +``` + +## Configurations + + + +TODO: Run eslint-doc-generator to generate the configs list (or delete this section if no configs are offered). + + + +## Rules + + + +TODO: Run eslint-doc-generator to generate the rules list. + + diff --git a/scripts/eslint-plugin-opentrons/eslint.config.mjs b/scripts/eslint-plugin-opentrons/eslint.config.mjs new file mode 100644 index 00000000000..b7629dc39c0 --- /dev/null +++ b/scripts/eslint-plugin-opentrons/eslint.config.mjs @@ -0,0 +1,9 @@ +import pluginJs from "@eslint/js"; +import pluginNode from "eslint-plugin-n"; +import eslintPlugin from "eslint-plugin-eslint-plugin"; + +export default [ + pluginJs.configs.recommended, + ...pluginNode.configs["flat/mixed-esm-and-cjs"], + eslintPlugin.configs["flat/recommended"] +]; diff --git a/scripts/eslint-plugin-opentrons/lib/index.js b/scripts/eslint-plugin-opentrons/lib/index.js new file mode 100644 index 00000000000..08e970bedf9 --- /dev/null +++ b/scripts/eslint-plugin-opentrons/lib/index.js @@ -0,0 +1,7 @@ +'use strict' + +// import all rules in lib/rules +module.exports.rules = { + 'no-imports-up-the-tree-of-life': require('./rules/no-imports-up-the-tree-of-life'), + 'no-imports-across-applications': require('./rules/no-imports-across-applications'), +} diff --git a/scripts/eslint-plugin-opentrons/lib/rules/no-imports-across-applications.js b/scripts/eslint-plugin-opentrons/lib/rules/no-imports-across-applications.js new file mode 100644 index 00000000000..b5950a4c6dd --- /dev/null +++ b/scripts/eslint-plugin-opentrons/lib/rules/no-imports-across-applications.js @@ -0,0 +1,66 @@ +const UI_PATH_FRAGMENTS = [ + '/organisms/', + '/molecules/', + '/atoms/', + '/pages/', + '/App/', + '/DesignTokens/', +] + +const isUI = path => + UI_PATH_FRAGMENTS.reduce( + (isUI, pathFragment) => (isUI |= path.includes(pathFragment)), + false + ) + +module.exports = { + meta: { + type: 'suggestion', + docs: { + description: 'Prevents imports of desktop from ODD and such', + }, + messages: { + avoidImportingDesktopFromODD: 'Avoid importing desktop from ODD', + avoidImportingDesktopFromShared: + 'Avoid importing desktop from shared structures', + avoidImportingODDFromDesktop: 'Avoid importing ODD from desktop', + avoidImportingODDFromShared: 'Avoid importing ODD from shared structures', + avoidImportingUIFromUtils: 'Avoid importing UI code from utility code', + }, + }, + create: context => ({ + ImportDeclaration: node => { + if ( + context.physicalFilename.includes('/ODD/') || + context.physicalFilename.includes('OnDeviceDisplayApp') + ) { + if (node.source.value.includes('/Desktop/')) { + context.report({ + messageId: 'avoidImportingDesktopFromODD', + node, + }) + } + } else if ( + context.physicalFilename.includes('/Desktop/') || + context.physicalFilename.includes('DesktopApp') + ) { + if (node.source.value.includes('/ODD/')) { + context.report({ + messageId: 'avoidImportingODDFromDesktop', + node, + }) + } + } else if (!isUI(context.physicalFilename)) { + if (isUI(node.source.value)) { + context.report({ messageId: 'avoidImportingUIFromUtils', node }) + } + } else if (isUI(context.physicalFilename)) { + if (node.source.value.includes('/Desktop/')) { + context.report({ messageId: 'avoidImportingDesktopFromShared', node }) + } else if (node.source.value.includes('/ODD/')) { + context.report({ messageId: 'avoidImportingODDFromShared', node }) + } + } + }, + }), +} diff --git a/scripts/eslint-plugin-opentrons/lib/rules/no-imports-up-the-tree-of-life.js b/scripts/eslint-plugin-opentrons/lib/rules/no-imports-up-the-tree-of-life.js new file mode 100644 index 00000000000..a8475e9eda5 --- /dev/null +++ b/scripts/eslint-plugin-opentrons/lib/rules/no-imports-up-the-tree-of-life.js @@ -0,0 +1,56 @@ +module.exports = { + meta: { + type: 'suggestion', + docs: { + description: + 'Prevents imports of pages from organisms, organisms from molecules, and molecules from atoms in the app', + }, + messages: { + avoidImportingPagesFromOrganisms: 'Avoid importing pages from organisms', + avoidImportingPagesFromMolecules: 'Avoid importing pages from molecules', + avoidImportingOrganismsFromMolecules: + 'Avoid importing organisms from molecules', + avoidImportingPagesFromAtoms: 'Avoid importing pages from atoms', + avoidImportingOrganismsFromAtoms: 'Avoid importing organisms from atoms', + avoidImportingMoleculesFromAtoms: 'Avoid importing organisms from atoms', + }, + }, + create: context => ({ + ImportDeclaration: node => { + if (context.physicalFilename.includes('/organisms/')) { + if (node.source.value.includes('/pages/')) { + context.report({ + messageId: 'avoidImportingPagesFromOrganisms', + node, + }) + } + } else if (context.physicalFilename.includes('/molecules/')) { + if (node.source.value.includes('/pages/')) { + context.report({ + messageId: 'avoidImportingPagesFromMolecules', + node, + }) + } else if (node.source.value.includes('/organisms/')) { + context.report({ + messageId: 'avoidImportingOrganismsFromMolecules', + node, + }) + } + } else if (context.physicalFilename.includes('/atoms/')) { + if (node.source.value.includes('/pages/')) { + context.report({ messageId: 'avoidImportingPagesFromAtoms', node }) + } else if (node.source.value.includes('/organisms/')) { + context.report({ + messageId: 'avoidImportingOrganismsFromAtoms', + node, + }) + } else if (node.source.value.includes('/molecules/')) { + context.report({ + messageId: 'avoidImportingMoleculesFromAtoms', + node, + }) + } + } + }, + }), +} diff --git a/scripts/eslint-plugin-opentrons/package.json b/scripts/eslint-plugin-opentrons/package.json new file mode 100644 index 00000000000..04e2e2a3e07 --- /dev/null +++ b/scripts/eslint-plugin-opentrons/package.json @@ -0,0 +1,36 @@ +{ + "name": "eslint-plugin-opentrons", + "version": "0.0.0", + "description": "Rules about importing different parts of the app code", + "keywords": ["eslint", "eslintplugin", "eslint-plugin"], + "author": "Opentrons Engineering", + "main": "./lib/index.js", + "exports": "./lib/index.js", + "files": ["lib"], + "scripts": { + "lint": "npm-run-all \"lint:*\"", + "lint:eslint-docs": "npm-run-all \"update:eslint-docs -- --check\"", + "lint:js": "eslint .", + "test": "mocha tests --recursive", + "update:eslint-docs": "eslint-doc-generator" + }, + "dependencies": { + "requireindex": "^1.2.0" + }, + "devDependencies": { + "eslint": "^9.0.0", + "@eslint/js": "^9.0.0", + "eslint-doc-generator": "^1.0.0", + "eslint-plugin-eslint-plugin": "^6.0.0", + "eslint-plugin-n": "^17.0.0", + "mocha": "^10.0.0", + "npm-run-all2": "^6.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": ">=8.57.0" + }, + "license": "MIT" +} diff --git a/yarn.lock b/yarn.lock index b49e439640d..161b5594197 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10801,6 +10801,10 @@ eslint-plugin-n@^16.6.2: resolve "^1.22.2" semver "^7.5.3" +"eslint-plugin-opentrons@link:./scripts/eslint-plugin-opentrons": + version "0.0.0" + uid "" + eslint-plugin-promise@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz#61485df2a359e03149fdafc0a68b0e030ad2ac45" From f261593e09d69e8cf1ab0a0bc006d7d8d269d749 Mon Sep 17 00:00:00 2001 From: Jamey Huffnagle Date: Mon, 30 Sep 2024 08:53:09 -0400 Subject: [PATCH 14/18] feat(app): Add more location options to drop tip flows (#16367) Closes EXEC-720 This commit adds predefined options for performing drop tip operations based on current deck configuration. This commit does not add support for "returning to labware". Unlike the current wizard's "choose location" behavior, when moving to a waste chute or trash bin, we have the ability to move the pipette in the Z-axis without risking any sort of collision, assuming the pipette with a tip attached doesn't collide into the waste chute/trash bin. Because we can't know the length of the tips on the pipette during an out-of-run drop tip flow, we take the conservative approach and assume a 1000ul tip is attached. When moving to a trash bin/waste chute, the robot always homes the z-axis (not the plungers), does the appropriate moveToAddressableArea, and then the drop tip/blowout aciton. Note that OT-2s currently only have one option, "Choose deck location", but still see the option selection screen. However, once "return to labware" support is added, this will change. --- .../localization/en/drop_tip_wizard.json | 5 + .../DropTipWizardFlows/DropTipWizard.tsx | 35 ++- .../DropTipWizardFlows/DropTipWizardFlows.tsx | 9 +- .../DropTipWizardFlows/__fixtures__/index.ts | 3 +- .../__tests__/DropTipWizard.test.tsx | 40 ++- .../__tests__/DropTipWizardHeader.test.tsx | 2 +- .../organisms/DropTipWizardFlows/constants.ts | 6 + .../__tests__/useDropTipLocations.test.ts | 89 +++++++ .../__tests__/useDropTipRouting.test.tsx | 10 +- .../DropTipWizardFlows/hooks/index.ts | 1 + .../hooks/useDropTipCommands.ts | 51 ++-- .../hooks/useDropTipLocations.ts | 79 ++++++ .../hooks/useDropTipRouting.tsx | 39 ++- .../steps/BeforeBeginning.tsx | 6 +- .../steps/ChooseDeckLocation.tsx | 89 +++++++ .../steps/ChooseLocation.tsx | 232 +++++++++++++----- .../{ => steps}/ConfirmPosition.tsx | 38 ++- .../steps/JogToPosition.tsx | 14 +- .../DropTipWizardFlows/steps/Success.tsx | 16 +- .../DropTipWizardFlows/steps/index.ts | 2 + app/src/organisms/DropTipWizardFlows/types.ts | 9 + .../shared/RecoveryInterventionModal.tsx | 9 +- 22 files changed, 636 insertions(+), 148 deletions(-) create mode 100644 app/src/organisms/DropTipWizardFlows/hooks/__tests__/useDropTipLocations.test.ts create mode 100644 app/src/organisms/DropTipWizardFlows/hooks/useDropTipLocations.ts create mode 100644 app/src/organisms/DropTipWizardFlows/steps/ChooseDeckLocation.tsx rename app/src/organisms/DropTipWizardFlows/{ => steps}/ConfirmPosition.tsx (75%) diff --git a/app/src/assets/localization/en/drop_tip_wizard.json b/app/src/assets/localization/en/drop_tip_wizard.json index d683b3bdabf..a03827ae2af 100644 --- a/app/src/assets/localization/en/drop_tip_wizard.json +++ b/app/src/assets/localization/en/drop_tip_wizard.json @@ -5,6 +5,7 @@ "blowout_liquid": "Blow out liquid", "cant_safely_drop_tips": "Can't safely drop tips", "choose_blowout_location": "Choose blowout location", + "choose_deck_location": "Choose deck location", "choose_drop_tip_location": "Choose tip-drop location", "confirm_blowout_location": "Is the pipette positioned where the liquids should be blown out?", "confirm_drop_tip_location": "Is the pipette positioned where the tips should be dropped?", @@ -41,5 +42,9 @@ "stand_back_dropping_tips": "Stand back, robot is dropping tips", "stand_back_robot_in_motion": "Stand back, robot is in motion", "start_over": "Start over", + "trash_bin_in_slot": "Trash bin in {{slot}}", + "waste_chute_in_slot": "Waste chute in {{slot}}", + "where_to_blowout": "Where do you want to blow out the aspirated liquid?", + "where_to_drop_tips": "Where do you want to drop the attached tips?", "yes_blow_out_liquid": "Yes, blow out liquid in labware" } diff --git a/app/src/organisms/DropTipWizardFlows/DropTipWizard.tsx b/app/src/organisms/DropTipWizardFlows/DropTipWizard.tsx index 55b4d73d9b7..a81891d2144 100644 --- a/app/src/organisms/DropTipWizardFlows/DropTipWizard.tsx +++ b/app/src/organisms/DropTipWizardFlows/DropTipWizard.tsx @@ -27,30 +27,40 @@ import { BLOWOUT_SUCCESS, CHOOSE_BLOWOUT_LOCATION, CHOOSE_DROP_TIP_LOCATION, + CHOOSE_LOCATION_OPTION, + CONFIRM_POSITION, DROP_TIP_SUCCESS, + DT_ROUTES, POSITION_AND_BLOWOUT, POSITION_AND_DROP_TIP, } from './constants' import { BeforeBeginning, ChooseLocation, + ChooseDeckLocation, JogToPosition, Success, + ConfirmPosition, + useConfirmPosition, } from './steps' import { InProgressModal } from '/app/molecules/InProgressModal' import { useDropTipErrorComponents } from './hooks' import { DropTipWizardHeader } from './DropTipWizardHeader' import { ErrorInfo } from './ErrorInfo' -import { ConfirmPosition, useConfirmPosition } from './ConfirmPosition' import type { DropTipWizardFlowsProps } from '.' import type { DropTipWizardContainerProps, IssuedCommandsType } from './types' -import type { UseDropTipRoutingResult, UseDropTipWithTypeResult } from './hooks' +import type { + UseDropTipRoutingResult, + UseDropTipWithTypeResult, + DropTipBlowoutLocationDetails, +} from './hooks' export type DropTipWizardProps = DropTipWizardFlowsProps & UseDropTipWithTypeResult & UseDropTipRoutingResult & { issuedCommandsType: IssuedCommandsType + dropTipCommandLocations: DropTipBlowoutLocationDetails[] } export function DropTipWizard(props: DropTipWizardProps): JSX.Element { @@ -170,6 +180,7 @@ export const DropTipWizardContent = ( const { activeMaintenanceRunId, currentStep, + currentRoute, errorDetails, isCommandInProgress, issuedCommandsType, @@ -192,7 +203,7 @@ export const DropTipWizardContent = ( return ( + return + } + + function buildChooseDeckLocation(): JSX.Element { + return } function buildJogToPosition(): JSX.Element { @@ -237,33 +252,35 @@ export const DropTipWizardContent = ( issuedCommandsType === 'setup' ) { return buildGettingReady() + } else if (confirmPositionUtils.isRobotPipetteMoving) { + return buildRobotPipetteMoving() } else if (isCommandInProgress || isExiting) { return buildRobotInMotion() - } else if (confirmPositionUtils.showConfirmPosition) { - return buildConfirmPosition() } else if (showConfirmExit) { return buildShowExitConfirmation() } else if (errorDetails != null) { return buildErrorScreen() } else if (currentStep === BEFORE_BEGINNING) { return buildBeforeBeginning() + } else if (currentStep === CHOOSE_LOCATION_OPTION) { + return buildChooseLocation() } else if ( currentStep === CHOOSE_BLOWOUT_LOCATION || currentStep === CHOOSE_DROP_TIP_LOCATION ) { - return buildChooseLocation() + return buildChooseDeckLocation() } else if ( currentStep === POSITION_AND_BLOWOUT || currentStep === POSITION_AND_DROP_TIP ) { return buildJogToPosition() + } else if (currentStep === CONFIRM_POSITION) { + return buildConfirmPosition() } else if ( currentStep === BLOWOUT_SUCCESS || currentStep === DROP_TIP_SUCCESS ) { return buildSuccess() - } else if (confirmPositionUtils.isRobotPipetteMoving) { - return buildRobotPipetteMoving() } else { return
UNASSIGNED STEP
} diff --git a/app/src/organisms/DropTipWizardFlows/DropTipWizardFlows.tsx b/app/src/organisms/DropTipWizardFlows/DropTipWizardFlows.tsx index 477d84dd4aa..5bfb143b9fb 100644 --- a/app/src/organisms/DropTipWizardFlows/DropTipWizardFlows.tsx +++ b/app/src/organisms/DropTipWizardFlows/DropTipWizardFlows.tsx @@ -1,6 +1,10 @@ import { useState } from 'react' -import { useDropTipRouting, useDropTipWithType } from './hooks' +import { + useDropTipLocations, + useDropTipRouting, + useDropTipWithType, +} from './hooks' import { DropTipWizard } from './DropTipWizard' import type { PipetteModelSpecs, RobotType } from '@opentrons/shared-data' @@ -52,8 +56,8 @@ export function DropTipWizardFlows( ...props, issuedCommandsType, }) - const dropTipRoutingUtils = useDropTipRouting(fixitCommandTypeUtils) + const dropTipCommandLocations = useDropTipLocations(props.robotType) // Prefetch to reduce client latency return ( ) } diff --git a/app/src/organisms/DropTipWizardFlows/__fixtures__/index.ts b/app/src/organisms/DropTipWizardFlows/__fixtures__/index.ts index 203037d3eb0..b2d9abfcf45 100644 --- a/app/src/organisms/DropTipWizardFlows/__fixtures__/index.ts +++ b/app/src/organisms/DropTipWizardFlows/__fixtures__/index.ts @@ -39,8 +39,9 @@ export const mockDropTipWizardContainerProps: DropTipWizardContainerProps = { closeFlow: MOCK_FN, confirmExit: MOCK_FN, goBackRunValid: MOCK_FN, - proceedToRoute: MOCK_FN, + proceedToRouteAndStep: MOCK_FN, toggleExitInitiated: MOCK_FN, proceedWithConditionalClose: MOCK_FN, proceed: MOCK_FN, + dropTipCommandLocations: [], } diff --git a/app/src/organisms/DropTipWizardFlows/__tests__/DropTipWizard.test.tsx b/app/src/organisms/DropTipWizardFlows/__tests__/DropTipWizard.test.tsx index b5fe7e78b37..d1108fc3c18 100644 --- a/app/src/organisms/DropTipWizardFlows/__tests__/DropTipWizard.test.tsx +++ b/app/src/organisms/DropTipWizardFlows/__tests__/DropTipWizard.test.tsx @@ -14,6 +14,9 @@ import { ChooseLocation, JogToPosition, Success, + ConfirmPosition, + useConfirmPosition, + ChooseDeckLocation, } from '../steps' import { ErrorInfo } from '../ErrorInfo' import { @@ -24,6 +27,8 @@ import { POSITION_AND_DROP_TIP, BLOWOUT_SUCCESS, DROP_TIP_SUCCESS, + CHOOSE_LOCATION_OPTION, + CONFIRM_POSITION, } from '../constants' vi.mock('/app/molecules/InProgressModal') @@ -49,6 +54,11 @@ describe('DropTipWizardContainer', () => { vi.mocked(DropTipWizardHeader).mockReturnValue(
MOCK WIZARD HEADER
) + + vi.mocked(useConfirmPosition).mockReturnValue({ + toggleIsRobotPipetteMoving: vi.fn(), + isRobotPipetteMoving: false, + }) }) it('renders the special-cased Fixit view if the issuedCommandsType is fixit without a header', () => { @@ -86,6 +96,10 @@ describe('DropTipWizardContent', () => { ) vi.mocked(BeforeBeginning).mockReturnValue(
MOCK_BEFORE_BEGINNING
) vi.mocked(ChooseLocation).mockReturnValue(
MOCK_CHOOSE_LOCATION
) + vi.mocked(ChooseDeckLocation).mockReturnValue( +
MOCK_CHOOSE_DECK_LOCATION
+ ) + vi.mocked(ConfirmPosition).mockReturnValue(
MOCK_CONFIRM_POSITION
) vi.mocked(JogToPosition).mockReturnValue(
MOCK_JOG_TO_POSITION
) vi.mocked(Success).mockReturnValue(
MOCK_SUCCESS
) vi.mocked(ErrorInfo).mockReturnValue(
MOCK_ERROR_INFO
) @@ -130,22 +144,40 @@ describe('DropTipWizardContent', () => { screen.getByText('MOCK_BEFORE_BEGINNING') }) - it(`renders ChooseLocation when currentStep is ${CHOOSE_BLOWOUT_LOCATION}`, () => { + it(`renders ChooseLocation when currentStep is ${CHOOSE_LOCATION_OPTION}`, () => { renderDropTipWizardContent({ ...props, - currentStep: CHOOSE_BLOWOUT_LOCATION, + currentStep: CHOOSE_LOCATION_OPTION, }) screen.getByText('MOCK_CHOOSE_LOCATION') }) - it(`renders ChooseLocation when currentStep is ${CHOOSE_DROP_TIP_LOCATION}`, () => { + it(`renders ChooseDeckLocation when currentStep is ${CHOOSE_BLOWOUT_LOCATION}`, () => { + renderDropTipWizardContent({ + ...props, + currentStep: CHOOSE_BLOWOUT_LOCATION, + }) + + screen.getByText('MOCK_CHOOSE_DECK_LOCATION') + }) + + it(`renders ChooseDeckLocation when currentStep is ${CHOOSE_DROP_TIP_LOCATION}`, () => { renderDropTipWizardContent({ ...props, currentStep: CHOOSE_DROP_TIP_LOCATION, }) - screen.getByText('MOCK_CHOOSE_LOCATION') + screen.getByText('MOCK_CHOOSE_DECK_LOCATION') + }) + + it(`renders ConfirmPosition when currentStep is ${CONFIRM_POSITION}`, () => { + renderDropTipWizardContent({ + ...props, + currentStep: CONFIRM_POSITION, + }) + + screen.getByText('MOCK_CONFIRM_POSITION') }) it(`renders JogToPosition when currentStep is ${POSITION_AND_BLOWOUT} `, () => { diff --git a/app/src/organisms/DropTipWizardFlows/__tests__/DropTipWizardHeader.test.tsx b/app/src/organisms/DropTipWizardFlows/__tests__/DropTipWizardHeader.test.tsx index 69325472a2e..306b3eff6d1 100644 --- a/app/src/organisms/DropTipWizardFlows/__tests__/DropTipWizardHeader.test.tsx +++ b/app/src/organisms/DropTipWizardFlows/__tests__/DropTipWizardHeader.test.tsx @@ -31,7 +31,7 @@ describe('DropTipWizardHeader', () => { it('renders appropriate copy and onClick behavior', () => { render(props) screen.getByText('Drop tips') - screen.getByText('Step 1 / 3') + screen.getByText('Step 1 / 5') }) }) diff --git a/app/src/organisms/DropTipWizardFlows/constants.ts b/app/src/organisms/DropTipWizardFlows/constants.ts index 39d75318824..1a28283171b 100644 --- a/app/src/organisms/DropTipWizardFlows/constants.ts +++ b/app/src/organisms/DropTipWizardFlows/constants.ts @@ -3,21 +3,27 @@ export const BEFORE_BEGINNING = 'BEFORE_BEGINNING' export const POSITION_AND_BLOWOUT = 'POSITION_AND_BLOWOUT' as const export const BLOWOUT_SUCCESS = 'BLOWOUT_SUCCESS' as const +export const CHOOSE_LOCATION_OPTION = 'CHOOSE_LOCATION_OPTION' as const export const CHOOSE_BLOWOUT_LOCATION = 'CHOOSE_BLOWOUT_LOCATION' as const export const CHOOSE_DROP_TIP_LOCATION = 'CHOOSE_DROP_TIP_LOCATION' as const export const POSITION_AND_DROP_TIP = 'POSITION_AND_DROP_TIP' as const +export const CONFIRM_POSITION = 'CONFIRM_POSITION' as const export const DROP_TIP_SUCCESS = 'DROP_TIP_SUCCESS' as const export const INVALID = 'INVALID' as const export const BEFORE_BEGINNING_STEPS = [BEFORE_BEGINNING] as const export const BLOWOUT_STEPS = [ + CHOOSE_LOCATION_OPTION, CHOOSE_BLOWOUT_LOCATION, POSITION_AND_BLOWOUT, + CONFIRM_POSITION, BLOWOUT_SUCCESS, ] as const export const DROP_TIP_STEPS = [ + CHOOSE_LOCATION_OPTION, CHOOSE_DROP_TIP_LOCATION, POSITION_AND_DROP_TIP, + CONFIRM_POSITION, DROP_TIP_SUCCESS, ] as const diff --git a/app/src/organisms/DropTipWizardFlows/hooks/__tests__/useDropTipLocations.test.ts b/app/src/organisms/DropTipWizardFlows/hooks/__tests__/useDropTipLocations.test.ts new file mode 100644 index 00000000000..ef52d17efed --- /dev/null +++ b/app/src/organisms/DropTipWizardFlows/hooks/__tests__/useDropTipLocations.test.ts @@ -0,0 +1,89 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest' +import { renderHook } from '@testing-library/react' + +import { OT2_ROBOT_TYPE, FLEX_ROBOT_TYPE } from '@opentrons/shared-data' + +import { useNotifyDeckConfigurationQuery } from '/app/resources/deck_configuration' +import { useDropTipLocations } from '../useDropTipLocations' + +const TRASH_BIN_FIXTURE = 'trashBinAdapter' +const WASTE_CHUTE_FIXTURE_1 = 'wasteChuteRightAdapterNoCover' +const TRASH_BIN_CUTOUT = 'cutoutA2' +const WASTE_CHUTE_CUTOUT = 'cutoutA3' +const SLOT_A2 = 'A2' +const SLOT_A3 = 'A3' +const CHOOSE_DECK_LOCATION = 'CHOOSE_DECK_LOCATION' +const TRASH_BIN_LOCATION = 'trash-bin' +const WASTE_CHUTE_LOCATION = 'waste-chute' +const DECK_LOCATION = 'deck' + +vi.mock('/app/resources/deck_configuration') + +describe('useDropTipLocations', () => { + const mockDeckConfigFlex = [ + { cutoutFixtureId: TRASH_BIN_FIXTURE, cutoutId: TRASH_BIN_CUTOUT }, + { cutoutFixtureId: WASTE_CHUTE_FIXTURE_1, cutoutId: WASTE_CHUTE_CUTOUT }, + ] + + beforeEach(() => { + vi.mocked(useNotifyDeckConfigurationQuery).mockReturnValue({ + data: mockDeckConfigFlex, + } as any) + }) + + it('should return correct locations for an OT-2', () => { + vi.mocked(useNotifyDeckConfigurationQuery).mockReturnValue({ + data: [], + } as any) + + const { result } = renderHook(() => useDropTipLocations(OT2_ROBOT_TYPE)) + + expect(result.current).toEqual([ + { location: DECK_LOCATION, slotName: CHOOSE_DECK_LOCATION }, + ]) + }) + + it('should return correct locations for a Flex', () => { + const { result } = renderHook(() => useDropTipLocations(FLEX_ROBOT_TYPE)) + + expect(result.current).toEqual([ + { location: TRASH_BIN_LOCATION, slotName: SLOT_A2 }, + { location: WASTE_CHUTE_LOCATION, slotName: SLOT_A3 }, + { location: DECK_LOCATION, slotName: CHOOSE_DECK_LOCATION }, + ]) + }) + + it('should handle missing addressable areas for a Flex', () => { + const { result } = renderHook(() => useDropTipLocations(FLEX_ROBOT_TYPE)) + + expect(result.current).toEqual([ + { location: TRASH_BIN_LOCATION, slotName: SLOT_A2 }, + { location: WASTE_CHUTE_LOCATION, slotName: SLOT_A3 }, + { location: DECK_LOCATION, slotName: CHOOSE_DECK_LOCATION }, + ]) + }) + + it('should handle an empty deck configuration', () => { + vi.mocked(useNotifyDeckConfigurationQuery).mockReturnValue({ + data: [], + } as any) + + const { result } = renderHook(() => useDropTipLocations(OT2_ROBOT_TYPE)) + + expect(result.current).toEqual([ + { location: DECK_LOCATION, slotName: CHOOSE_DECK_LOCATION }, + ]) + }) + + it('should handle an undefined deck configuration', () => { + vi.mocked(useNotifyDeckConfigurationQuery).mockReturnValue({ + data: undefined, + } as any) + + const { result } = renderHook(() => useDropTipLocations(OT2_ROBOT_TYPE)) + + expect(result.current).toEqual([ + { location: DECK_LOCATION, slotName: CHOOSE_DECK_LOCATION }, + ]) + }) +}) diff --git a/app/src/organisms/DropTipWizardFlows/hooks/__tests__/useDropTipRouting.test.tsx b/app/src/organisms/DropTipWizardFlows/hooks/__tests__/useDropTipRouting.test.tsx index 651b3959b5d..c6cf823784c 100644 --- a/app/src/organisms/DropTipWizardFlows/hooks/__tests__/useDropTipRouting.test.tsx +++ b/app/src/organisms/DropTipWizardFlows/hooks/__tests__/useDropTipRouting.test.tsx @@ -18,7 +18,7 @@ describe('useDropTipRouting', () => { const { result } = renderHook(() => useDropTipRouting()) await act(async () => { - await result.current.proceedToRoute(DT_ROUTES.BLOWOUT) + await result.current.proceedToRouteAndStep(DT_ROUTES.BLOWOUT) }) const initialStep = result.current.currentStep @@ -34,7 +34,7 @@ describe('useDropTipRouting', () => { const { result } = renderHook(() => useDropTipRouting()) await act(async () => { - await result.current.proceedToRoute(DT_ROUTES.BLOWOUT) + await result.current.proceedToRouteAndStep(DT_ROUTES.BLOWOUT) }) await act(async () => { @@ -75,11 +75,11 @@ describe('useDropTipRouting', () => { expect(result.current.currentStepIdx).toBe(0) }) - it('should proceed to the specified route when proceedToRoute is called', async () => { + it('should proceed to the specified route when proceedToRouteAndStep is called', async () => { const { result } = renderHook(() => useDropTipRouting()) await act(async () => { - await result.current.proceedToRoute(DT_ROUTES.BLOWOUT) + await result.current.proceedToRouteAndStep(DT_ROUTES.BLOWOUT) }) expect(result.current.currentRoute).toBe(DT_ROUTES.BLOWOUT) expect(result.current.currentStep).toBe(head(DT_ROUTES.BLOWOUT)) @@ -98,7 +98,7 @@ describe('useReportMap', () => { const { result } = renderHook(() => useDropTipRouting(mockFixitUtils)) await act(async () => { - await result.current.proceedToRoute(DT_ROUTES.BLOWOUT) + await result.current.proceedToRouteAndStep(DT_ROUTES.BLOWOUT) }) expect(mockReportMap).toHaveBeenCalledWith({ diff --git a/app/src/organisms/DropTipWizardFlows/hooks/index.ts b/app/src/organisms/DropTipWizardFlows/hooks/index.ts index 890578280cc..09acf2b2a5d 100644 --- a/app/src/organisms/DropTipWizardFlows/hooks/index.ts +++ b/app/src/organisms/DropTipWizardFlows/hooks/index.ts @@ -2,6 +2,7 @@ export * from './errors' export * from './useDropTipWithType' export * from './useHomePipettes' export * from './useTipAttachmentStatus' +export * from './useDropTipLocations' export { useDropTipRouting } from './useDropTipRouting' export { useDropTipWithType } from './useDropTipWithType' diff --git a/app/src/organisms/DropTipWizardFlows/hooks/useDropTipCommands.ts b/app/src/organisms/DropTipWizardFlows/hooks/useDropTipCommands.ts index 8a9579962ed..0f88c2ccc1c 100644 --- a/app/src/organisms/DropTipWizardFlows/hooks/useDropTipCommands.ts +++ b/app/src/organisms/DropTipWizardFlows/hooks/useDropTipCommands.ts @@ -2,7 +2,7 @@ import { useState, useEffect } from 'react' import { useDeleteMaintenanceRunMutation } from '@opentrons/react-api-client' -import { MANAGED_PIPETTE_ID, POSITION_AND_BLOWOUT } from '../constants' +import { DT_ROUTES, MANAGED_PIPETTE_ID } from '../constants' import { getAddressableAreaFromConfig } from '../utils' import { useNotifyDeckConfigurationQuery } from '/app/resources/deck_configuration' import type { @@ -15,7 +15,7 @@ import type { import { FLEX_ROBOT_TYPE } from '@opentrons/shared-data' import type { CommandData, PipetteData } from '@opentrons/api-client' import type { Axis, Sign, StepSize } from '/app/molecules/JogControls/types' -import type { DropTipFlowsStep, FixitCommandTypeUtils } from '../types' +import type { DropTipFlowsRoute, FixitCommandTypeUtils } from '../types' import type { SetRobotErrorDetailsParams, UseDTWithTypeParams } from '.' import type { RunCommandByCommandTypeParams } from './useDropTipCreateCommands' @@ -37,10 +37,13 @@ type UseDropTipSetupCommandsParams = UseDTWithTypeParams & { export interface UseDropTipCommandsResult { handleCleanUpAndClose: (homeOnExit?: boolean) => Promise - moveToAddressableArea: (addressableArea: AddressableAreaName) => Promise + moveToAddressableArea: ( + addressableArea: AddressableAreaName, + stayAtHighestPossibleZ?: boolean + ) => Promise handleJog: (axis: Axis, dir: Sign, step: StepSize) => void blowoutOrDropTip: ( - currentStep: DropTipFlowsStep, + currentRoute: DropTipFlowsRoute, proceed: () => void ) => Promise handleMustHome: () => Promise @@ -97,7 +100,8 @@ export function useDropTipCommands({ } const moveToAddressableArea = ( - addressableArea: AddressableAreaName + addressableArea: AddressableAreaName, + stayAtHighestPossibleZ = true // Generally false when moving to a waste chute or trash bin. ): Promise => { return new Promise((resolve, reject) => { const addressableAreaFromConfig = getAddressableAreaFromConfig( @@ -110,12 +114,18 @@ export function useDropTipCommands({ if (addressableAreaFromConfig != null) { const moveToAACommand = buildMoveToAACommand( addressableAreaFromConfig, - pipetteId + pipetteId, + stayAtHighestPossibleZ ) return chainRunCommands( isFlex - ? [ENGAGE_AXES, UPDATE_ESTIMATORS_EXCEPT_PLUNGERS, moveToAACommand] - : [moveToAACommand], + ? [ + ENGAGE_AXES, + UPDATE_ESTIMATORS_EXCEPT_PLUNGERS, + Z_HOME, + moveToAACommand, + ] + : [Z_HOME, moveToAACommand], true ) .then((commandData: CommandData[]) => { @@ -203,12 +213,12 @@ export function useDropTipCommands({ } const blowoutOrDropTip = ( - currentStep: DropTipFlowsStep, + currentRoute: DropTipFlowsRoute, proceed: () => void ): Promise => { return new Promise((resolve, reject) => { chainRunCommands( - currentStep === POSITION_AND_BLOWOUT + currentRoute === DT_ROUTES.BLOWOUT ? buildBlowoutCommands(instrumentModelSpecs, isFlex, pipetteId) : buildDropTipInPlaceCommand(isFlex, pipetteId), true @@ -220,7 +230,7 @@ export function useDropTipCommands({ fixitCommandTypeUtils != null && issuedCommandsType === 'fixit' ) { - if (currentStep === POSITION_AND_BLOWOUT) { + if (currentRoute === DT_ROUTES.BLOWOUT) { fixitCommandTypeUtils.errorOverrides.blowoutFailed() } else { fixitCommandTypeUtils.errorOverrides.tipDropFailed() @@ -238,7 +248,7 @@ export function useDropTipCommands({ }) .catch((error: Error) => { if (fixitCommandTypeUtils != null && issuedCommandsType === 'fixit') { - if (currentStep === POSITION_AND_BLOWOUT) { + if (currentRoute === DT_ROUTES.BLOWOUT) { fixitCommandTypeUtils.errorOverrides.blowoutFailed() } else { fixitCommandTypeUtils.errorOverrides.tipDropFailed() @@ -247,7 +257,7 @@ export function useDropTipCommands({ setErrorDetails({ message: `Error issuing ${ - currentStep === POSITION_AND_BLOWOUT ? 'blowout' : 'drop tip' + currentRoute === DT_ROUTES.BLOWOUT ? 'blowout' : 'drop tip' } command: ${error.message}`, }) resolve() @@ -292,6 +302,11 @@ const ENGAGE_AXES: CreateCommand = { }, } +const Z_HOME: CreateCommand = { + commandType: 'home' as const, + params: { axes: ['leftZ', 'rightZ'] }, +} + const HOME_EXCEPT_PLUNGERS: CreateCommand = { commandType: 'home' as const, params: { axes: ['leftZ', 'rightZ', 'x', 'y'] }, @@ -365,15 +380,19 @@ const buildBlowoutCommands = ( const buildMoveToAACommand = ( addressableAreaFromConfig: AddressableAreaName, - pipetteId: string | null + pipetteId: string | null, + stayAtHighestPossibleZ: boolean ): CreateCommand => { + // Because we can never be certain about which tip is attached outside a protocol run, always assume the most + // conservative estimate, a 1000ul tip. + const zOffset = stayAtHighestPossibleZ ? 0 : 88 return { commandType: 'moveToAddressableArea', params: { pipetteId: pipetteId ?? MANAGED_PIPETTE_ID, - stayAtHighestPossibleZ: true, + stayAtHighestPossibleZ, addressableAreaName: addressableAreaFromConfig, - offset: { x: 0, y: 0, z: 0 }, + offset: { x: 0, y: 0, z: zOffset }, }, } } diff --git a/app/src/organisms/DropTipWizardFlows/hooks/useDropTipLocations.ts b/app/src/organisms/DropTipWizardFlows/hooks/useDropTipLocations.ts new file mode 100644 index 00000000000..62e4272449f --- /dev/null +++ b/app/src/organisms/DropTipWizardFlows/hooks/useDropTipLocations.ts @@ -0,0 +1,79 @@ +import { useMemo } from 'react' + +import { + getDeckDefFromRobotType, + OT2_ROBOT_TYPE, + TRASH_BIN_ADAPTER_FIXTURE, + WASTE_CHUTE_FIXTURES, +} from '@opentrons/shared-data' + +import { useNotifyDeckConfigurationQuery } from '/app/resources/deck_configuration' + +import type { + RobotType, + CutoutConfig, + AddressableAreaName, +} from '@opentrons/shared-data' +import type { ValidDropTipBlowoutLocation } from '../types' + +export type DropTipBlowoutSlotName = + | AddressableAreaName + | 'CHOOSE_DECK_LOCATION' + +export interface DropTipBlowoutLocationDetails { + slotName: DropTipBlowoutSlotName + location: ValidDropTipBlowoutLocation +} + +// TODO(jh 09-25-24): Add "Return to labware" support once the server returns relevant labware. + +// Returns valid location options for executing tip commands. +export function useDropTipLocations( + robotType: RobotType +): DropTipBlowoutLocationDetails[] { + const { data: deckConfig = [] } = useNotifyDeckConfigurationQuery() + const deckDef = useMemo(() => getDeckDefFromRobotType(robotType), [robotType]) + + return useMemo(() => { + const createLocation = ( + cutoutConfig: CutoutConfig, + validLocation: ValidDropTipBlowoutLocation + ): DropTipBlowoutLocationDetails => { + const cutoutAAs = deckDef.cutoutFixtures.find( + fixture => cutoutConfig.cutoutId in fixture.providesAddressableAreas + )?.providesAddressableAreas + const slotName = + cutoutAAs?.[cutoutConfig.cutoutId]?.[0] ?? + (robotType === OT2_ROBOT_TYPE ? '1' : 'A1') + + if (!cutoutAAs?.[cutoutConfig.cutoutId]?.[0]) { + console.error( + 'Could not get correct slot location from deck definition and active deck config. Defaulting to A1.' + ) + } + + return { + location: validLocation, + slotName, + } + } + + const filterAndMap = ( + fixtureIds: string | string[], + validLocation: ValidDropTipBlowoutLocation + ): DropTipBlowoutLocationDetails[] => + deckConfig + .filter(config => + Array.isArray(fixtureIds) + ? fixtureIds.includes(config.cutoutFixtureId) + : fixtureIds === config.cutoutFixtureId + ) + .map(config => createLocation(config, validLocation)) + + return [ + ...filterAndMap(TRASH_BIN_ADAPTER_FIXTURE, 'trash-bin'), + ...filterAndMap(WASTE_CHUTE_FIXTURES, 'waste-chute'), + { location: 'deck', slotName: 'CHOOSE_DECK_LOCATION' }, + ] + }, [deckConfig, deckDef, robotType]) +} diff --git a/app/src/organisms/DropTipWizardFlows/hooks/useDropTipRouting.tsx b/app/src/organisms/DropTipWizardFlows/hooks/useDropTipRouting.tsx index 17e920644fb..b0928eca3c2 100644 --- a/app/src/organisms/DropTipWizardFlows/hooks/useDropTipRouting.tsx +++ b/app/src/organisms/DropTipWizardFlows/hooks/useDropTipRouting.tsx @@ -27,8 +27,11 @@ export interface UseDropTipRoutingResult { goBack: () => Promise /* Proceed a step within the current route. Reroutes to "Before Beginning" if currently on the last step. */ proceed: () => Promise - /* Proceed to the first step of a given route. */ - proceedToRoute: (route: DropTipFlowsRoute) => Promise + /* Proceed to a given step of a given route or the first step of a given route if none is specified. */ + proceedToRouteAndStep: ( + route: DropTipFlowsRoute, + step?: DropTipFlowsStep + ) => Promise } /** @@ -95,19 +98,37 @@ export function useDropTipRouting( }) } - const proceedToRoute = (route: DropTipFlowsRoute): Promise => { + const proceedToRouteAndStep = ( + route: DropTipFlowsRoute, + step?: DropTipFlowsStep + ): Promise => { return new Promise((resolve, reject) => { - setDropTipFlowsMap({ - currentRoute: route, - currentStep: head(route) as DropTipFlowsStep, - currentStepIdx: 0, - }) + // @ts-expect-error Step always valid or handled appropriately. + const isStepNotInRoute = step != null && !route.includes(step) + + if (step == null || isStepNotInRoute) { + setDropTipFlowsMap({ + currentRoute: route, + currentStep: head(route) as DropTipFlowsStep, + currentStepIdx: 0, + }) + if (isStepNotInRoute) { + console.error(`Step ${step} not found in route ${route}`) + } + } else { + setDropTipFlowsMap({ + currentRoute: route, + currentStep: step, + // @ts-expect-error Step always valid or handled appropriately. + currentStepIdx: route.indexOf(step), + }) + } resolve() }) } - return { ...dropTipFlowsMap, goBack, proceed, proceedToRoute } + return { ...dropTipFlowsMap, goBack, proceed, proceedToRouteAndStep } } type DTStepOrInvalid = DropTipFlowsStep | typeof INVALID diff --git a/app/src/organisms/DropTipWizardFlows/steps/BeforeBeginning.tsx b/app/src/organisms/DropTipWizardFlows/steps/BeforeBeginning.tsx index e129a177ef2..bbcb908ea24 100644 --- a/app/src/organisms/DropTipWizardFlows/steps/BeforeBeginning.tsx +++ b/app/src/organisms/DropTipWizardFlows/steps/BeforeBeginning.tsx @@ -32,7 +32,7 @@ import type { DropTipWizardContainerProps } from '../types' type FlowType = 'blowout' | 'drop_tips' | null export const BeforeBeginning = ({ - proceedToRoute, + proceedToRouteAndStep, isOnDevice, issuedCommandsType, fixitCommandTypeUtils, @@ -43,9 +43,9 @@ export const BeforeBeginning = ({ const handleProceed = (): void => { if (flowType === 'blowout') { - void proceedToRoute(DT_ROUTES.BLOWOUT) + void proceedToRouteAndStep(DT_ROUTES.BLOWOUT) } else if (flowType === 'drop_tips') { - void proceedToRoute(DT_ROUTES.DROP_TIP) + void proceedToRouteAndStep(DT_ROUTES.DROP_TIP) } } diff --git a/app/src/organisms/DropTipWizardFlows/steps/ChooseDeckLocation.tsx b/app/src/organisms/DropTipWizardFlows/steps/ChooseDeckLocation.tsx new file mode 100644 index 00000000000..2519e1a6e0b --- /dev/null +++ b/app/src/organisms/DropTipWizardFlows/steps/ChooseDeckLocation.tsx @@ -0,0 +1,89 @@ +import { useState } from 'react' +import { Trans, useTranslation } from 'react-i18next' + +import { + DIRECTION_COLUMN, + Flex, + LegacyStyledText, + SPACING, + StyledText, +} from '@opentrons/components' +import { getDeckDefFromRobotType } from '@opentrons/shared-data' + +import { DT_ROUTES } from '/app/organisms/DropTipWizardFlows/constants' +import { DeckMapContent, TwoColumn } from '/app/molecules/InterventionModal' +import { DropTipFooterButtons } from '/app/organisms/DropTipWizardFlows/shared' + +import type { ModuleLocation } from '@opentrons/shared-data' +import type { DropTipWizardContainerProps } from '/app/organisms/DropTipWizardFlows/types' + +export function ChooseDeckLocation({ + robotType, + dropTipCommands, + proceedWithConditionalClose, + goBackRunValid, + currentRoute, + isOnDevice, +}: DropTipWizardContainerProps): JSX.Element { + const { moveToAddressableArea } = dropTipCommands + const { t } = useTranslation('drop_tip_wizard') + const [selectedLocation, setSelectedLocation] = useState() + const deckDef = getDeckDefFromRobotType(robotType) + + const handleConfirmPosition = (): void => { + const deckSlot = deckDef.locations.addressableAreas.find( + l => l.id === selectedLocation?.slotName + )?.id + + if (deckSlot != null) { + void moveToAddressableArea(deckSlot).then(() => { + proceedWithConditionalClose() + }) + } + } + + const buildTitleText = (): string => + currentRoute === DT_ROUTES.BLOWOUT + ? t('choose_blowout_location') + : t('choose_drop_tip_location') + + const buildBodyText = (): string => { + if (currentRoute === DT_ROUTES.BLOWOUT) { + return isOnDevice ? 'select_blowout_slot_odd' : 'select_blowout_slot' + } else { + return isOnDevice ? 'select_drop_tip_slot_odd' : 'select_drop_tip_slot' + } + } + + return ( + <> + + + + {buildTitleText()} + + + }} + /> + + + + + + + ) +} diff --git a/app/src/organisms/DropTipWizardFlows/steps/ChooseLocation.tsx b/app/src/organisms/DropTipWizardFlows/steps/ChooseLocation.tsx index 79db59f9ca6..6bf0dbbfed5 100644 --- a/app/src/organisms/DropTipWizardFlows/steps/ChooseLocation.tsx +++ b/app/src/organisms/DropTipWizardFlows/steps/ChooseLocation.tsx @@ -1,89 +1,203 @@ -import { useState } from 'react' -import { Trans, useTranslation } from 'react-i18next' +import { useState, useLayoutEffect, useCallback } from 'react' +import { useTranslation } from 'react-i18next' +import { css } from 'styled-components' import { DIRECTION_COLUMN, + RESPONSIVENESS, Flex, SPACING, - LegacyStyledText, StyledText, + RadioButton, + OVERFLOW_AUTO, + JUSTIFY_SPACE_BETWEEN, } from '@opentrons/components' -import { getDeckDefFromRobotType } from '@opentrons/shared-data' -import { TwoColumn, DeckMapContent } from '../../../molecules/InterventionModal' -import { CHOOSE_BLOWOUT_LOCATION } from '../constants' +import { BLOWOUT_SUCCESS, DROP_TIP_SUCCESS, DT_ROUTES } from '../constants' import { DropTipFooterButtons } from '../shared' -import type { ModuleLocation } from '@opentrons/shared-data' -import type { DropTipWizardContainerProps } from '../types' +import type { AddressableAreaName } from '@opentrons/shared-data' +import type { + DropTipWizardContainerProps, + ValidDropTipBlowoutLocation, +} from '../types' +import type { + DropTipBlowoutLocationDetails, + DropTipBlowoutSlotName, +} from '../hooks' +import type { UseConfirmPositionResult } from './ConfirmPosition' -export const ChooseLocation = ({ - robotType, +interface ChooseLocationProps extends DropTipWizardContainerProps { + toggleIsRobotPipetteMoving: UseConfirmPositionResult['toggleIsRobotPipetteMoving'] +} + +export function ChooseLocation({ + dropTipCommandLocations, dropTipCommands, - proceedWithConditionalClose, goBackRunValid, - currentStep, - isOnDevice, -}: DropTipWizardContainerProps): JSX.Element | null => { - const { moveToAddressableArea } = dropTipCommands + currentRoute, + proceed, + proceedToRouteAndStep, + toggleIsRobotPipetteMoving, + modalStyle, +}: ChooseLocationProps): JSX.Element { const { t } = useTranslation('drop_tip_wizard') - const [selectedLocation, setSelectedLocation] = useState() - const deckDef = getDeckDefFromRobotType(robotType) + const { moveToAddressableArea, blowoutOrDropTip } = dropTipCommands - const handleConfirmPosition = (): void => { - const deckSlot = deckDef.locations.addressableAreas.find( - l => l.id === selectedLocation?.slotName - )?.id + const [ + selectedLocation, + setSelectedLocation, + ] = useState(null) - if (deckSlot != null) { - void moveToAddressableArea(deckSlot).then(() => { - proceedWithConditionalClose() - }) + // On initial render with values, synchronously set the first option as the selected option. + useLayoutEffect(() => { + if (dropTipCommandLocations.length > 0) { + setSelectedLocation(dropTipCommandLocations[0]) + } + }, [dropTipCommandLocations.length]) + + const buildTitleCopy = (): string => { + if (currentRoute === DT_ROUTES.BLOWOUT) { + return t('where_to_blowout') + } else if (currentRoute === DT_ROUTES.DROP_TIP) { + return t('where_to_drop_tips') + } else { + console.error('Unhandled choose location copy from step') + return t('where_to_drop_tips') } } - const buildTitleText = (): string => - currentStep === CHOOSE_BLOWOUT_LOCATION - ? t('choose_blowout_location') - : t('choose_drop_tip_location') + const buildLocationCopy = ( + locationValue: ValidDropTipBlowoutLocation, + slotName: DropTipBlowoutSlotName + ): string => { + switch (locationValue) { + case 'trash-bin': + return t('trash_bin_in_slot', { slot: slotName }) + case 'waste-chute': + return t('waste_chute_in_slot', { slot: slotName }) + case 'deck': + return t('choose_deck_location') + default: + console.error('Unexpected location value.') + return '' + } + } - const buildBodyText = (): string => { - if (currentStep === CHOOSE_BLOWOUT_LOCATION) { - return isOnDevice ? 'select_blowout_slot_odd' : 'select_blowout_slot' - } else { - return isOnDevice ? 'select_drop_tip_slot_odd' : 'select_drop_tip_slot' + const handleChange = useCallback( + (locationDetails: DropTipBlowoutLocationDetails) => { + setSelectedLocation(locationDetails) + }, + [] + ) + + const executeCommands = (): void => { + toggleIsRobotPipetteMoving() + void moveToAddressableArea( + selectedLocation?.slotName as AddressableAreaName, + false + ).then(() => { + void blowoutOrDropTip(currentRoute, () => { + const successStep = + currentRoute === DT_ROUTES.BLOWOUT + ? BLOWOUT_SUCCESS + : DROP_TIP_SUCCESS + void proceedToRouteAndStep(currentRoute, successStep) + }) + }) + } + + const primaryOnClick = (): void => { + switch (selectedLocation?.location) { + case 'deck': + void proceed() + break + case 'labware': + case 'trash-bin': + case 'waste-chute': + executeCommands() + break + default: + console.error( + `Unhandled onClick behavior for location: ${selectedLocation?.location}` + ) } } return ( - <> - - - - {buildTitleText()} - - - }} - /> - + + + + {buildTitleCopy()} + + + {dropTipCommandLocations.map(ld => { + const label = buildLocationCopy(ld.location, ld.slotName) + return ( + { + handleChange(ld) + }} + isSelected={ld.slotName === selectedLocation?.slotName} + largeDesktopBorderRadius={true} + /> + ) + })} - - + - + ) } + +const CONTAINER_STYLE_BASE = ` + overflow: ${OVERFLOW_AUTO}; + flex-direction: ${DIRECTION_COLUMN}; + grid-gap: ${SPACING.spacing16}; + height: 100%; + width: 100%; + flex-grow: 1; +` + +const CONTAINER_STYLE_INTERVENTION = css` + ${CONTAINER_STYLE_BASE} +` + +const CONTAINER_STYLE_SIMPLE = css` + ${CONTAINER_STYLE_BASE} + justify-content: ${JUSTIFY_SPACE_BETWEEN}; + + @media ${RESPONSIVENESS.touchscreenMediaQuerySpecs} { + height: 80%; + flex-grow: 0; + } +` + +const OPTION_CONTAINER_STYLE = css` + flex-direction: ${DIRECTION_COLUMN}; + grid-gap: ${SPACING.spacing16}; +` + +const BUTTON_CONTAINER_STYLE = css` + flex-direction: ${DIRECTION_COLUMN}; + grid-gap: ${SPACING.spacing4}; + + @media ${RESPONSIVENESS.touchscreenMediaQuerySpecs} { + grid-gap: ${SPACING.spacing8}; + } +` diff --git a/app/src/organisms/DropTipWizardFlows/ConfirmPosition.tsx b/app/src/organisms/DropTipWizardFlows/steps/ConfirmPosition.tsx similarity index 75% rename from app/src/organisms/DropTipWizardFlows/ConfirmPosition.tsx rename to app/src/organisms/DropTipWizardFlows/steps/ConfirmPosition.tsx index d146b9210de..3b3f0e9dfb5 100644 --- a/app/src/organisms/DropTipWizardFlows/ConfirmPosition.tsx +++ b/app/src/organisms/DropTipWizardFlows/steps/ConfirmPosition.tsx @@ -16,15 +16,17 @@ import { StyledText, } from '@opentrons/components' -import { POSITION_AND_BLOWOUT, POSITION_AND_DROP_TIP } from './constants' -import { DropTipFooterButtons } from './shared' +import { + CHOOSE_LOCATION_OPTION, + CONFIRM_POSITION, + DT_ROUTES, +} from '../constants' +import { DropTipFooterButtons } from '../shared' -import type { DropTipWizardContainerProps } from './types' +import type { DropTipWizardContainerProps } from '../types' export interface UseConfirmPositionResult { - showConfirmPosition: boolean isRobotPipetteMoving: boolean - toggleShowConfirmPosition: () => void toggleIsRobotPipetteMoving: () => void } @@ -34,33 +36,23 @@ export interface UseConfirmPositionResult { export function useConfirmPosition( currentStep: DropTipWizardContainerProps['currentStep'] ): UseConfirmPositionResult { - const [showConfirmPosition, setShowConfirmPosition] = useState(false) const [isRobotPipetteMoving, setIsRobotPipetteMoving] = useState(false) - const toggleShowConfirmPosition = (): void => { - setShowConfirmPosition(!showConfirmPosition) - } - const toggleIsRobotPipetteMoving = (): void => { setIsRobotPipetteMoving(!isRobotPipetteMoving) } - // NOTE: The useEffect logic is potentially problematic on views that are not steps, but it is not currently. useEffect(() => { if ( - currentStep !== POSITION_AND_BLOWOUT && - currentStep !== POSITION_AND_DROP_TIP && isRobotPipetteMoving && - showConfirmPosition + currentStep !== CONFIRM_POSITION && + currentStep !== CHOOSE_LOCATION_OPTION ) { - toggleShowConfirmPosition() toggleIsRobotPipetteMoving() } }, [currentStep, isRobotPipetteMoving]) return { - showConfirmPosition, - toggleShowConfirmPosition, toggleIsRobotPipetteMoving, isRobotPipetteMoving, } @@ -70,9 +62,9 @@ type ConfirmPositionProps = DropTipWizardContainerProps & UseConfirmPositionResult export function ConfirmPosition({ - toggleShowConfirmPosition, toggleIsRobotPipetteMoving, - currentStep, + goBackRunValid, + currentRoute, dropTipCommands, proceed, modalStyle, @@ -81,11 +73,11 @@ export function ConfirmPosition({ const { t } = useTranslation('drop_tip_wizard') const buildPrimaryBtnText = (): string => - currentStep === POSITION_AND_BLOWOUT ? t('blowout_liquid') : t('drop_tips') + currentRoute === DT_ROUTES.BLOWOUT ? t('blowout_liquid') : t('drop_tips') const handleProceed = (): void => { toggleIsRobotPipetteMoving() - void blowoutOrDropTip(currentStep, proceed) + void blowoutOrDropTip(currentRoute, proceed) } return ( @@ -99,7 +91,7 @@ export function ConfirmPosition({ > - {currentStep === POSITION_AND_BLOWOUT + {currentRoute === DT_ROUTES.BLOWOUT ? t('confirm_blowout_location') : t('confirm_drop_tip_location')} @@ -107,7 +99,7 @@ export function ConfirmPosition({ ) diff --git a/app/src/organisms/DropTipWizardFlows/steps/JogToPosition.tsx b/app/src/organisms/DropTipWizardFlows/steps/JogToPosition.tsx index de6b616cf0c..93d6c4b3a3c 100644 --- a/app/src/organisms/DropTipWizardFlows/steps/JogToPosition.tsx +++ b/app/src/organisms/DropTipWizardFlows/steps/JogToPosition.tsx @@ -10,22 +10,22 @@ import { RESPONSIVENESS, } from '@opentrons/components' -import { POSITION_AND_BLOWOUT } from '../constants' -import { JogControls } from '../../../molecules/JogControls' +import { DT_ROUTES } from '../constants' +import { JogControls } from '/app/molecules/JogControls' import { DropTipFooterButtons } from '../shared' import type { DropTipWizardContainerProps } from '../types' -import type { UseConfirmPositionResult } from '../ConfirmPosition' +import type { UseConfirmPositionResult } from './ConfirmPosition' type JogToPositionProps = DropTipWizardContainerProps & UseConfirmPositionResult export const JogToPosition = ({ goBackRunValid, dropTipCommands, - currentStep, + currentRoute, isOnDevice, - toggleShowConfirmPosition, modalStyle, + proceed, }: JogToPositionProps): JSX.Element | null => { const { handleJog } = dropTipCommands const { t } = useTranslation('drop_tip_wizard') @@ -40,7 +40,7 @@ export const JogToPosition = ({ {t('position_the_pipette')} - {currentStep === POSITION_AND_BLOWOUT + {currentRoute === DT_ROUTES.BLOWOUT ? t('position_and_blowout') : t('position_and_drop_tip')} @@ -58,7 +58,7 @@ export const JogToPosition = ({ height={isOnDevice ? '80%' : '100%'} /> diff --git a/app/src/organisms/DropTipWizardFlows/steps/Success.tsx b/app/src/organisms/DropTipWizardFlows/steps/Success.tsx index 5e88a1ce346..cc67ea47d9c 100644 --- a/app/src/organisms/DropTipWizardFlows/steps/Success.tsx +++ b/app/src/organisms/DropTipWizardFlows/steps/Success.tsx @@ -12,15 +12,15 @@ import { } from '@opentrons/components' import { DropTipFooterButtons } from '../shared' -import { BLOWOUT_SUCCESS, DROP_TIP_SUCCESS, DT_ROUTES } from '../constants' +import { DT_ROUTES } from '../constants' import SuccessIcon from '../../../assets/images/icon_success.png' import type { DropTipWizardContainerProps } from '../types' export const Success = ({ - currentStep, - proceedToRoute, + currentRoute, + proceedToRouteAndStep, fixitCommandTypeUtils, proceedWithConditionalClose, modalStyle, @@ -30,8 +30,8 @@ export const Success = ({ // Route to the drop tip route if user is at the blowout success screen, otherwise proceed conditionally. const handleProceed = (): void => { - if (currentStep === BLOWOUT_SUCCESS) { - void proceedToRoute(DT_ROUTES.DROP_TIP) + if (currentRoute === DT_ROUTES.BLOWOUT) { + void proceedToRouteAndStep(DT_ROUTES.DROP_TIP) } else { // Clear the error recovery submap upon completion of drop tip wizard. fixitCommandTypeUtils?.reportMap(null) @@ -45,10 +45,10 @@ export const Success = ({ } const buildProceedText = (): string => { - if (fixitCommandTypeUtils != null && currentStep === DROP_TIP_SUCCESS) { + if (fixitCommandTypeUtils != null && currentRoute === DT_ROUTES.DROP_TIP) { return fixitCommandTypeUtils.copyOverrides.tipDropCompleteBtnCopy } else { - return currentStep === BLOWOUT_SUCCESS ? t('continue') : t('exit') + return currentRoute === DT_ROUTES.BLOWOUT ? t('continue') : t('exit') } } @@ -65,7 +65,7 @@ export const Success = ({ } /> - {currentStep === BLOWOUT_SUCCESS + {currentRoute === DT_ROUTES.BLOWOUT ? t('blowout_complete') : t('drop_tip_complete')} diff --git a/app/src/organisms/DropTipWizardFlows/steps/index.ts b/app/src/organisms/DropTipWizardFlows/steps/index.ts index df34b2caa6f..8b18a998c03 100644 --- a/app/src/organisms/DropTipWizardFlows/steps/index.ts +++ b/app/src/organisms/DropTipWizardFlows/steps/index.ts @@ -1,4 +1,6 @@ export * from './BeforeBeginning' export * from './ChooseLocation' +export * from './ChooseDeckLocation' export * from './JogToPosition' export * from './Success' +export * from './ConfirmPosition' diff --git a/app/src/organisms/DropTipWizardFlows/types.ts b/app/src/organisms/DropTipWizardFlows/types.ts index 43243ba673b..513c3277ab5 100644 --- a/app/src/organisms/DropTipWizardFlows/types.ts +++ b/app/src/organisms/DropTipWizardFlows/types.ts @@ -59,3 +59,12 @@ export type DropTipWizardContainerProps = DropTipWizardProps & { proceedWithConditionalClose: () => void goBackRunValid: () => void } + +/** + * Drop-tip/Blowout location types + */ +export type ValidDropTipBlowoutLocation = + | 'trash-bin' + | 'waste-chute' + | 'labware' + | 'deck' diff --git a/app/src/organisms/ErrorRecoveryFlows/shared/RecoveryInterventionModal.tsx b/app/src/organisms/ErrorRecoveryFlows/shared/RecoveryInterventionModal.tsx index 77fe7de3715..631c7c0c962 100644 --- a/app/src/organisms/ErrorRecoveryFlows/shared/RecoveryInterventionModal.tsx +++ b/app/src/organisms/ErrorRecoveryFlows/shared/RecoveryInterventionModal.tsx @@ -2,7 +2,12 @@ import type * as React from 'react' import { createPortal } from 'react-dom' import { css } from 'styled-components' -import { Flex, RESPONSIVENESS, SPACING } from '@opentrons/components' +import { + Flex, + OVERFLOW_HIDDEN, + RESPONSIVENESS, + SPACING, +} from '@opentrons/components' import { InterventionModal } from '/app/molecules/InterventionModal' import { getModalPortalEl, getTopPortalEl } from '/app/App/portal' @@ -51,6 +56,7 @@ const SMALL_MODAL_STYLE = css` height: 22rem; padding: ${SPACING.spacing32}; width: 100%; + overflow: ${OVERFLOW_HIDDEN}; @media ${RESPONSIVENESS.touchscreenMediaQuerySpecs} { padding: ${SPACING.spacing32}; @@ -60,6 +66,7 @@ const SMALL_MODAL_STYLE = css` const LARGE_MODAL_STYLE = css` height: 26.75rem; width: 100%; + overflow: ${OVERFLOW_HIDDEN}; @media ${RESPONSIVENESS.touchscreenMediaQuerySpecs} { height: 100%; From c983289958b6d241a738a5b2458b581a684509c4 Mon Sep 17 00:00:00 2001 From: Seth Foster Date: Mon, 30 Sep 2024 09:11:25 -0400 Subject: [PATCH 15/18] refactor(app): move ODD organisms into organisms/ODD (#16376) There are a couple weird ones that are technically ODD-only but are imported from some other organisms that provide them if they're targeting ODD and not if they're targeting Desktop - the instrument wizards will pop a firmware update takeover and use the firmware update modal as an interstitial on ODD. Not sure what to do with those, left them and their dependents in the same place. This is the final PR in this series of code reorganizations! Hooray! --- app/src/App/OnDeviceDisplayApp.tsx | 2 +- app/src/organisms/ErrorRecoveryFlows/RecoveryTakeover.tsx | 2 +- .../{ => ODD}/ChildNavigation/ChildNavigation.stories.tsx | 0 .../ChildNavigation/__tests__/ChildNavigation.test.tsx | 0 app/src/organisms/{ => ODD}/ChildNavigation/index.tsx | 0 .../InstrumentInfo/__tests__/InstrumentInfo.test.tsx | 0 app/src/organisms/{ => ODD}/InstrumentInfo/index.tsx | 0 .../InstrumentMountItem/AttachedInstrumentMountItem.tsx | 0 .../{ => ODD}/InstrumentMountItem/LabeledMount.tsx | 0 .../InstrumentMountItem/ProtocolInstrumentMountItem.tsx | 0 .../__tests__/ProtocolInstrumentMountItem.test.tsx | 0 app/src/organisms/{ => ODD}/InstrumentMountItem/index.tsx | 0 app/src/organisms/{ => ODD}/Navigation/NavigationMenu.tsx | 0 .../{ => ODD}/Navigation/RestartRobotConfirmationModal.tsx | 0 .../{ => ODD}/Navigation/__tests__/Navigation.test.tsx | 0 .../{ => ODD}/Navigation/__tests__/NavigationMenu.test.tsx | 0 .../__tests__/RestartRobotConfirmationModal.test.tsx | 0 app/src/organisms/{ => ODD}/Navigation/index.tsx | 0 app/src/organisms/ODD/NetworkSettings/DisplayWifiList.tsx | 2 +- .../organisms/ODD/NetworkSettings/WifiConnectionDetails.tsx | 2 +- .../__tests__/OpenDoorAlertModal.test.tsx | 0 app/src/organisms/{ => ODD}/OpenDoorAlertModal/index.tsx | 0 .../ProtocolSetup/ProtocolSetupDeckConfiguration/index.tsx | 2 +- .../ProtocolSetupInstruments/ProtocolSetupInstruments.tsx | 2 +- .../ProtocolSetupModulesAndDeck.tsx | 2 +- .../ProtocolSetup/ProtocolSetupParameters/ChooseCsvFile.tsx | 2 +- .../ProtocolSetup/ProtocolSetupParameters/ChooseEnum.tsx | 2 +- .../ProtocolSetup/ProtocolSetupParameters/ChooseNumber.tsx | 2 +- .../ProtocolSetupParameters/ProtocolSetupParameters.tsx | 2 +- .../ProtocolSetupParameters/ViewOnlyParameters.tsx | 2 +- .../{ => ODD}/QuickTransferFlow/ConfirmExitModal.tsx | 0 .../{ => ODD}/QuickTransferFlow/CreateNewTransfer.tsx | 2 +- .../{ => ODD}/QuickTransferFlow/NameQuickTransfer.tsx | 2 +- app/src/organisms/{ => ODD}/QuickTransferFlow/Overview.tsx | 2 +- .../QuickTransferAdvancedSettings/AirGap.tsx | 2 +- .../QuickTransferAdvancedSettings/BaseSettings.tsx | 0 .../QuickTransferAdvancedSettings/BlowOut.tsx | 4 ++-- .../QuickTransferAdvancedSettings/Delay.tsx | 2 +- .../QuickTransferAdvancedSettings/FlowRate.tsx | 2 +- .../QuickTransferFlow/QuickTransferAdvancedSettings/Mix.tsx | 2 +- .../QuickTransferAdvancedSettings/PipettePath.tsx | 2 +- .../QuickTransferAdvancedSettings/TipPosition.tsx | 2 +- .../QuickTransferAdvancedSettings/TouchTip.tsx | 2 +- .../QuickTransferAdvancedSettings/index.tsx | 0 .../{ => ODD}/QuickTransferFlow/SaveOrRunModal.tsx | 0 .../{ => ODD}/QuickTransferFlow/SelectDestLabware.tsx | 2 +- .../{ => ODD}/QuickTransferFlow/SelectDestWells.tsx | 4 ++-- .../organisms/{ => ODD}/QuickTransferFlow/SelectPipette.tsx | 2 +- .../{ => ODD}/QuickTransferFlow/SelectSourceLabware.tsx | 2 +- .../{ => ODD}/QuickTransferFlow/SelectSourceWells.tsx | 2 +- .../organisms/{ => ODD}/QuickTransferFlow/SelectTipRack.tsx | 2 +- .../{ => ODD}/QuickTransferFlow/SummaryAndSettings.tsx | 2 +- .../{ => ODD}/QuickTransferFlow/TipManagement/ChangeTip.tsx | 2 +- .../QuickTransferFlow/TipManagement/TipDropLocation.tsx | 4 ++-- .../{ => ODD}/QuickTransferFlow/TipManagement/index.tsx | 0 .../organisms/{ => ODD}/QuickTransferFlow/VolumeEntry.tsx | 2 +- .../QuickTransferFlow/__tests__/ConfirmExitModal.test.tsx | 0 .../QuickTransferFlow/__tests__/CreateNewTransfer.test.tsx | 0 .../QuickTransferFlow/__tests__/NameQuickTransfer.test.tsx | 0 .../{ => ODD}/QuickTransferFlow/__tests__/Overview.test.tsx | 0 .../__tests__/QuickTransferAdvancedSettings/AirGap.test.tsx | 4 ++-- .../QuickTransferAdvancedSettings/BlowOut.test.tsx | 6 +++--- .../__tests__/QuickTransferAdvancedSettings/Delay.test.tsx | 2 +- .../QuickTransferAdvancedSettings/FlowRate.test.tsx | 2 +- .../__tests__/QuickTransferAdvancedSettings/Mix.test.tsx | 2 +- .../QuickTransferAdvancedSettings/PipettePath.test.tsx | 2 +- .../QuickTransferAdvancedSettings.test.tsx | 4 ++-- .../QuickTransferAdvancedSettings/TipPosition.test.tsx | 4 ++-- .../QuickTransferAdvancedSettings/TouchTip.test.tsx | 2 +- .../QuickTransferFlow/__tests__/SelectDestLabware.test.tsx | 0 .../QuickTransferFlow/__tests__/SelectPipette.test.tsx | 0 .../__tests__/SelectSourceLabware.test.tsx | 0 .../QuickTransferFlow/__tests__/SelectTipRack.test.tsx | 0 .../QuickTransferFlow/__tests__/SummaryAndSettings.test.tsx | 0 .../__tests__/TipManagement/ChangeTip.test.tsx | 0 .../__tests__/TipManagement/TipDropLocation.test.tsx | 0 .../__tests__/TipManagement/TipManagement.test.tsx | 0 .../QuickTransferFlow/__tests__/VolumeEntry.test.tsx | 0 .../utils/generateCompatibleLabwareForPipette.test.ts | 0 .../__tests__/utils/getInitialSummaryState.test.ts | 0 .../__tests__/utils/getSelectedWellCount.test.ts | 0 .../__tests__/utils/getVolumeRange.test.ts | 0 app/src/organisms/{ => ODD}/QuickTransferFlow/constants.ts | 0 app/src/organisms/{ => ODD}/QuickTransferFlow/index.tsx | 0 app/src/organisms/{ => ODD}/QuickTransferFlow/reducers.ts | 0 app/src/organisms/{ => ODD}/QuickTransferFlow/types.ts | 0 .../QuickTransferFlow/utils/createQuickTransferFile.ts | 0 .../utils/generateCompatibleLabwareForPipette.ts | 0 .../QuickTransferFlow/utils/generateQuickTransferArgs.ts | 0 .../utils/getCompatibleLabwareByCategory.ts | 0 .../QuickTransferFlow/utils/getInitialSummaryState.ts | 0 .../QuickTransferFlow/utils/getSelectedWellCount.ts | 0 .../{ => ODD}/QuickTransferFlow/utils/getVolumeRange.ts | 0 .../organisms/{ => ODD}/QuickTransferFlow/utils/index.ts | 0 .../organisms/ODD/RobotSettingsDashboard/DeviceReset.tsx | 2 +- .../NetworkSettings/EthernetConnectionDetails.tsx | 2 +- .../NetworkSettings/RobotSettingsJoinOtherNetwork.tsx | 2 +- .../RobotSettingsSelectAuthenticationType.tsx | 2 +- .../NetworkSettings/RobotSettingsSetWifiCred.tsx | 2 +- .../NetworkSettings/RobotSettingsWifi.tsx | 2 +- .../NetworkSettings/RobotSettingsWifiConnect.tsx | 2 +- .../ODD/RobotSettingsDashboard/NetworkSettings/index.tsx | 2 +- app/src/organisms/ODD/RobotSettingsDashboard/Privacy.tsx | 2 +- .../ODD/RobotSettingsDashboard/RobotSystemVersion.tsx | 2 +- .../ODD/RobotSettingsDashboard/TouchScreenSleep.tsx | 2 +- .../ODD/RobotSettingsDashboard/TouchscreenBrightness.tsx | 2 +- .../organisms/ODD/RobotSettingsDashboard/UpdateChannel.tsx | 2 +- app/src/organisms/{ => ODD}/RobotSetupHeader/index.tsx | 0 app/src/pages/ODD/ConnectViaWifi/JoinOtherNetwork.tsx | 2 +- .../pages/ODD/ConnectViaWifi/SelectAuthenticationType.tsx | 2 +- app/src/pages/ODD/ConnectViaWifi/SetWifiCred.tsx | 2 +- app/src/pages/ODD/ConnectViaWifi/WifiConnectStatus.tsx | 2 +- app/src/pages/ODD/DeckConfiguration/index.tsx | 2 +- app/src/pages/ODD/InstrumentDetail/index.tsx | 2 +- .../__tests__/InstrumentsDashboard.test.tsx | 2 +- app/src/pages/ODD/InstrumentsDashboard/index.tsx | 4 ++-- app/src/pages/ODD/ProtocolDashboard/index.tsx | 2 +- app/src/pages/ODD/QuickTransferDashboard/index.tsx | 2 +- .../ODD/RobotDashboard/__tests__/RobotDashboard.test.tsx | 4 ++-- app/src/pages/ODD/RobotDashboard/index.tsx | 2 +- .../pages/ODD/RobotSettingsDashboard/RobotSettingsList.tsx | 2 +- .../__tests__/RobotSettingsDashboard.test.tsx | 4 ++-- .../ODD/RunningProtocol/__tests__/RunningProtocol.test.tsx | 4 ++-- app/src/pages/ODD/RunningProtocol/index.tsx | 2 +- 124 files changed, 83 insertions(+), 83 deletions(-) rename app/src/organisms/{ => ODD}/ChildNavigation/ChildNavigation.stories.tsx (100%) rename app/src/organisms/{ => ODD}/ChildNavigation/__tests__/ChildNavigation.test.tsx (100%) rename app/src/organisms/{ => ODD}/ChildNavigation/index.tsx (100%) rename app/src/organisms/{ => ODD}/InstrumentInfo/__tests__/InstrumentInfo.test.tsx (100%) rename app/src/organisms/{ => ODD}/InstrumentInfo/index.tsx (100%) rename app/src/organisms/{ => ODD}/InstrumentMountItem/AttachedInstrumentMountItem.tsx (100%) rename app/src/organisms/{ => ODD}/InstrumentMountItem/LabeledMount.tsx (100%) rename app/src/organisms/{ => ODD}/InstrumentMountItem/ProtocolInstrumentMountItem.tsx (100%) rename app/src/organisms/{ => ODD}/InstrumentMountItem/__tests__/ProtocolInstrumentMountItem.test.tsx (100%) rename app/src/organisms/{ => ODD}/InstrumentMountItem/index.tsx (100%) rename app/src/organisms/{ => ODD}/Navigation/NavigationMenu.tsx (100%) rename app/src/organisms/{ => ODD}/Navigation/RestartRobotConfirmationModal.tsx (100%) rename app/src/organisms/{ => ODD}/Navigation/__tests__/Navigation.test.tsx (100%) rename app/src/organisms/{ => ODD}/Navigation/__tests__/NavigationMenu.test.tsx (100%) rename app/src/organisms/{ => ODD}/Navigation/__tests__/RestartRobotConfirmationModal.test.tsx (100%) rename app/src/organisms/{ => ODD}/Navigation/index.tsx (100%) rename app/src/organisms/{ => ODD}/OpenDoorAlertModal/__tests__/OpenDoorAlertModal.test.tsx (100%) rename app/src/organisms/{ => ODD}/OpenDoorAlertModal/index.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/ConfirmExitModal.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/CreateNewTransfer.tsx (97%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/NameQuickTransfer.tsx (97%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/Overview.tsx (97%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/QuickTransferAdvancedSettings/AirGap.tsx (99%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/QuickTransferAdvancedSettings/BaseSettings.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/QuickTransferAdvancedSettings/BlowOut.tsx (97%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/QuickTransferAdvancedSettings/Delay.tsx (99%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/QuickTransferAdvancedSettings/FlowRate.tsx (98%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/QuickTransferAdvancedSettings/Mix.tsx (99%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/QuickTransferAdvancedSettings/PipettePath.tsx (99%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/QuickTransferAdvancedSettings/TipPosition.tsx (98%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/QuickTransferAdvancedSettings/TouchTip.tsx (98%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/QuickTransferAdvancedSettings/index.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/SaveOrRunModal.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/SelectDestLabware.tsx (98%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/SelectDestWells.tsx (98%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/SelectPipette.tsx (98%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/SelectSourceLabware.tsx (98%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/SelectSourceWells.tsx (98%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/SelectTipRack.tsx (97%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/SummaryAndSettings.tsx (98%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/TipManagement/ChangeTip.tsx (97%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/TipManagement/TipDropLocation.tsx (95%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/TipManagement/index.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/VolumeEntry.tsx (98%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/ConfirmExitModal.test.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/CreateNewTransfer.test.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/NameQuickTransfer.test.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/Overview.test.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/AirGap.test.tsx (98%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/BlowOut.test.tsx (96%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/Delay.test.tsx (99%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/FlowRate.test.tsx (99%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/Mix.test.tsx (99%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/PipettePath.test.tsx (99%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/QuickTransferAdvancedSettings.test.tsx (99%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/TipPosition.test.tsx (97%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/TouchTip.test.tsx (99%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/SelectDestLabware.test.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/SelectPipette.test.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/SelectSourceLabware.test.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/SelectTipRack.test.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/SummaryAndSettings.test.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/TipManagement/ChangeTip.test.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/TipManagement/TipDropLocation.test.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/TipManagement/TipManagement.test.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/VolumeEntry.test.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/utils/generateCompatibleLabwareForPipette.test.ts (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/utils/getInitialSummaryState.test.ts (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/utils/getSelectedWellCount.test.ts (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/__tests__/utils/getVolumeRange.test.ts (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/constants.ts (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/index.tsx (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/reducers.ts (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/types.ts (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/utils/createQuickTransferFile.ts (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/utils/generateCompatibleLabwareForPipette.ts (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/utils/generateQuickTransferArgs.ts (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/utils/getCompatibleLabwareByCategory.ts (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/utils/getInitialSummaryState.ts (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/utils/getSelectedWellCount.ts (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/utils/getVolumeRange.ts (100%) rename app/src/organisms/{ => ODD}/QuickTransferFlow/utils/index.ts (100%) rename app/src/organisms/{ => ODD}/RobotSetupHeader/index.tsx (100%) diff --git a/app/src/App/OnDeviceDisplayApp.tsx b/app/src/App/OnDeviceDisplayApp.tsx index 1085428e906..46fb91b21f4 100644 --- a/app/src/App/OnDeviceDisplayApp.tsx +++ b/app/src/App/OnDeviceDisplayApp.tsx @@ -33,7 +33,7 @@ import { RobotDashboard } from '/app/pages/ODD/RobotDashboard' import { RobotSettingsDashboard } from '/app/pages/ODD/RobotSettingsDashboard' import { ProtocolDashboard } from '/app/pages/ODD/ProtocolDashboard' import { ProtocolDetails } from '/app/pages/ODD/ProtocolDetails' -import { QuickTransferFlow } from '/app/organisms/QuickTransferFlow' +import { QuickTransferFlow } from '/app/organisms/ODD/QuickTransferFlow' import { QuickTransferDashboard } from '/app/pages/ODD/QuickTransferDashboard' import { QuickTransferDetails } from '/app/pages/ODD/QuickTransferDetails' import { RunningProtocol } from '/app/pages/ODD/RunningProtocol' diff --git a/app/src/organisms/ErrorRecoveryFlows/RecoveryTakeover.tsx b/app/src/organisms/ErrorRecoveryFlows/RecoveryTakeover.tsx index d94732ea129..eccd4e972a7 100644 --- a/app/src/organisms/ErrorRecoveryFlows/RecoveryTakeover.tsx +++ b/app/src/organisms/ErrorRecoveryFlows/RecoveryTakeover.tsx @@ -16,7 +16,7 @@ import { } from '@opentrons/api-client' import { useUpdateClientDataRecovery } from '/app/resources/client_data' -import { TakeoverModal } from '../TakeoverModal/TakeoverModal' +import { TakeoverModal } from '/app/organisms/TakeoverModal/TakeoverModal' import { RecoveryInterventionModal } from './shared' import type { diff --git a/app/src/organisms/ChildNavigation/ChildNavigation.stories.tsx b/app/src/organisms/ODD/ChildNavigation/ChildNavigation.stories.tsx similarity index 100% rename from app/src/organisms/ChildNavigation/ChildNavigation.stories.tsx rename to app/src/organisms/ODD/ChildNavigation/ChildNavigation.stories.tsx diff --git a/app/src/organisms/ChildNavigation/__tests__/ChildNavigation.test.tsx b/app/src/organisms/ODD/ChildNavigation/__tests__/ChildNavigation.test.tsx similarity index 100% rename from app/src/organisms/ChildNavigation/__tests__/ChildNavigation.test.tsx rename to app/src/organisms/ODD/ChildNavigation/__tests__/ChildNavigation.test.tsx diff --git a/app/src/organisms/ChildNavigation/index.tsx b/app/src/organisms/ODD/ChildNavigation/index.tsx similarity index 100% rename from app/src/organisms/ChildNavigation/index.tsx rename to app/src/organisms/ODD/ChildNavigation/index.tsx diff --git a/app/src/organisms/InstrumentInfo/__tests__/InstrumentInfo.test.tsx b/app/src/organisms/ODD/InstrumentInfo/__tests__/InstrumentInfo.test.tsx similarity index 100% rename from app/src/organisms/InstrumentInfo/__tests__/InstrumentInfo.test.tsx rename to app/src/organisms/ODD/InstrumentInfo/__tests__/InstrumentInfo.test.tsx diff --git a/app/src/organisms/InstrumentInfo/index.tsx b/app/src/organisms/ODD/InstrumentInfo/index.tsx similarity index 100% rename from app/src/organisms/InstrumentInfo/index.tsx rename to app/src/organisms/ODD/InstrumentInfo/index.tsx diff --git a/app/src/organisms/InstrumentMountItem/AttachedInstrumentMountItem.tsx b/app/src/organisms/ODD/InstrumentMountItem/AttachedInstrumentMountItem.tsx similarity index 100% rename from app/src/organisms/InstrumentMountItem/AttachedInstrumentMountItem.tsx rename to app/src/organisms/ODD/InstrumentMountItem/AttachedInstrumentMountItem.tsx diff --git a/app/src/organisms/InstrumentMountItem/LabeledMount.tsx b/app/src/organisms/ODD/InstrumentMountItem/LabeledMount.tsx similarity index 100% rename from app/src/organisms/InstrumentMountItem/LabeledMount.tsx rename to app/src/organisms/ODD/InstrumentMountItem/LabeledMount.tsx diff --git a/app/src/organisms/InstrumentMountItem/ProtocolInstrumentMountItem.tsx b/app/src/organisms/ODD/InstrumentMountItem/ProtocolInstrumentMountItem.tsx similarity index 100% rename from app/src/organisms/InstrumentMountItem/ProtocolInstrumentMountItem.tsx rename to app/src/organisms/ODD/InstrumentMountItem/ProtocolInstrumentMountItem.tsx diff --git a/app/src/organisms/InstrumentMountItem/__tests__/ProtocolInstrumentMountItem.test.tsx b/app/src/organisms/ODD/InstrumentMountItem/__tests__/ProtocolInstrumentMountItem.test.tsx similarity index 100% rename from app/src/organisms/InstrumentMountItem/__tests__/ProtocolInstrumentMountItem.test.tsx rename to app/src/organisms/ODD/InstrumentMountItem/__tests__/ProtocolInstrumentMountItem.test.tsx diff --git a/app/src/organisms/InstrumentMountItem/index.tsx b/app/src/organisms/ODD/InstrumentMountItem/index.tsx similarity index 100% rename from app/src/organisms/InstrumentMountItem/index.tsx rename to app/src/organisms/ODD/InstrumentMountItem/index.tsx diff --git a/app/src/organisms/Navigation/NavigationMenu.tsx b/app/src/organisms/ODD/Navigation/NavigationMenu.tsx similarity index 100% rename from app/src/organisms/Navigation/NavigationMenu.tsx rename to app/src/organisms/ODD/Navigation/NavigationMenu.tsx diff --git a/app/src/organisms/Navigation/RestartRobotConfirmationModal.tsx b/app/src/organisms/ODD/Navigation/RestartRobotConfirmationModal.tsx similarity index 100% rename from app/src/organisms/Navigation/RestartRobotConfirmationModal.tsx rename to app/src/organisms/ODD/Navigation/RestartRobotConfirmationModal.tsx diff --git a/app/src/organisms/Navigation/__tests__/Navigation.test.tsx b/app/src/organisms/ODD/Navigation/__tests__/Navigation.test.tsx similarity index 100% rename from app/src/organisms/Navigation/__tests__/Navigation.test.tsx rename to app/src/organisms/ODD/Navigation/__tests__/Navigation.test.tsx diff --git a/app/src/organisms/Navigation/__tests__/NavigationMenu.test.tsx b/app/src/organisms/ODD/Navigation/__tests__/NavigationMenu.test.tsx similarity index 100% rename from app/src/organisms/Navigation/__tests__/NavigationMenu.test.tsx rename to app/src/organisms/ODD/Navigation/__tests__/NavigationMenu.test.tsx diff --git a/app/src/organisms/Navigation/__tests__/RestartRobotConfirmationModal.test.tsx b/app/src/organisms/ODD/Navigation/__tests__/RestartRobotConfirmationModal.test.tsx similarity index 100% rename from app/src/organisms/Navigation/__tests__/RestartRobotConfirmationModal.test.tsx rename to app/src/organisms/ODD/Navigation/__tests__/RestartRobotConfirmationModal.test.tsx diff --git a/app/src/organisms/Navigation/index.tsx b/app/src/organisms/ODD/Navigation/index.tsx similarity index 100% rename from app/src/organisms/Navigation/index.tsx rename to app/src/organisms/ODD/Navigation/index.tsx diff --git a/app/src/organisms/ODD/NetworkSettings/DisplayWifiList.tsx b/app/src/organisms/ODD/NetworkSettings/DisplayWifiList.tsx index fcfaa2931bf..3cd76255e32 100644 --- a/app/src/organisms/ODD/NetworkSettings/DisplayWifiList.tsx +++ b/app/src/organisms/ODD/NetworkSettings/DisplayWifiList.tsx @@ -17,7 +17,7 @@ import { } from '@opentrons/components' import { ODD_FOCUS_VISIBLE } from '/app/atoms/buttons/constants' -import { RobotSetupHeader } from '/app/organisms/RobotSetupHeader' +import { RobotSetupHeader } from '/app/organisms/ODD/RobotSetupHeader' import { DisplaySearchNetwork } from './DisplaySearchNetwork' import type { WifiNetwork } from '/app/redux/networking/types' diff --git a/app/src/organisms/ODD/NetworkSettings/WifiConnectionDetails.tsx b/app/src/organisms/ODD/NetworkSettings/WifiConnectionDetails.tsx index 2af3cbc2977..04e0fdb66a9 100644 --- a/app/src/organisms/ODD/NetworkSettings/WifiConnectionDetails.tsx +++ b/app/src/organisms/ODD/NetworkSettings/WifiConnectionDetails.tsx @@ -18,7 +18,7 @@ import { } from '@opentrons/components' import { MediumButton } from '/app/atoms/buttons' -import { RobotSetupHeader } from '/app/organisms/RobotSetupHeader' +import { RobotSetupHeader } from '/app/organisms/ODD/RobotSetupHeader' import { getLocalRobot } from '/app/redux/discovery' import { getNetworkInterfaces, fetchStatus } from '/app/redux/networking' import { NetworkDetailsModal } from '../RobotSettingsDashboard/NetworkSettings/NetworkDetailsModal' diff --git a/app/src/organisms/OpenDoorAlertModal/__tests__/OpenDoorAlertModal.test.tsx b/app/src/organisms/ODD/OpenDoorAlertModal/__tests__/OpenDoorAlertModal.test.tsx similarity index 100% rename from app/src/organisms/OpenDoorAlertModal/__tests__/OpenDoorAlertModal.test.tsx rename to app/src/organisms/ODD/OpenDoorAlertModal/__tests__/OpenDoorAlertModal.test.tsx diff --git a/app/src/organisms/OpenDoorAlertModal/index.tsx b/app/src/organisms/ODD/OpenDoorAlertModal/index.tsx similarity index 100% rename from app/src/organisms/OpenDoorAlertModal/index.tsx rename to app/src/organisms/ODD/OpenDoorAlertModal/index.tsx diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupDeckConfiguration/index.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupDeckConfiguration/index.tsx index 27b7bd5e776..a7148788639 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupDeckConfiguration/index.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupDeckConfiguration/index.tsx @@ -19,7 +19,7 @@ import { getSimplestDeckConfigForProtocol, } from '@opentrons/shared-data' -import { ChildNavigation } from '../../../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { AddFixtureModal } from '../../../DeviceDetailsDeckConfiguration/AddFixtureModal' import { DeckConfigurationDiscardChangesModal } from '../../../DeviceDetailsDeckConfiguration/DeckConfigurationDiscardChangesModal' import { useMostRecentCompletedAnalysis } from '/app/resources/runs' diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupInstruments/ProtocolSetupInstruments.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupInstruments/ProtocolSetupInstruments.tsx index ffa946fc3b3..1af859bc431 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupInstruments/ProtocolSetupInstruments.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupInstruments/ProtocolSetupInstruments.tsx @@ -15,7 +15,7 @@ import { ODDBackButton } from '/app/molecules/ODDBackButton' import { PipetteRecalibrationODDWarning } from '/app/organisms/ODD/PipetteRecalibrationODDWarning' import { getShowPipetteCalibrationWarning } from '/app/transformations/instruments' import { useMostRecentCompletedAnalysis } from '/app/resources/runs' -import { ProtocolInstrumentMountItem } from '../../../InstrumentMountItem' +import { ProtocolInstrumentMountItem } from '/app/organisms/ODD/InstrumentMountItem' import type { GripperData, PipetteData } from '@opentrons/api-client' import type { GripperModel } from '@opentrons/shared-data' diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ProtocolSetupModulesAndDeck.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ProtocolSetupModulesAndDeck.tsx index 9f4ed8fc8b6..bcbc2b57bba 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ProtocolSetupModulesAndDeck.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupModulesAndDeck/ProtocolSetupModulesAndDeck.tsx @@ -20,7 +20,7 @@ import { RUN_STATUS_STOPPED } from '@opentrons/api-client' import { getTopPortalEl } from '/app/App/portal' import { FloatingActionButton } from '/app/atoms/buttons' import { InlineNotification } from '/app/atoms/InlineNotification' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { useAttachedModules } from '/app/resources/modules' import { getProtocolModulesInfo, diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ChooseCsvFile.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ChooseCsvFile.tsx index 401731cf9f9..d8dcf237caa 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ChooseCsvFile.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ChooseCsvFile.tsx @@ -19,7 +19,7 @@ import { import { useAllCsvFilesQuery } from '@opentrons/react-api-client' import { getShellUpdateDataFiles } from '/app/redux/shell' -import { ChildNavigation } from '../../../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { EmptyFile } from './EmptyFile' import type { diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ChooseEnum.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ChooseEnum.tsx index 5b6ec5e5c5d..0576d1d8c78 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ChooseEnum.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ChooseEnum.tsx @@ -9,7 +9,7 @@ import { TYPOGRAPHY, } from '@opentrons/components' import { useToaster } from '../../../ToasterOven' -import { ChildNavigation } from '../../../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import type { ChoiceParameter } from '@opentrons/shared-data' interface ChooseEnumProps { diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ChooseNumber.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ChooseNumber.tsx index 934a1591844..cf2ae445e1c 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ChooseNumber.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ChooseNumber.tsx @@ -12,7 +12,7 @@ import { } from '@opentrons/components' import { useToaster } from '/app/organisms/ToasterOven' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { NumericalKeyboard } from '/app/atoms/SoftwareKeyboard' import type { NumberParameter } from '@opentrons/shared-data' diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ProtocolSetupParameters.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ProtocolSetupParameters.tsx index bc7c3482d7d..a80ea2b1f84 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ProtocolSetupParameters.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ProtocolSetupParameters.tsx @@ -23,7 +23,7 @@ import { getRunTimeParameterFilesForRun, getRunTimeParameterValuesForRun, } from '/app/transformations/runs' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { ResetValuesModal } from './ResetValuesModal' import { ChooseEnum } from './ChooseEnum' import { ChooseNumber } from './ChooseNumber' diff --git a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ViewOnlyParameters.tsx b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ViewOnlyParameters.tsx index 14956210cfb..1946d122848 100644 --- a/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ViewOnlyParameters.tsx +++ b/app/src/organisms/ODD/ProtocolSetup/ProtocolSetupParameters/ViewOnlyParameters.tsx @@ -19,7 +19,7 @@ import { TYPOGRAPHY, } from '@opentrons/components' import { useMostRecentCompletedAnalysis } from '/app/resources/runs' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { useToaster } from '/app/organisms/ToasterOven' import type { SetupScreens } from '../types' diff --git a/app/src/organisms/QuickTransferFlow/ConfirmExitModal.tsx b/app/src/organisms/ODD/QuickTransferFlow/ConfirmExitModal.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/ConfirmExitModal.tsx rename to app/src/organisms/ODD/QuickTransferFlow/ConfirmExitModal.tsx diff --git a/app/src/organisms/QuickTransferFlow/CreateNewTransfer.tsx b/app/src/organisms/ODD/QuickTransferFlow/CreateNewTransfer.tsx similarity index 97% rename from app/src/organisms/QuickTransferFlow/CreateNewTransfer.tsx rename to app/src/organisms/ODD/QuickTransferFlow/CreateNewTransfer.tsx index 051df48a87b..10b036b9064 100644 --- a/app/src/organisms/QuickTransferFlow/CreateNewTransfer.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/CreateNewTransfer.tsx @@ -10,7 +10,7 @@ import { DIRECTION_COLUMN, } from '@opentrons/components' -import { ChildNavigation } from '../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { useNotifyDeckConfigurationQuery } from '/app/resources/deck_configuration' import type { SmallButton } from '/app/atoms/buttons' diff --git a/app/src/organisms/QuickTransferFlow/NameQuickTransfer.tsx b/app/src/organisms/ODD/QuickTransferFlow/NameQuickTransfer.tsx similarity index 97% rename from app/src/organisms/QuickTransferFlow/NameQuickTransfer.tsx rename to app/src/organisms/ODD/QuickTransferFlow/NameQuickTransfer.tsx index 2c08275f431..8bff060ac38 100644 --- a/app/src/organisms/QuickTransferFlow/NameQuickTransfer.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/NameQuickTransfer.tsx @@ -16,7 +16,7 @@ import { import { getTopPortalEl } from '/app/App/portal' import { FullKeyboard } from '/app/atoms/SoftwareKeyboard' -import { ChildNavigation } from '../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' interface NameQuickTransferProps { onSave: (protocolName: string) => void diff --git a/app/src/organisms/QuickTransferFlow/Overview.tsx b/app/src/organisms/ODD/QuickTransferFlow/Overview.tsx similarity index 97% rename from app/src/organisms/QuickTransferFlow/Overview.tsx rename to app/src/organisms/ODD/QuickTransferFlow/Overview.tsx index 26c5cb60384..c373661bdc6 100644 --- a/app/src/organisms/QuickTransferFlow/Overview.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/Overview.tsx @@ -10,7 +10,7 @@ import { TEXT_ALIGN_RIGHT, TYPOGRAPHY, } from '@opentrons/components' -import { useToaster } from '../ToasterOven' +import { useToaster } from '/app/organisms/ToasterOven' import { CONSOLIDATE, DISTRIBUTE } from './constants' import type { QuickTransferSummaryState } from './types' diff --git a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/AirGap.tsx b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/AirGap.tsx similarity index 99% rename from app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/AirGap.tsx rename to app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/AirGap.tsx index 188de9623fe..594faa6372b 100644 --- a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/AirGap.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/AirGap.tsx @@ -15,7 +15,7 @@ import { import { ANALYTICS_QUICK_TRANSFER_SETTING_SAVED } from '/app/redux/analytics' import { getTopPortalEl } from '/app/App/portal' -import { ChildNavigation } from '../../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { ACTIONS } from '../constants' diff --git a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/BaseSettings.tsx b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/BaseSettings.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/BaseSettings.tsx rename to app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/BaseSettings.tsx diff --git a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/BlowOut.tsx b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/BlowOut.tsx similarity index 97% rename from app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/BlowOut.tsx rename to app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/BlowOut.tsx index 0a070b30e85..55984b27d8b 100644 --- a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/BlowOut.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/BlowOut.tsx @@ -15,11 +15,11 @@ import { FLEX_SINGLE_SLOT_BY_CUTOUT_ID, TRASH_BIN_ADAPTER_FIXTURE, } from '@opentrons/shared-data' -import { ANALYTICS_QUICK_TRANSFER_SETTING_SAVED } from '../../../redux/analytics' +import { ANALYTICS_QUICK_TRANSFER_SETTING_SAVED } from '/app/redux/analytics' import { getTopPortalEl } from '/app/App/portal' import { useNotifyDeckConfigurationQuery } from '/app/resources/deck_configuration' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' -import { ChildNavigation } from '../../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { ACTIONS } from '../constants' import type { DeckConfiguration } from '@opentrons/shared-data' diff --git a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/Delay.tsx b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/Delay.tsx similarity index 99% rename from app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/Delay.tsx rename to app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/Delay.tsx index 61fc8f3cc10..28443b2ea53 100644 --- a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/Delay.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/Delay.tsx @@ -15,7 +15,7 @@ import { import { ANALYTICS_QUICK_TRANSFER_SETTING_SAVED } from '/app/redux/analytics' import { getTopPortalEl } from '/app/App/portal' -import { ChildNavigation } from '../../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { ACTIONS } from '../constants' diff --git a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/FlowRate.tsx b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/FlowRate.tsx similarity index 98% rename from app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/FlowRate.tsx rename to app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/FlowRate.tsx index 993ee01ca32..88279b1c76a 100644 --- a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/FlowRate.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/FlowRate.tsx @@ -18,7 +18,7 @@ import { import { ANALYTICS_QUICK_TRANSFER_SETTING_SAVED } from '/app/redux/analytics' import { getTopPortalEl } from '/app/App/portal' -import { ChildNavigation } from '../../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { NumericalKeyboard } from '/app/atoms/SoftwareKeyboard' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' diff --git a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/Mix.tsx b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/Mix.tsx similarity index 99% rename from app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/Mix.tsx rename to app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/Mix.tsx index 6755ba70f9a..3774662bc38 100644 --- a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/Mix.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/Mix.tsx @@ -15,7 +15,7 @@ import { import { ANALYTICS_QUICK_TRANSFER_SETTING_SAVED } from '/app/redux/analytics' import { getTopPortalEl } from '/app/App/portal' -import { ChildNavigation } from '../../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { ACTIONS } from '../constants' diff --git a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/PipettePath.tsx b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/PipettePath.tsx similarity index 99% rename from app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/PipettePath.tsx rename to app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/PipettePath.tsx index ae90be4406e..9db8923bd58 100644 --- a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/PipettePath.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/PipettePath.tsx @@ -17,7 +17,7 @@ import { import { useNotifyDeckConfigurationQuery } from '/app/resources/deck_configuration' import { ANALYTICS_QUICK_TRANSFER_SETTING_SAVED } from '/app/redux/analytics' import { getTopPortalEl } from '/app/App/portal' -import { ChildNavigation } from '../../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { useBlowOutLocationOptions } from './BlowOut' diff --git a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/TipPosition.tsx b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/TipPosition.tsx similarity index 98% rename from app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/TipPosition.tsx rename to app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/TipPosition.tsx index 89e77cabc04..92082cf9c7d 100644 --- a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/TipPosition.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/TipPosition.tsx @@ -13,7 +13,7 @@ import { import { ANALYTICS_QUICK_TRANSFER_SETTING_SAVED } from '/app/redux/analytics' import { getTopPortalEl } from '/app/App/portal' -import { ChildNavigation } from '../../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { NumericalKeyboard } from '/app/atoms/SoftwareKeyboard' import { ACTIONS } from '../constants' import { createPortal } from 'react-dom' diff --git a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/TouchTip.tsx b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/TouchTip.tsx similarity index 98% rename from app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/TouchTip.tsx rename to app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/TouchTip.tsx index 7391f6da230..de832cf3630 100644 --- a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/TouchTip.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/TouchTip.tsx @@ -15,7 +15,7 @@ import { import { ANALYTICS_QUICK_TRANSFER_SETTING_SAVED } from '/app/redux/analytics' import { getTopPortalEl } from '/app/App/portal' -import { ChildNavigation } from '../../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { ACTIONS } from '../constants' import { i18n } from '/app/i18n' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' diff --git a/app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/index.tsx b/app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/index.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/QuickTransferAdvancedSettings/index.tsx rename to app/src/organisms/ODD/QuickTransferFlow/QuickTransferAdvancedSettings/index.tsx diff --git a/app/src/organisms/QuickTransferFlow/SaveOrRunModal.tsx b/app/src/organisms/ODD/QuickTransferFlow/SaveOrRunModal.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/SaveOrRunModal.tsx rename to app/src/organisms/ODD/QuickTransferFlow/SaveOrRunModal.tsx diff --git a/app/src/organisms/QuickTransferFlow/SelectDestLabware.tsx b/app/src/organisms/ODD/QuickTransferFlow/SelectDestLabware.tsx similarity index 98% rename from app/src/organisms/QuickTransferFlow/SelectDestLabware.tsx rename to app/src/organisms/ODD/QuickTransferFlow/SelectDestLabware.tsx index 5cb809fd041..ba90e54de4d 100644 --- a/app/src/organisms/QuickTransferFlow/SelectDestLabware.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/SelectDestLabware.tsx @@ -12,7 +12,7 @@ import { RadioButton, } from '@opentrons/components' -import { ChildNavigation } from '../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { getCompatibleLabwareByCategory } from './utils' import type { LabwareDefinition2 } from '@opentrons/shared-data' diff --git a/app/src/organisms/QuickTransferFlow/SelectDestWells.tsx b/app/src/organisms/ODD/QuickTransferFlow/SelectDestWells.tsx similarity index 98% rename from app/src/organisms/QuickTransferFlow/SelectDestWells.tsx rename to app/src/organisms/ODD/QuickTransferFlow/SelectDestWells.tsx index d871420b4c9..0cb402f6ee8 100644 --- a/app/src/organisms/QuickTransferFlow/SelectDestWells.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/SelectDestWells.tsx @@ -11,12 +11,12 @@ import { JUSTIFY_CENTER, } from '@opentrons/components' import { getAllDefinitions } from '@opentrons/shared-data' -import { ANALYTICS_QUICK_TRANSFER_WELL_SELECTION_DURATION } from '../../redux/analytics' +import { ANALYTICS_QUICK_TRANSFER_WELL_SELECTION_DURATION } from '/app/redux/analytics' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { getTopPortalEl } from '/app/App/portal' import { OddModal } from '/app/molecules/OddModal' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { useToaster } from '/app/organisms/ToasterOven' import { WellSelection } from '/app/organisms/WellSelection' import { diff --git a/app/src/organisms/QuickTransferFlow/SelectPipette.tsx b/app/src/organisms/ODD/QuickTransferFlow/SelectPipette.tsx similarity index 98% rename from app/src/organisms/QuickTransferFlow/SelectPipette.tsx rename to app/src/organisms/ODD/QuickTransferFlow/SelectPipette.tsx index 9e5d0511b0f..3331800e1a9 100644 --- a/app/src/organisms/QuickTransferFlow/SelectPipette.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/SelectPipette.tsx @@ -11,7 +11,7 @@ import { import { useInstrumentsQuery } from '@opentrons/react-api-client' import { RIGHT, LEFT } from '@opentrons/shared-data' import { usePipetteSpecsV2 } from '/app/local-resources/instruments' -import { ChildNavigation } from '../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import type { PipetteData, Mount } from '@opentrons/api-client' import type { SmallButton } from '/app/atoms/buttons' diff --git a/app/src/organisms/QuickTransferFlow/SelectSourceLabware.tsx b/app/src/organisms/ODD/QuickTransferFlow/SelectSourceLabware.tsx similarity index 98% rename from app/src/organisms/QuickTransferFlow/SelectSourceLabware.tsx rename to app/src/organisms/ODD/QuickTransferFlow/SelectSourceLabware.tsx index 7807fe46b89..2d4752a5aa1 100644 --- a/app/src/organisms/QuickTransferFlow/SelectSourceLabware.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/SelectSourceLabware.tsx @@ -12,7 +12,7 @@ import { RadioButton, } from '@opentrons/components' -import { ChildNavigation } from '../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { getCompatibleLabwareByCategory } from './utils' import type { LabwareDefinition2 } from '@opentrons/shared-data' diff --git a/app/src/organisms/QuickTransferFlow/SelectSourceWells.tsx b/app/src/organisms/ODD/QuickTransferFlow/SelectSourceWells.tsx similarity index 98% rename from app/src/organisms/QuickTransferFlow/SelectSourceWells.tsx rename to app/src/organisms/ODD/QuickTransferFlow/SelectSourceWells.tsx index 56754e37ad2..a78ec884560 100644 --- a/app/src/organisms/QuickTransferFlow/SelectSourceWells.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/SelectSourceWells.tsx @@ -9,7 +9,7 @@ import { } from '@opentrons/components' import { getAllDefinitions } from '@opentrons/shared-data' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { WellSelection } from '/app/organisms/WellSelection' import { ANALYTICS_QUICK_TRANSFER_WELL_SELECTION_DURATION } from '/app/redux/analytics' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' diff --git a/app/src/organisms/QuickTransferFlow/SelectTipRack.tsx b/app/src/organisms/ODD/QuickTransferFlow/SelectTipRack.tsx similarity index 97% rename from app/src/organisms/QuickTransferFlow/SelectTipRack.tsx rename to app/src/organisms/ODD/QuickTransferFlow/SelectTipRack.tsx index 588db092b06..e8ebd52d90c 100644 --- a/app/src/organisms/QuickTransferFlow/SelectTipRack.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/SelectTipRack.tsx @@ -7,7 +7,7 @@ import { RadioButton, } from '@opentrons/components' import { getAllDefinitions } from '@opentrons/shared-data' -import { ChildNavigation } from '../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import type { LabwareDefinition2 } from '@opentrons/shared-data' import type { SmallButton } from '/app/atoms/buttons' diff --git a/app/src/organisms/QuickTransferFlow/SummaryAndSettings.tsx b/app/src/organisms/ODD/QuickTransferFlow/SummaryAndSettings.tsx similarity index 98% rename from app/src/organisms/QuickTransferFlow/SummaryAndSettings.tsx rename to app/src/organisms/ODD/QuickTransferFlow/SummaryAndSettings.tsx index b8a345099fb..6ddba5ca50e 100644 --- a/app/src/organisms/QuickTransferFlow/SummaryAndSettings.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/SummaryAndSettings.tsx @@ -25,7 +25,7 @@ import { ANALYTICS_QUICK_TRANSFER_RUN_NOW, } from '/app/redux/analytics' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' -import { ChildNavigation } from '../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { Overview } from './Overview' import { TipManagement } from './TipManagement' import { QuickTransferAdvancedSettings } from './QuickTransferAdvancedSettings' diff --git a/app/src/organisms/QuickTransferFlow/TipManagement/ChangeTip.tsx b/app/src/organisms/ODD/QuickTransferFlow/TipManagement/ChangeTip.tsx similarity index 97% rename from app/src/organisms/QuickTransferFlow/TipManagement/ChangeTip.tsx rename to app/src/organisms/ODD/QuickTransferFlow/TipManagement/ChangeTip.tsx index 19e0ea6f193..7c72dbe202e 100644 --- a/app/src/organisms/QuickTransferFlow/TipManagement/ChangeTip.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/TipManagement/ChangeTip.tsx @@ -14,7 +14,7 @@ import { import { ANALYTICS_QUICK_TRANSFER_SETTING_SAVED } from '/app/redux/analytics' import { getTopPortalEl } from '/app/App/portal' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' -import { ChildNavigation } from '../../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import type { ChangeTipOptions, diff --git a/app/src/organisms/QuickTransferFlow/TipManagement/TipDropLocation.tsx b/app/src/organisms/ODD/QuickTransferFlow/TipManagement/TipDropLocation.tsx similarity index 95% rename from app/src/organisms/QuickTransferFlow/TipManagement/TipDropLocation.tsx rename to app/src/organisms/ODD/QuickTransferFlow/TipManagement/TipDropLocation.tsx index 92769ecd6fb..6dae428684b 100644 --- a/app/src/organisms/QuickTransferFlow/TipManagement/TipDropLocation.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/TipManagement/TipDropLocation.tsx @@ -15,11 +15,11 @@ import { TRASH_BIN_ADAPTER_FIXTURE, } from '@opentrons/shared-data' -import { ANALYTICS_QUICK_TRANSFER_SETTING_SAVED } from '../../../redux/analytics' +import { ANALYTICS_QUICK_TRANSFER_SETTING_SAVED } from '/app/redux/analytics' import { getTopPortalEl } from '/app/App/portal' import { useNotifyDeckConfigurationQuery } from '/app/resources/deck_configuration' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' -import { ChildNavigation } from '../../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import type { QuickTransferSummaryState, diff --git a/app/src/organisms/QuickTransferFlow/TipManagement/index.tsx b/app/src/organisms/ODD/QuickTransferFlow/TipManagement/index.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/TipManagement/index.tsx rename to app/src/organisms/ODD/QuickTransferFlow/TipManagement/index.tsx diff --git a/app/src/organisms/QuickTransferFlow/VolumeEntry.tsx b/app/src/organisms/ODD/QuickTransferFlow/VolumeEntry.tsx similarity index 98% rename from app/src/organisms/QuickTransferFlow/VolumeEntry.tsx rename to app/src/organisms/ODD/QuickTransferFlow/VolumeEntry.tsx index ce5b96b7316..0a6526676d6 100644 --- a/app/src/organisms/QuickTransferFlow/VolumeEntry.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/VolumeEntry.tsx @@ -9,7 +9,7 @@ import { SPACING, } from '@opentrons/components' -import { ChildNavigation } from '../ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { NumericalKeyboard } from '/app/atoms/SoftwareKeyboard' import { getVolumeRange } from './utils' import { CONSOLIDATE, DISTRIBUTE } from './constants' diff --git a/app/src/organisms/QuickTransferFlow/__tests__/ConfirmExitModal.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/ConfirmExitModal.test.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/ConfirmExitModal.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/ConfirmExitModal.test.tsx diff --git a/app/src/organisms/QuickTransferFlow/__tests__/CreateNewTransfer.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/CreateNewTransfer.test.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/CreateNewTransfer.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/CreateNewTransfer.test.tsx diff --git a/app/src/organisms/QuickTransferFlow/__tests__/NameQuickTransfer.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/NameQuickTransfer.test.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/NameQuickTransfer.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/NameQuickTransfer.test.tsx diff --git a/app/src/organisms/QuickTransferFlow/__tests__/Overview.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/Overview.test.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/Overview.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/Overview.test.tsx diff --git a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/AirGap.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/AirGap.test.tsx similarity index 98% rename from app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/AirGap.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/AirGap.test.tsx index b3e7ef55e31..434a882af5a 100644 --- a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/AirGap.test.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/AirGap.test.tsx @@ -4,8 +4,8 @@ import { describe, it, expect, afterEach, vi, beforeEach } from 'vitest' import { InputField } from '@opentrons/components' -import { renderWithProviders } from '../../../../__testing-utils__' -import { i18n } from '../../../../i18n' +import { renderWithProviders } from '/app/__testing-utils__' +import { i18n } from '/app/i18n' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { AirGap } from '../../QuickTransferAdvancedSettings/AirGap' import type { QuickTransferSummaryState } from '../../types' diff --git a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/BlowOut.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/BlowOut.test.tsx similarity index 96% rename from app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/BlowOut.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/BlowOut.test.tsx index 48d32beeb31..c75788ac8cd 100644 --- a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/BlowOut.test.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/BlowOut.test.tsx @@ -3,13 +3,13 @@ import { fireEvent, screen } from '@testing-library/react' import { describe, it, expect, afterEach, vi, beforeEach } from 'vitest' import { renderWithProviders } from '/app/__testing-utils__' -import { i18n } from '../../../../i18n' -import { useNotifyDeckConfigurationQuery } from '../../../../resources/deck_configuration' +import { i18n } from '/app/i18n' +import { useNotifyDeckConfigurationQuery } from '/app/resources/deck_configuration' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { BlowOut } from '../../QuickTransferAdvancedSettings/BlowOut' import type { QuickTransferSummaryState } from '../../types' -vi.mock('../../../../resources/deck_configuration') +vi.mock('/app/resources/deck_configuration') vi.mock('/app/redux-resources/analytics') vi.mock('../utils') diff --git a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/Delay.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/Delay.test.tsx similarity index 99% rename from app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/Delay.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/Delay.test.tsx index 58f1876adab..604a470a52e 100644 --- a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/Delay.test.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/Delay.test.tsx @@ -5,7 +5,7 @@ import { describe, it, expect, afterEach, vi, beforeEach } from 'vitest' import { InputField } from '@opentrons/components' import { renderWithProviders } from '/app/__testing-utils__' -import { i18n } from '../../../../i18n' +import { i18n } from '/app/i18n' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { Delay } from '../../QuickTransferAdvancedSettings/Delay' import type { QuickTransferSummaryState } from '../../types' diff --git a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/FlowRate.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/FlowRate.test.tsx similarity index 99% rename from app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/FlowRate.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/FlowRate.test.tsx index fc8b6960e1d..4b01bb52ebe 100644 --- a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/FlowRate.test.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/FlowRate.test.tsx @@ -5,7 +5,7 @@ import { describe, it, expect, afterEach, vi, beforeEach } from 'vitest' import { InputField } from '@opentrons/components' import { renderWithProviders } from '/app/__testing-utils__' -import { i18n } from '../../../../i18n' +import { i18n } from '/app/i18n' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { FlowRateEntry } from '../../QuickTransferAdvancedSettings/FlowRate' import type { QuickTransferSummaryState } from '../../types' diff --git a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/Mix.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/Mix.test.tsx similarity index 99% rename from app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/Mix.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/Mix.test.tsx index 6f66cc911d6..c4d1c170be3 100644 --- a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/Mix.test.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/Mix.test.tsx @@ -5,7 +5,7 @@ import { describe, it, expect, afterEach, vi, beforeEach } from 'vitest' import { InputField } from '@opentrons/components' import { renderWithProviders } from '/app/__testing-utils__' -import { i18n } from '../../../../i18n' +import { i18n } from '/app/i18n' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { Mix } from '../../QuickTransferAdvancedSettings/Mix' import type { QuickTransferSummaryState } from '../../types' diff --git a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/PipettePath.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/PipettePath.test.tsx similarity index 99% rename from app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/PipettePath.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/PipettePath.test.tsx index 985fc73cba3..e62571bdc6a 100644 --- a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/PipettePath.test.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/PipettePath.test.tsx @@ -5,7 +5,7 @@ import { describe, it, expect, afterEach, vi, beforeEach } from 'vitest' import { InputField } from '@opentrons/components' import { renderWithProviders } from '/app/__testing-utils__' -import { i18n } from '../../../../i18n' +import { i18n } from '/app/i18n' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { PipettePath } from '../../QuickTransferAdvancedSettings/PipettePath' import { useBlowOutLocationOptions } from '../../QuickTransferAdvancedSettings/BlowOut' diff --git a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/QuickTransferAdvancedSettings.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/QuickTransferAdvancedSettings.test.tsx similarity index 99% rename from app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/QuickTransferAdvancedSettings.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/QuickTransferAdvancedSettings.test.tsx index 16e9012b0fc..64e400f5a10 100644 --- a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/QuickTransferAdvancedSettings.test.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/QuickTransferAdvancedSettings.test.tsx @@ -3,7 +3,7 @@ import { fireEvent, screen } from '@testing-library/react' import { describe, it, expect, afterEach, vi, beforeEach } from 'vitest' import { renderWithProviders } from '/app/__testing-utils__' -import { i18n } from '../../../../i18n' +import { i18n } from '/app/i18n' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { QuickTransferAdvancedSettings } from '../../QuickTransferAdvancedSettings/' import { useToaster } from '/app/organisms/ToasterOven' @@ -17,7 +17,7 @@ import { AirGap } from '../../QuickTransferAdvancedSettings/AirGap' import { BlowOut } from '../../QuickTransferAdvancedSettings/BlowOut' vi.mock('/app/redux-resources/analytics') -vi.mock('../../../../organisms/ToasterOven') +vi.mock('/app/organisms/ToasterOven') vi.mock('../../QuickTransferAdvancedSettings/PipettePath') vi.mock('../../QuickTransferAdvancedSettings/FlowRate') vi.mock('../../QuickTransferAdvancedSettings/TipPosition') diff --git a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/TipPosition.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/TipPosition.test.tsx similarity index 97% rename from app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/TipPosition.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/TipPosition.test.tsx index cdc4b94a735..dc109c2c302 100644 --- a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/TipPosition.test.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/TipPosition.test.tsx @@ -4,8 +4,8 @@ import { describe, it, expect, afterEach, vi, beforeEach } from 'vitest' import { InputField } from '@opentrons/components' -import { renderWithProviders } from '../../../../__testing-utils__' -import { i18n } from '../../../../i18n' +import { renderWithProviders } from '/app/__testing-utils__' +import { i18n } from '/app/i18n' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { TipPositionEntry } from '../../QuickTransferAdvancedSettings/TipPosition' import type { QuickTransferSummaryState } from '../../types' diff --git a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/TouchTip.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/TouchTip.test.tsx similarity index 99% rename from app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/TouchTip.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/TouchTip.test.tsx index 3996d79a780..cc2b463c9a7 100644 --- a/app/src/organisms/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/TouchTip.test.tsx +++ b/app/src/organisms/ODD/QuickTransferFlow/__tests__/QuickTransferAdvancedSettings/TouchTip.test.tsx @@ -5,7 +5,7 @@ import { describe, it, expect, afterEach, vi, beforeEach } from 'vitest' import { InputField } from '@opentrons/components' import { renderWithProviders } from '/app/__testing-utils__' -import { i18n } from '../../../../i18n' +import { i18n } from '/app/i18n' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { TouchTip } from '../../QuickTransferAdvancedSettings/TouchTip' import type { QuickTransferSummaryState } from '../../types' diff --git a/app/src/organisms/QuickTransferFlow/__tests__/SelectDestLabware.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/SelectDestLabware.test.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/SelectDestLabware.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/SelectDestLabware.test.tsx diff --git a/app/src/organisms/QuickTransferFlow/__tests__/SelectPipette.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/SelectPipette.test.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/SelectPipette.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/SelectPipette.test.tsx diff --git a/app/src/organisms/QuickTransferFlow/__tests__/SelectSourceLabware.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/SelectSourceLabware.test.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/SelectSourceLabware.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/SelectSourceLabware.test.tsx diff --git a/app/src/organisms/QuickTransferFlow/__tests__/SelectTipRack.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/SelectTipRack.test.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/SelectTipRack.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/SelectTipRack.test.tsx diff --git a/app/src/organisms/QuickTransferFlow/__tests__/SummaryAndSettings.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/SummaryAndSettings.test.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/SummaryAndSettings.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/SummaryAndSettings.test.tsx diff --git a/app/src/organisms/QuickTransferFlow/__tests__/TipManagement/ChangeTip.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/TipManagement/ChangeTip.test.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/TipManagement/ChangeTip.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/TipManagement/ChangeTip.test.tsx diff --git a/app/src/organisms/QuickTransferFlow/__tests__/TipManagement/TipDropLocation.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/TipManagement/TipDropLocation.test.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/TipManagement/TipDropLocation.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/TipManagement/TipDropLocation.test.tsx diff --git a/app/src/organisms/QuickTransferFlow/__tests__/TipManagement/TipManagement.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/TipManagement/TipManagement.test.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/TipManagement/TipManagement.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/TipManagement/TipManagement.test.tsx diff --git a/app/src/organisms/QuickTransferFlow/__tests__/VolumeEntry.test.tsx b/app/src/organisms/ODD/QuickTransferFlow/__tests__/VolumeEntry.test.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/VolumeEntry.test.tsx rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/VolumeEntry.test.tsx diff --git a/app/src/organisms/QuickTransferFlow/__tests__/utils/generateCompatibleLabwareForPipette.test.ts b/app/src/organisms/ODD/QuickTransferFlow/__tests__/utils/generateCompatibleLabwareForPipette.test.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/utils/generateCompatibleLabwareForPipette.test.ts rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/utils/generateCompatibleLabwareForPipette.test.ts diff --git a/app/src/organisms/QuickTransferFlow/__tests__/utils/getInitialSummaryState.test.ts b/app/src/organisms/ODD/QuickTransferFlow/__tests__/utils/getInitialSummaryState.test.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/utils/getInitialSummaryState.test.ts rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/utils/getInitialSummaryState.test.ts diff --git a/app/src/organisms/QuickTransferFlow/__tests__/utils/getSelectedWellCount.test.ts b/app/src/organisms/ODD/QuickTransferFlow/__tests__/utils/getSelectedWellCount.test.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/utils/getSelectedWellCount.test.ts rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/utils/getSelectedWellCount.test.ts diff --git a/app/src/organisms/QuickTransferFlow/__tests__/utils/getVolumeRange.test.ts b/app/src/organisms/ODD/QuickTransferFlow/__tests__/utils/getVolumeRange.test.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/__tests__/utils/getVolumeRange.test.ts rename to app/src/organisms/ODD/QuickTransferFlow/__tests__/utils/getVolumeRange.test.ts diff --git a/app/src/organisms/QuickTransferFlow/constants.ts b/app/src/organisms/ODD/QuickTransferFlow/constants.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/constants.ts rename to app/src/organisms/ODD/QuickTransferFlow/constants.ts diff --git a/app/src/organisms/QuickTransferFlow/index.tsx b/app/src/organisms/ODD/QuickTransferFlow/index.tsx similarity index 100% rename from app/src/organisms/QuickTransferFlow/index.tsx rename to app/src/organisms/ODD/QuickTransferFlow/index.tsx diff --git a/app/src/organisms/QuickTransferFlow/reducers.ts b/app/src/organisms/ODD/QuickTransferFlow/reducers.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/reducers.ts rename to app/src/organisms/ODD/QuickTransferFlow/reducers.ts diff --git a/app/src/organisms/QuickTransferFlow/types.ts b/app/src/organisms/ODD/QuickTransferFlow/types.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/types.ts rename to app/src/organisms/ODD/QuickTransferFlow/types.ts diff --git a/app/src/organisms/QuickTransferFlow/utils/createQuickTransferFile.ts b/app/src/organisms/ODD/QuickTransferFlow/utils/createQuickTransferFile.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/utils/createQuickTransferFile.ts rename to app/src/organisms/ODD/QuickTransferFlow/utils/createQuickTransferFile.ts diff --git a/app/src/organisms/QuickTransferFlow/utils/generateCompatibleLabwareForPipette.ts b/app/src/organisms/ODD/QuickTransferFlow/utils/generateCompatibleLabwareForPipette.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/utils/generateCompatibleLabwareForPipette.ts rename to app/src/organisms/ODD/QuickTransferFlow/utils/generateCompatibleLabwareForPipette.ts diff --git a/app/src/organisms/QuickTransferFlow/utils/generateQuickTransferArgs.ts b/app/src/organisms/ODD/QuickTransferFlow/utils/generateQuickTransferArgs.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/utils/generateQuickTransferArgs.ts rename to app/src/organisms/ODD/QuickTransferFlow/utils/generateQuickTransferArgs.ts diff --git a/app/src/organisms/QuickTransferFlow/utils/getCompatibleLabwareByCategory.ts b/app/src/organisms/ODD/QuickTransferFlow/utils/getCompatibleLabwareByCategory.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/utils/getCompatibleLabwareByCategory.ts rename to app/src/organisms/ODD/QuickTransferFlow/utils/getCompatibleLabwareByCategory.ts diff --git a/app/src/organisms/QuickTransferFlow/utils/getInitialSummaryState.ts b/app/src/organisms/ODD/QuickTransferFlow/utils/getInitialSummaryState.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/utils/getInitialSummaryState.ts rename to app/src/organisms/ODD/QuickTransferFlow/utils/getInitialSummaryState.ts diff --git a/app/src/organisms/QuickTransferFlow/utils/getSelectedWellCount.ts b/app/src/organisms/ODD/QuickTransferFlow/utils/getSelectedWellCount.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/utils/getSelectedWellCount.ts rename to app/src/organisms/ODD/QuickTransferFlow/utils/getSelectedWellCount.ts diff --git a/app/src/organisms/QuickTransferFlow/utils/getVolumeRange.ts b/app/src/organisms/ODD/QuickTransferFlow/utils/getVolumeRange.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/utils/getVolumeRange.ts rename to app/src/organisms/ODD/QuickTransferFlow/utils/getVolumeRange.ts diff --git a/app/src/organisms/QuickTransferFlow/utils/index.ts b/app/src/organisms/ODD/QuickTransferFlow/utils/index.ts similarity index 100% rename from app/src/organisms/QuickTransferFlow/utils/index.ts rename to app/src/organisms/ODD/QuickTransferFlow/utils/index.ts diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/DeviceReset.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/DeviceReset.tsx index ab3349b62b7..40c6170fc56 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/DeviceReset.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/DeviceReset.tsx @@ -17,7 +17,7 @@ import { import { MediumButton, SmallButton } from '/app/atoms/buttons' import { OddModal } from '/app/molecules/OddModal' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { getResetConfigOptions, fetchResetConfigOptions, diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/EthernetConnectionDetails.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/EthernetConnectionDetails.tsx index ddf80031dc2..842965ad677 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/EthernetConnectionDetails.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/EthernetConnectionDetails.tsx @@ -14,7 +14,7 @@ import { TYPOGRAPHY, } from '@opentrons/components' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { getNetworkInterfaces } from '/app/redux/networking' import { getLocalRobot } from '/app/redux/discovery' diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsJoinOtherNetwork.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsJoinOtherNetwork.tsx index bf11cbd22c8..fed06e4572c 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsJoinOtherNetwork.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsJoinOtherNetwork.tsx @@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next' import { DIRECTION_COLUMN, Flex } from '@opentrons/components' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { SetWifiSsid } from '../../NetworkSettings' import type { SetSettingOption } from '../types' diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsSelectAuthenticationType.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsSelectAuthenticationType.tsx index 0507cd5bec5..f8ce5e6a205 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsSelectAuthenticationType.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsSelectAuthenticationType.tsx @@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next' import { DIRECTION_COLUMN, Flex } from '@opentrons/components' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { SelectAuthenticationType } from '../../NetworkSettings' import type { WifiSecurityType } from '@opentrons/api-client' diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsSetWifiCred.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsSetWifiCred.tsx index 0b06b66fb2b..9204f22f5c4 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsSetWifiCred.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsSetWifiCred.tsx @@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next' import { DIRECTION_COLUMN, Flex } from '@opentrons/components' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { SetWifiCred } from '../../NetworkSettings/SetWifiCred' import type { SetSettingOption } from '../types' diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsWifi.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsWifi.tsx index 0c78423cca9..add3565fe74 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsWifi.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsWifi.tsx @@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next' import { DIRECTION_COLUMN, Flex } from '@opentrons/components' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { WifiConnectionDetails } from './WifiConnectionDetails' import type { WifiSecurityType } from '@opentrons/api-client' diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsWifiConnect.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsWifiConnect.tsx index 3fc57e9028d..14dfdb6bd12 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsWifiConnect.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/RobotSettingsWifiConnect.tsx @@ -2,7 +2,7 @@ import { useTranslation } from 'react-i18next' import { Flex, DIRECTION_COLUMN, SPACING } from '@opentrons/components' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { ConnectingNetwork, FailedToConnect } from '../../NetworkSettings' import { FAILURE, PENDING, SUCCESS } from '/app/redux/robot-api' diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/index.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/index.tsx index c9daabfc820..db73b89dae3 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/index.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/NetworkSettings/index.tsx @@ -17,7 +17,7 @@ import { TYPOGRAPHY, } from '@opentrons/components' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import type { IconName, ChipType } from '@opentrons/components' import type { NetworkConnection } from '/app/resources/networking/hooks/useNetworkConnection' diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/Privacy.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/Privacy.tsx index a07c12fe444..3151d618b53 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/Privacy.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/Privacy.tsx @@ -9,7 +9,7 @@ import { TYPOGRAPHY, } from '@opentrons/components' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { RobotSettingButton } from './RobotSettingButton' import { OnOffToggle } from './OnOffToggle' import { diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/RobotSystemVersion.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/RobotSystemVersion.tsx index d3c26eb3161..37d9352659e 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/RobotSystemVersion.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/RobotSystemVersion.tsx @@ -14,7 +14,7 @@ import { } from '@opentrons/components' import { MediumButton } from '/app/atoms/buttons' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { RobotSystemVersionModal } from './RobotSystemVersionModal' import type { RobotUpdateInfo } from '/app/redux/robot-update/types' diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/TouchScreenSleep.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/TouchScreenSleep.tsx index b657df16c29..ea3d879088f 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/TouchScreenSleep.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/TouchScreenSleep.tsx @@ -9,7 +9,7 @@ import { RadioButton, } from '@opentrons/components' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { getOnDeviceDisplaySettings, updateConfigValue, diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/TouchscreenBrightness.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/TouchscreenBrightness.tsx index 830994c6924..c84d4abf574 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/TouchscreenBrightness.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/TouchscreenBrightness.tsx @@ -16,7 +16,7 @@ import { SPACING, } from '@opentrons/components' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { getOnDeviceDisplaySettings, updateConfigValue, diff --git a/app/src/organisms/ODD/RobotSettingsDashboard/UpdateChannel.tsx b/app/src/organisms/ODD/RobotSettingsDashboard/UpdateChannel.tsx index 856d5d4613c..c9668e8a079 100644 --- a/app/src/organisms/ODD/RobotSettingsDashboard/UpdateChannel.tsx +++ b/app/src/organisms/ODD/RobotSettingsDashboard/UpdateChannel.tsx @@ -14,7 +14,7 @@ import { CURSOR_POINTER, } from '@opentrons/components' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { getDevtoolsEnabled, getUpdateChannel, diff --git a/app/src/organisms/RobotSetupHeader/index.tsx b/app/src/organisms/ODD/RobotSetupHeader/index.tsx similarity index 100% rename from app/src/organisms/RobotSetupHeader/index.tsx rename to app/src/organisms/ODD/RobotSetupHeader/index.tsx diff --git a/app/src/pages/ODD/ConnectViaWifi/JoinOtherNetwork.tsx b/app/src/pages/ODD/ConnectViaWifi/JoinOtherNetwork.tsx index e956944122a..4abd146238a 100644 --- a/app/src/pages/ODD/ConnectViaWifi/JoinOtherNetwork.tsx +++ b/app/src/pages/ODD/ConnectViaWifi/JoinOtherNetwork.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next' import { Flex, DIRECTION_COLUMN } from '@opentrons/components' import { SetWifiSsid } from '/app/organisms/ODD/NetworkSettings' -import { RobotSetupHeader } from '/app/organisms/RobotSetupHeader' +import { RobotSetupHeader } from '/app/organisms/ODD/RobotSetupHeader' import type { WifiScreenOption } from './' diff --git a/app/src/pages/ODD/ConnectViaWifi/SelectAuthenticationType.tsx b/app/src/pages/ODD/ConnectViaWifi/SelectAuthenticationType.tsx index ad033d3ba7e..34f8e11e788 100644 --- a/app/src/pages/ODD/ConnectViaWifi/SelectAuthenticationType.tsx +++ b/app/src/pages/ODD/ConnectViaWifi/SelectAuthenticationType.tsx @@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next' import { Flex, DIRECTION_COLUMN } from '@opentrons/components' import { SelectAuthenticationType as SelectAuthenticationTypeComponent } from '/app/organisms/ODD/NetworkSettings' -import { RobotSetupHeader } from '/app/organisms/RobotSetupHeader' +import { RobotSetupHeader } from '/app/organisms/ODD/RobotSetupHeader' import type { WifiSecurityType } from '@opentrons/api-client' import type { WifiScreenOption } from './' diff --git a/app/src/pages/ODD/ConnectViaWifi/SetWifiCred.tsx b/app/src/pages/ODD/ConnectViaWifi/SetWifiCred.tsx index 4895f698b72..e2716fc2282 100644 --- a/app/src/pages/ODD/ConnectViaWifi/SetWifiCred.tsx +++ b/app/src/pages/ODD/ConnectViaWifi/SetWifiCred.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next' import { Flex, DIRECTION_COLUMN } from '@opentrons/components' import { SetWifiCred as SetWifiCredComponent } from '/app/organisms/ODD/NetworkSettings' -import { RobotSetupHeader } from '/app/organisms/RobotSetupHeader' +import { RobotSetupHeader } from '/app/organisms/ODD/RobotSetupHeader' import type { WifiScreenOption } from './' diff --git a/app/src/pages/ODD/ConnectViaWifi/WifiConnectStatus.tsx b/app/src/pages/ODD/ConnectViaWifi/WifiConnectStatus.tsx index f00e61c6471..e1ffbb14b79 100644 --- a/app/src/pages/ODD/ConnectViaWifi/WifiConnectStatus.tsx +++ b/app/src/pages/ODD/ConnectViaWifi/WifiConnectStatus.tsx @@ -7,7 +7,7 @@ import { FailedToConnect, WifiConnectionDetails, } from '/app/organisms/ODD/NetworkSettings' -import { RobotSetupHeader } from '/app/organisms/RobotSetupHeader' +import { RobotSetupHeader } from '/app/organisms/ODD/RobotSetupHeader' import * as RobotApi from '/app/redux/robot-api' import type { WifiSecurityType } from '@opentrons/api-client' diff --git a/app/src/pages/ODD/DeckConfiguration/index.tsx b/app/src/pages/ODD/DeckConfiguration/index.tsx index 608752a842c..2de5de02c46 100644 --- a/app/src/pages/ODD/DeckConfiguration/index.tsx +++ b/app/src/pages/ODD/DeckConfiguration/index.tsx @@ -11,7 +11,7 @@ import { JUSTIFY_SPACE_AROUND, } from '@opentrons/components' -import { ChildNavigation } from '/app/organisms/ChildNavigation' +import { ChildNavigation } from '/app/organisms/ODD/ChildNavigation' import { DeckFixtureSetupInstructionsModal } from '/app/organisms/DeviceDetailsDeckConfiguration/DeckFixtureSetupInstructionsModal' import { DeckConfigurationDiscardChangesModal } from '/app/organisms/DeviceDetailsDeckConfiguration/DeckConfigurationDiscardChangesModal' import { getTopPortalEl } from '/app/App/portal' diff --git a/app/src/pages/ODD/InstrumentDetail/index.tsx b/app/src/pages/ODD/InstrumentDetail/index.tsx index a3cce17d0a2..88c63e2faa6 100644 --- a/app/src/pages/ODD/InstrumentDetail/index.tsx +++ b/app/src/pages/ODD/InstrumentDetail/index.tsx @@ -18,7 +18,7 @@ import { FLEX_ROBOT_TYPE, getPipetteModelSpecs } from '@opentrons/shared-data' import { BackButton } from '/app/atoms/buttons/BackButton' import { ODD_FOCUS_VISIBLE } from '/app/atoms/buttons/constants' -import { InstrumentInfo } from '/app/organisms/InstrumentInfo' +import { InstrumentInfo } from '/app/organisms/ODD/InstrumentInfo' import { handleInstrumentDetailOverflowMenu } from './InstrumentDetailOverflowMenu' import { useGripperDisplayName, diff --git a/app/src/pages/ODD/InstrumentsDashboard/__tests__/InstrumentsDashboard.test.tsx b/app/src/pages/ODD/InstrumentsDashboard/__tests__/InstrumentsDashboard.test.tsx index f342bc1c69b..7f2687e07b7 100644 --- a/app/src/pages/ODD/InstrumentsDashboard/__tests__/InstrumentsDashboard.test.tsx +++ b/app/src/pages/ODD/InstrumentsDashboard/__tests__/InstrumentsDashboard.test.tsx @@ -90,7 +90,7 @@ vi.mock('@opentrons/react-api-client', async importOriginal => { vi.mock('/app/organisms/GripperWizardFlows') vi.mock('/app/organisms/PipetteWizardFlows') vi.mock('/app/organisms/PipetteWizardFlows/ChoosePipette') -vi.mock('/app/organisms/Navigation') +vi.mock('/app/organisms/ODD/Navigation') const render = (path = '/') => { return renderWithProviders( diff --git a/app/src/pages/ODD/InstrumentsDashboard/index.tsx b/app/src/pages/ODD/InstrumentsDashboard/index.tsx index 321e2139610..acc88714979 100644 --- a/app/src/pages/ODD/InstrumentsDashboard/index.tsx +++ b/app/src/pages/ODD/InstrumentsDashboard/index.tsx @@ -2,8 +2,8 @@ import { useState } from 'react' import { useInstrumentsQuery } from '@opentrons/react-api-client' import { DIRECTION_COLUMN, Flex, SPACING } from '@opentrons/components' import { PipetteWizardFlows } from '/app/organisms/PipetteWizardFlows' -import { Navigation } from '/app/organisms/Navigation' -import { AttachedInstrumentMountItem } from '/app/organisms/InstrumentMountItem' +import { Navigation } from '/app/organisms/ODD/Navigation' +import { AttachedInstrumentMountItem } from '/app/organisms/ODD/InstrumentMountItem' import { GripperWizardFlows } from '/app/organisms/GripperWizardFlows' import { getShowPipetteCalibrationWarning } from '/app/transformations/instruments' import { PipetteRecalibrationODDWarning } from '/app/organisms/ODD/PipetteRecalibrationODDWarning' diff --git a/app/src/pages/ODD/ProtocolDashboard/index.tsx b/app/src/pages/ODD/ProtocolDashboard/index.tsx index 49b36b0c112..ba2efa23949 100644 --- a/app/src/pages/ODD/ProtocolDashboard/index.tsx +++ b/app/src/pages/ODD/ProtocolDashboard/index.tsx @@ -17,7 +17,7 @@ import { import { useAllProtocolsQuery } from '@opentrons/react-api-client' import { SmallButton } from '/app/atoms/buttons' -import { Navigation } from '/app/organisms/Navigation' +import { Navigation } from '/app/organisms/ODD/Navigation' import { getPinnedProtocolIds, getProtocolsOnDeviceSortKey, diff --git a/app/src/pages/ODD/QuickTransferDashboard/index.tsx b/app/src/pages/ODD/QuickTransferDashboard/index.tsx index 7d650ba3b72..aa2d9c62334 100644 --- a/app/src/pages/ODD/QuickTransferDashboard/index.tsx +++ b/app/src/pages/ODD/QuickTransferDashboard/index.tsx @@ -26,7 +26,7 @@ import { ANALYTICS_QUICK_TRANSFER_FLOW_STARTED, } from '/app/redux/analytics' import { SmallButton, FloatingActionButton } from '/app/atoms/buttons' -import { Navigation } from '/app/organisms/Navigation' +import { Navigation } from '/app/organisms/ODD/Navigation' import { useTrackEventWithRobotSerial } from '/app/redux-resources/analytics' import { getPinnedQuickTransferIds, diff --git a/app/src/pages/ODD/RobotDashboard/__tests__/RobotDashboard.test.tsx b/app/src/pages/ODD/RobotDashboard/__tests__/RobotDashboard.test.tsx index 84eb834e1a3..e49d6734692 100644 --- a/app/src/pages/ODD/RobotDashboard/__tests__/RobotDashboard.test.tsx +++ b/app/src/pages/ODD/RobotDashboard/__tests__/RobotDashboard.test.tsx @@ -10,7 +10,7 @@ import { RecentRunProtocolCarousel, EmptyRecentRun, } from '/app/organisms/ODD/RobotDashboard' -import { Navigation } from '/app/organisms/Navigation' +import { Navigation } from '/app/organisms/ODD/Navigation' import { useMissingProtocolHardware } from '/app/transformations/commands' import { getOnDeviceDisplaySettings } from '/app/redux/config' import { WelcomeModal } from '../WelcomeModal' @@ -32,7 +32,7 @@ vi.mock('react-router-dom', async importOriginal => { vi.mock('@opentrons/react-api-client') vi.mock('/app/organisms/ODD/RobotDashboard/EmptyRecentRun') vi.mock('/app/organisms/ODD/RobotDashboard/RecentRunProtocolCarousel') -vi.mock('/app/organisms/Navigation') +vi.mock('/app/organisms/ODD/Navigation') vi.mock('/app/transformations/commands') vi.mock('/app/redux/config') vi.mock('../WelcomeModal') diff --git a/app/src/pages/ODD/RobotDashboard/index.tsx b/app/src/pages/ODD/RobotDashboard/index.tsx index 3b4414aaceb..b699f6ab569 100644 --- a/app/src/pages/ODD/RobotDashboard/index.tsx +++ b/app/src/pages/ODD/RobotDashboard/index.tsx @@ -12,7 +12,7 @@ import { } from '@opentrons/components' import { useAllProtocolsQuery } from '@opentrons/react-api-client' -import { Navigation } from '/app/organisms/Navigation' +import { Navigation } from '/app/organisms/ODD/Navigation' import { EmptyRecentRun, RecentRunProtocolCarousel, diff --git a/app/src/pages/ODD/RobotSettingsDashboard/RobotSettingsList.tsx b/app/src/pages/ODD/RobotSettingsDashboard/RobotSettingsList.tsx index 4787c63909a..7473410e42d 100644 --- a/app/src/pages/ODD/RobotSettingsDashboard/RobotSettingsList.tsx +++ b/app/src/pages/ODD/RobotSettingsDashboard/RobotSettingsList.tsx @@ -34,7 +34,7 @@ import { import { InlineNotification } from '/app/atoms/InlineNotification' import { getRobotSettings, updateSetting } from '/app/redux/robot-settings' import { UNREACHABLE } from '/app/redux/discovery/constants' -import { Navigation } from '/app/organisms/Navigation' +import { Navigation } from '/app/organisms/ODD/Navigation' import { useLEDLights } from '/app/resources/robot-settings' import { useNetworkConnection } from '/app/resources/networking' import { diff --git a/app/src/pages/ODD/RobotSettingsDashboard/__tests__/RobotSettingsDashboard.test.tsx b/app/src/pages/ODD/RobotSettingsDashboard/__tests__/RobotSettingsDashboard.test.tsx index 980a884c3a5..3b9c7261f69 100644 --- a/app/src/pages/ODD/RobotSettingsDashboard/__tests__/RobotSettingsDashboard.test.tsx +++ b/app/src/pages/ODD/RobotSettingsDashboard/__tests__/RobotSettingsDashboard.test.tsx @@ -9,7 +9,7 @@ import { getRobotSettings } from '/app/redux/robot-settings' import { getLocalRobot } from '/app/redux/discovery' import { toggleDevtools, toggleHistoricOffsets } from '/app/redux/config' import { mockConnectedRobot } from '/app/redux/discovery/__fixtures__' -import { Navigation } from '/app/organisms/Navigation' +import { Navigation } from '/app/organisms/ODD/Navigation' import { DeviceReset, TouchScreenSleep, @@ -34,7 +34,7 @@ vi.mock('/app/redux/robot-update') vi.mock('/app/redux/config') vi.mock('/app/redux/robot-settings') vi.mock('/app/resources/robot-settings') -vi.mock('/app/organisms/Navigation') +vi.mock('/app/organisms/ODD/Navigation') vi.mock('/app/organisms/ODD/RobotSettingsDashboard/TouchScreenSleep') vi.mock('/app/organisms/ODD/RobotSettingsDashboard/NetworkSettings') vi.mock('/app/organisms/ODD/RobotSettingsDashboard/DeviceReset') diff --git a/app/src/pages/ODD/RunningProtocol/__tests__/RunningProtocol.test.tsx b/app/src/pages/ODD/RunningProtocol/__tests__/RunningProtocol.test.tsx index 9a441f2fed0..2605c1bad5b 100644 --- a/app/src/pages/ODD/RunningProtocol/__tests__/RunningProtocol.test.tsx +++ b/app/src/pages/ODD/RunningProtocol/__tests__/RunningProtocol.test.tsx @@ -27,7 +27,7 @@ import { mockUseAllCommandsResponseNonDeterministic } from '/app/organisms/Deskt import { getLocalRobot } from '/app/redux/discovery' import { CancelingRunModal } from '/app/organisms/ODD/RunningProtocol/CancelingRunModal' import { useTrackProtocolRunEvent } from '/app/redux-resources/analytics' -import { OpenDoorAlertModal } from '/app/organisms/OpenDoorAlertModal' +import { OpenDoorAlertModal } from '/app/organisms/ODD/OpenDoorAlertModal' import { RunningProtocol } from '..' import { useRunStatus, @@ -57,7 +57,7 @@ vi.mock('/app/organisms/RunTimeControl/hooks') vi.mock('/app/organisms/ODD/RunningProtocol') vi.mock('/app/redux/discovery') vi.mock('/app/organisms/ODD/RunningProtocol/CancelingRunModal') -vi.mock('/app/organisms/OpenDoorAlertModal') +vi.mock('/app/organisms/ODD/OpenDoorAlertModal') vi.mock('/app/resources/runs') vi.mock('/app/redux/config') vi.mock('/app/organisms/ErrorRecoveryFlows') diff --git a/app/src/pages/ODD/RunningProtocol/index.tsx b/app/src/pages/ODD/RunningProtocol/index.tsx index 6611a6f3e31..665e9d6adf4 100644 --- a/app/src/pages/ODD/RunningProtocol/index.tsx +++ b/app/src/pages/ODD/RunningProtocol/index.tsx @@ -52,7 +52,7 @@ import { import { CancelingRunModal } from '/app/organisms/ODD/RunningProtocol/CancelingRunModal' import { ConfirmCancelRunModal } from '/app/organisms/ODD/RunningProtocol/ConfirmCancelRunModal' import { getLocalRobot } from '/app/redux/discovery' -import { OpenDoorAlertModal } from '/app/organisms/OpenDoorAlertModal' +import { OpenDoorAlertModal } from '/app/organisms/ODD/OpenDoorAlertModal' import { useErrorRecoveryFlows, ErrorRecoveryFlows, From 8ae648062d30022b05c2acd6f2511e655ab6ae12 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 09:54:45 -0400 Subject: [PATCH 16/18] fix(analyses-snapshot-testing): heal edge snapshots (#16377) The edge overnight analyses snapshot test is failing. This PR was opened to alert us to the failure. Co-authored-by: y3rsh <502770+y3rsh@users.noreply.github.com> --- ...89e3ab18][OT2_X_v6_P20S_None_SimpleTransfer].json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/analyses-snapshot-testing/tests/__snapshots__/analyses_snapshot_test/test_analysis_snapshot[4389e3ab18][OT2_X_v6_P20S_None_SimpleTransfer].json b/analyses-snapshot-testing/tests/__snapshots__/analyses_snapshot_test/test_analysis_snapshot[4389e3ab18][OT2_X_v6_P20S_None_SimpleTransfer].json index 5339ccdcc00..579a4670bcc 100644 --- a/analyses-snapshot-testing/tests/__snapshots__/analyses_snapshot_test/test_analysis_snapshot[4389e3ab18][OT2_X_v6_P20S_None_SimpleTransfer].json +++ b/analyses-snapshot-testing/tests/__snapshots__/analyses_snapshot_test/test_analysis_snapshot[4389e3ab18][OT2_X_v6_P20S_None_SimpleTransfer].json @@ -1757,13 +1757,13 @@ "createdAt": "TIMESTAMP", "error": { "createdAt": "TIMESTAMP", - "detail": "Cannot aspirate 21.0 µL when only 20.0 is available.", + "detail": "Cannot aspirate 21.0 µL when only 20 is available.", "errorCode": "4000", "errorInfo": { "attempted_aspirate_volume": 21.0, - "available_volume": 20.0, + "available_volume": 20, "max_pipette_volume": 20, - "max_tip_volume": 20.0 + "max_tip_volume": 20 }, "errorType": "InvalidAspirateVolumeError", "id": "UUID", @@ -1800,13 +1800,13 @@ "errors": [ { "createdAt": "TIMESTAMP", - "detail": "Cannot aspirate 21.0 µL when only 20.0 is available.", + "detail": "Cannot aspirate 21.0 µL when only 20 is available.", "errorCode": "4000", "errorInfo": { "attempted_aspirate_volume": 21.0, - "available_volume": 20.0, + "available_volume": 20, "max_pipette_volume": 20, - "max_tip_volume": 20.0 + "max_tip_volume": 20 }, "errorType": "InvalidAspirateVolumeError", "id": "UUID", From 7198034cb8b99889f6b70b750faf4534fad48c50 Mon Sep 17 00:00:00 2001 From: koji Date: Mon, 30 Sep 2024 10:23:00 -0400 Subject: [PATCH 17/18] fix(components): align EmptySelectorButton with the latest design (#16374) * fix(components): align EmptySelectorButton with the latest design --- .../atoms/buttons/EmptySelectorButton.stories.tsx | 8 -------- .../src/atoms/buttons/EmptySelectorButton.tsx | 15 +++------------ .../__tests__/EmptySelectorButton.test.tsx | 2 -- .../src/organisms/EditInstrumentsModal/index.tsx | 3 --- .../CreateNewProtocolWizard/SelectFixtures.tsx | 1 - .../CreateNewProtocolWizard/SelectModules.tsx | 1 - .../CreateNewProtocolWizard/SelectPipettes.tsx | 2 -- .../src/pages/Designer/Offdeck/OffDeckDetails.tsx | 1 - 8 files changed, 3 insertions(+), 30 deletions(-) diff --git a/components/src/atoms/buttons/EmptySelectorButton.stories.tsx b/components/src/atoms/buttons/EmptySelectorButton.stories.tsx index 9251085f13a..150257c784c 100644 --- a/components/src/atoms/buttons/EmptySelectorButton.stories.tsx +++ b/components/src/atoms/buttons/EmptySelectorButton.stories.tsx @@ -6,13 +6,6 @@ const meta: Meta = { title: 'Library/Atoms/Buttons/EmptySelectorButton', component: EmptySelectorButtonComponent, argTypes: { - size: { - control: { - type: 'select', - options: ['large', 'small'], - }, - defaultValue: 'large', - }, textAlignment: { controls: { type: 'select', @@ -37,7 +30,6 @@ export const EmptySelectorButton: Story = { args: { text: 'mock text', iconName: 'plus', - size: 'small', textAlignment: 'left', onClick: () => {}, }, diff --git a/components/src/atoms/buttons/EmptySelectorButton.tsx b/components/src/atoms/buttons/EmptySelectorButton.tsx index 92caa541fce..8a897e3569b 100644 --- a/components/src/atoms/buttons/EmptySelectorButton.tsx +++ b/components/src/atoms/buttons/EmptySelectorButton.tsx @@ -20,7 +20,6 @@ interface EmptySelectorButtonProps { text: string textAlignment: 'left' | 'middle' iconName?: IconName - size?: 'large' | 'small' disabled?: boolean } @@ -28,20 +27,12 @@ interface EmptySelectorButtonProps { export function EmptySelectorButton( props: EmptySelectorButtonProps ): JSX.Element { - const { - onClick, - text, - iconName, - size = 'large', - textAlignment, - disabled = false, - } = props - const buttonSizing = size === 'large' ? '100%' : FLEX_MAX_CONTENT + const { onClick, text, iconName, textAlignment, disabled = false } = props const StyledButton = styled.button` border: none; - width: ${buttonSizing}; - height: ${buttonSizing}; + width: ${FLEX_MAX_CONTENT}; + height: ${FLEX_MAX_CONTENT}; cursor: ${disabled ? CURSOR_DEFAULT : CURSOR_POINTER}; &:focus-visible { outline: 2px solid ${COLORS.white}; diff --git a/components/src/atoms/buttons/__tests__/EmptySelectorButton.test.tsx b/components/src/atoms/buttons/__tests__/EmptySelectorButton.test.tsx index ea7ab6c2b2b..6fea2d8d297 100644 --- a/components/src/atoms/buttons/__tests__/EmptySelectorButton.test.tsx +++ b/components/src/atoms/buttons/__tests__/EmptySelectorButton.test.tsx @@ -18,7 +18,6 @@ describe('EmptySelectorButton', () => { text: 'mock text', iconName: 'add', textAlignment: 'left', - size: 'large', } }) it('renders the props and button cta', () => { @@ -33,7 +32,6 @@ describe('EmptySelectorButton', () => { }) it('renders middled aligned button', () => { props.textAlignment = 'middle' - props.size = 'small' props.iconName = undefined render(props) expect(screen.getByTestId('EmptySelectorButton_container')).toHaveStyle( diff --git a/protocol-designer/src/organisms/EditInstrumentsModal/index.tsx b/protocol-designer/src/organisms/EditInstrumentsModal/index.tsx index 8b50cb41c73..7171b13d8e2 100644 --- a/protocol-designer/src/organisms/EditInstrumentsModal/index.tsx +++ b/protocol-designer/src/organisms/EditInstrumentsModal/index.tsx @@ -270,7 +270,6 @@ export function EditInstrumentsModal( text={t('add_pip')} textAlignment="left" iconName="plus" - size="large" /> )} {rightPip != null && @@ -305,7 +304,6 @@ export function EditInstrumentsModal( text={t('add_pip')} textAlignment="left" iconName="plus" - size="large" /> )} @@ -367,7 +365,6 @@ export function EditInstrumentsModal( text={t('protocol_overview:add_gripper')} textAlignment="left" iconName="plus" - size="large" /> )} diff --git a/protocol-designer/src/pages/CreateNewProtocolWizard/SelectFixtures.tsx b/protocol-designer/src/pages/CreateNewProtocolWizard/SelectFixtures.tsx index 0bdd457f2c7..caebeecbe99 100644 --- a/protocol-designer/src/pages/CreateNewProtocolWizard/SelectFixtures.tsx +++ b/protocol-designer/src/pages/CreateNewProtocolWizard/SelectFixtures.tsx @@ -92,7 +92,6 @@ export function SelectFixtures(props: WizardTileProps): JSX.Element | null { disabled={numSlotsAvailable === 0} key={equipment} textAlignment={TYPOGRAPHY.textAlignLeft} - size="small" iconName="plus" text={t(`${equipment}`)} onClick={() => { diff --git a/protocol-designer/src/pages/CreateNewProtocolWizard/SelectModules.tsx b/protocol-designer/src/pages/CreateNewProtocolWizard/SelectModules.tsx index 72ffa64245a..79701d9def9 100644 --- a/protocol-designer/src/pages/CreateNewProtocolWizard/SelectModules.tsx +++ b/protocol-designer/src/pages/CreateNewProtocolWizard/SelectModules.tsx @@ -141,7 +141,6 @@ export function SelectModules(props: WizardTileProps): JSX.Element | null { numMagneticBlocks === 4) } textAlignment={TYPOGRAPHY.textAlignLeft} - size="small" iconName="plus" text={getModuleDisplayName(moduleModel)} onClick={() => { diff --git a/protocol-designer/src/pages/CreateNewProtocolWizard/SelectPipettes.tsx b/protocol-designer/src/pages/CreateNewProtocolWizard/SelectPipettes.tsx index 9f1b3a4c83f..86f212718ad 100644 --- a/protocol-designer/src/pages/CreateNewProtocolWizard/SelectPipettes.tsx +++ b/protocol-designer/src/pages/CreateNewProtocolWizard/SelectPipettes.tsx @@ -448,7 +448,6 @@ export function SelectPipettes(props: WizardTileProps): JSX.Element | null { text={t('add_pip')} textAlignment="left" iconName="plus" - size="large" /> )} {pipettesByMount.right.pipetteName != null && @@ -480,7 +479,6 @@ export function SelectPipettes(props: WizardTileProps): JSX.Element | null { text={t('add_pip')} textAlignment="left" iconName="plus" - size="large" /> )} diff --git a/protocol-designer/src/pages/Designer/Offdeck/OffDeckDetails.tsx b/protocol-designer/src/pages/Designer/Offdeck/OffDeckDetails.tsx index 5d83ccb34e0..54561d0db9d 100644 --- a/protocol-designer/src/pages/Designer/Offdeck/OffDeckDetails.tsx +++ b/protocol-designer/src/pages/Designer/Offdeck/OffDeckDetails.tsx @@ -152,7 +152,6 @@ export function OffDeckDetails(props: OffDeckDetailsProps): JSX.Element { onClick={addLabware} text={t('add_labware')} textAlignment="middle" - size="large" iconName="plus" /> From 325b66e628f1b0f716e4dfd7c39957130f3e746f Mon Sep 17 00:00:00 2001 From: Jamey Huffnagle Date: Mon, 30 Sep 2024 10:36:29 -0400 Subject: [PATCH 18/18] fix(app): fix error recovery infinite render during takeover (#16364) --- .../__tests__/cleanupRecoveryState.test.ts | 37 +++++++++++++++---- .../useCleanupRecoveryState.ts} | 20 ++++++---- .../ErrorRecoveryFlows/hooks/useERUtils.ts | 9 ++--- .../ErrorRecoveryFlows/utils/index.ts | 1 - 4 files changed, 45 insertions(+), 22 deletions(-) rename app/src/organisms/ErrorRecoveryFlows/{utils => hooks}/__tests__/cleanupRecoveryState.test.ts (53%) rename app/src/organisms/ErrorRecoveryFlows/{utils/cleanupRecoveryState.ts => hooks/useCleanupRecoveryState.ts} (61%) diff --git a/app/src/organisms/ErrorRecoveryFlows/utils/__tests__/cleanupRecoveryState.test.ts b/app/src/organisms/ErrorRecoveryFlows/hooks/__tests__/cleanupRecoveryState.test.ts similarity index 53% rename from app/src/organisms/ErrorRecoveryFlows/utils/__tests__/cleanupRecoveryState.test.ts rename to app/src/organisms/ErrorRecoveryFlows/hooks/__tests__/cleanupRecoveryState.test.ts index 0bb17054c11..205e9cee926 100644 --- a/app/src/organisms/ErrorRecoveryFlows/utils/__tests__/cleanupRecoveryState.test.ts +++ b/app/src/organisms/ErrorRecoveryFlows/hooks/__tests__/cleanupRecoveryState.test.ts @@ -1,10 +1,11 @@ -import { describe, it, expect, beforeEach, vi } from 'vitest' +import { describe, it, expect, vi, beforeEach } from 'vitest' +import { renderHook } from '@testing-library/react' -import { cleanupRecoveryState } from '../cleanupRecoveryState' +import { useCleanupRecoveryState } from '../useCleanupRecoveryState' import { RECOVERY_MAP } from '../../constants' -describe('cleanupRecoveryState', () => { - let props: Parameters[0] +describe('useCleanupRecoveryState', () => { + let props: Parameters[0] let mockSetRM: ReturnType beforeEach(() => { @@ -22,7 +23,7 @@ describe('cleanupRecoveryState', () => { }) it('does not modify state when isTakeover is false', () => { - cleanupRecoveryState(props) + renderHook(() => useCleanupRecoveryState(props)) expect(props.stashedMapRef.current).toEqual({ route: RECOVERY_MAP.FILL_MANUALLY_AND_SKIP.ROUTE, @@ -33,7 +34,7 @@ describe('cleanupRecoveryState', () => { it('resets state when isTakeover is true', () => { props.isTakeover = true - cleanupRecoveryState(props) + renderHook(() => useCleanupRecoveryState(props)) expect(props.stashedMapRef.current).toBeNull() expect(mockSetRM).toHaveBeenCalledWith({ @@ -45,7 +46,7 @@ describe('cleanupRecoveryState', () => { it('handles case when stashedMapRef.current is already null', () => { props.isTakeover = true props.stashedMapRef.current = null - cleanupRecoveryState(props) + renderHook(() => useCleanupRecoveryState(props)) expect(props.stashedMapRef.current).toBeNull() expect(mockSetRM).toHaveBeenCalledWith({ @@ -53,4 +54,26 @@ describe('cleanupRecoveryState', () => { step: RECOVERY_MAP.OPTION_SELECTION.STEPS.SELECT, }) }) + + it('does not reset state when isTakeover changes from true to false', () => { + const { rerender } = renderHook( + ({ isTakeover }) => useCleanupRecoveryState({ ...props, isTakeover }), + { initialProps: { isTakeover: true } } + ) + + // Reset mockSetRM and stashedMapRef + mockSetRM.mockClear() + props.stashedMapRef.current = { + route: RECOVERY_MAP.FILL_MANUALLY_AND_SKIP.ROUTE, + step: RECOVERY_MAP.FILL_MANUALLY_AND_SKIP.STEPS.SKIP, + } + + rerender({ isTakeover: false }) + + expect(props.stashedMapRef.current).toEqual({ + route: RECOVERY_MAP.FILL_MANUALLY_AND_SKIP.ROUTE, + step: RECOVERY_MAP.FILL_MANUALLY_AND_SKIP.STEPS.SKIP, + }) + expect(mockSetRM).not.toHaveBeenCalled() + }) }) diff --git a/app/src/organisms/ErrorRecoveryFlows/utils/cleanupRecoveryState.ts b/app/src/organisms/ErrorRecoveryFlows/hooks/useCleanupRecoveryState.ts similarity index 61% rename from app/src/organisms/ErrorRecoveryFlows/utils/cleanupRecoveryState.ts rename to app/src/organisms/ErrorRecoveryFlows/hooks/useCleanupRecoveryState.ts index fddc29c1983..3d01e2356c5 100644 --- a/app/src/organisms/ErrorRecoveryFlows/utils/cleanupRecoveryState.ts +++ b/app/src/organisms/ErrorRecoveryFlows/hooks/useCleanupRecoveryState.ts @@ -1,3 +1,5 @@ +import { useEffect } from 'react' + import { RECOVERY_MAP } from '../constants' import type { @@ -13,17 +15,19 @@ export interface UseCleanupProps { } // When certain events (ex, a takeover) occur, reset state that needs to be reset. -export function cleanupRecoveryState({ +export function useCleanupRecoveryState({ isTakeover, stashedMapRef, setRM, }: UseCleanupProps): void { - if (isTakeover) { - stashedMapRef.current = null + useEffect(() => { + if (isTakeover) { + stashedMapRef.current = null - setRM({ - route: RECOVERY_MAP.OPTION_SELECTION.ROUTE, - step: RECOVERY_MAP.OPTION_SELECTION.STEPS.SELECT, - }) - } + setRM({ + route: RECOVERY_MAP.OPTION_SELECTION.ROUTE, + step: RECOVERY_MAP.OPTION_SELECTION.STEPS.SELECT, + }) + } + }, [isTakeover]) } diff --git a/app/src/organisms/ErrorRecoveryFlows/hooks/useERUtils.ts b/app/src/organisms/ErrorRecoveryFlows/hooks/useERUtils.ts index b571bcd890d..9f6a6536504 100644 --- a/app/src/organisms/ErrorRecoveryFlows/hooks/useERUtils.ts +++ b/app/src/organisms/ErrorRecoveryFlows/hooks/useERUtils.ts @@ -5,11 +5,7 @@ import { useRecoveryCommands } from './useRecoveryCommands' import { useRecoveryTipStatus } from './useRecoveryTipStatus' import { useRecoveryRouting } from './useRecoveryRouting' import { useFailedLabwareUtils } from './useFailedLabwareUtils' -import { - getFailedCommandPipetteInfo, - getNextSteps, - cleanupRecoveryState, -} from '../utils' +import { getFailedCommandPipetteInfo, getNextSteps } from '../utils' import { useDeckMapUtils } from './useDeckMapUtils' import { useNotifyAllCommandsQuery, @@ -21,6 +17,7 @@ import { useRunningStepCounts } from '/app/resources/protocols/hooks' import { useRecoveryToasts } from './useRecoveryToasts' import { useRecoveryAnalytics } from '/app/redux-resources/analytics' import { useShowDoorInfo } from './useShowDoorInfo' +import { useCleanupRecoveryState } from './useCleanupRecoveryState' import type { PipetteData } from '@opentrons/api-client' import type { RobotType } from '@opentrons/shared-data' @@ -177,7 +174,7 @@ export function useERUtils({ SUBSEQUENT_COMMAND_DEPTH ) - cleanupRecoveryState({ + useCleanupRecoveryState({ isTakeover: showTakeover, setRM, stashedMapRef: routeUpdateActions.stashedMapRef, diff --git a/app/src/organisms/ErrorRecoveryFlows/utils/index.ts b/app/src/organisms/ErrorRecoveryFlows/utils/index.ts index 42f0a40d6f1..53195d5d5fa 100644 --- a/app/src/organisms/ErrorRecoveryFlows/utils/index.ts +++ b/app/src/organisms/ErrorRecoveryFlows/utils/index.ts @@ -1,4 +1,3 @@ export { getErrorKind } from './getErrorKind' export { getFailedCommandPipetteInfo } from './getFailedCommandPipetteInfo' export { getNextStep, getNextSteps } from './getNextStep' -export { cleanupRecoveryState } from './cleanupRecoveryState'