mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-11-01 03:42:07 +08:00
32 lines
754 B
TypeScript
32 lines
754 B
TypeScript
import useSWR from "swr";
|
|
|
|
import { getVergeConfig, patchVergeConfig } from "@/services/cmds";
|
|
import { getPreloadConfig, setPreloadConfig } from "@/services/preload";
|
|
|
|
export const useVerge = () => {
|
|
const initialVergeConfig = getPreloadConfig();
|
|
const { data: verge, mutate: mutateVerge } = useSWR(
|
|
"getVergeConfig",
|
|
async () => {
|
|
const config = await getVergeConfig();
|
|
setPreloadConfig(config);
|
|
return config;
|
|
},
|
|
{
|
|
fallbackData: initialVergeConfig ?? undefined,
|
|
revalidateOnMount: !initialVergeConfig,
|
|
},
|
|
);
|
|
|
|
const patchVerge = async (value: Partial<IVergeConfig>) => {
|
|
await patchVergeConfig(value);
|
|
mutateVerge();
|
|
};
|
|
|
|
return {
|
|
verge,
|
|
mutateVerge,
|
|
patchVerge,
|
|
};
|
|
};
|