This commit is contained in:
Stefan Pejcic
2024-11-07 19:03:37 +01:00
parent c6df945ed5
commit 09f9f9502d
2472 changed files with 620417 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
export interface IThemedLayoutContext {
siderCollapsed: boolean;
setSiderCollapsed: (visible: boolean) => void;
mobileSiderOpen: boolean;
setMobileSiderOpen: (visible: boolean) => void;
}

View File

@@ -0,0 +1,33 @@
import React, { type ReactNode, useState } from "react";
import type { IThemedLayoutContext } from "./IThemedLayoutContext";
export const ThemedLayoutContext = React.createContext<IThemedLayoutContext>({
siderCollapsed: false,
mobileSiderOpen: false,
setSiderCollapsed: () => undefined,
setMobileSiderOpen: () => undefined,
});
export const ThemedLayoutContextProvider: React.FC<{
children: ReactNode;
initialSiderCollapsed?: boolean;
}> = ({ children, initialSiderCollapsed }) => {
const [siderCollapsed, setSiderCollapsed] = useState(
initialSiderCollapsed ?? false,
);
const [mobileSiderOpen, setMobileSiderOpen] = useState(false);
return (
<ThemedLayoutContext.Provider
value={{
siderCollapsed,
mobileSiderOpen,
setSiderCollapsed,
setMobileSiderOpen,
}}
>
{children}
</ThemedLayoutContext.Provider>
);
};