mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-11-08 19:12:24 +08:00
refactor: reduce webview lock contention (#6271)
* refactor: replace handle::Handle::get_window() with WindowManager::get_main_window() in multiple files * refactor: enhance WindowManager to return window state alongside the main window instance * refactor: update useProfiles and ProfilePage to support profile overrides and improve patchProfilesConfig return type * refactor: enhance handle_success to check main window existence before notifying profile changes * refactor: simplify get_main_window_with_state by using pattern matching and improve window state handling * refactor: fix window activation by removing unnecessary reference in activate_existing_main_window * refactor: remove redundant macOS conditional for window_manager import
This commit is contained in:
@@ -389,7 +389,7 @@ const ProfilePage = () => {
|
||||
switchingProfileRef.current === profile &&
|
||||
!abortController.signal.aborted
|
||||
) {
|
||||
await activateSelected();
|
||||
await activateSelected(profiles);
|
||||
debugLog(`[Profile] 后台处理完成,序列号: ${sequence}`);
|
||||
} else {
|
||||
debugProfileSwitch(
|
||||
@@ -402,7 +402,7 @@ const ProfilePage = () => {
|
||||
console.warn("Failed to activate selected proxies:", err);
|
||||
}
|
||||
},
|
||||
[activateSelected],
|
||||
[activateSelected, profiles],
|
||||
);
|
||||
|
||||
const activateProfile = useCallback(
|
||||
@@ -456,6 +456,7 @@ const ProfilePage = () => {
|
||||
const requestPromise = patchProfiles(
|
||||
{ current: profile },
|
||||
currentAbortController.signal,
|
||||
{ deferRefreshOnSuccess: true },
|
||||
);
|
||||
pendingRequestRef.current = requestPromise;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user