diff --git a/gcs/data/default_settings.json b/gcs/data/default_settings.json
index db0c6ce60..fbc68b971 100644
--- a/gcs/data/default_settings.json
+++ b/gcs/data/default_settings.json
@@ -31,6 +31,12 @@
"default": false,
"type": "boolean",
"display": "Speech Announcements"
+ },
+ "experimentalDeveloperFeatures": {
+ "default": false,
+ "type": "boolean",
+ "display": "Experimental Developer Features",
+ "description": "These may be unstable and can cause unexpected bugs or crashes."
}
},
"Dashboard": {
diff --git a/gcs/src/components/connectionProgress.jsx b/gcs/src/components/connectionProgress.jsx
new file mode 100644
index 000000000..9c902d0ea
--- /dev/null
+++ b/gcs/src/components/connectionProgress.jsx
@@ -0,0 +1,22 @@
+import { Progress } from "@mantine/core"
+
+export default function ConnectionProgress({ connecting, status }) {
+ return (
+ <>
+ {connecting &&
+ status.message !== null &&
+ typeof status.progress === "number" && (
+ <>
+
{status.message}
+
+ >
+ )}
+ >
+ )
+}
diff --git a/gcs/src/components/navbar.jsx b/gcs/src/components/navbar.jsx
index 88b234b6a..2b5fe7090 100644
--- a/gcs/src/components/navbar.jsx
+++ b/gcs/src/components/navbar.jsx
@@ -16,7 +16,6 @@ import {
Group,
LoadingOverlay,
Modal,
- Progress,
SegmentedControl,
Select,
Tabs,
@@ -78,6 +77,10 @@ import { useEffect } from "react"
import { twMerge } from "tailwind-merge"
import { showErrorNotification } from "../helpers/notification.js"
+// Modals
+import SimulationModal from "./toolbar/simulationModal.jsx"
+import ConnectionProgress from "./connectionProgress.jsx"
+
export default function Navbar() {
// Redux
const dispatch = useDispatch()
@@ -320,22 +323,10 @@ export default function Navbar() {
- {connecting &&
- droneConnectionStatus.message !== null &&
- typeof droneConnectionStatus.progress === "number" && (
- <>
-
- {droneConnectionStatus.message}
-
-
- >
- )}
+
+
+
{/* Navigation */}
diff --git a/gcs/src/components/toolbar/menus/advanced.jsx b/gcs/src/components/toolbar/menus/advanced.jsx
index 7606ddccc..3e491307a 100644
--- a/gcs/src/components/toolbar/menus/advanced.jsx
+++ b/gcs/src/components/toolbar/menus/advanced.jsx
@@ -5,11 +5,14 @@
// Local Imports
import { useDispatch } from "react-redux"
import { setForwardingAddressModalOpened } from "../../../redux/slices/droneConnectionSlice"
+import { setSimulationModalOpened } from "../../../redux/slices/simulationParamsSlice"
import MenuItem from "./menuItem"
import MenuTemplate from "./menuTemplate"
+import { useSettings } from "../../../helpers/settings"
export default function AdvancedMenu(props) {
const dispatch = useDispatch()
+ const { getSetting } = useSettings()
return (
+ {getSetting("General.experimentalDeveloperFeatures") && (
+