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

292 lines
13 KiB
TypeScript

// Metro module 15145 (f15146).
import { useMemo } from "react";
import AccessibilityStore from "../../../../a11y/AccessibilityStore";
import GuildStore from "../../../../../stores/GuildStore";
import { GUILD_TAG_BADGE_PACKS_WAVE_ONE_SKU_ID_SET, GUILD_TAG_BADGE_PACKS_WAVE_TWO_SKU_ID_SET, GuildPowerupType } from "../../constants/GuildPowerupsConstants";
import { AnalyticsPages, AnalyticsSections } from "../../../../../Constants";
import { ContentDismissActionType } from "../../../../dismissible_content/DismissibleContentConstants";
import { ThemeTypes } from "../../../../../_bundle/Module505";
import { createStyles } from "../../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../../_bundle/Module712";
import { useStateFromStores } from "../../../../../_bundle/Module589";
import useTheme from "../../../../../hooks/useTheme";
import useGuildPowerupsBoostCount from "../../hooks/useGuildPowerupsBoostCount";
import useHasAllocateBoostPermission from "../../hooks/useHasAllocateBoostPermission";
import { GuildPowerupNotificationPopoutType } from "../../constants/GuildPowerupsNotification";
import useGuildPowerupsBoostAction from "./useGuildPowerupsBoostAction";
import openGuildPowerupsModal from "../utils/openGuildPowerupsModal";
import GuildPowerupsBoostGem from "../GuildPowerupsBoostGem";
import { intl, t } from "../../../../../intl/index.native";
import GuildPowerups_messages from "../../GuildPowerups.messages";
import GuildPowerupsImage from "../GuildPowerupsImage";
import Module15147 from "../../../../../_bundle/Module15147";
import { getGuildPowerupBannerImage } from "../../hooks/useGetGuildPowerupBannerImage";
import { GUILD_POWERUP_TAG_SKU_ID, GUILD_POWERUP_GUILD_THEME_SKU_ID, VANITY_URL_POWERUP_SKU_ID, GUILD_POWERUP_MAX_FILE_SIZE_250_MB_SKU_ID } from "../../../../../_bundle/Module4080";
import Module15143 from "../../../../../_bundle/Module15143";
import Module15148 from "../../../../../_bundle/Module15148";
import Module15149 from "../../../../../_bundle/Module15149";
import Module11642 from "../../../../../_bundle/Module11642";
import Module15150 from "../../../../../_bundle/Module15150";
import { useCoachmark } from "../../../../../design/components/Coachmark/native/useCoachmark.native";
const useStyles = createStyles((a0) => ({
coachmarkImage: {
height: 120,
width: 260 - 2 * Module712.space.PX_16,
borderRadius: Module712.radii.md
},
coachmarkCover: {
resizeMode: "cover"
},
boostGemBackground: {
width: 50,
height: 50,
backgroundColor: a0 === ThemeTypes.LIGHT ? "#0000001A" : "#0000003D"
}
}));
export default function useGuildPowerupsCoachmark(a0, a1, a2) {
let styles, stateFromStores2, c21707_5, boostCount, c21707_7;
const guildId = a1;
const stateFromStores = useStateFromStores([GuildStore], () => GuildStore.getGuild(guildId)?.name, [a1]);
styles = useStyles(useTheme());
stateFromStores2 = useStateFromStores([AccessibilityStore], () => AccessibilityStore.useReducedMotion);
const available = useGuildPowerupsBoostCount(a1).available;
const hasAllocateBoostPermission = useHasAllocateBoostPermission(a1);
c21707_5 = hasAllocateBoostPermission;
const r18 = a2?.type === GuildPowerupNotificationPopoutType.BOOST_TO_UNLOCK ? a2.powerup : void 0;
boostCount = r18 != null ? r18.cost - available : 0;
const guildPowerupsBoostAction = useGuildPowerupsBoostAction(a1, r18, boostCount, "boost_to_unlock_coachmark", {
page: AnalyticsPages.GUILD_CHANNEL,
section: AnalyticsSections.GUILD_HEADER
});
c21707_7 = guildPowerupsBoostAction;
useCoachmark(a0, useMemo(() => {
const r5 = {
title: "",
description: "",
position: "bottom",
visible: false,
onDismiss: () => {}
};
if (a2 == null) {
return r5;
}
const handleButtonPress = function handleButtonPress() {
if (a2 != null) {
a2.markAsDismissed(ContentDismissActionType.TAKE_ACTION);
openGuildPowerupsModal({
guildId
});
}
};
const handleDismiss = function handleDismiss() {
if (a2 != null) {
a2.markAsDismissed(ContentDismissActionType.USER_DISMISS);
}
};
const type = a2.type;
if (GuildPowerupNotificationPopoutType.LEVEL_REACHED === type) {
return {
...r5,
visible: true,
renderImgComponent: () => <GuildPowerupsBoostGem style={styles.boostGemBackground} gemWidth={30} gemHeight={30} />,
title: intl.formatToPlainString(GuildPowerups_messages["Zg/m9K"], {
perkName: a2.powerup.title
}),
description: intl.formatToPlainString(GuildPowerups_messages["1EGXSK"], {
perkName: a2.powerup.title
}),
buttonLabel: intl.string(t.RzWDqY),
buttonVariant: "primary",
onButtonPress: handleButtonPress,
onDismiss: handleDismiss
};
}
if (GuildPowerupNotificationPopoutType.PERKS_AVAILABLE === type) {
return {
...r5,
visible: true,
renderImgComponent: () => <GuildPowerupsBoostGem style={styles.boostGemBackground} gemWidth={30} gemHeight={30} />,
title: intl.string(GuildPowerups_messages.QpQBPQ),
description: intl.string(GuildPowerups_messages["6hn0xF"]),
buttonLabel: intl.string(t.RzWDqY),
buttonVariant: "primary",
onButtonPress: handleButtonPress,
onDismiss: handleDismiss
};
}
let powerups, guildPowerupBannerImage, c27952_2, powerup;
if (GuildPowerupNotificationPopoutType.PERKS_PURCHASABLE === type) {
powerups = a2.powerups;
if (powerups.length === 0) {
return r5;
}
const description = powerups.length >= 3 ? intl.formatToPlainString(GuildPowerups_messages["6Sv+3M"], {
perk: powerups[0].title,
perk2: powerups[1].title,
perk3: powerups[2].title
}) : powerups.length === 2 ? intl.formatToPlainString(GuildPowerups_messages.wcQOqC, {
perks: `${powerups[0].title} & ${powerups[1].title}`
}) : intl.formatToPlainString(GuildPowerups_messages.ZF8NT6, {
perk: powerups[0].title
});
const r357 = {
...r5,
visible: true,
renderImgComponent: () => {
let imageUrl;
if (powerups.length > 1) {
imageUrl = Module15147;
} else {
imageUrl = getGuildPowerupBannerImage(powerups[0], stateFromStores2, true);
if (imageUrl == null) {
imageUrl = "";
}
}
return <GuildPowerupsImage imageUrl={imageUrl} isAnimated={powerups.length === 1} style={[styles.coachmarkImage, styles.coachmarkCover]} />;
}
};
let guildName = stateFromStores;
if (stateFromStores == null) {
guildName = "";
}
r357.title = intl.formatToPlainString(GuildPowerups_messages.LmpChE, {
guildName
});
r357.description = description;
r357.buttonLabel = intl.string(t.RzWDqY);
r357.buttonVariant = "primary";
r357.onButtonPress = handleButtonPress;
r357.onDismiss = handleDismiss;
return r357;
}
if (GuildPowerupNotificationPopoutType.NEW_PERK_AVAILABLE === type) {
const powerups2 = a2.powerups;
const r101 = powerups2.find((item) => item.skuId === GUILD_POWERUP_TAG_SKU_ID);
if (r101 != null) {
guildPowerupBannerImage = getGuildPowerupBannerImage(r101, stateFromStores2, true);
if (guildPowerupBannerImage != null) {
return {
...r5,
visible: true,
renderImgComponent: () => <GuildPowerupsImage imageUrl={guildPowerupBannerImage} isAnimated={!stateFromStores2} style={styles.coachmarkImage} />,
title: intl.string(GuildPowerups_messages.GcEkAP),
description: intl.string(GuildPowerups_messages.yo0g7X),
buttonLabel: intl.string(t.RzWDqY),
buttonVariant: "primary",
onButtonPress: handleButtonPress,
onDismiss: handleDismiss
};
}
}
const r110 = powerups2.find((item) => item.skuId === GUILD_POWERUP_GUILD_THEME_SKU_ID);
c27952_2 = r110;
if (r110 != null) {
return {
...r5,
visible: true,
renderImgComponent: () => {
let imageUrl = getGuildPowerupBannerImage(c27952_2, stateFromStores2, true);
if (imageUrl == null) {
imageUrl = Module15143;
}
return <GuildPowerupsImage imageUrl={imageUrl} isAnimated={!stateFromStores2} style={[styles.coachmarkImage, styles.coachmarkCover]} />;
},
title: r110.title,
description: typeof r110.description === "string" ? r110.description : "",
buttonLabel: intl.string(t.RzWDqY),
buttonVariant: "primary",
onButtonPress: handleButtonPress,
onDismiss: handleDismiss
};
}
if (powerups2.find((item) => item.skuId === VANITY_URL_POWERUP_SKU_ID) != null) {
return {
...r5,
visible: true,
renderImgComponent: () => <GuildPowerupsImage imageUrl={Module15148} style={styles.coachmarkImage} />,
title: intl.string(GuildPowerups_messages.Ygpx4Q),
description: intl.string(GuildPowerups_messages.mmNkUA),
buttonLabel: intl.string(t.RzWDqY),
buttonVariant: "primary",
onButtonPress: handleButtonPress,
onDismiss: handleDismiss
};
}
if (powerups2.find((item) => GUILD_TAG_BADGE_PACKS_WAVE_TWO_SKU_ID_SET.has(item.skuId)) != null) {
return {
...r5,
visible: true,
renderImgComponent: () => <GuildPowerupsImage imageUrl={Module15149} style={styles.coachmarkImage} />,
title: intl.string(GuildPowerups_messages["kA2c+n"]),
description: intl.string(GuildPowerups_messages.TUilLj),
buttonLabel: intl.string(t.RzWDqY),
buttonVariant: "primary",
onButtonPress: handleButtonPress,
onDismiss: handleDismiss
};
}
if (powerups2.find((item) => GUILD_TAG_BADGE_PACKS_WAVE_ONE_SKU_ID_SET.has(item.skuId)) != null) {
return {
...r5,
visible: true,
renderImgComponent: () => <GuildPowerupsImage imageUrl={Module11642} style={styles.coachmarkImage} />,
title: intl.string(GuildPowerups_messages["kA2c+n"]),
description: intl.string(GuildPowerups_messages.TUilLj),
buttonLabel: intl.string(t.RzWDqY),
buttonVariant: "primary",
onButtonPress: handleButtonPress,
onDismiss: handleDismiss
};
}
return powerups2.find((item) => item.skuId === GUILD_POWERUP_MAX_FILE_SIZE_250_MB_SKU_ID) != null ? {
...r5,
visible: true,
renderImgComponent: () => <GuildPowerupsImage imageUrl={Module15150} isAnimated={false} style={styles.coachmarkImage} />,
title: intl.string(GuildPowerups_messages.rp0Ff1),
description: intl.string(GuildPowerups_messages["3L/DZq"]),
buttonLabel: intl.string(t.RzWDqY),
buttonVariant: "primary",
onButtonPress: handleButtonPress,
onDismiss: handleDismiss
} : r5;
}
if (GuildPowerupNotificationPopoutType.BOOST_TO_UNLOCK === type) {
powerup = a2.powerup;
return {
...r5,
visible: true,
offsetY: 8,
renderImgComponent: () => {
let r28;
if (powerup.type === GuildPowerupType.LEVEL) {
r28 = <GuildPowerupsBoostGem style={styles.boostGemBackground} gemWidth={30} gemHeight={30} />;
} else {
let imageUrl = getGuildPowerupBannerImage(powerup, stateFromStores2, true);
if (imageUrl == null) {
imageUrl = "";
}
r28 = <GuildPowerupsImage imageUrl={imageUrl} isAnimated={!stateFromStores2} style={[styles.coachmarkImage, styles.coachmarkCover]} />;
}
return r28;
},
title: intl.string(GuildPowerups_messages.n37JhA),
description: intl.formatToPlainString(c21707_5 !== true && powerup.type !== GuildPowerupType.LEVEL ? GuildPowerups_messages["7MZ2tu"] : GuildPowerups_messages.Yr1ogl, {
boostCount,
perkName: powerup.title
}),
buttonLabel: intl.string(t.oPAx73),
buttonVariant: "primary",
onButtonPress: () => {
a2.markAsDismissed(ContentDismissActionType.TAKE_ACTION);
c21707_7();
},
onDismiss: handleDismiss
};
}
if (GuildPowerupNotificationPopoutType.GAME_SERVER_HOSTING_AVAILABLE !== type && GuildPowerupNotificationPopoutType.GAME_SERVER_HOSTING_GUILD_ELIGIBLE !== type) {
GuildPowerupNotificationPopoutType.GAME_SERVER_HOSTING_ENABLED;
}
return r5;
}, [boostCount, hasAllocateBoostPermission, a1, stateFromStores, guildPowerupsBoostAction, a2, styles, stateFromStores2]));
};