From 50c8b699a8ee564a8f71c1bc3acf404c8c2bb3e1 Mon Sep 17 00:00:00 2001 From: hjlarry Date: Thu, 12 Feb 2026 10:07:47 +0800 Subject: [PATCH] chore: use console.warn instead of toast --- .../collaboration/core/collaboration-manager.ts | 4 ++-- .../collaboration/hooks/use-collaboration.ts | 17 ++++++++++++----- .../collaboration/types/collaboration.ts | 2 ++ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/web/app/components/workflow/collaboration/core/collaboration-manager.ts b/web/app/components/workflow/collaboration/core/collaboration-manager.ts index 483b4283a5..47ee511a2d 100644 --- a/web/app/components/workflow/collaboration/core/collaboration-manager.ts +++ b/web/app/components/workflow/collaboration/core/collaboration-manager.ts @@ -1307,12 +1307,12 @@ export class CollaborationManager { this.emitGraphViewActive(this.graphViewActive) }) - socket.on('disconnect', () => { + socket.on('disconnect', (reason) => { this.cursors = {} this.isLeader = false this.leaderId = null this.pendingInitialSync = false - this.eventEmitter.emit('stateChange', { isConnected: false }) + this.eventEmitter.emit('stateChange', { isConnected: false, disconnectReason: reason }) this.eventEmitter.emit('cursors', {}) }) diff --git a/web/app/components/workflow/collaboration/hooks/use-collaboration.ts b/web/app/components/workflow/collaboration/hooks/use-collaboration.ts index 4752a1edf7..03a9749961 100644 --- a/web/app/components/workflow/collaboration/hooks/use-collaboration.ts +++ b/web/app/components/workflow/collaboration/hooks/use-collaboration.ts @@ -6,7 +6,6 @@ import type { OnlineUser, } from '../types/collaboration' import { useEffect, useRef, useState } from 'react' -import Toast from '@/app/components/base/toast' import { useGlobalPublicStore } from '@/context/global-public-context' import { collaborationManager } from '../core/collaboration-manager' import { CursorService } from '../services/cursor-service' @@ -33,6 +32,7 @@ export function useCollaboration(appId: string, reactFlowStore?: ReactFlowStore) const [state, setState] = useState(initialState) const cursorServiceRef = useRef(null) + const lastDisconnectReasonRef = useRef(null) const isCollaborationEnabled = useGlobalPublicStore(s => s.systemFeatures.enable_collaboration_mode) useEffect(() => { @@ -67,6 +67,12 @@ export function useCollaboration(appId: string, reactFlowStore?: ReactFlowStore) initCollaboration() const unsubscribeStateChange = collaborationManager.onStateChange((newState: Partial) => { + if (newState.isConnected === false) { + lastDisconnectReasonRef.current = newState.disconnectReason || newState.error || null + } + if (newState.isConnected === true) + lastDisconnectReasonRef.current = null + if (newState.isConnected === undefined) return @@ -115,10 +121,11 @@ export function useCollaboration(appId: string, reactFlowStore?: ReactFlowStore) const prevIsConnected = useRef(false) useEffect(() => { if (prevIsConnected.current && !state.isConnected) { - Toast.notify({ - type: 'error', - message: 'Network connection lost. Please check your network.', - }) + const reason = lastDisconnectReasonRef.current + if (reason) + console.warn('WebSocket disconnected:', reason) + else + console.warn('WebSocket disconnected.') } prevIsConnected.current = state.isConnected || false }, [state.isConnected]) diff --git a/web/app/components/workflow/collaboration/types/collaboration.ts b/web/app/components/workflow/collaboration/types/collaboration.ts index f5d3292806..80ec532cf3 100644 --- a/web/app/components/workflow/collaboration/types/collaboration.ts +++ b/web/app/components/workflow/collaboration/types/collaboration.ts @@ -44,6 +44,8 @@ export type CollaborationState = { onlineUsers: OnlineUser[] cursors: Record nodePanelPresence: NodePanelPresenceMap + disconnectReason?: string + error?: string } export type GraphSyncData = {