Add EmbeddedContext

- Added EmbeddedContext and ?embeded=true param support
This commit is contained in:
izawartka 2026-07-29 19:44:18 +02:00
parent 6a0f945a0d
commit 895a294098
2 changed files with 39 additions and 13 deletions

View File

@ -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,6 +19,7 @@ function App() {
const [distancePoints, setDistancePoints] = useState(null);
return (
<EmbeddedContextProvider>
<ThemeManager>
<SettingsManager>
<SceneryManager>
@ -31,6 +33,7 @@ function App() {
</SceneryManager>
</SettingsManager>
</ThemeManager>
</EmbeddedContextProvider>
);
}

View 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;
}