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

582 lines
21 KiB
TypeScript

// Metro module 8442 (f8443).
import { useRef, useEffect, useCallback } from "react";
import UserSettingsProtoStore from "../user_settings/UserSettingsProtoStore";
import SelectedGuildStore from "../../stores/SelectedGuildStore";
import DismissibleContentFrameworkStore from "./DismissibleContentFrameworkStore";
import DismissibleContentShownStateStore from "./DismissibleContentShownStateStore";
import "../../Constants";
import { UserSettingsTypes } from "../user_settings/UserSettingsConstants";
import { useAnyOverlayRenderingLocked } from "../overlay/OverlayTrackingUtils.native";
import { useStateFromStores } from "../../_bundle/Module589";
import { markVersionedDismissibleContentAsDismissed, markTimeRecurringDismissibleContentAsDismissed, markSnowflakeBoundDismissibleContentAsDismissed, isTimeRecurringSnowflakeBoundDismissibleContentDismissed } from "./DismissibleContentUtils";
import { useNewUserDismissibleContent, disableNewUserDismissibleContent } from "./NewUserDismissibleContentRegistry";
import { hasBit } from "../../utils/Uint8ArrayUtils";
import { UNSAFE_markDismissibleContentAsDismissed, UNSAFE_markSnowflakeBoundGuildDismissibleContentAsDismissed, UNSAFE_markSingleUseGuildDismissibleContentAsDismissed, UNSAFE_markTimeRecurringGuildDismissibleContentAsDismissed } from "./DismissibleContentUnsafeUtils";
import SnowflakeUtils from "../../utils/SnowflakeUtils";
function $mk80638($env) {
return (a0) => {
const r4 = $env[0];
return r4 != null && a0.currentlyShown.has(r4);
};
}
function $mk80639() {
return () => {};
}
function $mk80640($env) {
return () => {
const r2 = $env;
const r5 = r2[0];
return r5 != null && $env.$parent[6].hasUserHitDCCap(r5, r2[1]);
};
}
function $mk80641($env) {
return () => {
const r2 = $env;
const r8 = r2[0];
if (r8 != null) {
const r3 = $env.$parent;
if (!r3[4].hasLoaded(r3[10].PRELOADED_USER_SETTINGS)) {
let current = r2[7].current;
let group_name = r2[2];
let latest_version = r2[3];
let snowflake_id = r2[4];
const r23 = r3[1];
const r13 = r3[2];
const r7 = r23(r13[7]);
const DISMISSIBLE_CONTENT_SHOWN_BEFORE_CONNECTION_OPEN = r3[9].DISMISSIBLE_CONTENT_SHOWN_BEFORE_CONNECTION_OPEN;
const r33 = {
content_type: (0, r3[0])(r13[8]).DismissibleContent[r8],
group_name: null,
latest_version: null,
guild_id: null,
snowflake_id: null
};
if (group_name == null) {
group_name = null;
}
r33.group_name = group_name;
if (latest_version == null) {
latest_version = null;
}
r33.latest_version = latest_version;
if (current == null) {
current = null;
}
r33.guild_id = current;
if (snowflake_id == null) {
snowflake_id = null;
}
r33.snowflake_id = snowflake_id;
r7.track(DISMISSIBLE_CONTENT_SHOWN_BEFORE_CONNECTION_OPEN, r33);
}
(0, r3[0])(r3[2][11]).requestMarkDismissibleContentAsShown(r8, {
groupName: r2[2],
guildId: r2[7].current,
version: r2[3],
snowflakeId: r2[4]
}, r2[5], r2[6]);
return $mk105884(r2);
}
};
}
function $mk80642($env) {
return () => {
const r6 = $env[0];
let r7 = null;
if (r6 !== null) {
const userContent = $env.$parent[4].settings.userContent;
const r2 = userContent == null;
let r10 = void 0;
if (!r2) {
const recurringDismissibleContentStates = userContent.recurringDismissibleContentStates;
r10 = recurringDismissibleContentStates == null ? void 0 : recurringDismissibleContentStates[r6];
}
r7 = r10;
}
if (r7 == null) {
r7 = $env.$parent[11];
}
return r7;
};
}
function $mk105884($env) {
return () => {
const r4 = $env;
const content = r4[0];
if (content != null) {
const r2 = $env.$parent;
(0, r2[8])({
content,
groupName: r4[2]
}, !r2[6].hasUserHitDCCap());
}
};
}
let c5407_11;
let env5407 = {};
const canShowTimeRecurringContent = function canShowTimeRecurringContent(a0, a1, a2, a3) {
const r9 = a1 != null ? Number.isNaN(Number(a1)) ? void 0 : Number(a1) : void 0;
const r18 = r9 !== void 0 ? r9 + a3.cooldownDurationMs : 0;
const r23 = Date.now();
let r25 = a3.showAfterTimestamp == null;
if (!r25) {
let r27 = r23 >= a3.showAfterTimestamp;
if (r27) {
let r28 = r9;
if (r28 == null) {
r28 = 0;
}
r27 = r28 <= a3.showAfterTimestamp;
}
r25 = r27;
}
const r31 = a3.numTimesToRecur == null || a3.numTimesToRecur === 0 || a2 == null || a2 < a3.numTimesToRecur;
return (UserSettingsProtoStore.hasLoaded(UserSettingsTypes.PRELOADED_USER_SETTINGS) || r9 != null && a2 != null) && a0 && r25 && (r9 == null || r23 >= r18) && r31;
};
c5407_11 = {};
export function useGetDismissibleContent(a0, a1) {
let r34;
let stateFromStores2, c16577_3;
const groupName = a1;
const stateFromStores = useStateFromStores([UserSettingsProtoStore], () => UserSettingsProtoStore.settings.userContent?.dismissedContents);
stateFromStores2 = useStateFromStores([SelectedGuildStore], () => SelectedGuildStore.getGuildId());
const newUserDismissibleContent = useNewUserDismissibleContent(a0);
c16577_3 = null;
if (UserSettingsProtoStore.hasLoaded(UserSettingsTypes.PRELOADED_USER_SETTINGS)) {
const r40 = newUserDismissibleContent.find((item) => stateFromStores == null || !hasBit(stateFromStores, item));
c16577_3 = r40;
r34 = r40;
} else {
const r2 = stateFromStores != null;
r34 = null;
if (r2) {
const r37 = newUserDismissibleContent.find((item) => !hasBit(stateFromStores, item));
c16577_3 = r37;
r34 = r37;
}
}
let env16578;
const r41 = env16578 = {
$parent: env5407
};
env16578[0] = r34;
env16578[1] = stateFromStores2;
env16578[2] = a1;
const r44 = DismissibleContentShownStateStore($mk80638(r41));
const anyOverlayRenderingLocked = useAnyOverlayRenderingLocked();
env16578[5] = anyOverlayRenderingLocked;
const stateFromStores9 = useStateFromStores([], $mk80639());
env16578[6] = stateFromStores9;
const stateFromStores10 = useStateFromStores([DismissibleContentFrameworkStore], $mk80640(r41));
const ref = useRef(stateFromStores2);
env16578[7] = ref;
ref.current = stateFromStores2;
useEffect($mk80641(r41), [r34, a1, stateFromStores10, anyOverlayRenderingLocked, void 0, stateFromStores9, void 0]);
return [r44 ? r34 ?? null : null, useCallback((a0, a1) => {
if (c16577_3 != null) {
UNSAFE_markDismissibleContentAsDismissed(c16577_3, {
dismissAction: a0,
groupName,
guildId: stateFromStores2,
forceTrack: a1
});
}
}, [r34, a1, stateFromStores2])];
}
export function useGetVersionedDismissibleContent(a0, a1, a2) {
let r40;
let c16579_3;
let env16580;
const version = a1;
const groupName2 = a2;
const r3 = env16580 = {
$parent: env5407
};
env16580[0] = a0;
const lastDismissedVersion = useStateFromStores([UserSettingsProtoStore], $mk80642(r3)).lastDismissedVersion;
const stateFromStores3 = useStateFromStores([SelectedGuildStore], () => SelectedGuildStore.getGuildId());
c16579_3 = null;
const r2 = a0 != null;
let r28 = null;
if (r2) {
const r32 = disableNewUserDismissibleContent(a0);
if (UserSettingsProtoStore.hasLoaded(UserSettingsTypes.PRELOADED_USER_SETTINGS)) {
L11: {
r40 = null;
if (!r32) {
if (lastDismissedVersion != null) {
const r41 = lastDismissedVersion < a1;
r40 = null;
if (!r41) {
break L11;
}
}
r40 = a0;
}
}
c16579_3 = r40;
r28 = r40;
} else {
const r37 = lastDismissedVersion != null;
r28 = null;
if (r37) {
const r38 = r32 ? null : lastDismissedVersion < a1 ? a0 : null;
c16579_3 = r38;
r28 = r38;
}
}
}
let env16581;
const r42 = env16581 = {
$parent: env5407
};
env16581[0] = r28;
env16581[1] = stateFromStores3;
env16581[2] = a2;
env16581[3] = a1;
const r45 = DismissibleContentShownStateStore($mk80638(r42));
const anyOverlayRenderingLocked = useAnyOverlayRenderingLocked();
env16581[5] = anyOverlayRenderingLocked;
const stateFromStores9 = useStateFromStores([], $mk80639());
env16581[6] = stateFromStores9;
const stateFromStores10 = useStateFromStores([DismissibleContentFrameworkStore], $mk80640(r42));
const ref = useRef(stateFromStores3);
env16581[7] = ref;
ref.current = stateFromStores3;
useEffect($mk80641(r42), [r28, a2, stateFromStores10, anyOverlayRenderingLocked, a1, stateFromStores9, void 0]);
return [r45 ? r28 ?? null : null, useCallback((a0, a1) => {
if (c16579_3 != null) {
markVersionedDismissibleContentAsDismissed(c16579_3, version, {
dismissAction: a0,
groupName: groupName2,
guildId: stateFromStores3,
forceTrack: a1,
version
});
}
}, [r28, a2, stateFromStores3, a1])];
}
export function useGetTimeRecurringDismissibleContent(a0, a1, a2) {
let c16582_2;
let env16583;
const groupName3 = a2;
const r4 = env16583 = {
$parent: env5407
};
env16583[0] = a0;
const stateFromStores9 = useStateFromStores([UserSettingsProtoStore], $mk80642(r4));
const { lastDismissedAtMs, numTimesDismissed } = stateFromStores9;
const stateFromStores4 = useStateFromStores([SelectedGuildStore], () => SelectedGuildStore.getGuildId());
c16582_2 = null;
const r3 = a0 != null;
let r34 = null;
if (r3) {
const r40 = canShowTimeRecurringContent(!disableNewUserDismissibleContent(a0), lastDismissedAtMs, numTimesDismissed, a1) ? a0 : null;
c16582_2 = r40;
r34 = r40;
}
let env16584;
const r41 = env16584 = {
$parent: env5407
};
env16584[0] = r34;
env16584[1] = stateFromStores4;
env16584[2] = a2;
const r44 = DismissibleContentShownStateStore($mk80638(r41));
const anyOverlayRenderingLocked = useAnyOverlayRenderingLocked();
env16584[5] = anyOverlayRenderingLocked;
const stateFromStores10 = useStateFromStores([], $mk80639());
env16584[6] = stateFromStores10;
const stateFromStores11 = useStateFromStores([DismissibleContentFrameworkStore], $mk80640(r41));
const ref = useRef(stateFromStores4);
env16584[7] = ref;
ref.current = stateFromStores4;
useEffect($mk80641(r41), [r34, a2, stateFromStores11, anyOverlayRenderingLocked, void 0, stateFromStores10, void 0]);
return [r44 ? r34 ?? null : null, useCallback((a0, a1) => {
if (c16582_2 != null) {
markTimeRecurringDismissibleContentAsDismissed(c16582_2, {
dismissAction: a0,
groupName: groupName3,
guildId: stateFromStores4,
forceTrack: a1
});
}
}, [r34, a2, stateFromStores4])];
}
export function useGetSnowflakeBoundDismissibleContent(a0, a1, a2) {
let r45;
let c16585_3;
let env16586;
let c16585_0 = a1;
const groupName4 = a2;
const r4 = env16586 = {
$parent: env5407
};
env16586[0] = a0;
const lastDismissedObjectId = useStateFromStores([UserSettingsProtoStore], $mk80642(r4)).lastDismissedObjectId;
const stateFromStores5 = useStateFromStores([SelectedGuildStore], () => SelectedGuildStore.getGuildId());
c16585_3 = null;
const r3 = a0 != null;
let r29 = null;
if (r3) {
const r33 = disableNewUserDismissibleContent(a0);
if (UserSettingsProtoStore.hasLoaded(UserSettingsTypes.PRELOADED_USER_SETTINGS)) {
L11: {
r45 = null;
if (!r33) {
if (lastDismissedObjectId != null) {
const r50 = SnowflakeUtils.compare(a1, lastDismissedObjectId);
r45 = null;
if (r50 !== 1) {
break L11;
}
}
r45 = a0;
}
}
c16585_3 = r45;
r29 = r45;
} else {
const r38 = lastDismissedObjectId != null;
r29 = null;
if (r38) {
const r39 = r33 ? null : SnowflakeUtils.compare(a1, lastDismissedObjectId) === 1 ? a0 : null;
c16585_3 = r39;
r29 = r39;
}
}
}
let env16587;
const r52 = env16587 = {
$parent: env5407
};
env16587[0] = r29;
env16587[1] = stateFromStores5;
env16587[2] = a2;
env16587[4] = a1;
const r55 = DismissibleContentShownStateStore($mk80638(r52));
const anyOverlayRenderingLocked = useAnyOverlayRenderingLocked();
env16587[5] = anyOverlayRenderingLocked;
const stateFromStores9 = useStateFromStores([], $mk80639());
env16587[6] = stateFromStores9;
const stateFromStores10 = useStateFromStores([DismissibleContentFrameworkStore], $mk80640(r52));
const ref = useRef(stateFromStores5);
env16587[7] = ref;
ref.current = stateFromStores5;
useEffect($mk80641(r52), [r29, a2, stateFromStores10, anyOverlayRenderingLocked, void 0, stateFromStores9, a1]);
return [r55 ? r29 ?? null : null, useCallback((a0, a1) => {
if (c16585_3 != null) {
markSnowflakeBoundDismissibleContentAsDismissed(c16585_3, c16585_0, {
dismissAction: a0,
groupName: groupName4,
guildId: stateFromStores5,
forceTrack: a1
});
}
}, [r29, a2, stateFromStores5, a1])];
}
export function useGetSnowflakeBoundGuildDismissibleContent_UNSAFE(a0, a1, a2, a3) {
let r45;
let c16588_3;
let c16588_0 = a1;
const guildId = a2;
const groupName5 = a3;
const stateFromStores9 = useStateFromStores([UserSettingsProtoStore], () => UserSettingsProtoStore.getGuildDismissedContentState(guildId));
const lastDismissedObjectId = (a0 != null ? stateFromStores9 == null ? null : stateFromStores9 == null ? void 0 : stateFromStores9[a0] : null)?.lastDismissedObjectId;
c16588_3 = null;
const r27 = a0 != null;
let r28 = null;
if (r27) {
const r32 = disableNewUserDismissibleContent(a0);
if (UserSettingsProtoStore.hasLoaded(UserSettingsTypes.PRELOADED_USER_SETTINGS)) {
L19: {
r45 = null;
if (!r32) {
if (lastDismissedObjectId != null) {
const r50 = SnowflakeUtils.compare(a1, lastDismissedObjectId);
r45 = null;
if (r50 !== 1) {
break L19;
}
}
r45 = a0;
}
}
c16588_3 = r45;
r28 = r45;
} else {
const r38 = lastDismissedObjectId != null;
r28 = null;
if (r38) {
const r39 = r32 ? null : SnowflakeUtils.compare(a1, lastDismissedObjectId) === 1 ? a0 : null;
c16588_3 = r39;
r28 = r39;
}
}
}
let env16589;
const r52 = env16589 = {
$parent: env5407
};
env16589[0] = r28;
env16589[1] = a2;
env16589[2] = a3;
env16589[4] = a1;
const r55 = DismissibleContentShownStateStore($mk80638(r52));
const anyOverlayRenderingLocked = useAnyOverlayRenderingLocked();
env16589[5] = anyOverlayRenderingLocked;
const stateFromStores10 = useStateFromStores([], $mk80639());
env16589[6] = stateFromStores10;
const stateFromStores11 = useStateFromStores([DismissibleContentFrameworkStore], $mk80640(r52));
const ref = useRef(a2);
env16589[7] = ref;
ref.current = a2;
useEffect($mk80641(r52), [r28, a3, stateFromStores11, anyOverlayRenderingLocked, void 0, stateFromStores10, a1]);
return [r55 ? r28 ?? null : null, useCallback((a0, a1) => {
if (c16588_3 != null) {
UNSAFE_markSnowflakeBoundGuildDismissibleContentAsDismissed(c16588_3, c16588_0, guildId, {
dismissAction: a0,
groupName: groupName5,
guildId,
forceTrack: a1
});
}
}, [r28, a3, a2, a1])];
}
export function useGetTimeRecurringSnowflakeBoundDismissibleContent(a0, a1, a2, a3) {
let c16590_3;
const groupName6 = a3;
const stateFromStores6 = useStateFromStores([SelectedGuildStore], () => SelectedGuildStore.getGuildId());
c16590_3 = null;
const r20 = a0 == null || isTimeRecurringSnowflakeBoundDismissibleContentDismissed(a0, a2, a1);
let r24 = null;
if (!r20) {
c16590_3 = a0;
r24 = a0;
}
let env16591;
const r25 = env16591 = {
$parent: env5407
};
env16591[0] = r24;
env16591[1] = stateFromStores6;
env16591[2] = a3;
env16591[4] = a2;
const r28 = DismissibleContentShownStateStore($mk80638(r25));
const anyOverlayRenderingLocked = useAnyOverlayRenderingLocked();
env16591[5] = anyOverlayRenderingLocked;
const stateFromStores9 = useStateFromStores([], $mk80639());
env16591[6] = stateFromStores9;
const stateFromStores10 = useStateFromStores([DismissibleContentFrameworkStore], $mk80640(r25));
const ref = useRef(stateFromStores6);
env16591[7] = ref;
ref.current = stateFromStores6;
useEffect($mk80641(r25), [r24, a3, stateFromStores10, anyOverlayRenderingLocked, void 0, stateFromStores9, a2]);
return [r28 ? r24 ?? null : null, useCallback((a0, a1) => {
if (c16590_3 != null) {
markSnowflakeBoundDismissibleContentAsDismissed(c16590_3, a2, {
dismissAction: a0,
groupName: groupName6,
guildId: stateFromStores6,
forceTrack: a1
});
}
}, [r24, a3, stateFromStores6, a2])];
}
export function useGetSingleUseGuildDismissibleContent_UNSAFE(a0, a1, a2) {
let r28;
let c16592_3;
const guildId2 = a1;
const groupName7 = a2;
const stateFromStores7 = useStateFromStores([UserSettingsProtoStore], () => UserSettingsProtoStore.getGuildDismissedContentState(guildId2));
const newUserDismissibleContent = useNewUserDismissibleContent(a0);
c16592_3 = null;
if (UserSettingsProtoStore.hasLoaded(UserSettingsTypes.PRELOADED_USER_SETTINGS)) {
const r34 = newUserDismissibleContent.find((item) => stateFromStores7 == null || stateFromStores7[item] == null || stateFromStores7[item].dismissed === false);
c16592_3 = r34;
r28 = r34;
} else {
const r2 = stateFromStores7 != null;
r28 = null;
if (r2) {
const r31 = newUserDismissibleContent.find((item) => stateFromStores7[item] == null || stateFromStores7[item].dismissed === false);
c16592_3 = r31;
r28 = r31;
}
}
let env16593;
const r35 = env16593 = {
$parent: env5407
};
env16593[0] = r28;
env16593[1] = a1;
env16593[2] = a2;
const r38 = DismissibleContentShownStateStore($mk80638(r35));
const anyOverlayRenderingLocked = useAnyOverlayRenderingLocked();
env16593[5] = anyOverlayRenderingLocked;
const stateFromStores9 = useStateFromStores([], $mk80639());
env16593[6] = stateFromStores9;
const stateFromStores10 = useStateFromStores([DismissibleContentFrameworkStore], $mk80640(r35));
const ref = useRef(a1);
env16593[7] = ref;
ref.current = a1;
useEffect($mk80641(r35), [r28, a2, stateFromStores10, anyOverlayRenderingLocked, void 0, stateFromStores9, void 0]);
return [r38 ? r28 ?? null : null, useCallback((a0, a1) => {
if (c16592_3 != null) {
UNSAFE_markSingleUseGuildDismissibleContentAsDismissed(c16592_3, guildId2, {
dismissAction: a0,
groupName: groupName7,
guildId: guildId2,
forceTrack: a1
});
}
}, [r28, a2, a1])];
}
export function useGetTimeRecurringGuildDismissibleContent_UNSAFE(a0, a1, a2, a3) {
let c16594_2;
const guildId3 = a1;
const groupName8 = a3;
const stateFromStores9 = useStateFromStores([UserSettingsProtoStore], () => UserSettingsProtoStore.getGuildDismissedContentState(guildId3));
const r27 = a0 != null ? stateFromStores9 == null ? null : stateFromStores9 == null ? void 0 : stateFromStores9[a0] : null;
const numTimesDismissed = r27?.numTimesDismissed;
c16594_2 = null;
const r33 = a0 != null;
let r34 = null;
if (r33) {
const r43 = canShowTimeRecurringContent(!disableNewUserDismissibleContent(a0), r27?.lastDismissedAtMs, numTimesDismissed, a2) ? a0 : null;
c16594_2 = r43;
r34 = r43;
}
let env16595;
const r44 = env16595 = {
$parent: env5407
};
env16595[0] = r34;
env16595[1] = a1;
env16595[2] = a3;
const r47 = DismissibleContentShownStateStore($mk80638(r44));
const anyOverlayRenderingLocked = useAnyOverlayRenderingLocked();
env16595[5] = anyOverlayRenderingLocked;
const stateFromStores10 = useStateFromStores([], $mk80639());
env16595[6] = stateFromStores10;
const stateFromStores11 = useStateFromStores([DismissibleContentFrameworkStore], $mk80640(r44));
const ref = useRef(a1);
env16595[7] = ref;
ref.current = a1;
useEffect($mk80641(r44), [r34, a3, stateFromStores11, anyOverlayRenderingLocked, void 0, stateFromStores10, void 0]);
return [r47 ? r34 ?? null : null, useCallback((a0, a1) => {
if (c16594_2 != null) {
UNSAFE_markTimeRecurringGuildDismissibleContentAsDismissed(c16594_2, guildId3, {
dismissAction: a0,
groupName: groupName8,
guildId: guildId3,
forceTrack: a1
});
}
}, [r34, a3, a1])];
}
export function useDangerouslyPeekDismissibleContents(a0) {
const stateFromStores8 = useStateFromStores([UserSettingsProtoStore], () => UserSettingsProtoStore.settings.userContent?.dismissedContents);
return a0.filter((item) => stateFromStores8 != null && !hasBit(stateFromStores8, item));
}