This commit is contained in:
Dreamgineer
2025-10-27 06:25:21 -04:00 Unverified
parent a0e2a50a38
commit b3c8157886
11 changed files with 237 additions and 29 deletions
+33
View File
@@ -0,0 +1,33 @@
"use client";
import { createContext, useState } from "react";
type WebsiteComms = Partial<{ manual: boolean }>;
type WebsiteCommsMutator = {
get<K extends keyof WebsiteComms>(key: K): WebsiteComms[K];
set<K extends keyof WebsiteComms>(key: K, value: WebsiteComms[K]): void;
};
export const CommsContext = createContext<WebsiteCommsMutator>({
get: () => undefined,
set: () => undefined,
});
export default function CommsProvider({
children,
}: {
children: React.ReactNode;
}) {
const [store, setStore] = useState<WebsiteComms>({});
return (
<CommsContext
value={{
get: (k) => store[k],
set: (k, v) => setStore((x) => ({ ...x, [k]: v })),
}}
>
{children}
</CommsContext>
);
}