// Metro module 12531 (f12532).
import { useMemo, useEffect } from "react";
import { Image as Image2, View } from "react-native";
import ThemeStore from "../../user_settings/ThemeStore";
import GuildStore from "../../../stores/GuildStore";
import GuildBoostSlotStore from "../../../stores/billing/GuildBoostSlotStore";
import SubscriptionStore from "../../../stores/billing/SubscriptionStore";
import { Fonts } from "../../../Constants";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import TextStyles from "../../rebrand/native/TextStyles";
import useCountdown from "../../../hooks/useCountdown";
import { Text } from "../../../design/components/Text/native/Text";
import { intl, t } from "../../../intl/index.native";
import SnowflakeUtils from "../../../utils/SnowflakeUtils";
import { PressableOpacity } from "../../../design/void/Pressables/native/Pressables";
import { openTransferModal, openApplyBoostModal } from "../../../actions/native/BoostingActionCreators";
import GuildIcon, { GuildIconSizes } from "../../guild/native/GuildIcon";
import Module12532 from "../../../_bundle/Module12532";
import { useStateFromStores } from "../../../_bundle/Module589";
import AvatarUtils from "../../../utils/AvatarUtils";
import { useSubscriptionPlaceholderPatternSource } from "../../../design/components/Illustration/native/redesign/generated/SubscriptionPlaceholderPattern";
import BoostedGuildTierProgressCircle from "./BoostedGuildTierProgressCircle";
import { fetchSubscriptions } from "../../billing/actions/BillingActionCreators";
import { fetchGuildBoostSlots } from "../../../actions/BoostingActionCreators";
import Module12 from "../../../_bundle/Module12";
let useStyles, GuildBoostSlotsInventoryRow, GuildBoostSlot, UnusedGuildBoostSlots, BoostedGuildInfo, BoostedGuild;
const GuildBoostSlotCooldown = function GuildBoostSlotCooldown(props) {
const cooldownEndsAt = props.cooldownEndsAt;
const styles = useStyles();
const memo = useMemo(() => new Date(cooldownEndsAt), [cooldownEndsAt]);
const countdown = useCountdown(memo, 15000);
const { days, hours, minutes } = countdown;
return memo.valueOf() <= Date.now() ? null :
{intl.format(t.NffSH8, {
days,
hours,
minutes
})}
;
};
GuildBoostSlotsInventoryRow = function GuildBoostSlotsInventoryRow(props) {
const { title, subtitle, action, isLast } = props;
const styles = useStyles();
return
{title}
{subtitle}
{action}
{isLast ? null : }
;
};
GuildBoostSlot = function GuildBoostSlot(props) {
const { guild, guildBoostSlot, isLast } = props;
if (guild == null) {
return null;
}
const r4 = guildBoostSlot.premiumGuildSubscription != null ? guildBoostSlot.premiumGuildSubscription.id : null;
const r15 = r4 != null ? SnowflakeUtils.extractTimestamp(r4) : null;
return : null} action={guildBoostSlot.isOnCooldown() ? null : openTransferModal({
guildBoostSlots: [guildBoostSlot]
})}>
{intl.string(t.jqqLb6)}
} isLast={isLast} />;
};
UnusedGuildBoostSlots = function UnusedGuildBoostSlots(props) {
let c19894_0;
const unusedSlots = props.unusedSlots;
c19894_0 = void 0;
const styles = useStyles();
const r9 = unusedSlots.filter(({ cooldownEndsAt: cooldownEndsAt2 }) => cooldownEndsAt2 != null && new Date(cooldownEndsAt2).valueOf() > Date.now());
c19894_0 = r9;
const r18 = unusedSlots.filter(({ cooldownEndsAt: cooldownEndsAt2 }) => cooldownEndsAt2 == null || new Date(cooldownEndsAt2).valueOf() <= Date.now());
return
{r18.length > 0 ? openApplyBoostModal()}>
{intl.string(t["7KyPor"])}
} isLast={r9.length === 0} /> : null}
{r9.map((item, index) => : null} isLast={index === c19894_0.length - 1} />)}
;
};
BoostedGuildInfo = function BoostedGuildInfo(props) {
const { guild, numGuildBoostSlots } = props;
const styles = useStyles();
return guild != null ?
{guild.name}
{intl.format(t.bexfNy, {
numSubscriptions: numGuildBoostSlots
})}
: null;
};
BoostedGuild = function BoostedGuild(props) {
const { guildId, guildBoostSlots } = props;
const styles = useStyles();
const stateFromStores = useStateFromStores([GuildStore], () => GuildStore.getGuild(guildId));
const stateFromStores2 = useStateFromStores([ThemeStore], () => ThemeStore.theme);
const r16 = stateFromStores != null ? stateFromStores.banner != null ? AvatarUtils.getGuildBannerSource(stateFromStores) : null : null;
let source = useSubscriptionPlaceholderPatternSource();
if (r16 != null) {
source = r16;
}
return
{r16 != null ? : null}
{guildBoostSlots.map((a0, index) => )}
;
};
useStyles = createStyles({
inventory: {
marginBottom: 32
},
header: {
marginHorizontal: 16,
marginBottom: 16
},
boostedGuild: {
borderRadius: Module712.radii.xs,
marginBottom: 16
},
subscriptionBody: {
backgroundColor: Module712.colors.BACKGROUND_BASE_LOWEST
},
subscriptionImageView: {
backgroundColor: Module712.colors.BACKGROUND_MOD_NORMAL,
width: "100%",
height: 112,
overflow: "hidden",
alignItems: "center",
justifyContent: "center"
},
subscriptionImage: {
position: "absolute",
width: "100%",
height: "100%"
},
subscriptionImageFallback: {
opacity: 0.4
},
subscriptionImageOverlay: {
position: "absolute",
width: "100%",
height: "100%",
backgroundColor: Module712.colors.BLACK,
opacity: 0.4
},
guildInfo: {
flexDirection: "row",
padding: 16
},
guildInfoIcon: {
marginRight: 8
},
guildInfoName: {
...TextStyles(Fonts.DISPLAY_EXTRABOLD, Module712.colors.INTERACTIVE_TEXT_ACTIVE, 20),
marginBottom: 4
},
guildInfoRowBottom: {
flexDirection: "row",
alignItems: "center"
},
guildInfoRowIcon: {
height: 12,
width: 8,
marginLeft: 2,
marginRight: 8
},
guildInfoSubscriptionCount: {
lineHeight: 16
},
subscriptionSlot: {
backgroundColor: Module712.colors.BACKGROUND_SURFACE_HIGH,
paddingLeft: 16
},
subscriptionSlotInner: {
alignItems: "center",
flexDirection: "row",
paddingRight: 16,
paddingVertical: 12
},
subscriptionSlotBorder: {
backgroundColor: Module712.colors.BORDER_SUBTLE,
height: 1
},
subscriptionSlotInfo: {
flexShrink: 1,
flexGrow: 1
},
subscriptionSlotInfoTitle: {
lineHeight: 24
},
subscriptionSlotInfoCooldown: {
lineHeight: 16
},
unusedSlots: {
marginBottom: 32
}
});
export default function GuildBoostSlotsInventory() {
let r51;
let c19896_0;
L9: {
const styles = useStyles();
useEffect(() => {
fetchSubscriptions();
fetchGuildBoostSlots();
}, []);
const stateFromStores2 = useStateFromStores([SubscriptionStore], () => SubscriptionStore.getPremiumTypeSubscription());
const r43 = Module12(useStateFromStores([GuildBoostSlotStore], () => GuildBoostSlotStore.boostSlots)).groupBy(({ premiumGuildSubscription }) => premiumGuildSubscription != null ? premiumGuildSubscription.guildId : "0").value();
c19896_0 = r43;
const unusedSlots = r43[0];
const r14 = Object.keys(r43).filter((item) => item !== "0");
if (r14.length === 0) {
r51 = null;
if (unusedSlots == null) {
break L9;
}
}
r51 = stateFromStores2 == null ? null :
{unusedSlots != null ? unusedSlots.length > 0 ? : null : null}
{r14.length > 0 ? <>
{intl.string(t.gB9oQ7)}
{r14.map((item) => )}
> : null}
;
}
return r51;
};