Files
discord-decomp/modules/premium/referral_program/ReferralProgramUtils.tsx
T
2026-11-01 12:12:55 +02:00

81 lines
3.8 KiB
TypeScript

// Metro module 7836 (f7837).
import ReferralTrialStore from "../ReferralTrialStore";
import { ContentDismissActionType } from "../../dismissible_content/DismissibleContentConstants";
import Durations from "../../../utils/Durations";
import { intl, t } from "../../../intl/index.native";
import { useIsDismissibleContentDismissed_UNSAFE, UNSAFE_markDismissibleContentAsDismissed, UNSAFE_isDismissibleContentDismissed, UNSAFE_isSnowflakeBoundDismissibleContentDismissed } from "../../dismissible_content/DismissibleContentUnsafeUtils";
import { DismissibleContent } from "../../../_bundle/Module1358";
import SnowflakeUtils from "../../../utils/SnowflakeUtils";
import { markSnowflakeBoundDismissibleContentAsDismissed } from "../../dismissible_content/DismissibleContentUtils";
import { useIsEligibleSenderForReferralProgram } from "./hooks/useIsEligibleSenderForReferralProgram";
import { useStateFromStores } from "../../../_bundle/Module589";
import { useIsReferralReminderDCExperimentEnabled } from "../experiments/ReferralReminderDCExperiment";
export function getReferralTrialOfferExpirationCopy(a0) {
const r10 = (a0 - Date.now()) / Durations.Millis.HOUR;
return r10 > 24 ? intl.formatToPlainString(t["g9s+dA"], {
numDays: Math.floor(r10 / 24)
}) : r10 >= 1 ? intl.formatToPlainString(t.k9v33y, {
numHours: Math.floor(r10)
}) : intl.formatToPlainString(t["/d0GmT"], {
numMinutes: Math.floor(60 * r10)
});
}
export function useIsReferralProgramEntrypointBadgeAcknowledged() {
return useIsDismissibleContentDismissed_UNSAFE(DismissibleContent.REFERRAL_PROGRAM_ENTRYPOINT_NITRO_TAB_BADGE);
}
export function markReferralProgramEntrypointBadgeAcknowledged() {
UNSAFE_markDismissibleContentAsDismissed(DismissibleContent.REFERRAL_PROGRAM_ENTRYPOINT_NITRO_TAB_BADGE);
}
export function isReferralProgramBadgeAcknowledged() {
return UNSAFE_isDismissibleContentDismissed(DismissibleContent.REFERRAL_PROGRAM_NITRO_TAB_BADGE);
}
export function markReferralProgramBadgeAcknowledged() {
UNSAFE_markDismissibleContentAsDismissed(DismissibleContent.REFERRAL_PROGRAM_NITRO_TAB_BADGE);
}
export function useIsReferralProgramBadgeShowable({ trialOffer }) {
if (trialOffer == null) {
return false;
}
let r11 = trialOffer.referrer_id !== void 0;
const redeemed_at = trialOffer.redeemed_at;
const date = new Date(SnowflakeUtils.extractTimestamp(trialOffer.id));
const date2 = new Date();
if (r11) {
r11 = redeemed_at === void 0;
}
if (r11) {
r11 = date2 >= date;
}
return r11;
}
export function markReferralProgramPopoverSeen(a0) {
if (a0 != null) {
markSnowflakeBoundDismissibleContentAsDismissed(DismissibleContent.REFERRAL_PROGRAM_POPOVER_V2, a0, {
dismissAction: ContentDismissActionType.INDIRECT_ACTION
});
} else {
UNSAFE_markDismissibleContentAsDismissed(DismissibleContent.REFERRAL_PROGRAM_POPOVER);
}
}
export function isReferralProgramPopoverSeen() {
return UNSAFE_isDismissibleContentDismissed(DismissibleContent.REFERRAL_PROGRAM_POPOVER);
}
export function useIsReferralProgramPopoverShowable() {
let r14 = useIsEligibleSenderForReferralProgram(false);
const stateFromStores = useStateFromStores([ReferralTrialStore], () => ReferralTrialStore.getReferralsRemaining());
const stateFromStores2 = useStateFromStores([ReferralTrialStore], () => ReferralTrialStore.getReminderStateId());
const r37 = useIsReferralReminderDCExperimentEnabled({
location: "ReferralProgramUtils"
}) ? stateFromStores2 != null && !UNSAFE_isSnowflakeBoundDismissibleContentDismissed(DismissibleContent.REFERRAL_PROGRAM_POPOVER_V2, stateFromStores2).isDismissed : !UNSAFE_isDismissibleContentDismissed(DismissibleContent.REFERRAL_PROGRAM_POPOVER);
if (r14) {
r14 = r37;
}
if (r14) {
r14 = stateFromStores != null;
}
if (r14) {
r14 = stateFromStores > 0;
}
return r14;
}