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

106 lines
3.8 KiB
TypeScript

// Metro module 8322 (f8323).
import AuthenticationStore from "../../stores/AuthenticationStore";
import GuildScheduledEventStore from "./GuildScheduledEventStore";
import { GuildScheduledEventStatus, UpcomingGuildEventNoticeTypes } from "./GuildScheduledEventsConstants";
import { getNextShownUpcomingEventNoticeType } from "./GuildScheduledEventUtils";
import Module589 from "../../_bundle/Module589";
import Dispatcher from "../../Dispatcher";
let upcomingEventDismissals = {};
let upcomingEventSeenTimestamps = {};
class UpcomingEventNoticesStore extends Module589.PersistedStore {
static displayName = "UpcomingEventNoticesStore";
static persistKey = "UpcomingEventNotices";
initialize(a0) {
this.waitFor(AuthenticationStore, GuildScheduledEventStore);
if (a0 != null) {
let upcomingEventDismissals2 = a0.upcomingEventDismissals;
if (upcomingEventDismissals2 == null) {
upcomingEventDismissals2 = {};
}
upcomingEventDismissals = upcomingEventDismissals2;
let upcomingEventSeenTimestamps2 = a0.upcomingEventSeenTimestamps;
if (upcomingEventSeenTimestamps2 == null) {
upcomingEventSeenTimestamps2 = {};
}
upcomingEventSeenTimestamps = upcomingEventSeenTimestamps2;
}
}
getGuildEventNoticeDismissalTime(a0) {
return upcomingEventDismissals[a0];
}
getAllEventDismissals() {
return upcomingEventDismissals;
}
getUpcomingNoticeSeenTime(a0) {
return upcomingEventSeenTimestamps[a0];
}
getAllUpcomingNoticeSeenTimes() {
return upcomingEventSeenTimestamps;
}
getState() {
return {
upcomingEventDismissals,
upcomingEventSeenTimestamps
};
}
}
const upcomingEventNoticesStore = new UpcomingEventNoticesStore(Dispatcher, {
UPCOMING_GUILD_EVENT_NOTICE_HIDE: function handleHideNotice({ eventId }) {
const r8 = {
...upcomingEventDismissals
};
r8[eventId] = Date.now();
upcomingEventDismissals = r8;
},
GUILD_SCHEDULED_EVENT_UPDATE: function handleEventUpdate({ guildScheduledEvent }) {
if (!(guildScheduledEvent.status !== GuildScheduledEventStatus.CANCELED && guildScheduledEvent.status !== GuildScheduledEventStatus.COMPLETED)) {
const id = guildScheduledEvent.id;
const r13 = {
...upcomingEventDismissals
};
delete r13[id];
upcomingEventDismissals = r13;
const r16 = {
...upcomingEventSeenTimestamps
};
delete r16[id];
upcomingEventSeenTimestamps = r16;
}
},
GUILD_SCHEDULED_EVENT_DELETE: function handleEventDelete(a0) {
const id = a0.guildScheduledEvent.id;
const r8 = {
...upcomingEventDismissals
};
delete r8[id];
upcomingEventDismissals = r8;
const r9 = {
...upcomingEventSeenTimestamps
};
delete r9[id];
upcomingEventSeenTimestamps = r9;
},
GUILD_SCHEDULED_EVENT_USER_ADD: function handleMaybeHideNewEventNotice({ userId, guildEventId }) {
if (userId === AuthenticationStore.getId()) {
const guildScheduledEvent = GuildScheduledEventStore.getGuildScheduledEvent(guildEventId);
if (guildScheduledEvent != null && guildScheduledEvent.status === GuildScheduledEventStatus.SCHEDULED && upcomingEventDismissals[guildEventId] == null) {
if (getNextShownUpcomingEventNoticeType(guildScheduledEvent, void 0, upcomingEventSeenTimestamps[guildEventId], false) === UpcomingGuildEventNoticeTypes.NEW_EVENT) {
const r31 = {
...upcomingEventDismissals
};
r31[guildEventId] = Date.now();
upcomingEventDismissals = r31;
}
}
}
},
UPCOMING_GUILD_EVENT_NOTICE_SEEN: function handleMarkUpcomingNoticeAsSeen({ guildEventId }) {
const r8 = {
...upcomingEventSeenTimestamps
};
r8[guildEventId] = Date.now();
upcomingEventSeenTimestamps = r8;
}
});
export default upcomingEventNoticesStore;