Add EmbeddedContext
- Added EmbeddedContext and ?embeded=true param support
This commit is contained in:
parent
6a0f945a0d
commit
895a294098
@ -10,6 +10,7 @@ import {GradientsManager} from "./GradientsManager";
|
|||||||
import SideMenuContext from '../contexts/SideMenuContext';
|
import SideMenuContext from '../contexts/SideMenuContext';
|
||||||
import SceneryManager from './SceneryManager';
|
import SceneryManager from './SceneryManager';
|
||||||
import ThemeManager from './ThemeManager';
|
import ThemeManager from './ThemeManager';
|
||||||
|
import {EmbeddedContextProvider} from '../contexts/EmbeddedContext';
|
||||||
import './Themes.css';
|
import './Themes.css';
|
||||||
import './App.css';
|
import './App.css';
|
||||||
|
|
||||||
@ -18,19 +19,21 @@ function App() {
|
|||||||
const [distancePoints, setDistancePoints] = useState(null);
|
const [distancePoints, setDistancePoints] = useState(null);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ThemeManager>
|
<EmbeddedContextProvider>
|
||||||
<SettingsManager>
|
<ThemeManager>
|
||||||
<SceneryManager>
|
<SettingsManager>
|
||||||
<GradientsManager>
|
<SceneryManager>
|
||||||
<DistanceMeterContext.Provider value={{distancePoints, setDistancePoints}}>
|
<GradientsManager>
|
||||||
<SideMenuContext.Provider value={{sideMenuOpen, setSideMenuOpen}}>
|
<DistanceMeterContext.Provider value={{distancePoints, setDistancePoints}}>
|
||||||
<AppContent />
|
<SideMenuContext.Provider value={{sideMenuOpen, setSideMenuOpen}}>
|
||||||
</SideMenuContext.Provider>
|
<AppContent />
|
||||||
</DistanceMeterContext.Provider>
|
</SideMenuContext.Provider>
|
||||||
</GradientsManager>
|
</DistanceMeterContext.Provider>
|
||||||
</SceneryManager>
|
</GradientsManager>
|
||||||
</SettingsManager>
|
</SceneryManager>
|
||||||
</ThemeManager>
|
</SettingsManager>
|
||||||
|
</ThemeManager>
|
||||||
|
</EmbeddedContextProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
23
src/contexts/EmbeddedContext.js
Normal file
23
src/contexts/EmbeddedContext.js
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import { createContext, useContext } from 'react';
|
||||||
|
|
||||||
|
const EmbeddedContext = createContext();
|
||||||
|
|
||||||
|
export const EmbeddedContextProvider = ({ children }) => {
|
||||||
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
|
const isEmbedded = urlParams.get('embedded') === 'true';
|
||||||
|
|
||||||
|
return (
|
||||||
|
<EmbeddedContext.Provider value={{ isEmbedded }}>
|
||||||
|
{children}
|
||||||
|
</EmbeddedContext.Provider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export const useEmbeddedContext = () => {
|
||||||
|
const context = useContext(EmbeddedContext);
|
||||||
|
if (context === undefined) {
|
||||||
|
throw new Error('useEmbeddedContext must be used within an EmbeddedContextProvider');
|
||||||
|
}
|
||||||
|
|
||||||
|
return context;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user