fix: app freeze when core run by service mode and open app window (#4922)
* fix: app freeze when core run by service mode * chore: update * chore: update UPDATELOG --------- Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
This commit is contained in:
@@ -8,39 +8,46 @@ import { getRunningMode, isAdmin, isServiceAvailable } from "@/services/cmds";
|
||||
*/
|
||||
export function useSystemState() {
|
||||
// 获取运行模式
|
||||
const { data: runningMode = "Sidecar", mutate: mutateRunningMode } = useSWR(
|
||||
"getRunningMode",
|
||||
getRunningMode,
|
||||
{
|
||||
suspense: false,
|
||||
revalidateOnFocus: false,
|
||||
},
|
||||
);
|
||||
const {
|
||||
data: runningMode = "Sidecar",
|
||||
mutate: mutateRunningMode,
|
||||
isLoading: runningModeLoading,
|
||||
} = useSWR("getRunningMode", getRunningMode, {
|
||||
suspense: false,
|
||||
revalidateOnFocus: false,
|
||||
});
|
||||
const isSidecarMode = runningMode === "Sidecar";
|
||||
const isServiceMode = runningMode === "Service";
|
||||
|
||||
// 获取管理员状态
|
||||
const { data: isAdminMode = false } = useSWR("isAdmin", isAdmin, {
|
||||
suspense: false,
|
||||
revalidateOnFocus: false,
|
||||
});
|
||||
|
||||
const { data: isServiceOk = false, mutate: mutateServiceOk } = useSWR(
|
||||
"isServiceAvailable",
|
||||
isServiceAvailable,
|
||||
const { data: isAdminMode = false, isLoading: isAdminLoading } = useSWR(
|
||||
"isAdmin",
|
||||
isAdmin,
|
||||
{
|
||||
suspense: false,
|
||||
revalidateOnFocus: false,
|
||||
onSuccess: (data) => {
|
||||
console.log("[useSystemState] 服务状态更新:", data);
|
||||
},
|
||||
onError: (error) => {
|
||||
console.error("[useSystemState] 服务状态检查失败:", error);
|
||||
},
|
||||
isPaused: () => !isServiceMode, // 仅在非 Service 模式下暂停请求
|
||||
},
|
||||
);
|
||||
|
||||
const {
|
||||
data: isServiceOk = false,
|
||||
mutate: mutateServiceOk,
|
||||
isLoading: isServiceLoading,
|
||||
} = useSWR(isServiceMode ? "isServiceAvailable" : null, isServiceAvailable, {
|
||||
suspense: false,
|
||||
revalidateOnFocus: false,
|
||||
onSuccess: (data) => {
|
||||
console.log("[useSystemState] 服务状态更新:", data);
|
||||
},
|
||||
onError: (error) => {
|
||||
console.error("[useSystemState] 服务状态检查失败:", error);
|
||||
},
|
||||
// isPaused: () => !isServiceMode, // 仅在非 Service 模式下暂停请求
|
||||
});
|
||||
|
||||
const isLoading =
|
||||
runningModeLoading || isAdminLoading || (isServiceMode && isServiceLoading);
|
||||
|
||||
const isTunModeAvailable = isAdminMode || isServiceOk;
|
||||
|
||||
return {
|
||||
@@ -52,5 +59,6 @@ export function useSystemState() {
|
||||
isTunModeAvailable: isTunModeAvailable,
|
||||
mutateRunningMode,
|
||||
mutateServiceOk,
|
||||
isLoading,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user