Files
discord-decomp/modules/premium/powerups/hooks/useAvailableBoostCountForPowerup.tsx
T
2026-11-01 12:12:55 +02:00

40 lines
1.7 KiB
TypeScript

// Metro module 11627 (f11628).
import { useMemo } from "react";
import GuildStore from "../../../../stores/GuildStore";
import GuildPowerupsStore from "../GuildPowerupsStore";
import { GuildPowerupType, LEVEL_SKU_ID_TO_BOOSTING_TIER, POWERUPS_INCLUDED_IN_LEVEL } from "../constants/GuildPowerupsConstants";
import { useStateFromStores } from "../../../../_bundle/Module589";
import useGuildPowerupsBoostCount from "./useGuildPowerupsBoostCount";
import { isNotNullish } from "../../../../utils/GlobalUtils";
export default function useAvailableBoostCountForPowerup(a0, a1) {
let stateFromStores;
const stateFromStores2 = useStateFromStores([GuildStore], () => GuildStore.getGuild(a0));
stateFromStores = useStateFromStores([GuildPowerupsStore], () => GuildPowerupsStore.getStateForGuild(a0));
const spent = useGuildPowerupsBoostCount(a0).spent;
const memo = useMemo(() => {
if (a1 != null && a1.type === GuildPowerupType.LEVEL && stateFromStores != null) {
const r12 = LEVEL_SKU_ID_TO_BOOSTING_TIER[a1.skuId];
let c27122_0 = r12;
return r12 == null ? [] : Object.entries(POWERUPS_INCLUDED_IN_LEVEL).filter((item) => {
const [r13, r14] = item;
return r14 === c27122_0 && stateFromStores.unlockedPowerups[r13] != null;
}).map((item) => {
const [r8] = item;
return stateFromStores.allPowerups[r8];
}).filter(isNotNullish);
}
return [];
}, [a1, stateFromStores]);
let r34 = memo == null ? void 0 : memo.reduce((acc, item) => acc + item.cost, 0);
const r38 = Math;
let r41 = stateFromStores2?.premiumSubscriberCount;
if (r41 == null) {
r41 = 0;
}
const r42 = r41 - spent;
if (r34 == null) {
r34 = 0;
}
return r38.max(r42 + r34, 0);
};