diff --git a/app/src/organisms/RobotSettingsCalibration/CalibrationDataDownload.tsx b/app/src/organisms/RobotSettingsCalibration/CalibrationDataDownload.tsx index fee5399d0dd..40fc4528570 100644 --- a/app/src/organisms/RobotSettingsCalibration/CalibrationDataDownload.tsx +++ b/app/src/organisms/RobotSettingsCalibration/CalibrationDataDownload.tsx @@ -12,7 +12,10 @@ import { TYPOGRAPHY, DIRECTION_COLUMN, } from '@opentrons/components' -import { useInstrumentsQuery } from '@opentrons/react-api-client' +import { + useInstrumentsQuery, + useModulesQuery, +} from '@opentrons/react-api-client' import { TertiaryButton } from '../../atoms/buttons' import { StyledText } from '../../atoms/text' import { @@ -55,21 +58,15 @@ export function CalibrationDataDownload({ const pipetteOffsetCalibrations = usePipetteOffsetCalibrations() const tipLengthCalibrations = useTipLengthCalibrations() const { data: attachedInstruments } = useInstrumentsQuery({ enabled: isOT3 }) + const { data: attachedModules } = useModulesQuery({ enabled: isOT3 }) - const downloadIsPossible = + const ot2DownloadIsPossible = deckCalibrationData.isDeckCalibrated && pipetteOffsetCalibrations != null && pipetteOffsetCalibrations.length > 0 && tipLengthCalibrations != null && tipLengthCalibrations.length > 0 - const ot3DownloadIsPossible = - isOT3 && - attachedInstruments?.data.some( - instrument => - instrument.ok && instrument.data.calibratedOffset?.last_modified != null - ) - const onClickSaveAs: React.MouseEventHandler = e => { e.preventDefault() doTrackEvent({ @@ -81,6 +78,7 @@ export function CalibrationDataDownload({ isOT3 ? JSON.stringify({ instrumentData: attachedInstruments, + moduleData: attachedModules, }) : JSON.stringify({ deck: deckCalibrationData, @@ -124,7 +122,7 @@ export function CalibrationDataDownload({ ) : ( {t( - downloadIsPossible + ot2DownloadIsPossible ? 'robot_calibration:download_calibration_data_available' : 'robot_calibration:download_calibration_data_unavailable' )} @@ -133,7 +131,7 @@ export function CalibrationDataDownload({ diff --git a/app/src/organisms/RobotSettingsCalibration/__tests__/CalibrationDataDownload.test.tsx b/app/src/organisms/RobotSettingsCalibration/__tests__/CalibrationDataDownload.test.tsx index 07a30016a7a..13979539b77 100644 --- a/app/src/organisms/RobotSettingsCalibration/__tests__/CalibrationDataDownload.test.tsx +++ b/app/src/organisms/RobotSettingsCalibration/__tests__/CalibrationDataDownload.test.tsx @@ -3,7 +3,10 @@ import { saveAs } from 'file-saver' import { when, resetAllWhenMocks } from 'jest-when' import { renderWithProviders } from '@opentrons/components' -import { useInstrumentsQuery } from '@opentrons/react-api-client' +import { + useInstrumentsQuery, + useModulesQuery, +} from '@opentrons/react-api-client' import { instrumentsResponseFixture } from '@opentrons/api-client' import { i18n } from '../../../i18n' @@ -55,6 +58,9 @@ const mockUseIsOT3 = useIsOT3 as jest.MockedFunction const mockUseInstrumentsQuery = useInstrumentsQuery as jest.MockedFunction< typeof useInstrumentsQuery > +const mockUseModulesQuery = useModulesQuery as jest.MockedFunction< + typeof useModulesQuery +> let mockTrackEvent: jest.Mock const mockSetShowHowCalibrationWorksModal = jest.fn() @@ -113,6 +119,9 @@ describe('CalibrationDataDownload', () => { mockUseInstrumentsQuery.mockReturnValue({ data: { data: [] }, } as any) + mockUseModulesQuery.mockReturnValue({ + data: { data: [] }, + } as any) }) afterEach(() => { @@ -221,7 +230,7 @@ describe('CalibrationDataDownload', () => { const downloadButton = getByRole('button', { name: 'Download calibration data', }) - expect(downloadButton).toBeDisabled() + expect(downloadButton).toBeEnabled() // allow download for empty cal data }) it('renders disabled button when tip lengths are not calibrated', () => {