Files
discord-decomp/modules/quests/hooks/useHasNewAdContent.tsx
T
2026-11-01 12:12:55 +02:00

35 lines
1.7 KiB
TypeScript

// Metro module 15622 (f15623).
import _slicedToArray from "../../../_bundle/_slicedToArray";
import AdContentSeenStore from "../AdContentSeenStore";
import QuestStore from "../QuestStore";
import { QuestsExperimentLocations } from "../QuestConstants";
import Durations from "../../../utils/Durations";
import { MobileQuestHomeRedDotNotificationExperiment } from "../experiments/index";
import { useStateFromStoresArray, useStateFromStores } from "../../../_bundle/Module589";
import { isQuestExpired } from "../utils/QuestDataUtils";
import { AdCreativeType } from "../../../_bundle/Module6013";
import { useSelectedTimeRecurringDismissibleContent } from "../../dismissible_content/hooks/useSelectedDismissibleContent";
import { DismissibleContent } from "../../../_bundle/Module1358";
const DAY = Durations.Millis.DAY;
export default function useHasNewAdContent() {
const enabled = MobileQuestHomeRedDotNotificationExperiment.useConfig({
location: QuestsExperimentLocations.YOU_TAB_PROFILE_HEADER
}).enabled;
const stateFromStoresArray = useStateFromStoresArray([QuestStore], () => enabled ? Array.from(QuestStore.quests.values()).filter((item) => !isQuestExpired(item)).map((item) => item.id) : [], [enabled]);
const r49 = _slicedToArray(useSelectedTimeRecurringDismissibleContent(useStateFromStores([AdContentSeenStore], () => {
for (const item of stateFromStoresArray) {
if (AdContentSeenStore.hasSeen(AdCreativeType.QUEST, item)) {
continue;
}
return true;
}
return false;
}, [stateFromStoresArray]) ? enabled ? DismissibleContent.QUEST_HOME_NEW_QUEST_BADGE : null : null, {
cooldownDurationMs: DAY
}, void 0, true), 2);
return {
showBadge: r49[0] != null,
dismissBadge: r49[1]
};
};