UNPKG

react-native-unit-components

Version:

Unit React Native components

40 lines (35 loc) 1.85 kB
import { DISPATCH_PLAID_RESPONSE, LISTENERS } from './../../scripts/html/bodyScript'; import type { UNACHDebitComponentProps } from './UNACHDebitComponent'; import type WebView from 'react-native-webview'; import type { LinkSuccess } from 'react-native-plaid-link-sdk'; export const getACHDebitParams = (props: UNACHDebitComponentProps) => { const plaidAccountFiltersParam = props.plaidAccountFilters ? `plaid-account-filters="${props.plaidAccountFilters.join()}"` : ''; const plaidLinkCustomizationNameParam = props.plaidLinkCustomizationName ? `plaid-link-customization-name="${props.plaidLinkCustomizationName}"` : ''; const accountIdParam = props.accountId ? `account-id="${props.accountId}"` : ''; return ` ${accountIdParam} is-auto-focus="${props.isAutoFocus ?? false}" ${props.fee ? `fee="${props.fee}"` : ''} style="height: 100%" same-day="${props.sameDay ?? false}" ${plaidAccountFiltersParam} ${plaidLinkCustomizationNameParam} initial-stage-back-button="${props.initialStageBackButton ?? false}" final-stage-done-button="${props.finalStageDoneButton ?? false}" `; }; export const getACHDebitScript = (androidPackageName?: string) => { return ` ${LISTENERS.unitPlaidTokenCreated} ${androidPackageName && `window.UnitMobileSDKConfig.androidPackageName='${androidPackageName}'`} ${LISTENERS.unitPaymentCreated} ${LISTENERS.unitPaymentInitialStageBackButtonClicked} ${LISTENERS.unitPaymentFinalStageDoneButtonClicked} ${DISPATCH_PLAID_RESPONSE} ${LISTENERS.requestRefresh} `; }; export const injectUnitPlaidResponse = (currentWeb: WebView | null, success: LinkSuccess) => { const successObj = { data: { publicToken: success.publicToken, metadata: success.metadata } }; currentWeb?.injectJavaScript(`dispatchPlaidEvent(${JSON.stringify(successObj)})`); };