mirror of
https://github.com/netbirdio/netbird.git
synced 2026-09-16 03:39:07 +02:00
28 lines
762 B
TypeScript
28 lines
762 B
TypeScript
import { createContext, ReactNode, useContext, useState } from "react";
|
|
|
|
export type MainModule = "peers" | "settings";
|
|
|
|
type Ctx = {
|
|
active: MainModule;
|
|
setActive: (m: MainModule) => void;
|
|
};
|
|
|
|
const MainModuleContext = createContext<Ctx | null>(null);
|
|
|
|
export const MainModuleProvider = ({ children }: { children: ReactNode }) => {
|
|
const [active, setActive] = useState<MainModule>("peers");
|
|
return (
|
|
<MainModuleContext.Provider value={{ active, setActive }}>
|
|
{children}
|
|
</MainModuleContext.Provider>
|
|
);
|
|
};
|
|
|
|
export const useMainModule = () => {
|
|
const ctx = useContext(MainModuleContext);
|
|
if (!ctx) {
|
|
throw new Error("useMainModule must be used within MainModuleProvider");
|
|
}
|
|
return ctx;
|
|
};
|