// Module ID: 5433 // Function ID: 5434 // Name: EphemeralMessageStore // Dependencies: [2065, 1085, 1403, 5434, 504, 584, 2] // Module 5433 (EphemeralMessageStore) import get_initializedDefault from "get initialized" /* 504 */; import DispatcherDefault from "Dispatcher" /* 584 */; import Constants from "Constants" /* 1085 */; import FlagUtils from "FlagUtils" /* 1403 */; import ChannelStore from "ChannelStore" /* 2065 */; import size from "module_2" /* 2 */; let set; let tmp; const MessageRecordUtils = tmp(5434); function dropChannelIfEmpty(channelId, value) { if (0 === value.size) { map.delete(channelId); } } function clearAll() { const obj = map; if (0 === map.size) { return false; } else { obj.clear(); } } const MessageFlags = Constants.MessageFlags; let closure_4 = []; let map = new Map(); const Store = get_initializedDefault.Store; class EphemeralMessageStore extends Store { initialize() { this.waitFor(ChannelStore); } getMessages(arg0) { const value = map.get(arg0); if (null != value) { let arr; if (0 !== value.size) { const _Array = Array; arr = Array.from(value.values()); } return arr; } arr = closure_4; } } const prototype = EphemeralMessageStore.prototype; EphemeralMessageStore.displayName = "EphemeralMessageStore"; let obj = { MESSAGE_CREATE: function handleMessageCreate(arg0) { let channelId; let message; ({ channelId, message } = arg0); let num = message.flags; const hasFlag = FlagUtils.hasFlag; FlagUtils; if (num == null) { num = 0; } if (hasFlag(num, MessageFlags.EPHEMERAL)) { let value = map.get(channelId); const obj = map; if (null == value) { const _Map = Map; const self = this; const self2 = this; map = new Map(); const result = obj.set(channelId, map); value = map; } const id = message.id; set = value.set; const tmpResult = MessageRecordUtils; const result1 = set(id, tmpResult.createMessageRecord(message)); if (value.size > 50) { const iter = value.keys(); const iter2 = iter.next(); while (true !== iter2.done) { let deleteResult = value.delete(iter2.value); if (value.size <= 50) { break; } } } } else { return false; } }, MESSAGE_UPDATE: function handleMessageUpdate(message) { let channel_id; let id; message = message.message; ({ channel_id, id } = message); if (null != channel_id) { if (null != id) { const value = map.get(channel_id); if (null == value) { return false; } else { const value2 = value.get(id); if (null == value2) { return false; } else { set = value.set; const obj2 = MessageRecordUtils; const result = set(id, obj2.updateMessageRecord(value2, message)); } } } } return false; }, MESSAGE_DELETE: function handleMessageDelete(channelId) { channelId = channelId.channelId; const id = channelId.id; const value = map.get(channelId); const obj = map; if (null != value) { if (value.delete(id)) { if (0 === value.size) { obj.delete(channelId); } } } return false; }, MESSAGE_DELETE_BULK: function handleMessageDeleteBulk(arg0) { let channelId; let ids; ({ channelId, ids } = arg0); const value = map.get(channelId); if (null == value) { return false; } else { let flag2 = false; for (const item10014 of ids) { if (value.delete(item10014)) { flag2 = true; } continue; } if (flag2) { dropChannelIfEmpty(channelId, value); } else { return false; } } }, CLEAR_MESSAGES: function handleClearMessages(channelId) { channelId = channelId.channelId; const obj = map; if (map.has(channelId)) { obj.delete(channelId); } else { return false; } }, CHANNEL_DELETE: function handleChannelDelete(channel) { if (!map.delete(channel.channel.id)) { return false; } }, THREAD_DELETE: function handleThreadDelete(channel) { if (!map.delete(channel.channel.id)) { return false; } }, GUILD_DELETE: function handleGuildDelete() { const obj = map; if (0 === map.size) { return false; } else { let flag = false; const keys = obj.keys(); const iter = keys[Symbol.iterator](); const nextResult = iter.next(); while (iter !== undefined) { let tmp9 = nextResult; if (null == ChannelStore.getChannel(nextResult)) { let deleteResult = map.delete(tmp9); flag = true; } continue; } return flag && undefined; } }, CACHE_LOADED: clearAll, CONNECTION_OPEN: clearAll, OVERLAY_INITIALIZE: clearAll, LOGOUT: clearAll }; const ephemeralMessageStore = new EphemeralMessageStore(DispatcherDefault, obj); let result = size.fileFinishedImporting("modules/messages/EphemeralMessageStore.tsx"); export default ephemeralMessageStore;