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:
Tunglies
2026-02-07 05:45:15 +00:00
committed by GitHub
parent 6c6e0812b8
commit c30eaa3678
11 changed files with 83 additions and 72 deletions
+3 -2
View File
@@ -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;