Take buffer ID in close

This commit is contained in:
Simon Ser 2021-01-22 10:26:53 +01:00
parent ffed801b0e
commit 002b91a599

View File

@ -719,29 +719,35 @@ export default class App extends Component {
this.switchBuffer({ name: target }); this.switchBuffer({ name: target });
} }
close(target) { close(id) {
if (target == SERVER_BUFFER) { var buf = getBuffer(this.state, id);
if (!buf) {
return;
}
switch (buf.type) {
case BufferType.SERVER:
this.setState({ this.setState({
buffers: new Map(), buffers: new Map(),
activeBuffer: null, activeBuffer: null,
}); });
this.disconnect(DEFAULT_NETWORK); this.disconnect(buf.network);
return; break;
case BufferType.CHANNEL:
this.client.send({ command: "PART", params: [buf.name] });
// fallthrough
case BufferType.NICK:
this.switchBuffer({ name: SERVER_BUFFER });
this.setState((state) => {
var buffers = new Map(state.buffers);
buffers.delete(target);
return { buffers };
});
this.receipts.delete(target);
this.saveReceipts();
break;
} }
if (this.isChannel(target)) {
this.client.send({ command: "PART", params: [target] });
}
this.switchBuffer({ name: SERVER_BUFFER });
this.setState((state) => {
var buffers = new Map(state.buffers);
buffers.delete(target);
return { buffers };
});
this.receipts.delete(target);
this.saveReceipts();
} }
executeCommand(s) { executeCommand(s) {
@ -951,7 +957,7 @@ export default class App extends Component {
if (activeBuffer) { if (activeBuffer) {
bufferHeader = html` bufferHeader = html`
<section id="buffer-header"> <section id="buffer-header">
<${BufferHeader} buffer=${activeBuffer} onClose=${() => this.close(activeBuffer.name)}/> <${BufferHeader} buffer=${activeBuffer} onClose=${() => this.close(activeBuffer)}/>
</section> </section>
`; `;
} }