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