@@ -17,20 +17,28 @@ import FileMenu from "./menus/file.jsx"
1717import ViewMenu from "./menus/view.jsx"
1818
1919// Redux
20- import { useSelector } from "react-redux"
20+ import { useDispatch , useSelector } from "react-redux"
2121import { selectConnectedToDrone } from "../../redux/slices/droneConnectionSlice.js"
2222import { Button , Group , Modal } from "@mantine/core"
2323
2424// Tailwind
2525import tailwindConfig from "../../../tailwind.config.js"
26+ import { selectConfirmExitModalOpen , setConfirmExitModalOpen } from "../../redux/slices/applicationSlice.js"
2627const tailwindColors = resolveConfig ( tailwindConfig ) . theme . colors
2728
2829function 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
6674export 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 (
0 commit comments