Skip to content

Commit 3f69602

Browse files
Kush's requests added.
1 parent 3cad17d commit 3f69602

4 files changed

Lines changed: 98 additions & 95 deletions

File tree

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
// Custom Imports
2+
import { Group, Modal, Button, Text } from "@mantine/core"
3+
4+
// Redux
5+
import { useDispatch, useSelector } from "react-redux"
6+
import {
7+
selectConfirmExitModalOpen,
8+
setConfirmExitModalOpen,
9+
} from "../../redux/slices/applicationSlice"
10+
11+
// Tailwind
12+
import resolveConfig from "tailwindcss/resolveConfig"
13+
import tailwindConfig from "../../../tailwind.config"
14+
const tailwindColors = resolveConfig(tailwindConfig).theme.colors
15+
16+
export default function ConfirmExitModal() {
17+
const dispatch = useDispatch()
18+
const modalOpen = useSelector(selectConfirmExitModalOpen)
19+
20+
const confirmExit = () => {
21+
window.ipcRenderer.send("window:close")
22+
}
23+
24+
return (
25+
<Modal
26+
opened={modalOpen}
27+
onClose={() => dispatch(setConfirmExitModalOpen(false))}
28+
title="Are you sure you want to quit FGCS?"
29+
centered
30+
overlayProps={{
31+
backgroundOpacity: 0.55,
32+
blur: 3,
33+
}}
34+
styles={{
35+
content: {
36+
borderRadius: "0.5rem",
37+
},
38+
}}
39+
withCloseButton={false}
40+
>
41+
<Text mb={16} c="dimmed" size="sm">
42+
You are connected to an aircraft, are you sure you want to quit FGCS?
43+
</Text>
44+
<Group justify="space-between" className="pt-4">
45+
<Button
46+
variant="filled"
47+
onClick={() => dispatch(setConfirmExitModalOpen(false))}
48+
>
49+
Cancel
50+
</Button>
51+
<Button
52+
variant="filled"
53+
type="submit"
54+
color={tailwindColors.red[600]}
55+
onClick={() => confirmExit()}
56+
>
57+
Quit
58+
</Button>
59+
</Group>
60+
</Modal>
61+
)
62+
}

gcs/src/components/toolbar/toolbar.jsx

Lines changed: 2 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -9,70 +9,17 @@
99
import { useEffect, useState } from "react"
1010

1111
// Custom Imports
12-
import resolveConfig from "tailwindcss/resolveConfig.js"
1312
import SpotlightComponent from "../spotlight/spotlight.jsx"
1413
import { CloseIcon, MaximizeIcon, MinimizeIcon } from "./icons.jsx"
1514
import AdvancedMenu from "./menus/advanced.jsx"
1615
import FileMenu from "./menus/file.jsx"
1716
import ViewMenu from "./menus/view.jsx"
17+
import ConfirmExitModal from "./confirmExitModal.jsx"
1818

1919
// Redux
2020
import { useDispatch, useSelector } from "react-redux"
2121
import { selectConnectedToDrone } from "../../redux/slices/droneConnectionSlice.js"
22-
import { Button, Group, Modal } from "@mantine/core"
23-
24-
// Tailwind
25-
import tailwindConfig from "../../../tailwind.config.js"
26-
import {
27-
selectConfirmExitModalOpen,
28-
setConfirmExitModalOpen,
29-
} from "../../redux/slices/applicationSlice.js"
30-
const tailwindColors = resolveConfig(tailwindConfig).theme.colors
31-
32-
function ConfirmExitModal() {
33-
const dispatch = useDispatch()
34-
const modalOpen = useSelector(selectConfirmExitModalOpen)
35-
36-
const confirmExit = () => {
37-
window.ipcRenderer.send("window:close", [])
38-
}
39-
40-
return (
41-
<Modal
42-
opened={modalOpen}
43-
onClose={() => dispatch(setConfirmExitModalOpen(false))}
44-
title="Confirm Application Exit"
45-
centered
46-
overlayProps={{
47-
backgroundOpacity: 0.55,
48-
blur: 3,
49-
}}
50-
styles={{
51-
content: {
52-
borderRadius: "0.5rem",
53-
},
54-
}}
55-
withCloseButton={true}
56-
>
57-
<Group justify="space-between" className="pt-4">
58-
<Button
59-
variant="filled"
60-
onClick={() => dispatch(setConfirmExitModalOpen(false))}
61-
>
62-
Cancel
63-
</Button>
64-
<Button
65-
variant="filled"
66-
type="submit"
67-
color={tailwindColors.red[600]}
68-
onClick={() => confirmExit()}
69-
>
70-
Exit
71-
</Button>
72-
</Group>
73-
</Modal>
74-
)
75-
}
22+
import { setConfirmExitModalOpen } from "../../redux/slices/applicationSlice.js"
7623

7724
export default function Toolbar() {
7825
const dispatch = useDispatch()

gcs/src/redux/slices/applicationSlice.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
import { createSlice } from "@reduxjs/toolkit"
22

3-
const initialState = {
4-
confirmExitModalOpen: false,
5-
}
6-
73
const applicationSlice = createSlice({
84
name: "application",
9-
initialState,
5+
initialState: { confirmExitModalOpen: false },
106
reducers: {
117
// Setters
128
setConfirmExitModalOpen: (state, action) => {

gcs/src/redux/slices/droneConnectionSlice.js

Lines changed: 33 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,48 +5,46 @@ export const ConnectionType = {
55
Network: "network",
66
}
77

8-
const initialState = {
9-
// drone connection status
10-
connecting: false,
11-
connected: false,
12-
connection_modal: false,
13-
connection_status: {
14-
message: "",
15-
progress: 0,
16-
},
8+
const droneConnectionSlice = createSlice({
9+
name: "droneConnection",
10+
initialState: {
11+
// drone connection status
12+
connecting: false,
13+
connected: false,
14+
connection_modal: false,
15+
connection_status: {
16+
message: "",
17+
progress: 0,
18+
},
1719

18-
// aircraft type
19-
aircraft_type: 0,
20+
// aircraft type
21+
aircraft_type: 0,
2022

21-
// drone connection parameters
22-
wireless: true, // local
23-
baudrate: "9600", // local
24-
connection_type: ConnectionType.Serial, // local
23+
// drone connection parameters
24+
wireless: true, // local
25+
baudrate: "9600", // local
26+
connection_type: ConnectionType.Serial, // local
2527

26-
// com ports
27-
fetching_com_ports: false,
28-
com_ports: [],
29-
selected_com_ports: null,
28+
// com ports
29+
fetching_com_ports: false,
30+
com_ports: [],
31+
selected_com_ports: null,
3032

31-
// network parameters
32-
network_type: "tcp", // local
33-
ip: "127.0.0.1", // local
34-
port: "5760", // local
33+
// network parameters
34+
network_type: "tcp", // local
35+
ip: "127.0.0.1", // local
36+
port: "5760", // local
3537

36-
forwardingAddress: "", // local
37-
isForwarding: false, // local
38-
forwardingAddressModalOpened: false,
38+
forwardingAddress: "", // local
39+
isForwarding: false, // local
40+
forwardingAddressModalOpened: false,
3941

40-
currentPage: "dashboard",
41-
outsideVisibility: false, // local
42+
currentPage: "dashboard",
43+
outsideVisibility: false, // local
4244

43-
videoSource: null,
44-
videoMaximized: false,
45-
}
46-
47-
const droneConnectionSlice = createSlice({
48-
name: "droneConnection",
49-
initialState,
45+
videoSource: null,
46+
videoMaximized: false,
47+
},
5048
reducers: {
5149
// Setters
5250
setConnecting: (state, action) => {

0 commit comments

Comments
 (0)