Handle JOIN/PART in State.handleMessage

This commit is contained in:
Simon Ser 2021-06-04 18:53:06 +02:00
parent 2af58f8d0b
commit 30a345298f
2 changed files with 22 additions and 11 deletions

View File

@ -568,12 +568,6 @@ export default class App extends Component {
case "JOIN":
var channel = msg.params[0];
this.createBuffer(serverID, channel);
this.setBufferState({ server: serverID, name: channel }, (buf) => {
var members = new irc.CaseMapMap(buf.members);
members.set(msg.prefix.name, "");
return { members };
});
if (!client.isMyNick(msg.prefix.name)) {
this.addMessage(serverID, channel, msg);
}
@ -585,11 +579,6 @@ export default class App extends Component {
case "PART":
var channel = msg.params[0];
this.setBufferState({ server: serverID, name: channel }, (buf) => {
var members = new irc.CaseMapMap(buf.members);
members.delete(msg.prefix.name);
return { members };
});
this.addMessage(serverID, channel, msg);
if (client.isMyNick(msg.prefix.name)) {

View File

@ -296,6 +296,28 @@ export const State = {
});
}
break;
case "JOIN":
var channel = msg.params[0];
if (client.isMyNick(msg.prefix.name)) {
var [id, update] = State.createBuffer(state, channel, serverID, client);
state = { ...state, ...update };
}
var update = updateBuffer(channel, (buf) => {
var members = new irc.CaseMapMap(buf.members);
members.set(msg.prefix.name, "");
return { members };
});
return { ...state, ...update };
case "PART":
var channel = msg.params[0];
return updateBuffer(channel, (buf) => {
var members = new irc.CaseMapMap(buf.members);
members.delete(msg.prefix.name);
return { members };
});
case "KICK":
var channel = msg.params[0];
var nick = msg.params[1];