Files
discord-decomp/modules/quests/native/openQuestCollectibleRewardModal.tsx
T
2026-11-01 12:12:55 +02:00

48 lines
2.0 KiB
TypeScript

// Metro module 10977 (f10978).
import UserStore from "../../../stores/UserStore";
import { QuestsExperimentLocations } from "../QuestConstants";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import { useStateFromStores } from "../../../_bundle/Module589";
import { getDefaultRewardNameWithArticle } from "../utils/QuestRewardUtils";
import { useClaimedCollectibleRewardMessage } from "../hooks/QuestHooks";
import { Text } from "../../../design/components/Text/native/Text";
import { intl, t } from "../../../intl/index.native";
import { getQuestLogger } from "../lib/getQuestLogger";
import ProductPurchaseSuccessActionCreators from "../../collectibles/native/ProductPurchaseSuccessActionCreators";
let useStyles;
const QuestCollectibleRewardModalMessages = function QuestCollectibleRewardModalMessages(props) {
const quest2 = props.quest;
const styles = useStyles();
const defaultRewardNameWithArticle = getDefaultRewardNameWithArticle(quest2.config, useStateFromStores([UserStore], () => UserStore.getCurrentUser()));
const claimedCollectibleRewardMessage = useClaimedCollectibleRewardMessage(quest2.config);
return <>
<Text variant="heading-xl/bold" style={styles.title}>
{intl.format(t.YNaxMp, {
itemName: defaultRewardNameWithArticle
})}
</Text>
<Text variant="text-md/medium" style={styles.title}>{claimedCollectibleRewardMessage}</Text>
</>;
};
useStyles = createStyles({
title: {
textAlign: "center",
marginHorizontal: Module712.space.PX_32
}
});
export function openQuestCollectibleRewardModal({ quest, product, onSuccess }) {
const questLogger = getQuestLogger({
location: QuestsExperimentLocations.QUEST_HOME_MOBILE
});
if (product != null) {
ProductPurchaseSuccessActionCreators.open({
product,
renderMessages: () => <QuestCollectibleRewardModalMessages quest={quest} />,
onSuccess
});
} else {
questLogger.warn("Product is null");
}
}