diff --git a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader.tsx b/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader.tsx index 5c11ccbc0a7..f37b3365b09 100644 --- a/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader.tsx +++ b/app/src/organisms/Devices/ProtocolRun/ProtocolRunHeader.tsx @@ -246,7 +246,14 @@ export function ProtocolRunHeader({ mount: aPipetteWithTip?.mount, robotType, onSkipAndHome: () => { - closeCurrentRun() + closeCurrentRun({ + onSuccess: () => { + if (isQuickTransfer) { + deleteRun(runId) + navigate(`/devices/${robotName}`) + } + }, + }) }, }) @@ -290,14 +297,19 @@ export function ProtocolRunHeader({ ...robotAnalyticsData, }, }) - closeCurrentRun({ - onSuccess: () => { - if (isQuickTransfer) { - deleteRun(runId) - navigate(`/devices/${robotName}`) - } - }, - }) + + // Close the run if no tips are attached after running tip check at least once. + // This marks the robot as "not busy" as soon as a run is cancelled if drop tip CTAs are unnecessary. + if (initialPipettesWithTipsCount === 0) { + closeCurrentRun({ + onSuccess: () => { + if (isQuickTransfer) { + deleteRun(runId) + navigate(`/devices/${robotName}`) + } + }, + }) + } } }, [runStatus, isRunCurrent, runId]) @@ -452,23 +464,6 @@ export function ProtocolRunHeader({ isRunCurrent={isRunCurrent} /> ) : null} - {mostRecentRunId === runId && showDropTipBanner && areTipsAttached ? ( - { - resetTipStatus() - setShowDropTipBanner(false) - closeCurrentRun({ - onSuccess: () => { - if (isQuickTransfer) { - deleteRun(runId) - navigate(`/devices/${robotName}`) - } - }, - }) - }} - /> - ) : null} {showDTModal ? ( { toggleDTWiz() - closeCurrentRun() + closeCurrentRun({ + onSuccess: () => { + if (isQuickTransfer) { + deleteRun(runId) + navigate(`/devices/${robotName}`) + } + }, + }) }, toggleDTWiz) } }}