diff --git a/dcsFiles/TheWay.lua b/dcsFiles/TheWay.lua
index f61c17a..8042060 100644
--- a/dcsFiles/TheWay.lua
+++ b/dcsFiles/TheWay.lua
@@ -140,6 +140,7 @@ function LuaExportAfterNextFrame()
local selfData = LoGetSelfData()
local model = selfData and selfData['Name'] or 'Spectator'
local message = {}
+ message["version"] = 1
message["model"] = model
message["coords"] = {}
message["coords"]["lat"] = tostring(coords.latitude)
diff --git a/src/App.js b/src/App.js
index 2714598..58fdd3f 100644
--- a/src/App.js
+++ b/src/App.js
@@ -13,6 +13,7 @@ import GetModuleCommands from "./moduleCommands/GetModuleCommands";
import askUserAboutSeat from "./moduleCommands/askUserAboutSeat";
import useElectronIpcListeners from "./hooks/useElectronIpcListeners";
import SettingsDialog from "./components/settings/SettingsDialog";
+import Error from "./components/Error";
import { uiActions } from "./store/ui";
const { ipcRenderer } = window.require("electron");
@@ -20,7 +21,7 @@ const { ipcRenderer } = window.require("electron");
const theme = createTheme(theWayTheme);
function App() {
- const { module } = useSelector((state) => state.dcsPoint);
+ const { module, error } = useSelector((state) => state.dcsPoint);
const dcsWaypoints = useSelector((state) => state.waypoints.dcsWaypoints);
const userPreferences = useSelector((state) => state.ui.userPreferences);
const [settingsModalOpen, setSettingsModalOpen] = useState(false);
@@ -87,6 +88,14 @@ function App() {
};
}, [handleTransfer, handleSelectionToggle]);
+ function mainContent() {
+ if(error == null) {
+ return ;
+ } else {
+ return ;
+ }
+ }
+
return (
@@ -107,7 +116,7 @@ function App() {
/>
-
+ { mainContent() }
{
+ return (
+
+ { props.error }
+
+ );
+};
+
+export default Error;
diff --git a/src/hooks/useElectronIpcListeners.js b/src/hooks/useElectronIpcListeners.js
index d1054b6..487e22d 100644
--- a/src/hooks/useElectronIpcListeners.js
+++ b/src/hooks/useElectronIpcListeners.js
@@ -49,7 +49,12 @@ const useElectronIpcListeners = () => {
ipcRenderer.on(
"dataReceived",
throttle((event, msg) => {
- dispatch(dcsPointActions.changeCoords(JSON.parse(msg)));
+ let parsed = JSON.parse(msg);
+ if(parsed.version !== 1) {
+ dispatch(dcsPointActions.setError("The version of the lua script does not match with the version of this UI."))
+ } else {
+ dispatch(dcsPointActions.changeCoords(parsed));
+ }
}, 100),
);
diff --git a/src/store/dcsPoint.js b/src/store/dcsPoint.js
index d7be137..8ff68de 100644
--- a/src/store/dcsPoint.js
+++ b/src/store/dcsPoint.js
@@ -1,6 +1,6 @@
import { createSlice } from "@reduxjs/toolkit";
-const initialState = { module: null, lat: null, long: null, elev: null };
+const initialState = { module: null, lat: null, long: null, elev: null, error: null };
const dcsPointSlice = createSlice({
name: "dcsPoint",
@@ -12,6 +12,14 @@ const dcsPointSlice = createSlice({
state.lat = Number(action.payload.coords.lat);
state.long = Number(action.payload.coords.long);
state.elev = Number(action.payload.elev);
+ state.error = null
+ },
+ setError(state, action) {
+ state.module = null;
+ state.lat = null;
+ state.long = null;
+ state.elev = null;
+ state.error = action.payload
},
},
});