diff --git a/shared/js/ConnectionHandler.ts b/shared/js/ConnectionHandler.ts index ad385448..7bcc2f2a 100644 --- a/shared/js/ConnectionHandler.ts +++ b/shared/js/ConnectionHandler.ts @@ -123,6 +123,7 @@ export class ConnectionHandler { private readonly event_registry: Registry; channelTree: ChannelTree; + connection_state: ConnectionState = ConnectionState.UNCONNECTED; serverConnection: AbstractServerConnection; fileManager: FileManager; @@ -349,6 +350,7 @@ export class ConnectionHandler { @EventHandler("notify_connection_state_changed") private handleConnectionConnected(event: ConnectionEvents["notify_connection_state_changed"]) { if(event.new_state !== ConnectionState.CONNECTED) return; + this.connection_state = event.new_state; log.info(LogCategory.CLIENT, tr("Client connected")); this.log.log(server_log.Type.CONNECTION_CONNECTED, { diff --git a/shared/js/ui/tree/Server.tsx b/shared/js/ui/tree/Server.tsx index 9cc6f8e7..6468c349 100644 --- a/shared/js/ui/tree/Server.tsx +++ b/shared/js/ui/tree/Server.tsx @@ -30,28 +30,29 @@ export class ServerEntry extends TreeEntry { - switch (event.new_state) { - case ConnectionState.AUTHENTICATING: - case ConnectionState.CONNECTING: - case ConnectionState.INITIALISING: - this.setState({ connection_state: "connecting" }); - break; - - case ConnectionState.CONNECTED: - this.setState({ connection_state: "connected" }); - break; - - case ConnectionState.DISCONNECTING: - case ConnectionState.UNCONNECTED: - this.setState({ connection_state: "disconnected" }); - break; - } - } + this.handle_connection_state_change = (event: ConnectionEvents["notify_connection_state_changed"]) => this.setState({ + connection_state: ServerEntry.connectionState2String(event.new_state) + }); } shouldComponentUpdate(nextProps: Readonly, nextState: Readonly, nextContext: any): boolean {