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

62 lines
1.9 KiB
TypeScript

// Metro module 12773 (f12774).
import SelfPresenceStore from "../../stores/SelfPresenceStore";
import { StatusTypes } from "../../Constants";
import Durations from "../../utils/Durations";
import { StatusExpiresAtSetting } from "../user_settings/UserSettings";
import Dispatcher from "../../Dispatcher";
import Module589 from "../../_bundle/Module589";
let $mk90389 = function() {
return (a0) => a0 < Date.now() - 3 * Durations.Millis.DAY;
};
let sessionStartsWithDND = [];
let c8804_6 = false;
class HabitualDNDStore extends Module589.PersistedStore {
static displayName = "HabitualDNDStore";
static persistKey = "habitualDND";
initialize(a0) {
this.waitFor(SelfPresenceStore);
if (a0 != null && Array.isArray(a0.sessionStartsWithDND)) {
sessionStartsWithDND = a0.sessionStartsWithDND;
}
}
showNagBar() {
return c8804_6;
}
getState() {
return {
sessionStartsWithDND
};
}
getTemp() {
return {
x: StatusExpiresAtSetting.getSetting()
};
}
}
const habitualDNDStore = new HabitualDNDStore(Dispatcher, {
POST_CONNECTION_OPEN: function handleConnect() {
L7: {
if (SelfPresenceStore.getStatus() === StatusTypes.DND && StatusExpiresAtSetting.getSetting() === "0") {
sessionStartsWithDND.push(Date.now());
const r27 = sessionStartsWithDND.filter((item) => item > Date.now() - 5 * Durations.Millis.DAY);
sessionStartsWithDND = r27;
if (!(r27.length >= 4 && sessionStartsWithDND.some($mk90389()))) {
break L7;
}
setTimeout(() => {
Dispatcher.dispatch({
type: "HABITUAL_DND_CLEAR"
});
}, 15 * Durations.Millis.SECOND);
} else {
sessionStartsWithDND = [];
}
}
},
HABITUAL_DND_CLEAR: function handleDNDClear() {
c8804_6 = !!(sessionStartsWithDND.length >= 4 && sessionStartsWithDND.some($mk90389()));
sessionStartsWithDND = [];
}
});
export default habitualDNDStore;