Files
discord-decomp/modules/saved_messages/SavedMessagesStore.tsx
T
2026-11-01 12:12:55 +02:00

296 lines
7.7 KiB
TypeScript

// Metro module 9553 (f9554).
import UserStore from "../../stores/UserStore";
import { SecondaryIndexMap } from "../../_bundle/Module3813";
import { SavedMessageSortTypes } from "./SavedMessagesTypes";
import { updateMessageRecord } from "../messages/MessageRecordUtils";
import Module589 from "../../_bundle/Module589";
import Dispatcher from "../../Dispatcher";
let c6299_3, c6299_5, c6299_6, c6299_7, c6299_8, c6299_9, c6299_10, isChannelRelevant, upsertSavedMessage, nullifyMessageObject;
const getTimeSafe = function getTimeSafe(a0) {
let time;
if (a0 == null) {
return c6299_3;
}
try {
time = new Date(a0).getTime();
} catch ($e) {
throw new Error(`Invalid date given (${a0})`);
}
return time;
};
isChannelRelevant = function isChannelRelevant(id) {
const r7 = c6299_10.get(id);
return r7 != null && r7.size > 0;
};
upsertSavedMessage = function upsertSavedMessage(a0) {
const saveData = a0.saveData;
const r16 = `${saveData.channelId}-${saveData.messageId}`;
if (c6299_5.get(r16) == null) {
c6299_7 = Date.now();
}
c6299_5.set(r16, a0);
const messageId = a0.saveData.messageId;
const channelId = a0.saveData.channelId;
let r31 = c6299_10.get(channelId);
if (r31 == null) {
r31 = new Set();
}
r31.add(messageId);
c6299_10.set(channelId, r31);
if (a0.message == null) {
c6299_9.add(messageId);
}
if (a0.saveData.dueAt != null && new Date() > a0.saveData.dueAt) {
c6299_8.add(messageId);
} else {
c6299_8.delete(messageId);
}
};
nullifyMessageObject = function nullifyMessageObject(a0) {
const r13 = `${a0.channelId}-${a0.messageId}`;
const r17 = c6299_5.get(r13);
if (r17?.message == null) {
return false;
}
c6299_5.set(r13, {
...r17,
message: null
});
return true;
};
const handleGuild = function handleGuild() {
let r1 = c6299_9.size !== 0;
if (r1) {
const r3 = c6299_6;
let r2 = !r3;
if (!r3) {
c6299_6 = true;
r2 = void 0;
}
r1 = r2;
}
return r1;
};
c6299_3 = 10000000000000;
c6299_5 = new SecondaryIndexMap((a0) => [SavedMessageSortTypes.ALL, a0.saveData.dueAt != null ? SavedMessageSortTypes.REMINDER : SavedMessageSortTypes.BOOKMARK], ({ saveData }) => saveData.dueAt != null ? getTimeSafe(saveData.dueAt) : c6299_3 - getTimeSafe(saveData.savedAt));
c6299_6 = true;
c6299_7 = 0;
c6299_8 = new Set();
c6299_9 = new Set();
c6299_10 = new Map();
class SavedMessagesStore extends Module589.Store {
static displayName = "SavedMessagesStore";
initialize() {
this.waitFor(UserStore);
}
getSavedMessages() {
return c6299_5.values(SavedMessageSortTypes.ALL);
}
getSavedMessage(a0, a1) {
return c6299_5.get(`${a0}-${a1}`);
}
getMessageBookmarks() {
return c6299_5.values(SavedMessageSortTypes.BOOKMARK);
}
getMessageReminders() {
return c6299_5.values(SavedMessageSortTypes.REMINDER);
}
getOverdueMessageReminderCount() {
return c6299_8.size;
}
hasOverdueReminder() {
return c6299_8.size > 0;
}
getMostRecentOverdueDueAt() {
const r4 = Date.now();
let r22 = 0;
for (const item of c6299_5.values(SavedMessageSortTypes.REMINDER)) {
const timeSafe = getTimeSafe(item.saveData.dueAt);
if (!(timeSafe > r4)) {
r22 = timeSafe;
continue;
}
break;
}
return r22;
}
getSavedMessageCount() {
return c6299_5.size();
}
getIsStale() {
return c6299_6;
}
getLastChanged() {
return c6299_7;
}
isMessageBookmarked(a0, a1) {
const r13 = c6299_5.get(`${a0}-${a1}`);
return r13 != null && r13.saveData.dueAt == null;
}
isMessageReminder(a0, a1) {
const r13 = c6299_5.get(`${a0}-${a1}`);
return r13 != null && r13.saveData.dueAt != null;
}
}
const savedMessagesStore = new SavedMessagesStore(Dispatcher, {
POST_CONNECTION_OPEN: function handlePostConnectionOpen() {
c6299_6 = true;
},
LOGOUT: function handleLogout() {
c6299_6 = true;
c6299_5.clear();
c6299_10.clear();
c6299_9.clear();
},
SAVED_MESSAGES_UPDATE: function handleUpdate({ savedMessages }) {
c6299_6 = false;
c6299_5.clear();
c6299_10.clear();
c6299_9.clear();
for (const item of savedMessages) {
upsertSavedMessage(item);
}
},
SAVED_MESSAGE_CREATE: function handleCreate(a0) {
upsertSavedMessage(a0.savedMessage);
},
SAVED_MESSAGE_DELETE: function handleDelete({ savedMessageData }) {
const r13 = `${savedMessageData.channelId}-${savedMessageData.messageId}`;
const r16 = c6299_5.get(r13);
const r2 = r16 == null;
let r0 = false;
if (!r2) {
c6299_5.delete(r13);
const messageId = savedMessageData.messageId;
const r24 = c6299_10.get(r16.saveData.channelId);
if (r24 != null) {
r24.delete(messageId);
}
c6299_9.delete(messageId);
c6299_8.delete(messageId);
c6299_7 = Date.now();
r0 = void 0;
}
return r0;
},
MESSAGE_DELETE: function handleMessageDelete(a0) {
const r14 = `${a0.channelId}-${a0.id}`;
const r18 = c6299_5.get(r14);
const r2 = r18?.message == null;
let r20 = false;
if (!r2) {
c6299_5.set(r14, {
...r18,
message: null
});
r20 = true;
}
return r20;
},
MESSAGE_DELETE_BULK: function handleMessageDeleteBulk({ ids, channelId }) {
for (const item of ids) {
nullifyMessageObject({
messageId: item,
channelId
});
}
},
MESSAGE_UPDATE: function handleMessageUpdate({ message }) {
if (message.id != null && message.channel_id != null) {
const r18 = `${message.channel_id}-${message.id}`;
const r21 = c6299_5.get(r18);
if (r21?.message == null) {
return false;
}
c6299_5.set(r18, {
...r21,
message: updateMessageRecord(r21.message, message)
});
return void 0;
}
return false;
},
GUILD_CREATE: handleGuild,
GUILD_UPDATE: handleGuild,
GUILD_DELETE: handleGuild,
CHANNEL_CREATE: function handleChannelCreate({ channel }) {
let r2 = c6299_9.size !== 0;
if (r2) {
const r1 = c6299_6;
let r3 = !r1;
if (!r1) {
const r13 = c6299_10.get(channel.id);
let r18 = !!(r13 != null && r13.size > 0);
if (r18) {
c6299_6 = true;
r18 = void 0;
}
r3 = r18;
}
r2 = r3;
}
return r2;
},
CHANNEL_UPDATES: function handleChannelUpdates({ channels }) {
if (c6299_9.size === 0) {
return false;
}
if (c6299_6) {
return false;
}
let r24 = false;
for (const item of channels) {
if (isChannelRelevant(item.id)) {
c6299_6 = true;
r24 = true;
}
}
return r24;
},
CHANNEL_DELETE: function handleChannelDelete({ channel }) {
let r2 = c6299_9.size !== 0;
if (r2) {
const r1 = c6299_6;
let r3 = !r1;
if (!r1) {
const r13 = c6299_10.get(channel.id);
let r18 = !!(r13 != null && r13.size > 0);
if (r18) {
c6299_6 = true;
r18 = void 0;
}
r3 = r18;
}
r2 = r3;
}
return r2;
},
GUILD_MEMBER_UPDATE: function handleGuildMemberUpdate({ user }) {
let r2 = c6299_9.size !== 0;
if (r2) {
const r1 = c6299_6;
let r3 = !r1;
if (!r1) {
let r18 = user.id === UserStore.getCurrentUser()?.id;
if (r18) {
c6299_6 = true;
r18 = void 0;
}
r3 = r18;
}
r2 = r3;
}
return r2;
},
GUILD_ROLE_CREATE: handleGuild,
GUILD_ROLE_UPDATE: handleGuild,
GUILD_ROLE_DELETE: handleGuild,
MESSAGE_REMINDER_DUE: function handleMessageReminderDue(a0) {
c6299_8.add(a0.savedMessage.saveData.messageId);
}
});
export default savedMessagesStore;
export function getComparator(a0) {
return a0.dueAt != null ? getTimeSafe(a0.dueAt) : c6299_3 - getTimeSafe(a0.savedAt);
}