UNPKG

react-native-moyasar-apple-pay

Version:

iOS native apple pay implementation & integration with Moyasar SDK

71 lines 2.52 kB
import React, { useCallback, useEffect } from "react"; import { onApplePayModalStatusChanged, onApplePayCompleted, onApplePayButtonClicked, initiateApplePayPayment, } from "."; import MoyasarApplePayView from "./ApplePayButtonExpoView"; const ApplePayButton = (props) => { const onClickCallback = useCallback(() => { if (props.onPress) { props.onPress(); } else { initiateApplePayPayment({ amount: props.amount, currency: props.currency, merchantIdentifier: props.merchantIdentifier, moyasarPublicKey: props.moyasarPublicKey, summaryItems: props.summaryItems, countryCode: props.countryCode, description: props.description, isAmexSupported: props.isAmexSupported, isMadaSupported: props.isMadaSupported, isVisaSupported: props.isVisaSupported, isMasterCardSupported: props.isMasterCardSupported, isMerchant3DSEnabled: props.isMerchant3DSEnabled, metaData: props.metaData, }).catch((e) => { throw new Error(e); }); } }, [props]); useEffect(() => { const closedListener = onApplePayModalStatusChanged((payload) => { if (props.onApplePayModalStatusChanged) { props.onApplePayModalStatusChanged(payload); } }); const completedListener = onApplePayCompleted((payload) => { if (props.onApplePayCompleted) { props.onApplePayCompleted(payload); } }); const buttonClicked = onApplePayButtonClicked(() => { onClickCallback(); }); return () => { closedListener.remove(); completedListener.remove(); buttonClicked.remove(); }; }, []); const getWidthAndHeight = () => { let localWidth, localHeight; if (!props.width) { localWidth = 350; } else { localWidth = props.width; } if (!props.height) { localHeight = 50; } else { localHeight = props.height; } return { width: localWidth, height: localHeight, }; }; return <MoyasarApplePayView {...props} {...getWidthAndHeight()}/>; }; export default ApplePayButton; //# sourceMappingURL=ApplePayButton.js.map