-
Notifications
You must be signed in to change notification settings - Fork 179
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(odd): add Confirm Run cancel modal (#12468)
feat(odd): add Confirm Run Cancel modal close RCORE-562
- v8.3.0-alpha.7
- v8.3.0-alpha.6
- v8.3.0-alpha.5
- v8.3.0-alpha.4
- v8.3.0-alpha.3
- v8.3.0-alpha.2
- v8.3.0-alpha.1
- v8.3.0-alpha.0
- v8.3.0-a.4-with-droptip-height-fix
- v8.2.0
- v8.2.0-alpha.4
- v8.2.0-alpha.3
- v8.2.0-alpha.2
- v8.2.0-alpha.1
- v8.2.0-alpha.0
- v8.1.0
- v8.1.0-alpha.0
- v8.0.0
- v8.0.0-alpha.9
- v8.0.0-alpha.8
- v8.0.0-alpha.7
- v8.0.0-alpha.6
- v8.0.0-alpha.5
- v8.0.0-alpha.4
- v8.0.0-alpha.3
- v8.0.0-alpha.2
- v8.0.0-alpha.1
- v8.0.0-alpha.0
- v7.5.0
- v7.5.0-alpha.3
- v7.5.0-alpha.2
- v7.5.0-alpha.1
- v7.5.0-alpha.0
- v7.4.0
- v7.4.0-alpha.4
- v7.4.0-alpha.3
- v7.4.0-alpha.2
- v7.4.0-alpha.1
- v7.4.0-alpha.0
- v7.3.1
- v7.3.1-alpha.1
- v7.3.1-alpha.0
- v7.3.0
- v7.3.0-beta.0
- v7.3.0-alpha.7
- v7.3.0-alpha.6
- v7.3.0-alpha.5
- v7.3.0-alpha.4
- v7.3.0-alpha.3
- v7.3.0-alpha.2
- v7.3.0-alpha.1
- v7.3.0-alpha.0
- v7.2.2
- v7.2.2-alpha.3
- v7.2.2-alpha.2
- v7.2.2-alpha.1
- v7.2.2-alpha.0
- v7.2.1
- v7.2.1-alpha.1
- v7.2.1-alpha.0
- v7.2.0
- v7.2.0-alpha.12
- v7.2.0-alpha.11
- v7.2.0-alpha.10
- v7.2.0-alpha.9
- v7.2.0-alpha.8
- v7.2.0-alpha.7
- v7.2.0-alpha.6
- v7.2.0-alpha.5
- v7.2.0-alpha.4
- v7.2.0-alpha.3
- v7.2.0-alpha.2
- v7.2.0-alpha.1
- v7.2.0-alpha.0
- v7.1.1
- v7.1.1-alpha.1
- v7.1.1-alpha.0
- v7.1.0
- v7.1.0-beta.0
- v7.1.0-alpha.11
- v7.1.0-alpha.10
- v7.1.0-alpha.9
- v7.1.0-alpha.8
- v7.1.0-alpha.7
- v7.1.0-alpha.6
- v7.1.0-alpha.5
- v7.1.0-alpha.4
- v7.1.0-alpha.3
- v7.1.0-alpha.2
- v7.1.0-alpha.1
- v7.1.0-alpha.0
- v7.0.2
- v7.0.2-alpha.4
- v7.0.2-alpha.3
- v7.0.2-alpha.2
- v7.0.2-alpha.1
- v7.0.2-alpha.0
- v7.0.1
- v7.0.1-alpha.9
- v7.0.1-alpha.8
- v7.0.1-alpha.7
- v7.0.1-alpha.6
- v7.0.1-alpha.5
- v7.0.1-alpha.4
- v7.0.1-alpha.3
- v7.0.1-alpha.2
- v7.0.1-alpha.1
- v7.0.1-alpha.0
- v7.0.0
- v7.0.0-beta.1
- v7.0.0-beta.0
- v7.0.0-alpha.17
- v7.0.0-alpha.16
- v7.0.0-alpha.15
- v7.0.0-alpha.14
- v7.0.0-alpha.13
- v7.0.0-alpha.12
- v7.0.0-alpha.11
- v7.0.0-alpha.10
- v7.0.0-alpha.9
- v7.0.0-alpha.8
- v7.0.0-alpha.7
- v7.0.0-alpha.6
- v7.0.0-alpha.5
- v7.0.0-alpha.4
- v7.0.0-alpha.3
- v7.0.0-alpha.2
- v7.0.0-alpha.1
- v7.0.0-alpha.0
- v6.3.1-alpha.5
- v6.3.1-alpha.4
- v6.3.1-alpha.3
- –sort=committerdate
- shared-data@0.1.6-alpha.7
- shared-data@0.1.0-beta.0
- shared-data@0.1.0-alpha.1
- shared-data@0.1.0-alpha.0
- shared-data@0.0.0-alpha.2
- shared-data@0.0.0-alpha.1
- shared-data@0.0.0-alpha.0
- robot.z_stage-23.10.18
- robot.z_stage-23.08.21
- robot.z_stage-23.08.18
- robot.z_stage-23.08.18-2
- robot.z_stage-23.08.17
- robot.z_stage-23.08.10
- robot.stress-23.08.18
- robot.stress-23.08.18-2
- robot.stress-23.08.08
- robot.diagnostics-24.07.03
- robot.diagnostics-23.08.18
- robot.diagnostics-23.08.18-2
- robot.diagnostics-23.08.16
- robot.diagnostics-23.08.15
- robot.diagnostics-23.08.08
- rca-96ch-1st-dispense-feb29
- pvt_1ch_gravimetric_lifetime
- protocol-designer@8.4.2-alpha.0
- protocol-designer@8.4.0
- protocol-designer@8.4.0-alpha.5
- protocol-designer@8.4.0-alpha.4
- protocol-designer@8.4.0-alpha.3
- protocol-designer@8.4.0-alpha.2
- protocol-designer@8.4.0-alpha.1
- protocol-designer@8.4.0-alpha.0
- protocol-designer@8.3.0
- protocol-designer@8.3.0-candidate-f
- protocol-designer@8.3.0-candidate-e
- protocol-designer@8.3.0-candidate-d
- protocol-designer@8.3.0-candidate-c
- protocol-designer@8.3.0-candidate-b
- protocol-designer@8.3.0-candidate-a
- protocol-designer@8.2.3
- protocol-designer@8.2.3-candidate-c
- protocol-designer@8.2.3-candidate-b
- protocol-designer@8.2.3-candidate-a
- protocol-designer@8.2.2
- protocol-designer@8.2.2-candidate-c
- protocol-designer@8.2.2-candidate-b
- protocol-designer@8.2.2-candidate-a
- protocol-designer@8.2.1
- protocol-designer@8.2.1-candidate-a
- protocol-designer@8.2.0
- protocol-designer@8.2.0-candidate-j
- protocol-designer@8.2.0-candidate-i
- protocol-designer@8.2.0-candidate-h
- protocol-designer@8.2.0-candidate-g
- protocol-designer@8.2.0-candidate-f
- protocol-designer@8.2.0-candidate-e
- protocol-designer@8.2.0-candidate-d
- protocol-designer@8.2.0-candidate-c
- protocol-designer@8.2.0-candidate-b
- protocol-designer@8.2.0-candidate-a
- protocol-designer@8.1.3
- protocol-designer@8.1.3-candidate-a
- protocol-designer@8.1.2
- protocol-designer@8.1.2-candidate-b
- protocol-designer@8.1.2-candidate-a
- protocol-designer@8.1.1
- protocol-designer@8.1.1-candidate-a
- protocol-designer@8.1.0
- protocol-designer@8.1.0-candidate-g
- protocol-designer@8.1.0-candidate-f
- protocol-designer@8.1.0-candidate-e
- protocol-designer@8.1.0-candidate-d
- protocol-designer@8.1.0-candidate-c
- protocol-designer@8.1.0-candidate-b
- protocol-designer@8.1.0-candidate-a
- protocol-designer@8.0.3
- protocol-designer@8.0.3-candidate-a
- protocol-designer@8.0.2
- protocol-designer@8.0.2-candidate-b
- protocol-designer@8.0.2-candidate-a
- protocol-designer@8.0.1
- protocol-designer@8.0.1-candidate-a
- protocol-designer@8.0.0
- protocol-designer@8.0.0-candidate-d
- protocol-designer@8.0.0-candidate-c
- protocol-designer@8.0.0-candidate-b
- protocol-designer@8.0.0-candidate-a
- protocol-designer@7.0.2
- protocol-designer@7.0.2-candidate-a
- protocol-designer@7.0.1
- protocol-designer@7.0.1-candidate-b
- protocol-designer@7.0.1-candidate-a
- protocol-designer@7.0.0
- protocol-designer@7.0.0-candidate-e
- protocol-designer@7.0.0-candidate-d
- protocol-designer@7.0.0-candidate-c
- protocol-designer@7.0.0-candidate-b
- protocol-designer@7.0.0-candidate-a
- protocol-designer@6.2.2
- protocol-designer@6.2.2-candidate-a
- protocol-designer@6.2.1
- protocol-designer@6.2.1-candidate-b
- protocol-designer@6.2.1-candidate-a
- pipette.qc-24-7-2
- pipette.diagnostics-23.08.19
- pipette.diagnostics-23.08.19_fixpressure
- pipette.diagnostics-23.08.18-2
- pipette.diagnostics-23.08.16
- pipette.diagnostics-23.08.15
- pipette.diagnostics-23.08.10
- pipette.diagnostics-23.07.30
- pipette.diagnostics-23.07.27
- pipette.diagnostics-23.07.26
- pipette.diagnostics-23.07.25
- pipette.diagnostics-23.07.24
- pipette.diagnostics-23.07.21
- pipette.diagnostics-23.07.20
- pipette.diagnostics-8CH-fixopenair-240418
- pipette.diagnostics-1CH-fixsealed-240425
- pipette.diagnostics-1CH-fixopenair-240418
- pipette.diagnostics.8ch-23.09.11
- pipette.diagnostics.8ch-23.09.11_fixpressure
- pipette.diagnostics.8ch-23.09.08
- pipette.diagnostics.8ch-23.09.07_2
- pipette.diagnostics.8ch-23.09.07
- pipette.diagnostics.8ch-23.08.31
- pipette.diagnostics.8ch-23.08.30
- pipette.diagnostics.8ch-23.08.29
- pipette.diagnostics.8ch-23.08.29-wy
- pipette.diagnostics.8ch-23.08.28
- pipette.diagnostics.8ch-23.08.25
- p1000-single-dvt-lifetime-gravimetric-v3
- p50-single-dvt-lifetime-gravimetric-v1
- ot3@2.4.0-alpha.2
- ot3@2.4.0-alpha.1
- ot3@2.4.0-alpha.0
- ot3@2.3.0-alpha.3
- ot3@2.3.0-alpha.2
- ot3@2.3.0-alpha.1
- ot3@2.3.0-alpha.0
- ot3@2.2.0-alpha.1
- ot3@2.2.0-alpha.0
- ot3@2.1.0-alpha.1
- ot3@2.1.0-alpha.0
- ot3@2.0.0-alpha.4
- ot3@2.0.0-alpha.3
- ot3@2.0.0-alpha.2
- ot3@2.0.0-alpha.1
- ot3@2.0.0-alpha.0
- ot3@1.5.0
- ot3@1.5.0-alpha.3
- ot3@1.5.0-alpha.2
- ot3@1.5.0-alpha.1
- ot3@1.5.0-alpha.0
- ot3@1.4.0-alpha.1
- ot3@1.4.0-alpha.0
- ot3@1.3.0-alpha.0
- ot3@1.2.0
- ot3@1.2.0-alpha.6
- ot3@1.2.0-alpha.5
- ot3@1.2.0-alpha.4
- ot3@1.2.0-alpha.3
- ot3@1.2.0-alpha.2
- ot3@1.2.0-alpha.1
- ot3@1.2.0-alpha.0
- ot3@1.1.0
- ot3@1.1.0-alpha.5
- ot3@1.1.0-alpha.4
- ot3@1.1.0-alpha.3
- ot3@1.1.0-alpha.2
- ot3@1.1.0-alpha.1
- ot3@1.1.0-alpha.0
- ot3@1.0.0
- ot3@1.0.0-alpha.6
- ot3@1.0.0-alpha.5
- ot3@1.0.0-alpha.4
- ot3@1.0.0-alpha.3
- ot3@1.0.0-alpha.2
- ot3@1.0.0-alpha.1
- ot3@1.0.0-alpha.0
- ot3@0.15.0-alpha.5
- ot3@0.15.0-alpha.4
- ot3@0.15.0-alpha.3
- ot3@0.15.0-alpha.2
- ot3@0.15.0-alpha.1
- ot3@0.15.0-alpha.0
- ot3@0.14.0
- ot3@0.14.0-alpha.13
- ot3@0.14.0-alpha.12
- ot3@0.14.0-alpha.11
- ot3@0.14.0-alpha.10
- ot3@0.14.0-alpha.9
- ot3@0.14.0-alpha.8
- ot3@0.14.0-alpha.7
- ot3@0.14.0-alpha.6
- ot3@0.14.0-alpha.5
- ot3@0.14.0-alpha.4
- ot3@0.14.0-alpha.3
- ot3@0.14.0-alpha.2
- ot3@0.14.0-alpha.1
- ot3@0.14.0-alpha.0
- ot3@0.13.0
- ot3@0.13.0-beta.0
- ot3@0.13.0-alpha.12
- ot3@0.13.0-alpha.11
- ot3@0.13.0-alpha.10
- ot3@0.13.0-alpha.9
- ot3@0.13.0-alpha.8
- ot3@0.13.0-alpha.7
- ot3@0.13.0-alpha.6
- ot3@0.13.0-alpha.5
- ot3@0.13.0-alpha.4
- ot3@0.13.0-alpha.3
- ot3@0.13.0-alpha.2
- ot3@0.13.0-alpha.1
- ot3@0.13.0-alpha.0
- ot3@0.12.0
- ot3@0.12.0-beta.1
- ot3@0.12.0-beta.0
- ot3@0.12.0-alpha.7
- ot3@0.12.0-alpha.6
- ot3@0.12.0-alpha.5
- ot3@0.12.0-alpha.4
- ot3@0.12.0-alpha.3
- ot3@0.12.0-alpha.2
- ot3@0.12.0-alpha.1
- ot3@0.12.0-alpha.0
- ot3@0.11.0
- ot3@0.11.0-alpha.4
- ot3@0.11.0-alpha.3
- ot3@0.11.0-alpha.2
- ot3@0.11.0-alpha.1
- ot3@0.11.0-alpha.0
- ot3@0.10.0
- ot3@0.10.0-alpha.3
- ot3@0.10.0-alpha.2
- ot3@0.10.0-alpha.1
- ot3@0.10.0-alpha.0
- ot3@0.9.0
- ot3@0.9.0-alpha.3
- ot3@0.9.0-alpha.2
- ot3@0.9.0-alpha.1
- ot3@0.9.0-alpha.0
- ot3@0.8.0
- ot3@0.8.0-alpha.3
- ot3@0.8.0-alpha.2
- ot3@0.8.0-alpha.1
- ot3@0.8.0-alpha.0
- ot3@0.7.0
- ot3@0.7.0-alpha.4
- ot3@0.7.0-alpha.3
- ot3@0.7.0-alpha.2
- ot3@0.7.0-alpha.1
- ot3@0.7.0-alpha.0
- ot3@0.6.0
- ot3@0.6.0-alpha.3
- ot3@0.6.0-alpha.2
- ot3@0.6.0-alpha.1
- ot3@0.6.0-alpha.0
- ot3@0.5.0
- ot3@0.5.0-alpha.3
- ot3@0.5.0-alpha.2
- ot3@0.5.0-alpha.1
- ot3@0.5.0-alpha.0
- ot3@0.4.0
- ot3@0.4.0-alpha.3
- ot3@0.4.0-alpha.2
- ot3@0.4.0-alpha.1
- ot3@0.4.0-alpha.0
- mp.96pipette-24.11.22
- mp.96pipette-24.11.15
- mp.96pipette-24.7.30
- mp.96pipette-24.7.17
- mp.96pipette-24-2-1
- mp.96pipette-24-1-31
- mp.96pipette.v37-24.5.6
- mp.robot-23.12.11
- mp.robot-23.11.30
- mp.robot-23.11.28
- mp.robot-23.11.28-senser
- mp.robot-23.11.17
- mp.robot-23.11.16
- mp.pippete.24.6.12_FPY
- mp.pipette-24.7.30
- mp.pipette-24.1.30
- mp.pipette-23.11.16
- mp.pipette.24.5.27-FPY-version
- mp.pipette.24.4.2
- mp.pipette.24.1.18
- mp.pipette.newfixture
- mp.gripper-24-1-31
- mp.gripper.diagnostics-24.08.05-1
- mp.gripper.diagnostics-24.08.01
- mp.gripper.diagnostics-24.7.26
- list
- labware-library@3.2.0
- labware-library@3.2.0-alpha.0
- labware-library@3.1.0
- labware-library@3.1.0-candidate-b
- labware-library@3.1.0-candidate-a
- labware-library@3.0.2-candidate-a
- labware-library@3.0.1
- labware-library@3.0.1-candidate-e
- labware-library@3.0.1-candidate-d
- labware-library@3.0.1-candidate-c
- labware-library@3.0.1-candidate-b
- labware-library@3.0.1-candidate-a
- labware-library@3.0.0
- labware-library@3.0.0-candidate-b
- labware-library@3.0.0-candidate-a
- labware-library@2.1.0-candidate-b
- labware-library@2.1.0-candidate-a
- internal@1.3.0-alpha.0
- gripper_move_to_life_time
- gripper.diagnostics-23.10.24
- gripper.diagnostics-23.08.10
- gripper.diagnostics-23.08.09
- gripper.diagnostics-23.08.01
- gripper.diagnostics-23.07.31
- gripper.diagnostics-23.07.27
- gravimetric-placeholder
- gravimetric-ot3-supports-multis-v1
- gravimetric-23.10.18
- gravimetric-23.10.15
- gravimetric-23.10.06
- gravimetric-23.09.25-8ch.rnd
- gravimetric-23.09.22
- gravimetric-23.09.22-prd
- gravimetric-23.09.22-dumbo
- gravimetric-23.09.22-dumbo_p1000_t1000
- gravimetric-23.09.22-DEEPER-SUBMERGE
- gravimetric-23.09.21
- gravimetric-23.09.20
- gravimetric-23.09.18
- gravimetric-23.09.12
- gravimetric-23.09.11
- gravimetric-23.09.01
- gravimetric-23.08.25
- gravimetric-23.08.25-2
- gravimetric-23.08.24
- gravimetric-23.08.09
- gravimetric-23.08.03
- gravimetric-23.08.01
- gravimetric-23.07.27
- gravimetric-23.07.26
- gravimetric-23.07.25
- gravimetric-23.07.21
- gravimetric-23.07.17
- gravimetric-23.07.12
- gravimetric.8ch-23.08.24
- gen3-single-dvt-lifetime-gravimetric-round2-v3
- gen3-single-dvt-lifetime-gravimetric-round2-v2
- gen3-single-dvt-lifetime-gravimetric-round2-v1
- gen3-pipette-multi-dvt-lifetime-gravimetric-v1
- flex-stacker-qc-24.11.27
- flex-stacker-2025.2.14-build
- dvt-robot-diagnostics-may-9
- dvt-96ch-diagnostics-v2
- dvt-96ch-diagnostics-v1
- dvt-96-channel-photometric-v2
- dvt-96-channel-photometric-v1
- dvt-2-robot-diagnostics-v4
- dvt-2-robot-diagnostics-v3
- dvt-2-robot-diagnostics-v2
- dvt-2-robot-diagnostics-v1
- dvt-2-robot-assembly-qc-v1
- docs@2.21_1
- docs@2.21
- docs@2.20
- docs@2.19_2
- docs@2.19_1
- docs@2.19
- docs@2.18
- docs@2.17_2
- docs@2.17_1
- docs@2.17
- docs@2.16_2
- docs@2.16_1_1
- docs@2.16_1
- docs@2.16
- docs@2.15_7
- docs@2.15_6
- docs@2.15_5
- docs@2.15_4
- docs@2.15_3
- docs@2.15_2
- docs@2.15_1
- docs@2.15
- diagnostics.testing.2023.08.17
- daily.setup-23.11.9
- components@0.1.6-alpha.21
- components@0.1.6-alpha.20
- components@0.1.6-alpha.19
- components@0.1.6-alpha.18
- components@0.1.6-alpha.17
- components@0.1.6-alpha.16
- components@0.1.6-alpha.15
- components@0.1.6-alpha.14
- components@0.1.6-alpha.13
- components@0.1.6-alpha.12
- components@0.1.6-alpha.11
- components@0.1.6-alpha.10
- components@0.1.6-alpha.9
- components@0.1.6-alpha.8
- components@0.1.6-alpha.7
- components@0.1.6-alpha.6
- components@0.1.6-alpha.5
- components@0.1.6-alpha.4
- components@0.1.6-alpha.3
- components@0.1.6-alpha.2
- components@0.1.6-alpha.1
- components@0.1.6-alpha.0
- components@0.1.5
- components@0.1.5-alpha.4
- components@0.1.5-alpha.3
- components@0.1.5-alpha.2
- components@0.1.5-alpha.1
- components@0.1.5-alpha.0
- components@0.1.4
- components@0.1.3
- components@0.1.3-alpha.0
- components@0.1.2
- components@0.1.2-alpha.3
- components@0.1.2-alpha.2
- components@0.1.2-alpha.1
- components@0.1.2-alpha.0
- components@0.1.1
- components@0.1.0-beta.7
- components@0.1.0-beta.6
- components@0.1.0-beta.5
- components@0.1.0-beta.4
- components@0.1.0-beta.3
- components@0.1.0-beta.2
- components@0.1.0-beta.1
- components@0.1.0-beta.0
- components@0.1.0-alpha.0
- components@0.0.1-alpha.21
- components@0.0.1-alpha.20
- components@0.0.1-alpha.19
- components@0.0.1-alpha.18
- components@0.0.1-alpha.17
- components@0.0.1-alpha.16
- components@0.0.1-alpha.15
- components@0.0.1-alpha.14
- components@0.0.1-alpha.13
- components@0.0.1-alpha.12
- components@0.0.1-alpha.11
- components@0.0.1-alpha.10
- components@0.0.1-alpha.9
- components@0.0.1-alpha.8
- components@0.0.1-alpha.7
- components@0.0.1-alpha.6
- components@0.0.1-alpha.5
- components@0.0.1-alpha.4
- components@0.0.1-alpha.3
- components@0.0.1-alpha.2
- components@0.0.1-alpha.1
- components@0.0.1-alpha.0
- components@0.0.0-alpha.18
- components@0.0.0-alpha.17
- components@0.0.0-alpha.16
- components@0.0.0-alpha.15
- components@0.0.0-alpha.14
- components@0.0.0-alpha.13
- components@0.0.0-alpha.12
- components@0.0.0-alpha.11
- components@0.0.0-alpha.10
- components@0.0.0-alpha.9
- components@0.0.0-alpha.8
- components@0.0.0-alpha.7
- components@0.0.0-alpha.6
- components@0.0.0-alpha.5
- components@0.0.0-alpha.4
- components@0.0.0-alpha.3
- components@0.0.0-alpha.2
- components@0.0.0-alpha.1
- components@0.0.0-alpha.0
- belt.calibration-23.07.24
- app_shell-add-license-confirmation_3_app-build
- app_shell-add-license-confirmation_2_app-build
- app_shell-add-license-confirmation_app-build-2
- app_shell-add-license-confirmation_app-build
- ai-server@0.0.10
- ai-server@0.0.9
- ai-server@0.0.7
- ai-server@0.0.6
- ai-server@0.0.5
- ai-server@0.0.4
- ai-server@0.0.3
- ai-server@0.0.2
- ai-server@0.0.1
- ai-client@0.0.9
- ai-client@0.0.8
- ai-client@0.0.7
- ai-client@0.0.6
- ai-client@0.0.5
- ai-client@0.0.4
- ai-client@0.0.3
- ai-client@0.0.2
- ai-client@0.0.1
- OT2-version-json-sync
- HEPAUV-PVT-QCTESTING-2024-04-16
- CURRENTmax
- 96ch-sz-production-pvt-tag
- 96ch_200_gravimetric_24.11.22
- 96ch_200_gravimetric_24.11.21
- 96ch_photometric_24.11.14
- 96ch_photometric_24.4.16
- 96ch_gravimetric_24.4.16
- 96ch.diagnostics-24.1.17-1
- 96ch.diagnostics-23.10.4
- 96ch.diagnostics-23.09.27
- 1UL-DEBUGGING-OLD-DVT-SW-UNMODIFIED
- 1UL-DEBUGGING-NEW-PVT-WITHOUT-BACKLASH-AND-SLOWER
- 1UL-DEBUGGING-NEW-PVT-WITH-ADDED-LEADING-AIR-GAP
- 1UL-DEBUGGING-NEW-PVT-SUBMERGE-SPEED-5-MM-SEC
- 1UL-DEBUGGING-NEW-PVT-SUBMERGE-1MM
- 1UL-DEBUGGING-NEW-PVT-SAME-TIP-ENTIRE-TEST
- 1UL-DEBUGGING-NEW-PVT-HIGHER-Z-ACCELERATION
- 1CH-ORING-FUNCTION-mp.pipette.24.4.3
- 0.4.0-alpha.3
Showing
9 changed files
with
260 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
100 changes: 100 additions & 0 deletions
100
app/src/organisms/OnDeviceDisplay/RunningProtocol/ConfirmCancelRunModal.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
import * as React from 'react' | ||
import { useTranslation } from 'react-i18next' | ||
import { useHistory } from 'react-router-dom' | ||
|
||
import { | ||
COLORS, | ||
DIRECTION_COLUMN, | ||
DIRECTION_ROW, | ||
Flex, | ||
TYPOGRAPHY, | ||
SPACING, | ||
} from '@opentrons/components' | ||
import { useStopRunMutation } from '@opentrons/react-api-client' | ||
|
||
import { StyledText } from '../../../atoms/text' | ||
import { SmallButton } from '../../../atoms/buttons/OnDeviceDisplay' | ||
import { Modal } from '../../../molecules/Modal/OnDeviceDisplay/Modal' | ||
import { useTrackProtocolRunEvent } from '../../../organisms/Devices/hooks' | ||
|
||
import type { ModalHeaderBaseProps } from '../../../molecules/Modal/OnDeviceDisplay/types' | ||
|
||
interface ConfirmCancelRunModalProps { | ||
runId: string | ||
setShowConfirmCancelRunModal: (showConfirmCancelRunModal: boolean) => void | ||
} | ||
|
||
export function ConfirmCancelRunModal({ | ||
runId, | ||
setShowConfirmCancelRunModal, | ||
}: ConfirmCancelRunModalProps): JSX.Element { | ||
const { t } = useTranslation(['run_details', 'shared']) | ||
const { stopRun } = useStopRunMutation() | ||
const { trackProtocolRunEvent } = useTrackProtocolRunEvent(runId) | ||
const history = useHistory() | ||
const [isCanceling, setIsCanceling] = React.useState(false) | ||
|
||
const modalHeader: ModalHeaderBaseProps = { | ||
title: t('cancel_run_modal_heading'), | ||
hasExitIcon: false, | ||
iconName: 'ot-alert', | ||
iconColor: COLORS.yellow_two, | ||
} | ||
|
||
const handleCancelRun = (): void => { | ||
stopRun(runId, { | ||
onSuccess: () => { | ||
trackProtocolRunEvent({ name: 'runCancel' }) | ||
history.push('/dashboard') | ||
}, | ||
onError: () => { | ||
setIsCanceling(false) | ||
}, | ||
}) | ||
} | ||
|
||
return ( | ||
<Modal | ||
modalSize="medium" | ||
header={modalHeader} | ||
onOutsideClick={() => setShowConfirmCancelRunModal(false)} | ||
> | ||
<Flex flexDirection={DIRECTION_COLUMN}> | ||
<Flex flexDirection={DIRECTION_COLUMN}> | ||
<StyledText | ||
fontSize={TYPOGRAPHY.fontSize22} | ||
lineHeight={TYPOGRAPHY.lineHeight28} | ||
fontWeight={TYPOGRAPHY.fontWeightRegular} | ||
> | ||
{t('cancel_run_alert_info')} | ||
</StyledText> | ||
<StyledText | ||
fontSize={TYPOGRAPHY.fontSize22} | ||
lineHeight={TYPOGRAPHY.lineHeight28} | ||
fontWeight={TYPOGRAPHY.fontWeightRegular} | ||
> | ||
{t('cancel_run_module_info')} | ||
</StyledText> | ||
</Flex> | ||
<Flex | ||
marginTop={SPACING.spacing6} | ||
flexDirection={DIRECTION_ROW} | ||
gridGap={SPACING.spacing3} | ||
width="100%" | ||
> | ||
<SmallButton | ||
buttonType="default" | ||
buttonText={t('shared:go_back')} | ||
onClick={() => setShowConfirmCancelRunModal(false)} | ||
/> | ||
<SmallButton | ||
buttonType="alert" | ||
buttonText={t('cancel_run')} | ||
onClick={handleCancelRun} | ||
disabled={isCanceling} | ||
/> | ||
</Flex> | ||
</Flex> | ||
</Modal> | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
110 changes: 110 additions & 0 deletions
110
app/src/organisms/OnDeviceDisplay/RunningProtocol/__tests__/ConfirmCancelRunModal.test.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
import * as React from 'react' | ||
import { when, resetAllWhenMocks } from 'jest-when' | ||
import { MemoryRouter } from 'react-router-dom' | ||
import { fireEvent } from '@testing-library/react' | ||
|
||
import { renderWithProviders } from '@opentrons/components' | ||
import { useStopRunMutation } from '@opentrons/react-api-client' | ||
|
||
import { i18n } from '../../../../i18n' | ||
import { useTrackProtocolRunEvent } from '../../../../organisms/Devices/hooks' | ||
import { useTrackEvent } from '../../../../redux/analytics' | ||
|
||
import { ConfirmCancelRunModal } from '../ConfirmCancelRunModal' | ||
|
||
jest.mock('@opentrons/react-api-client') | ||
jest.mock('../../../../organisms/Devices/hooks') | ||
jest.mock('../../../../redux/analytics') | ||
|
||
const mockPush = jest.fn() | ||
let mockStopRun: jest.Mock | ||
let mockTrackEvent: jest.Mock | ||
let mockTrackProtocolRunEvent: jest.Mock | ||
|
||
jest.mock('react-router-dom', () => { | ||
const reactRouterDom = jest.requireActual('react-router-dom') | ||
return { | ||
...reactRouterDom, | ||
useHistory: () => ({ push: mockPush } as any), | ||
} | ||
}) | ||
|
||
const mockUseTrackProtocolRunEvent = useTrackProtocolRunEvent as jest.MockedFunction< | ||
typeof useTrackProtocolRunEvent | ||
> | ||
const mockUseTrackEvent = useTrackEvent as jest.MockedFunction< | ||
typeof useTrackEvent | ||
> | ||
const mockUseStopRunMutation = useStopRunMutation as jest.MockedFunction< | ||
typeof useStopRunMutation | ||
> | ||
|
||
const render = (props: React.ComponentProps<typeof ConfirmCancelRunModal>) => { | ||
return renderWithProviders( | ||
<MemoryRouter> | ||
<ConfirmCancelRunModal {...props} /> | ||
</MemoryRouter>, | ||
{ | ||
i18nInstance: i18n, | ||
} | ||
) | ||
} | ||
|
||
const RUN_ID = 'mock_runID' | ||
const mockFn = jest.fn() | ||
|
||
describe('ConfirmCancelRunModal', () => { | ||
let props: React.ComponentProps<typeof ConfirmCancelRunModal> | ||
|
||
beforeEach(() => { | ||
props = { | ||
runId: RUN_ID, | ||
setShowConfirmCancelRunModal: mockFn, | ||
} | ||
mockTrackEvent = jest.fn() | ||
mockStopRun = jest.fn((_runId, opts) => opts.onSuccess()) | ||
mockTrackProtocolRunEvent = jest.fn( | ||
() => new Promise(resolve => resolve({})) | ||
) | ||
mockUseStopRunMutation.mockReturnValue({ stopRun: mockStopRun } as any) | ||
mockUseTrackEvent.mockReturnValue(mockTrackEvent) | ||
when(mockUseTrackProtocolRunEvent).calledWith(RUN_ID).mockReturnValue({ | ||
trackProtocolRunEvent: mockTrackProtocolRunEvent, | ||
}) | ||
}) | ||
|
||
afterEach(() => { | ||
resetAllWhenMocks() | ||
jest.restoreAllMocks() | ||
}) | ||
|
||
it('should render text and buttons', () => { | ||
const [{ getByText, getAllByRole }] = render(props) | ||
getByText('Are you sure you want to cancel this run?') | ||
getByText( | ||
'Doing so will terminate this run, drop any attached tips in the trash container and home your robot.' | ||
) | ||
getByText( | ||
'Additionally, any hardware modules used within the protocol will remain active and maintain their current states until deactivated.' | ||
) | ||
expect(getAllByRole('button').length).toBe(2) | ||
getByText('Go back') | ||
getByText('Cancel run') | ||
}) | ||
|
||
it('when tapping go back, the mock function is called', () => { | ||
const [{ getByText }] = render(props) | ||
const button = getByText('Go back') | ||
fireEvent.click(button) | ||
expect(mockFn).toHaveBeenCalled() | ||
}) | ||
|
||
it('when tapping cancel run, the modal is closed', () => { | ||
const [{ getByText }] = render(props) | ||
const button = getByText('Cancel run') | ||
fireEvent.click(button) | ||
expect(mockStopRun).toHaveBeenCalled() | ||
expect(mockTrackProtocolRunEvent).toHaveBeenCalled() | ||
expect(mockPush).toHaveBeenCalledWith('/dashboard') | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters