feat: emit delete events with objects if present

This commit is contained in:
Paul Makles
2022-03-04 15:52:24 +00:00
parent 89be9be047
commit fc543f7fcd
2 changed files with 16 additions and 10 deletions
+4 -4
View File
@@ -3,7 +3,7 @@ import EventEmitter from "eventemitter3";
import defaultsDeep from "lodash.defaultsdeep";
import { action, makeObservable, observable } from "mobx";
import type { Session } from "revolt-api/types/Auth";
import type { Attachment, AttachmentMetadata, SizeOptions } from "revolt-api/types/Autumn";
import type { AttachmentMetadata, SizeOptions } from "revolt-api/types/Autumn";
import type { RevoltConfiguration } from "revolt-api/types/Core";
import { MemberCompositeKey, Role } from "revolt-api/types/Servers";
@@ -66,14 +66,14 @@ export declare interface Client {
on(event: "message", listener: (message: Message) => void): this;
on(event: "message/update", listener: (message: Message) => void): this;
on(event: "message/delete", listener: (id: string) => void): this;
on(event: "message/delete", listener: (id: string, message?: Message) => void): this;
on(event: "channel/create", listener: (channel: Channel) => void): this;
on(event: "channel/update", listener: (channel: Channel) => void): this;
on(event: "channel/delete", listener: (id: string) => void): this;
on(event: "channel/delete", listener: (id: string, channel?: Channel) => void): this;
on(event: "server/update", listener: (server: Server) => void): this;
on(event: "server/delete", listener: (id: string) => void): this;
on(event: "server/delete", listener: (id: string, server?: Server) => void): this;
on(
event: "role/update",
+12 -6
View File
@@ -277,8 +277,9 @@ export class WebSocketClient {
}
case "MessageDelete": {
const msg = this.client.messages.get(packet.id);
this.client.messages.delete(packet.id);
this.client.emit("message/delete", packet.id);
this.client.emit("message/delete", packet.id, msg);
break;
}
@@ -311,8 +312,9 @@ export class WebSocketClient {
}
case "ChannelDelete": {
this.client.channels.get(packet.id)?.delete(true);
this.client.emit("channel/delete", packet.id);
const channel = this.client.channels.get(packet.id);
channel?.delete(true);
this.client.emit("channel/delete", packet.id, channel);
break;
}
@@ -340,8 +342,9 @@ export class WebSocketClient {
}
case "ServerDelete": {
this.client.servers.get(packet.id)?.delete(true);
this.client.emit("server/delete", packet.id);
const server = this.client.servers.get(packet.id);
server?.delete(true);
this.client.emit("server/delete", packet.id, server);
break;
}
@@ -452,7 +455,10 @@ export class WebSocketClient {
case "UserRelationship": {
const user = this.client.users.get(packet.user._id);
if (user) {
user.update({ relationship: packet.status });
user.update({
...packet.user,
relationship: packet.status
});
} else {
this.client.users.createObj(packet.user);
}