138 lines
3.6 KiB
TypeScript
138 lines
3.6 KiB
TypeScript
// Metro module 4408 (f4409).
|
|
import ChannelStore from "../../stores/ChannelStore";
|
|
import { MessageFlags } from "../../Constants";
|
|
import { hasFlag } from "../../_bundle/Module1384";
|
|
import { createMessageRecord, updateMessageRecord } from "./MessageRecordUtils";
|
|
import Module589 from "../../_bundle/Module589";
|
|
import Dispatcher from "../../Dispatcher";
|
|
let c2638_4, c2638_5;
|
|
const dropChannelIfEmpty = function dropChannelIfEmpty(channelId, a1) {
|
|
if (a1.size === 0) {
|
|
c2638_5.delete(channelId);
|
|
}
|
|
};
|
|
const clearAll = function clearAll() {
|
|
if (c2638_5.size === 0) {
|
|
return false;
|
|
}
|
|
c2638_5.clear();
|
|
};
|
|
c2638_4 = [];
|
|
c2638_5 = new Map();
|
|
class EphemeralMessageStore extends Module589.Store {
|
|
static displayName = "EphemeralMessageStore";
|
|
initialize() {
|
|
this.waitFor(ChannelStore);
|
|
}
|
|
getMessages(a0) {
|
|
const r6 = c2638_5.get(a0);
|
|
return r6 != null && r6.size !== 0 ? Array.from(r6.values()) : c2638_4;
|
|
}
|
|
}
|
|
const ephemeralMessageStore = new EphemeralMessageStore(Dispatcher, {
|
|
MESSAGE_CREATE: function handleMessageCreate({ channelId, message }) {
|
|
let flags = message.flags;
|
|
if (flags == null) {
|
|
flags = 0;
|
|
}
|
|
if (hasFlag(flags, MessageFlags.EPHEMERAL)) {
|
|
let r22 = c2638_5.get(channelId);
|
|
if (r22 == null) {
|
|
const map = new Map();
|
|
c2638_5.set(channelId, map);
|
|
r22 = map;
|
|
}
|
|
r22.set(message.id, createMessageRecord(message));
|
|
while (r22.size > 50) {
|
|
const r42 = r22.keys().next();
|
|
if (r42.done === true) {
|
|
break;
|
|
}
|
|
r22.delete(r42.value);
|
|
}
|
|
return void 0;
|
|
}
|
|
return false;
|
|
},
|
|
MESSAGE_UPDATE: function handleMessageUpdate({ message }) {
|
|
const { channel_id, id } = message;
|
|
if (channel_id != null && id != null) {
|
|
const r9 = c2638_5.get(channel_id);
|
|
if (r9 == null) {
|
|
return false;
|
|
}
|
|
const r6 = r9.get(id);
|
|
if (r6 == null) {
|
|
return false;
|
|
}
|
|
r9.set(id, updateMessageRecord(r6, message));
|
|
return void 0;
|
|
}
|
|
return false;
|
|
},
|
|
MESSAGE_DELETE: function handleMessageDelete({ channelId, id }) {
|
|
const r9 = c2638_5.get(channelId);
|
|
if (r9 != null && r9.delete(id)) {
|
|
if (r9.size === 0) {
|
|
c2638_5.delete(channelId);
|
|
}
|
|
return void 0;
|
|
}
|
|
return false;
|
|
},
|
|
MESSAGE_DELETE_BULK: function handleMessageDeleteBulk({ channelId, ids }) {
|
|
const r24 = c2638_5.get(channelId);
|
|
if (r24 == null) {
|
|
return false;
|
|
}
|
|
let r27 = false;
|
|
for (const item of ids) {
|
|
if (r24.delete(item)) {
|
|
r27 = true;
|
|
}
|
|
}
|
|
if (r27) {
|
|
dropChannelIfEmpty(channelId, r24);
|
|
return void 0;
|
|
}
|
|
return false;
|
|
},
|
|
CLEAR_MESSAGES: function handleClearMessages({ channelId }) {
|
|
if (c2638_5.has(channelId)) {
|
|
c2638_5.delete(channelId);
|
|
return void 0;
|
|
}
|
|
return false;
|
|
},
|
|
CHANNEL_DELETE: function handleChannelDelete(a0) {
|
|
if (c2638_5.delete(a0.channel.id)) {
|
|
return void 0;
|
|
}
|
|
return false;
|
|
},
|
|
THREAD_DELETE: function handleThreadDelete(a0) {
|
|
if (c2638_5.delete(a0.channel.id)) {
|
|
return void 0;
|
|
}
|
|
return false;
|
|
},
|
|
GUILD_DELETE: function handleGuildDelete() {
|
|
if (c2638_5.size === 0) {
|
|
return false;
|
|
}
|
|
let r24 = false;
|
|
for (const item of c2638_5.keys()) {
|
|
if (ChannelStore.getChannel(item) == null) {
|
|
c2638_5.delete(item);
|
|
r24 = true;
|
|
}
|
|
}
|
|
return !!r24 && void 0;
|
|
},
|
|
CACHE_LOADED: clearAll,
|
|
CONNECTION_OPEN: clearAll,
|
|
OVERLAY_INITIALIZE: clearAll,
|
|
LOGOUT: clearAll
|
|
});
|
|
export default ephemeralMessageStore;
|