Skip to content

Commit

Permalink
refactor(app): split protocol run header (#16224)
Browse files Browse the repository at this point in the history
Closes EXEC-414

ProtocolRunHeader is a massive component. This PR splits PRH into many components.
  • Loading branch information
mjhuff authored Sep 10, 2024
1 parent 6d53601 commit a6bd820
Show file tree
Hide file tree
Showing 74 changed files with 2,397 additions and 2,430 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import {
getUnreachableRobots,
startDiscovery,
} from '../../../redux/discovery'
import { getRobotUpdateDisplayInfo } from '../../../redux/robot-update'
import { useIsRobotOnWrongVersionOfSoftware } from '../../../redux/robot-update'
import {
mockConnectableRobot,
mockReachableRobot,
Expand Down Expand Up @@ -72,11 +72,7 @@ describe('ChooseRobotToRunProtocolSlideout', () => {
mockTrackCreateProtocolRunEvent = vi.fn(
() => new Promise(resolve => resolve({}))
)
vi.mocked(getRobotUpdateDisplayInfo).mockReturnValue({
autoUpdateAction: '',
autoUpdateDisabledReason: null,
updateFromFileDisabledReason: null,
})
vi.mocked(useIsRobotOnWrongVersionOfSoftware).mockReturnValue(false)
vi.mocked(getConnectableRobots).mockReturnValue([mockConnectableRobot])
vi.mocked(getUnreachableRobots).mockReturnValue([mockUnreachableRobot])
vi.mocked(getReachableRobots).mockReturnValue([mockReachableRobot])
Expand Down Expand Up @@ -221,11 +217,7 @@ describe('ChooseRobotToRunProtocolSlideout', () => {
expect(mockTrackCreateProtocolRunEvent).toHaveBeenCalled()
})
it('if selected robot is on a different version of the software than the app, disable CTA and show link to device details in options', () => {
vi.mocked(getRobotUpdateDisplayInfo).mockReturnValue({
autoUpdateAction: 'upgrade',
autoUpdateDisabledReason: null,
updateFromFileDisabledReason: null,
})
vi.mocked(useIsRobotOnWrongVersionOfSoftware).mockReturnValue(true)
render({
storedProtocolData: storedProtocolDataFixture,
onCloseClick: vi.fn(),
Expand Down
13 changes: 3 additions & 10 deletions app/src/organisms/ChooseRobotToRunProtocolSlideout/index.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import * as React from 'react'
import first from 'lodash/first'
import { useTranslation } from 'react-i18next'
import { useSelector } from 'react-redux'
import { useNavigate } from 'react-router-dom'

import {
Expand All @@ -22,7 +21,7 @@ import {
ApiHostProvider,
} from '@opentrons/react-api-client'

import { getRobotUpdateDisplayInfo } from '../../redux/robot-update'
import { useIsRobotOnWrongVersionOfSoftware } from '../../redux/robot-update'
import { OPENTRONS_USB } from '../../redux/discovery'
import { appShellRequestor } from '../../redux/shell/remote'
import { useTrackCreateProtocolRunEvent } from '../Devices/hooks'
Expand All @@ -36,7 +35,6 @@ import { ChooseRobotSlideout } from '../ChooseRobotSlideout'
import { useCreateRunFromProtocol } from './useCreateRunFromProtocol'
import type { StyleProps } from '@opentrons/components'
import type { RunTimeParameter } from '@opentrons/shared-data'
import type { State } from '../../redux/types'
import type { Robot } from '../../redux/discovery/types'
import type { StoredProtocolData } from '../../redux/protocol-storage'

Expand Down Expand Up @@ -174,15 +172,10 @@ export function ChooseRobotToRunProtocolSlideoutComponent(
})
}

const { autoUpdateAction } = useSelector((state: State) =>
getRobotUpdateDisplayInfo(state, selectedRobot?.name ?? '')
const isSelectedRobotOnDifferentSoftwareVersion = useIsRobotOnWrongVersionOfSoftware(
selectedRobot?.name ?? ''
)

const isSelectedRobotOnDifferentSoftwareVersion = [
'upgrade',
'downgrade',
].includes(autoUpdateAction)

const hasRunTimeParameters = runTimeParameters.length > 0

if (
Expand Down
11 changes: 4 additions & 7 deletions app/src/organisms/Devices/HistoricalProtocolRunOverflowMenu.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import * as React from 'react'
import { useSelector } from 'react-redux'
import { useTranslation } from 'react-i18next'
import { NavLink, useNavigate } from 'react-router-dom'

Expand Down Expand Up @@ -32,12 +31,11 @@ import {
ANALYTICS_PROTOCOL_PROCEED_TO_RUN,
ANALYTICS_PROTOCOL_RUN_ACTION,
} from '../../redux/analytics'
import { getRobotUpdateDisplayInfo } from '../../redux/robot-update'
import { useIsRobotOnWrongVersionOfSoftware } from '../../redux/robot-update'
import { useDownloadRunLog, useTrackProtocolRunEvent, useRobot } from './hooks'
import { useIsEstopNotDisengaged } from '../../resources/devices/hooks/useIsEstopNotDisengaged'

import type { Run } from '@opentrons/api-client'
import type { State } from '../../redux/types'

export interface HistoricalProtocolRunOverflowMenuProps {
runId: string
Expand Down Expand Up @@ -115,11 +113,10 @@ function MenuDropdown(props: MenuDropdownProps): JSX.Element {
isRunLogLoading,
} = props

const isRobotOnWrongVersionOfSoftware = ['upgrade', 'downgrade'].includes(
useSelector((state: State) => {
return getRobotUpdateDisplayInfo(state, robotName)
})?.autoUpdateAction
const isRobotOnWrongVersionOfSoftware = useIsRobotOnWrongVersionOfSoftware(
robotName
)

const [targetProps, tooltipProps] = useHoverTooltip()
const onResetSuccess = (createRunResponse: Run): void => {
navigate(
Expand Down
Loading

0 comments on commit a6bd820

Please sign in to comment.