Files
siftlode/frontend/src/components/prefsContext.ts
T

26 lines
732 B
TypeScript

import { createContext, useContext } from "react";
import { DEFAULT_THEME } from "../lib/theme";
import { getNotifSettings } from "../lib/notifications";
import type { PrefsController } from "./SettingsPanel";
// The Settings-page preferences context + hook, split out of PrefsProvider so that file exports only
// components (Fast Refresh).
export const PrefsContext = createContext<PrefsController>({
theme: DEFAULT_THEME,
setTheme: () => {},
perf: false,
setPerf: () => {},
hints: true,
setHints: () => {},
railLabels: false,
setRailLabels: () => {},
notif: getNotifSettings(),
setNotif: () => {},
saveState: "idle",
});
export function usePrefs(): PrefsController {
return useContext(PrefsContext);
}