Skip to content

Commit cf0f625

Browse files
Connected modal to slice - appears working
1 parent c5ee950 commit cf0f625

2 files changed

Lines changed: 23 additions & 14 deletions

File tree

gcs/src/components/toolbar/toolbar.jsx

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,28 @@ import FileMenu from "./menus/file.jsx"
1717
import ViewMenu from "./menus/view.jsx"
1818

1919
// Redux
20-
import { useSelector } from "react-redux"
20+
import { useDispatch, useSelector } from "react-redux"
2121
import { selectConnectedToDrone } from "../../redux/slices/droneConnectionSlice.js"
2222
import { Button, Group, Modal } from "@mantine/core"
2323

2424
// Tailwind
2525
import tailwindConfig from "../../../tailwind.config.js"
26+
import { selectConfirmExitModalOpen, setConfirmExitModalOpen } from "../../redux/slices/applicationSlice.js"
2627
const tailwindColors = resolveConfig(tailwindConfig).theme.colors
2728

2829
function ConfirmExitModal() {
30+
const dispatch = useDispatch();
31+
const modalOpen = useSelector(selectConfirmExitModalOpen)
32+
33+
const confirmExit= () => {
34+
window.ipcRenderer.send("window:close", [])
35+
}
36+
2937
return (
3038
<Modal
31-
opened={false}
32-
onClose={() => {}}
33-
title="Confirm Quit"
39+
opened={modalOpen}
40+
onClose={() => dispatch(setConfirmExitModalOpen(false))}
41+
title="Confirm Application Exit"
3442
centered
3543
overlayProps={{
3644
backgroundOpacity: 0.55,
@@ -46,27 +54,27 @@ function ConfirmExitModal() {
4654
<Group justify="space-between" className="pt-4">
4755
<Button
4856
variant="filled"
49-
color={tailwindColors.red[600]}
50-
onClick={() => {}}
57+
onClick={() => dispatch(setConfirmExitModalOpen(false))}
5158
>
52-
Close
59+
Cancel
5360
</Button>
5461
<Button
5562
variant="filled"
5663
type="submit"
57-
color={tailwindColors.green[600]}
64+
color={tailwindColors.red[600]}
65+
onClick={() => confirmExit()}
5866
>
59-
Connect
67+
Exit
6068
</Button>
6169
</Group>
6270
</Modal>
6371
)
6472
}
6573

6674
export default function Toolbar() {
75+
const dispatch = useDispatch()
6776
const [areMenusActive, setMenusActive] = useState(false)
6877
const [isMac, setIsMac] = useState(false)
69-
const [confirmModelOpen, setConfirmModelOpen] = useState(false)
7078

7179
const connectedToDrone = useSelector(selectConnectedToDrone)
7280

@@ -78,8 +86,10 @@ export default function Toolbar() {
7886

7987
const onClose = () => {
8088
if (connectedToDrone) {
81-
setConfirmModelOpen(true)
82-
}
89+
dispatch(setConfirmExitModalOpen(true))
90+
} else {
91+
window.ipcRenderer.send("window:close", [])
92+
}
8393
}
8494

8595
return (

gcs/src/redux/slices/applicationSlice.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { createSlice } from "@reduxjs/toolkit"
2-
import droneConnectionSlice from "./droneConnectionSlice"
32

43
const initialState = {
54
confirmExitModalOpen: false,
@@ -28,4 +27,4 @@ export const {
2827
selectConfirmExitModalOpen
2928
} = applicationSlice.selectors
3029

31-
export default droneConnectionSlice
30+
export default applicationSlice

0 commit comments

Comments
 (0)