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

34 lines
2.0 KiB
TypeScript

// Metro module 11679 (f11680).
import { useMemo, useCallback } from "react";
import GuildStore from "../../../../stores/GuildStore";
import UserStore from "../../../../stores/UserStore";
import GuildBoostSlotStore from "../../../../stores/billing/GuildBoostSlotStore";
import { AnalyticsSections } from "../../../../Constants";
import { useStateFromStores } from "../../../../_bundle/Module589";
import useFractionalPremiumInfo from "../../../billing/hooks/useFractionalPremiumInfo";
import { PremiumSubscriptionGroupRole } from "../../../../_bundle/Module1892";
import { openTransferModal } from "../../../../actions/native/BoostingActionCreators";
import GuildBoostingSubscribeButton from "../../../guild_boosting/native/GuildBoostingSubscribeButton";
export function GuildPowerupsBoostButton(props) {
let stateFromStores;
const guildId = props.guildId;
stateFromStores = void 0;
const stateFromStores2 = useStateFromStores([GuildStore], () => GuildStore.getGuild(guildId));
stateFromStores = useStateFromStores([GuildBoostSlotStore], () => GuildBoostSlotStore.boostSlots);
const fractionalPremiumInfo = useFractionalPremiumInfo({
forceFetch: true
});
const stateFromStores3 = useStateFromStores([UserStore], () => UserStore.getCurrentUser());
const premiumGroupRole = stateFromStores3 != null ? stateFromStores3.premiumGroupRole : PremiumSubscriptionGroupRole.UNSPECIFIED;
const memo = useMemo(() => Object.values(stateFromStores).find((item) => item.isAvailable()), [stateFromStores]);
const callback = useCallback((a0, a1) => {
if (a1 != null) {
openTransferModal({
guildBoostSlots: [a1],
guildId: a0
});
}
}, []);
return stateFromStores2 == null ? null : <GuildBoostingSubscribeButton guild={stateFromStores2} previousGuildSubscriptionSlot={memo} analyticsSection={AnalyticsSections.GUILD_POWERUPS_OVERVIEW_SIDEBAR} fractionalPremiumState={fractionalPremiumInfo.fractionalState} onAvailableSlotPress={callback} premiumGroupRole={premiumGroupRole} />;
}