2024-06-07 12:27:37 +08:00
|
|
|
import { createContextState } from "foxact/create-context-state";
|
|
|
|
|
import { useLocalStorage } from "foxact/use-local-storage";
|
2022-02-23 02:00:45 +08:00
|
|
|
|
2024-06-07 12:27:37 +08:00
|
|
|
const [ThemeModeProvider, useThemeMode, useSetThemeMode] = createContextState<
|
|
|
|
|
"light" | "dark"
|
|
|
|
|
>("light");
|
2022-07-17 16:02:17 +08:00
|
|
|
|
2024-06-07 12:27:37 +08:00
|
|
|
export const useEnableLog = () => useLocalStorage("enable-log", true);
|
2022-09-25 01:35:21 +08:00
|
|
|
|
|
|
|
|
interface IConnectionSetting {
|
|
|
|
|
layout: "table" | "list";
|
|
|
|
|
}
|
|
|
|
|
|
2024-06-07 17:23:53 +08:00
|
|
|
const defaultConnectionSetting: IConnectionSetting = { layout: "table" };
|
2022-09-25 01:35:21 +08:00
|
|
|
|
2024-06-07 12:27:37 +08:00
|
|
|
export const useConnectionSetting = () =>
|
|
|
|
|
useLocalStorage<IConnectionSetting>(
|
|
|
|
|
"connections-setting",
|
|
|
|
|
defaultConnectionSetting,
|
|
|
|
|
{
|
|
|
|
|
serializer: JSON.stringify,
|
|
|
|
|
deserializer: JSON.parse,
|
|
|
|
|
}
|
|
|
|
|
);
|
2022-09-20 22:15:28 +08:00
|
|
|
|
2022-03-21 11:40:27 +08:00
|
|
|
// save the state of each profile item loading
|
2024-06-07 12:27:37 +08:00
|
|
|
const [LoadingCacheProvider, useLoadingCache, useSetLoadingCache] =
|
|
|
|
|
createContextState<Record<string, boolean>>({});
|
2022-03-22 01:27:22 +08:00
|
|
|
|
|
|
|
|
// save update state
|
2024-06-07 12:27:37 +08:00
|
|
|
const [UpdateStateProvider, useUpdateState, useSetUpdateState] =
|
|
|
|
|
createContextState<boolean>(false);
|
|
|
|
|
|
|
|
|
|
export {
|
|
|
|
|
ThemeModeProvider,
|
|
|
|
|
useThemeMode,
|
|
|
|
|
useSetThemeMode,
|
|
|
|
|
LoadingCacheProvider,
|
|
|
|
|
useLoadingCache,
|
|
|
|
|
useSetLoadingCache,
|
|
|
|
|
UpdateStateProvider,
|
|
|
|
|
useUpdateState,
|
|
|
|
|
useSetUpdateState,
|
|
|
|
|
};
|