From e86ee2f135dadaaad29a2e400f36f0d9f4ead701 Mon Sep 17 00:00:00 2001 From: Neko Ayaka Date: Thu, 7 May 2026 18:57:56 +0800 Subject: [PATCH] fix(stage-tamagotchi): should register handlers before window load Co-authored-by: Lovehsigure_520 <62863834+Neko-233@users.noreply.github.com> --- apps/stage-tamagotchi/src/main/windows/about/index.ts | 4 ++-- apps/stage-tamagotchi/src/main/windows/caption/index.ts | 3 ++- apps/stage-tamagotchi/src/main/windows/chat/index.ts | 4 ++-- apps/stage-tamagotchi/src/main/windows/dashboard/index.ts | 4 ++-- apps/stage-tamagotchi/src/main/windows/inlay/index.ts | 4 ++-- apps/stage-tamagotchi/src/main/windows/main/index.ts | 4 ++-- apps/stage-tamagotchi/src/main/windows/settings/index.ts | 3 ++- apps/stage-tamagotchi/src/main/windows/widgets/index.ts | 4 ++-- 8 files changed, 16 insertions(+), 14 deletions(-) diff --git a/apps/stage-tamagotchi/src/main/windows/about/index.ts b/apps/stage-tamagotchi/src/main/windows/about/index.ts index 11d35565a..a29be7139 100644 --- a/apps/stage-tamagotchi/src/main/windows/about/index.ts +++ b/apps/stage-tamagotchi/src/main/windows/about/index.ts @@ -39,8 +39,6 @@ export function setupAboutWindowReusable(params: { return { action: 'deny' } }) - await load(window, withHashRoute(baseUrl(resolve(getElectronMainDirname(), '..', 'renderer')), '/about')) - await setupAboutWindowElectronInvokes({ window, autoUpdater: params.autoUpdater, @@ -48,6 +46,8 @@ export function setupAboutWindowReusable(params: { serverChannel: params.serverChannel, }) + await load(window, withHashRoute(baseUrl(resolve(getElectronMainDirname(), '..', 'renderer')), '/about')) + return window }).getWindow } diff --git a/apps/stage-tamagotchi/src/main/windows/caption/index.ts b/apps/stage-tamagotchi/src/main/windows/caption/index.ts index 87cf6a871..d5e2ec11c 100644 --- a/apps/stage-tamagotchi/src/main/windows/caption/index.ts +++ b/apps/stage-tamagotchi/src/main/windows/caption/index.ts @@ -345,9 +345,10 @@ export function setupCaptionWindowManager(params: { window.on('show', emitVisibilityChanged) window.on('hide', emitVisibilityChanged) + const cleanupGetAttached = defineInvokeHandler(context, captionGetIsFollowingWindow, async () => isFollowing) + await load(window, withHashRoute(baseUrl(resolve(getElectronMainDirname(), '..', 'renderer')), '/caption')) - const cleanupGetAttached = defineInvokeHandler(context, captionGetIsFollowingWindow, async () => isFollowing) try { context.emit(captionIsFollowingWindowChanged, isFollowing) } diff --git a/apps/stage-tamagotchi/src/main/windows/chat/index.ts b/apps/stage-tamagotchi/src/main/windows/chat/index.ts index 32fe07e59..f6485ecd0 100644 --- a/apps/stage-tamagotchi/src/main/windows/chat/index.ts +++ b/apps/stage-tamagotchi/src/main/windows/chat/index.ts @@ -38,8 +38,6 @@ export function setupChatWindowReusableFunc(params: { return { action: 'deny' } }) - await load(window, withHashRoute(baseUrl(resolve(getElectronMainDirname(), '..', 'renderer')), '/chat')) - await setupChatWindowElectronInvokes({ window, widgetsManager: params.widgetsManager, @@ -48,6 +46,8 @@ export function setupChatWindowReusableFunc(params: { i18n: params.i18n, }) + await load(window, withHashRoute(baseUrl(resolve(getElectronMainDirname(), '..', 'renderer')), '/chat')) + return window }).getWindow } diff --git a/apps/stage-tamagotchi/src/main/windows/dashboard/index.ts b/apps/stage-tamagotchi/src/main/windows/dashboard/index.ts index 083071c2d..b5793fcb5 100644 --- a/apps/stage-tamagotchi/src/main/windows/dashboard/index.ts +++ b/apps/stage-tamagotchi/src/main/windows/dashboard/index.ts @@ -132,8 +132,6 @@ export async function setupDashboardWindow(params: { return { action: 'deny' } }) - await load(window, withHashRoute(baseUrl(resolve(getElectronMainDirname(), '..', 'renderer')), '/dashboard')) - await setupDashboardWindowElectronInvokes({ window, settingsWindow: params.settingsWindow, @@ -143,6 +141,8 @@ export async function setupDashboardWindow(params: { serverChannel: params.serverChannel, }) + await load(window, withHashRoute(baseUrl(resolve(getElectronMainDirname(), '..', 'renderer')), '/dashboard')) + /** * This is a know issue (or expected behavior maybe) to Electron. * We don't use this approach on Linux because it's not working. diff --git a/apps/stage-tamagotchi/src/main/windows/inlay/index.ts b/apps/stage-tamagotchi/src/main/windows/inlay/index.ts index 3d2a9a109..430491a7b 100644 --- a/apps/stage-tamagotchi/src/main/windows/inlay/index.ts +++ b/apps/stage-tamagotchi/src/main/windows/inlay/index.ts @@ -67,9 +67,9 @@ export async function setupInlayWindow(params: { return { action: 'deny' } }) - await load(window, withHashRoute(baseUrl(resolve(getElectronMainDirname(), '..', 'renderer')), '/inlay')) - await setupInlayWindowInvokes({ inlayWindow: window, serverChannel: params.serverChannel, i18n: params.i18n }) + await load(window, withHashRoute(baseUrl(resolve(getElectronMainDirname(), '..', 'renderer')), '/inlay')) + return window } diff --git a/apps/stage-tamagotchi/src/main/windows/main/index.ts b/apps/stage-tamagotchi/src/main/windows/main/index.ts index 4651d71d0..835ec47fb 100644 --- a/apps/stage-tamagotchi/src/main/windows/main/index.ts +++ b/apps/stage-tamagotchi/src/main/windows/main/index.ts @@ -176,8 +176,6 @@ export async function setupMainWindow(params: { return { action: 'deny' } }) - await load(window, baseUrl(resolve(getElectronMainDirname(), '..', 'renderer'))) - await setupMainWindowElectronInvokes({ window, settingsWindow: params.settingsWindow, @@ -193,6 +191,8 @@ export async function setupMainWindow(params: { windowAuthManager: params.windowAuthManager, }) + await load(window, baseUrl(resolve(getElectronMainDirname(), '..', 'renderer'))) + /** * This is a know issue (or expected behavior maybe) to Electron. * We don't use this approach on Linux because it's not working. diff --git a/apps/stage-tamagotchi/src/main/windows/settings/index.ts b/apps/stage-tamagotchi/src/main/windows/settings/index.ts index 411c01845..045aedea7 100644 --- a/apps/stage-tamagotchi/src/main/windows/settings/index.ts +++ b/apps/stage-tamagotchi/src/main/windows/settings/index.ts @@ -64,7 +64,6 @@ export function setupSettingsWindowReusableFunc(params: { return { action: 'deny' } }) - await load(window, withHashRoute(rendererBase, currentRoute)) settingsContext = await setupSettingsWindowInvokes({ settingsWindow: window, widgetsManager: params.widgetsManager, @@ -77,6 +76,8 @@ export function setupSettingsWindowReusableFunc(params: { windowAuthManager: params.windowAuthManager, }) + await load(window, withHashRoute(rendererBase, currentRoute)) + window.on('closed', () => { if (settingsContext) settingsContext = undefined diff --git a/apps/stage-tamagotchi/src/main/windows/widgets/index.ts b/apps/stage-tamagotchi/src/main/windows/widgets/index.ts index c0f640676..624afb32c 100644 --- a/apps/stage-tamagotchi/src/main/windows/widgets/index.ts +++ b/apps/stage-tamagotchi/src/main/windows/widgets/index.ts @@ -312,8 +312,6 @@ export function setupWidgetsWindowManager(params: { window.on('move', persist) const initialRoute = pendingRoute ?? defaultRoute - await loadWithRoute(window, initialRoute) - await setupWidgetsWindowInvokes({ widgetWindow: window, widgetsManager: widgetsManager!, @@ -321,6 +319,8 @@ export function setupWidgetsWindowManager(params: { serverChannel: params.serverChannel, }) + await loadWithRoute(window, initialRoute) + pendingRoute = undefined window.on('closed', () => {