Add public mode

This commit is contained in:
2025-05-02 12:23:49 +02:00
parent 56370ec936
commit f16eeb6e45
8 changed files with 117 additions and 18 deletions

View File

@ -0,0 +1,34 @@
import React, { PropsWithChildren } from "react";
const localStorageKey = "public-mode";
interface PublicModeContext {
enabled: boolean;
setEnabled: (enabled: boolean) => void;
}
const PublicModeContextK = React.createContext<PublicModeContext | null>(null);
export function PublicModeProvider(p: PropsWithChildren): React.ReactElement {
const [enabled, setEnabled] = React.useState(
localStorage.getItem(localStorageKey) !== "false"
);
return (
<PublicModeContextK
value={{
enabled: enabled,
setEnabled(enabled) {
localStorage.setItem(localStorageKey, enabled ? "true" : "false");
setEnabled(enabled);
},
}}
>
{p.children}
</PublicModeContextK>
);
}
export function usePublicMode(): PublicModeContext {
return React.use(PublicModeContextK)!;
}