Files
clash-proxy/src/services/states.ts

45 lines
1.1 KiB
TypeScript
Raw Normal View History

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");
2024-06-07 12:27:37 +08:00
export const useEnableLog = () => useLocalStorage("enable-log", true);
interface IConnectionSetting {
layout: "table" | "list";
}
const defaultConnectionSetting: IConnectionSetting = { layout: "table" };
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,
};