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 SceneryManager from './SceneryManager';
|
||||
import ThemeManager from './ThemeManager';
|
||||
import {EmbeddedContextProvider} from '../contexts/EmbeddedContext';
|
||||
import './Themes.css';
|
||||
import './App.css';
|
||||
|
||||
@ -18,19 +19,21 @@ function App() {
|
||||
const [distancePoints, setDistancePoints] = useState(null);
|
||||
|
||||
return (
|
||||
<ThemeManager>
|
||||
<SettingsManager>
|
||||
<SceneryManager>
|
||||
<GradientsManager>
|
||||
<DistanceMeterContext.Provider value={{distancePoints, setDistancePoints}}>
|
||||
<SideMenuContext.Provider value={{sideMenuOpen, setSideMenuOpen}}>
|
||||
<AppContent />
|
||||
</SideMenuContext.Provider>
|
||||
</DistanceMeterContext.Provider>
|
||||
</GradientsManager>
|
||||
</SceneryManager>
|
||||
</SettingsManager>
|
||||
</ThemeManager>
|
||||
<EmbeddedContextProvider>
|
||||
<ThemeManager>
|
||||
<SettingsManager>
|
||||
<SceneryManager>
|
||||
<GradientsManager>
|
||||
<DistanceMeterContext.Provider value={{distancePoints, setDistancePoints}}>
|
||||
<SideMenuContext.Provider value={{sideMenuOpen, setSideMenuOpen}}>
|
||||
<AppContent />
|
||||
</SideMenuContext.Provider>
|
||||
</DistanceMeterContext.Provider>
|
||||
</GradientsManager>
|
||||
</SceneryManager>
|
||||
</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