107 lines
4.2 KiB
TypeScript
107 lines
4.2 KiB
TypeScript
// Metro module 7626 (f7627).
|
|
import { useState, useEffect, useMemo } from "react";
|
|
import AgeVerificationStore from "../AgeVerificationStore";
|
|
import { VERIFICATION_METHOD_TITLE_MAP, VerificationMethod } from "../AgeVerificationConstants";
|
|
import { useStateFromStoresObject } from "../../../_bundle/Module589";
|
|
import { useInitiateAgeVerification } from "../AgeVerificationUtils";
|
|
import { AgeVerificationModalEntryPoint, AgeVerificationModalVersion, AgeVerificationModalCta, trackAgeVerificationModalClicked } from "../AgeVerificationAnalyticsUtils";
|
|
import { checkGoogleWalletAvailable } from "../GoogleWalletActionCreators.native";
|
|
import MonitoringAgent from "../../monitoring/MonitoringAgent";
|
|
import { MetricEvents } from "../../../_bundle/Module5872";
|
|
import { isGoogleWalletEnabled } from "../GoogleWalletExperiment";
|
|
import { getAgeVerificationMethods } from "../AgeVerificationURLActionCreators";
|
|
import { intl } from "../../../intl/index.native";
|
|
export default function useAgeVerificationMethods({ onClose, classificationId, onGoogleWalletSelect }) {
|
|
let methods, initiateAgeVerification, state, setState;
|
|
methods = void 0;
|
|
initiateAgeVerification = void 0;
|
|
state = void 0;
|
|
setState = void 0;
|
|
const stateFromStoresObject = useStateFromStoresObject([AgeVerificationStore], () => ({
|
|
methods: AgeVerificationStore.methods,
|
|
loading: AgeVerificationStore.loading
|
|
}));
|
|
methods = stateFromStoresObject.methods;
|
|
const loading = stateFromStoresObject.loading;
|
|
initiateAgeVerification = useInitiateAgeVerification({
|
|
onComplete: onClose,
|
|
entryPoint: AgeVerificationModalEntryPoint.EXPRESSIVE_GET_STARTED,
|
|
shouldShowExpressiveModal: true,
|
|
classificationId
|
|
}).initiateAgeVerification;
|
|
[state, setState] = useState(false);
|
|
useEffect(() => {
|
|
let c26011_0 = false;
|
|
checkGoogleWalletAvailable().then((result) => {
|
|
if (!c26011_0) {
|
|
let r9 = result;
|
|
MonitoringAgent.increment({
|
|
name: MetricEvents.GOOGLE_WALLET_AVAILABILITY_CHECK,
|
|
tags: [`available:${result}`]
|
|
});
|
|
if (result) {
|
|
r9 = isGoogleWalletEnabled("age_verification_methods");
|
|
}
|
|
setState(r9);
|
|
}
|
|
});
|
|
return () => {
|
|
c26011_0 = true;
|
|
};
|
|
}, []);
|
|
useEffect(() => {
|
|
if (methods == null) {
|
|
getAgeVerificationMethods();
|
|
}
|
|
}, [methods]);
|
|
return {
|
|
ageVerificationMethods: useMemo(() => {
|
|
let r6 = methods == null ? void 0 : methods.filter((method) => method !== VerificationMethod.GOOGLE_WALLET).map((item) => {
|
|
const r11 = VERIFICATION_METHOD_TITLE_MAP[item];
|
|
if (r11 == null) {
|
|
return null;
|
|
}
|
|
const { title, description } = r11;
|
|
const r21 = {
|
|
id: item,
|
|
title: intl.string(title),
|
|
description: intl.string(description),
|
|
onClick: null
|
|
};
|
|
let c29844_1 = async (c31439_0) => {
|
|
const EXPRESSIVE_PRIMARY = AgeVerificationModalVersion.EXPRESSIVE_PRIMARY;
|
|
const METHOD_SELECT = AgeVerificationModalCta.METHOD_SELECT;
|
|
trackAgeVerificationModalClicked(c31439_0, EXPRESSIVE_PRIMARY, METHOD_SELECT, item);
|
|
await initiateAgeVerification(item);
|
|
};
|
|
r21.onClick = function() {
|
|
return c29844_1.apply(this, arguments);
|
|
};
|
|
return r21;
|
|
}).filter((item) => item != null);
|
|
if (r6 == null) {
|
|
r6 = [];
|
|
}
|
|
if (state && onGoogleWalletSelect != null) {
|
|
const r28 = VERIFICATION_METHOD_TITLE_MAP[VerificationMethod.GOOGLE_WALLET];
|
|
if (r28 != null) {
|
|
return [...r6, {
|
|
id: VerificationMethod.GOOGLE_WALLET,
|
|
title: intl.string(r28.title),
|
|
description: intl.string(r28.description),
|
|
onClick: (a0) => {
|
|
MonitoringAgent.increment({
|
|
name: MetricEvents.GOOGLE_WALLET_METHOD_SELECTED
|
|
});
|
|
trackAgeVerificationModalClicked(a0, AgeVerificationModalVersion.EXPRESSIVE_PRIMARY, AgeVerificationModalCta.METHOD_SELECT, VerificationMethod.GOOGLE_WALLET);
|
|
onGoogleWalletSelect();
|
|
}
|
|
}];
|
|
}
|
|
}
|
|
return r6;
|
|
}, [methods, state, onGoogleWalletSelect, initiateAgeVerification]),
|
|
loading
|
|
};
|
|
};
|