From 1824e69a70e756cfcf543a9fbe4b0780d9b57292 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 20 Apr 2026 09:33:10 +0900 Subject: [PATCH] refac --- src/lib/stores/index.ts | 1 + src/routes/+layout.svelte | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/lib/stores/index.ts b/src/lib/stores/index.ts index a2a42a2569..db779a7b84 100644 --- a/src/lib/stores/index.ts +++ b/src/lib/stores/index.ts @@ -29,6 +29,7 @@ export const MODEL_DOWNLOAD_POOL = writable({}); export const mobile = writable(false); export const socket: Writable = writable(null); +export const socketConnected: Writable = writable(true); export const activeUserIds: Writable = writable(null); export const activeChatIds: Writable> = writable(new Set()); export const USAGE_POOL: Writable = writable(null); diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 2902f1f08d..0dc8170eef 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -19,6 +19,7 @@ WEBUI_DEPLOYMENT_ID, mobile, socket, + socketConnected, chatId, chats, currentChatPage, @@ -127,8 +128,17 @@ console.log('connect_error', err); }); + let hasConnectedOnce = false; + _socket.on('connect', async () => { console.log('connected', _socket.id); + + if (hasConnectedOnce) { + socketConnected.set(true); + toast.success($i18n.t('Reconnected')); + } + hasConnectedOnce = true; + const res = await getVersion(localStorage.token); const deploymentId = res?.deployment_id ?? null; @@ -182,6 +192,8 @@ _socket.on('disconnect', (reason, details) => { console.log(`Socket ${_socket.id} disconnected due to ${reason}`); + socketConnected.set(false); + toast.warning($i18n.t('Connection lost. Reconnecting...')); if (heartbeatInterval) { clearInterval(heartbeatInterval);