Files
discord-decomp/modules/checkout/native/gifting/UnifiedGiftModal.tsx
T
2026-11-01 12:12:55 +02:00

44 lines
2.7 KiB
TypeScript

// Metro module 8773 (f8774).
import { useState, useCallback } from "react";
import ModalActionCreators from "../../../../actions/ModalActionCreators";
import { Navigator, useNavigatorScreens } from "../../../../design/components/Navigator/native/Navigator.native";
import { UnifiedGiftModalScreens } from "./UnifiedGiftModalTypes";
import { intl, t } from "../../../../intl/index.native";
import { getHeaderCloseButton, getHeaderBackButton } from "../../../../design/components/Navigator/native/NavigatorHeader.native";
import UnifiedGiftModalDetailsScreen from "./UnifiedGiftModalDetailsScreen";
import UnifiedGiftModalRecipientSelectScreen from "./UnifiedGiftModalRecipientSelectScreen";
import { AnalyticsLocationProvider } from "../../../app_analytics/useAnalyticsLocations";
export default function UnifiedGiftModal(props) {
const { skuId: skuId2, applicationId: applicationId2, analyticsLocations, lockedRecipientUser: lockedRecipientUser2, onGiftModalDismiss: onGiftModalDismiss2, validateRecipient: validateRecipient2, renderProductDetails: renderProductDetails2, renderPurchaseSection: renderPurchaseSection2 } = props;
const skuId = skuId2;
const applicationId = applicationId2;
const lockedRecipientUser = lockedRecipientUser2;
const onGiftModalDismiss = onGiftModalDismiss2;
const validateRecipient = validateRecipient2;
const renderProductDetails = renderProductDetails2;
const renderPurchaseSection = renderPurchaseSection2;
const [state, setState] = useState(lockedRecipientUser);
const callback = useCallback(() => {
ModalActionCreators.pop();
if (onGiftModalDismiss != null) {
onGiftModalDismiss();
}
}, [onGiftModalDismiss]);
return <AnalyticsLocationProvider value={analyticsLocations}>
<Navigator initialRouteName={UnifiedGiftModalScreens.GIFT_DETAIL} screens={useNavigatorScreens(() => {
const r1 = {};
r1[UnifiedGiftModalScreens.GIFT_DETAIL] = {
title: intl.string(t["JCFN/y"]),
headerLeft: getHeaderCloseButton(callback),
render: () => <UnifiedGiftModalDetailsScreen skuId={skuId} applicationId={applicationId} recipientUser={state} setRecipientUser={setState} lockedRecipient={lockedRecipientUser != null} validateRecipient={validateRecipient} renderProductDetails={renderProductDetails} renderPurchaseSection={renderPurchaseSection} />
};
r1[UnifiedGiftModalScreens.RECIPENT_SELECT] = {
title: intl.string(t.R0vK0N),
headerLeft: getHeaderBackButton(),
render: () => <UnifiedGiftModalRecipientSelectScreen setRecipientUser={setState} />
};
return r1;
}, [lockedRecipientUser, state, skuId, applicationId, callback, validateRecipient, renderProductDetails, renderPurchaseSection])} />
</AnalyticsLocationProvider>;
};