diff --git a/src/components/App.jsx b/src/components/App.jsx
index b19fb34..25bcc31 100644
--- a/src/components/App.jsx
+++ b/src/components/App.jsx
@@ -1,38 +1,34 @@
-import { useState } from 'react';
+import { EmbeddedContextProvider, useEmbeddedContext } from '../contexts/EmbeddedContext';
+import { ThemeContextProvider} from '../contexts/ThemeContext';
+import { SettingsContextProvider } from '../contexts/SettingsContext';
+import { SceneryContextProvider } from '../contexts/SceneryContext';
+import { GradientsContextProvider } from '../contexts/GradientsContext';
+import { DistanceMeterContextProvider } from '../contexts/DistanceMeterContext';
+import { SideMenuContextProvider } from '../contexts/SideMenuContext';
import Map from './map/Map';
import Toolbar from './toolbar/Toolbar';
import SideMenu from './sidemenu/SideMenu';
-import SettingsManager from './SettingsManager';
import LocList from './loclist/LocList';
import DialogManager from './dialog/DialogManager';
-import DistanceMeterContext from '../contexts/DistanceMeterContext';
-import {GradientsManager} from "./GradientsManager";
-import SideMenuContext from '../contexts/SideMenuContext';
-import SceneryManager from './SceneryManager';
-import ThemeManager from './ThemeManager';
-import {EmbeddedContextProvider, useEmbeddedContext} from '../contexts/EmbeddedContext';
import './Themes.css';
import './App.css';
function App() {
- const [sideMenuOpen, setSideMenuOpen] = useState(false);
- const [distancePoints, setDistancePoints] = useState(null);
-
return (
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
);
}
diff --git a/src/contexts/DistanceMeterContext.js b/src/contexts/DistanceMeterContext.js
deleted file mode 100644
index 454b591..0000000
--- a/src/contexts/DistanceMeterContext.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { createContext } from 'react';
-
-const DistanceMeterContext = createContext();
-export default DistanceMeterContext;
diff --git a/src/contexts/DistanceMeterContext.jsx b/src/contexts/DistanceMeterContext.jsx
new file mode 100644
index 0000000..d31ce4e
--- /dev/null
+++ b/src/contexts/DistanceMeterContext.jsx
@@ -0,0 +1,16 @@
+import { createContext, useState } from 'react';
+
+const DistanceMeterContext = createContext();
+export default DistanceMeterContext;
+
+export const DistanceMeterContextProvider = ({children}) => {
+ const [distancePoints, setDistancePoints] = useState([]);
+
+ return (
+
+ { children }
+
+ );
+}
diff --git a/src/contexts/GradientsContext.js b/src/contexts/GradientsContext.js
deleted file mode 100644
index a8c2001..0000000
--- a/src/contexts/GradientsContext.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { createContext } from 'react';
-
-const GradientsContext = createContext();
-export default GradientsContext;
diff --git a/src/components/GradientsManager.jsx b/src/contexts/GradientsContext.jsx
similarity index 89%
rename from src/components/GradientsManager.jsx
rename to src/contexts/GradientsContext.jsx
index f6f58e5..0f7682e 100644
--- a/src/components/GradientsManager.jsx
+++ b/src/contexts/GradientsContext.jsx
@@ -1,7 +1,9 @@
+import {createContext, useContext, useMemo} from "react";
import Constants from "../helpers/constants";
-import {useContext, useMemo} from "react";
-import GradientsContext from "../contexts/GradientsContext";
-import SceneryContext from "../contexts/SceneryContext";
+import SceneryContext from "./SceneryContext";
+
+const GradientsContext = createContext();
+export default GradientsContext;
function getMinMax(trackColorMode, scenery) {
if (trackColorMode === 'elevation') {
@@ -54,10 +56,8 @@ function createGradientDefs(scenery) {
);
}
-export function GradientsManager(props) {
- const { children } = props;
+export function GradientsContextProvider({children}) {
const { scenery } = useContext(SceneryContext);
-
const gradientDefs = useMemo(() => createGradientDefs(scenery), [scenery]);
return (
diff --git a/src/contexts/SceneryContext.js b/src/contexts/SceneryContext.js
deleted file mode 100644
index 061f927..0000000
--- a/src/contexts/SceneryContext.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { createContext } from 'react';
-
-const SceneryContext = createContext();
-export default SceneryContext;
diff --git a/src/components/SceneryManager.jsx b/src/contexts/SceneryContext.jsx
similarity index 94%
rename from src/components/SceneryManager.jsx
rename to src/contexts/SceneryContext.jsx
index f6106c4..65f966a 100644
--- a/src/components/SceneryManager.jsx
+++ b/src/contexts/SceneryContext.jsx
@@ -1,17 +1,19 @@
-import { useState, useCallback, useEffect, useRef } from 'react';
-import SceneryContext from '../contexts/SceneryContext';
+import { createContext, useState, useCallback, useEffect, useRef } from 'react';
import { useZoomPanEmitter } from '../hooks/useZoomPubSub';
import SceneryParser from '../model/parsing/scenery-parser';
import SceneryParserLog from '../model/parsing/scenery-parser-log';
import { showCustomDialog, showDialog } from '../services/dialogService';
import { resetHoveredTracksStack } from '../services/trackHoverInfoService';
-import SceneryLoadedDialog from './scenery-loaded-dialog/SceneryLoadedDialog';
+import SceneryLoadedDialog from '../components/scenery-loaded-dialog/SceneryLoadedDialog';
import Constants from '../helpers/constants';
import MiscHelper from '../helpers/miscHelper';
import ElectrificationResolver from '../model/parsing/electrification-resolver';
-import { useEmbeddedContext } from '../contexts/EmbeddedContext';
+import { useEmbeddedContext } from './EmbeddedContext';
-export default function SceneryManager(props) {
+const SceneryContext = createContext();
+export default SceneryContext;
+
+export const SceneryContextProvider = ({children}) => {
const [isLoading, setIsLoading] = useState(false);
const [scenery, setScenery] = useState(null);
const [sceneryListData, setSceneryListData] = useState(null);
@@ -180,7 +182,7 @@ export default function SceneryManager(props) {
return (
- {props.children}
+ {children}
);
-}
\ No newline at end of file
+}
diff --git a/src/contexts/SettingsContext.js b/src/contexts/SettingsContext.js
deleted file mode 100644
index e8b1c4f..0000000
--- a/src/contexts/SettingsContext.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { createContext } from 'react';
-
-const SettingsContext = createContext();
-export default SettingsContext;
diff --git a/src/components/SettingsManager.jsx b/src/contexts/SettingsContext.jsx
similarity index 84%
rename from src/components/SettingsManager.jsx
rename to src/contexts/SettingsContext.jsx
index 3b0b7ae..d6ff8d8 100644
--- a/src/components/SettingsManager.jsx
+++ b/src/contexts/SettingsContext.jsx
@@ -1,8 +1,10 @@
-import { useCallback, useEffect, useState } from "react";
-import SettingsContext from "../contexts/SettingsContext";
+import { createContext, useState, useCallback, useEffect } from 'react';
import Constants from "../helpers/constants";
-export default function SettingsManager(props) {
+const SettingsContext = createContext();
+export default SettingsContext;
+
+export const SettingsContextProvider = ({children}) => {
const [ layers, setLayers ] = useState([]);
const [ trackColorMode, setTrackColorMode ] = useState(Constants.trackColorModeDefault);
const [ showTrackHoverInfo, setShowTrackHoverInfo ] = useState(true);
@@ -32,7 +34,7 @@ export default function SettingsManager(props) {
extendedSignals, setExtendedSignals,
originalSignalNames, setOriginalSignalNames
}}>
- { props.children }
+ { children }
);
-}
\ No newline at end of file
+}
diff --git a/src/contexts/SideMenuContext.js b/src/contexts/SideMenuContext.js
deleted file mode 100644
index 56a30db..0000000
--- a/src/contexts/SideMenuContext.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { createContext } from 'react';
-
-const SideMenuContext = createContext();
-export default SideMenuContext;
diff --git a/src/contexts/SideMenuContext.jsx b/src/contexts/SideMenuContext.jsx
new file mode 100644
index 0000000..83eec0c
--- /dev/null
+++ b/src/contexts/SideMenuContext.jsx
@@ -0,0 +1,16 @@
+import { createContext, useState } from 'react';
+
+const SideMenuContext = createContext();
+export default SideMenuContext;
+
+export const SideMenuContextProvider = ({children}) => {
+ const [sideMenuOpen, setSideMenuOpen] = useState(false);
+
+ return (
+
+ { children }
+
+ );
+}
diff --git a/src/contexts/ThemeContext.js b/src/contexts/ThemeContext.js
deleted file mode 100644
index 1c69777..0000000
--- a/src/contexts/ThemeContext.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { createContext } from 'react';
-
-const ThemeContext = createContext();
-export default ThemeContext;
diff --git a/src/components/ThemeManager.jsx b/src/contexts/ThemeContext.jsx
similarity index 64%
rename from src/components/ThemeManager.jsx
rename to src/contexts/ThemeContext.jsx
index 2d98164..ae787c3 100644
--- a/src/components/ThemeManager.jsx
+++ b/src/contexts/ThemeContext.jsx
@@ -1,7 +1,9 @@
-import { useState } from "react";
-import ThemeContext from "../contexts/ThemeContext";
+import { createContext, useState } from 'react';
-export default function ThemeManager(props) {
+const ThemeContext = createContext();
+export default ThemeContext;
+
+export const ThemeContextProvider = ({children}) => {
const [ lightMode, setLightMode ] = useState(false);
if(lightMode === true) {
@@ -14,7 +16,7 @@ export default function ThemeManager(props) {
- { props.children }
+ { children }
);
}