mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-04-13 13:30:31 +08:00
* refactor: clash-verge-service management * fix: correct service state checks in ProxyControlSwitches component refactor: improve logging in service state update functions * fix: add missing async handler for Windows and adjust logging import for macOS * fix: streamline logging imports and add missing async handler for Windows * refactor: remove unused useServiceStateSync hook and update imports in _layout * refactor: remove unused useServiceStateSync import and clean up code in ProxyControlSwitches and _layout * refactor: simplify service status checks and reduce wait time in useServiceInstaller hook * refactor: remove unnecessary logging statements in service checks and IPC connection * refactor: extract SwitchRow component for better code organization and readability * refactor: enhance service state management and update related mutations in layout * refactor: streamline core stopping logic and improve IPC connection logging * refactor: consolidate service uninstallation logic and improve error handling * fix: simplify conditional statements in CoreManager and service functions * feat: add backoff dependency and implement retry strategy for IPC requests * refactor: remove redundant Windows conditional and improve error handling in IPC tests * test: improve error handling in IPC tests for message signing and verification * fix: adjust IPC backoff retry parameters * refactor: Remove service state tracking and related logic from service management * feat: Enhance service status handling with logging and running mode updates * fix: Improve service status handling with enhanced error logging * fix: Ensure proper handling of service operations with error propagation * refactor: Simplify service operation execution and enhance service status handling * fix: Improve error message formatting in service operation execution and simplify service status retrieval * refactor: Replace Cache with CacheProxy in multiple modules and update CacheEntry to be generic * fix: Remove unnecessary success message from config validation * refactor: Comment out logging statements in service version check and IPC request handling
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import { restartCore, stopCore, uninstallService } from "@/services/cmds";
|
|
import { showNotice } from "@/services/noticeService";
|
|
import { t } from "i18next";
|
|
import { useSystemState } from "./use-system-state";
|
|
import { useCallback } from "react";
|
|
|
|
const executeWithErrorHandling = async (
|
|
operation: () => Promise<void>,
|
|
loadingMessage: string,
|
|
successMessage?: string,
|
|
) => {
|
|
try {
|
|
showNotice("info", t(loadingMessage));
|
|
await operation();
|
|
if (successMessage) {
|
|
showNotice("success", t(successMessage));
|
|
}
|
|
} catch (err) {
|
|
const msg = (err as Error)?.message || String(err);
|
|
showNotice("error", msg);
|
|
throw err;
|
|
}
|
|
};
|
|
|
|
export const useServiceUninstaller = () => {
|
|
const { mutateRunningMode, mutateServiceOk } = useSystemState();
|
|
|
|
const uninstallServiceAndRestartCore = useCallback(async () => {
|
|
await executeWithErrorHandling(() => stopCore(), "Stopping Core...");
|
|
|
|
await executeWithErrorHandling(
|
|
() => uninstallService(),
|
|
"Uninstalling Service...",
|
|
"Service Uninstalled Successfully",
|
|
);
|
|
|
|
await executeWithErrorHandling(() => restartCore(), "Restarting Core...");
|
|
}, [mutateRunningMode, mutateServiceOk]);
|
|
|
|
return { uninstallServiceAndRestartCore };
|
|
};
|