From 1b21f5f0767cfcf6b1b7205a0a18c1d26002394e Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Wed, 10 Mar 2021 11:48:58 +0100 Subject: [PATCH] Display bouncer network status --- components/app.js | 8 +++++++- components/buffer-header.js | 18 ++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/components/app.js b/components/app.js index 9657692..d83022f 100644 --- a/components/app.js +++ b/components/app.js @@ -1099,7 +1099,7 @@ export default class App extends Component { } render() { - var activeBuffer = null, activeNetwork = null; + var activeBuffer = null, activeNetwork = null, activeBouncerNetwork = null; var isBouncer = false; if (this.state.buffers.get(this.state.activeBuffer)) { activeBuffer = this.state.buffers.get(this.state.activeBuffer); @@ -1107,6 +1107,11 @@ export default class App extends Component { var activeClient = this.clients.get(activeBuffer.network); isBouncer = activeClient && activeClient.enabledCaps["soju.im/bouncer-networks"]; + + var bouncerNetID = activeNetwork.isupport.get("BOUNCER_NETID"); + if (bouncerNetID) { + activeBouncerNetwork = this.state.bouncerNetworks.get(bouncerNetID); + } } if (!activeNetwork || (activeNetwork.status !== NetworkStatus.REGISTERED && !activeBuffer)) { @@ -1132,6 +1137,7 @@ export default class App extends Component { buffer=${activeBuffer} network=${activeNetwork} isBouncer=${isBouncer} + bouncerNetwork=${activeBouncerNetwork} onClose=${() => this.close(activeBuffer)} onJoin=${() => this.handleJoinClick(activeBuffer.network)} onAddNetwork=${this.handleAddNetworkClick} diff --git a/components/buffer-header.js b/components/buffer-header.js index 4b23842..af1336b 100644 --- a/components/buffer-header.js +++ b/components/buffer-header.js @@ -50,8 +50,22 @@ export default function BufferHeader(props) { description = "Logging in..."; break; case NetworkStatus.REGISTERED: - var serverInfo = props.buffer.serverInfo; - description = `Connected to ${serverInfo.name}`; + if (props.bouncerNetwork) { + switch (props.bouncerNetwork.state) { + case "disconnected": + description = "Bouncer disconnected from network"; + break; + case "connecting": + description = "Bouncer connecting to network..."; + break; + case "connected": + description = `Connected to ${props.bouncerNetwork.host}`; + break; + } + } else { + var serverInfo = props.buffer.serverInfo; + description = `Connected to ${serverInfo.name}`; + } break; } } else if (props.buffer.topic) {