import { createContextState } from "foxact/create-context-state"; import { useLocalStorage } from "foxact/use-local-storage"; const [ThemeModeProvider, useThemeMode, useSetThemeMode] = createContextState< "light" | "dark" >("light"); export const useEnableLog = () => useLocalStorage("enable-log", false); interface IConnectionSetting { layout: "table" | "list"; } const defaultConnectionSetting: IConnectionSetting = { layout: "table" }; export const useConnectionSetting = () => useLocalStorage( "connections-setting", defaultConnectionSetting, { serializer: JSON.stringify, deserializer: JSON.parse, } ); // save the state of each profile item loading const [LoadingCacheProvider, useLoadingCache, useSetLoadingCache] = createContextState>({}); // save update state const [UpdateStateProvider, useUpdateState, useSetUpdateState] = createContextState(false); export { ThemeModeProvider, useThemeMode, useSetThemeMode, LoadingCacheProvider, useLoadingCache, useSetLoadingCache, UpdateStateProvider, useUpdateState, useSetUpdateState, };