34 lines
2.0 KiB
TypeScript
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} />;
|
|
}
|