diff --git a/components/app.js b/components/app.js index 749fd9f..c4dc3b0 100644 --- a/components/app.js +++ b/components/app.js @@ -1591,14 +1591,10 @@ export default class App extends Component { } let activeBuffer = null, activeServer = null, activeBouncerNetwork = null; - let isBouncer = false; if (this.state.buffers.get(this.state.activeBuffer)) { activeBuffer = this.state.buffers.get(this.state.activeBuffer); activeServer = this.state.servers.get(activeBuffer.server); - let activeClient = this.clients.get(activeBuffer.server); - isBouncer = activeClient && activeClient.enabledCaps["soju.im/bouncer-networks"]; - let bouncerNetID = activeServer.bouncerNetID; if (bouncerNetID) { activeBouncerNetwork = this.state.bouncerNetworks.get(bouncerNetID); @@ -1634,7 +1630,6 @@ export default class App extends Component { buffer=${activeBuffer} server=${activeServer} user=${activeUser} - isBouncer=${isBouncer} bouncerNetwork=${activeBouncerNetwork} onChannelClick=${this.handleChannelClick} onClose=${() => this.close(activeBuffer)} @@ -1716,7 +1711,7 @@ export default class App extends Component { `; } dialog = html` - <${Dialog} title="Login to ${getServerName(activeServer, activeBouncerNetwork, isBouncer)}" onDismiss=${this.dismissDialog}> + <${Dialog} title="Login to ${getServerName(activeServer, activeBouncerNetwork)}" onDismiss=${this.dismissDialog}> ${dialogBody} `; @@ -1730,7 +1725,7 @@ export default class App extends Component { `; } dialog = html` - <${Dialog} title="Register a new ${getServerName(activeServer, activeBouncerNetwork, isBouncer)} account" onDismiss=${this.dismissDialog}> + <${Dialog} title="Register a new ${getServerName(activeServer, activeBouncerNetwork)} account" onDismiss=${this.dismissDialog}> ${dialogBody} `; @@ -1744,7 +1739,7 @@ export default class App extends Component { `; } dialog = html` - <${Dialog} title="Verify ${getServerName(activeServer, activeBouncerNetwork, isBouncer)} account" onDismiss=${this.dismissDialog}> + <${Dialog} title="Verify ${getServerName(activeServer, activeBouncerNetwork)} account" onDismiss=${this.dismissDialog}> ${dialogBody} `; @@ -1779,7 +1774,6 @@ export default class App extends Component { buffers=${this.state.buffers} servers=${this.state.servers} bouncerNetworks=${this.state.bouncerNetworks} - isBouncer=${isBouncer} activeBuffer=${this.state.activeBuffer} onBufferClick=${this.handleBufferListClick} onBufferClose=${this.handleBufferListClose} @@ -1803,7 +1797,6 @@ export default class App extends Component { <${Buffer} buffer=${activeBuffer} server=${activeServer} - isBouncer=${isBouncer} bouncerNetwork=${activeBouncerNetwork} onChannelClick=${this.handleChannelClick} onNickClick=${this.handleNickClick} diff --git a/components/buffer-header.js b/components/buffer-header.js index ef45f35..7638326 100644 --- a/components/buffer-header.js +++ b/components/buffer-header.js @@ -86,7 +86,7 @@ export default function BufferHeader(props) { >Join channel `; - if (props.isBouncer) { + if (props.server.isBouncer) { if (props.server.bouncerNetID) { if (fullyConnected) { actions.push(joinButton); @@ -221,7 +221,7 @@ export default function BufferHeader(props) { let name = props.buffer.name; if (props.buffer.type == BufferType.SERVER) { - name = getServerName(props.server, props.bouncerNetwork, props.isBouncer); + name = getServerName(props.server, props.bouncerNetwork); } return html` diff --git a/components/buffer-list.js b/components/buffer-list.js index 96a219e..46b2f11 100644 --- a/components/buffer-list.js +++ b/components/buffer-list.js @@ -16,7 +16,7 @@ function BufferItem(props) { let name = props.buffer.name; if (props.buffer.type == BufferType.SERVER) { - name = getServerName(props.server, props.bouncerNetwork, props.isBouncer); + name = getServerName(props.server, props.bouncerNetwork); } let classes = ["type-" + props.buffer.type]; @@ -54,7 +54,6 @@ export default function BufferList(props) { key=${buf.id} buffer=${buf} server=${server} - isBouncer=${props.isBouncer} bouncerNetwork=${bouncerNetwork} onClick=${() => props.onBufferClick(buf)} onClose=${() => props.onBufferClose(buf)} diff --git a/components/buffer.js b/components/buffer.js index 6e08faf..083aa15 100644 --- a/components/buffer.js +++ b/components/buffer.js @@ -570,7 +570,7 @@ export default class Buffer extends Component { if (buf.type == BufferType.SERVER) { children.push(html`<${NotificationNagger}/>`); } - if (buf.type == BufferType.SERVER && this.props.isBouncer && !server.bouncerNetID) { + if (buf.type == BufferType.SERVER && server.isBouncer && !server.bouncerNetID) { children.push(html`<${ProtocolHandlerNagger} bouncerName=${serverName}/>`); } if (buf.type == BufferType.SERVER && server.status == ServerStatus.REGISTERED && server.supportsSASLPlain && !server.account) { diff --git a/state.js b/state.js index 37a5c9a..682d0ea 100644 --- a/state.js +++ b/state.js @@ -63,7 +63,7 @@ export function getMessageURL(buf, msg) { } } -export function getServerName(server, bouncerNetwork, isBouncer) { +export function getServerName(server, bouncerNetwork) { let netName = server.name; if (bouncerNetwork && bouncerNetwork.name && bouncerNetwork.name !== bouncerNetwork.host) { @@ -78,7 +78,7 @@ export function getServerName(server, bouncerNetwork, isBouncer) { if (bouncerNetwork) { return bouncerNetwork.name || bouncerNetwork.host || "server"; - } else if (isBouncer) { + } else if (server.isBouncer) { return "bouncer"; } else { return "server"; @@ -261,6 +261,7 @@ export const State = { supportsAccountRegistration: false, reliableUserAccounts: false, statusMsg: null, // from ISUPPORT STATUSMSG + isBouncer: false, bouncerNetID: null, }); return [id, { servers }]; @@ -360,6 +361,7 @@ export const State = { return updateServer({ supportsSASLPlain: client.supportsSASL("PLAIN"), supportsAccountRegistration: !!client.enabledCaps["draft/account-registration"], + isBouncer: !!client.enabledCaps["soju.im/bouncer-networks"], }); case irc.RPL_LOGGEDIN: return updateServer({ account: msg.params[2] });