// 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;