feat: better service status and TUN mode usable checks in Setting Page

This commit is contained in:
Tunglies
2025-05-12 19:04:08 +08:00
parent d587ed09a5
commit 5b6c9be99f
14 changed files with 127 additions and 88 deletions

View File

@@ -1,29 +1,42 @@
import useSWR from "swr";
import { getRunningMode, isAdmin } from "@/services/cmds";
import { getRunningMode, isAdmin, isServiceAvailable } from "@/services/cmds";
/**
* 自定义 hook 用于获取系统运行状态
* 包括运行模式管理员状态
* 包括运行模式管理员状态、系统服务是否可用
*/
export function useSystemState() {
// 获取运行模式
const { data: runningMode = "Sidecar", mutate: mutateRunningMode } =
useSWR("getRunningMode", getRunningMode, {
const { data: runningMode = "Sidecar", mutate: mutateRunningMode } = useSWR(
"getRunningMode",
getRunningMode,
{
suspense: false,
revalidateOnFocus: false
});
revalidateOnFocus: false,
},
);
// 获取管理员状态
const { data: isAdminMode = false } =
useSWR("isAdmin", isAdmin, {
const { data: isAdminMode = false } = useSWR("isAdmin", isAdmin, {
suspense: false,
revalidateOnFocus: false,
});
// 获取系统服务状态
const { data: isServiceOk = false } = useSWR(
"isServiceAvailable",
isServiceAvailable,
{
suspense: false,
revalidateOnFocus: false
});
revalidateOnFocus: false,
},
);
return {
runningMode,
isAdminMode,
isSidecarMode: runningMode === "Sidecar",
mutateRunningMode
mutateRunningMode,
isServiceOk,
};
}
}