react-native-unit-components
Version:
Unit React Native components
95 lines (94 loc) • 5.03 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.injectUnitPlaidResponse = exports.injectUnitPlaidExit = exports.injectUnitOpenPlaid = exports.injectRequestAccountActionScript = exports.injectRefreshEventIfNeeded = exports.injectOpenActionsMenuScript = exports.getPayeeParams = exports.getPayeeManagementScript = void 0;
var _webComponent = require("../../types/internal/webComponent.types");
var _bodyScript = require("../../scripts/html/bodyScript");
const getPayeeParams = props => {
const menuItemsParam = props.menuItems ? `menu-items="${props.menuItems.join()}"` : '';
const queryFilterParam = props.queryFilter ? `query-filter="${props.queryFilter}"` : '';
const paginationTypeParam = props.paginationType ? `pagination-type="${props.paginationType}"` : '';
const plaidAccountFiltersParam = props.plaidAccountFilters ? `plaid-account-filters="${props.plaidAccountFilters.join()}"` : '';
const plaidLinkCustomizationNameParam = props.plaidLinkCustomizationName ? `plaid-link-customization-name="${props.plaidLinkCustomizationName}"` : '';
const counterPartiesPerPageParam = props.counterPartiesPerPage ? `counterparties-per-page="${props.counterPartiesPerPage}"` : '';
const menuPlaceholderParam = props.menuPlaceholder ? `menu-placeholder="${props.menuPlaceholder}"` : '';
const flowPlaceholderParam = props.flowPlaceholder ? `flow-placeholder="${props.flowPlaceholder}"` : '';
const payeeCreationPlaceholderParam = props.payeeCreationPlaceholder ? `payee-creation-placeholder="${props.payeeCreationPlaceholder}"` : '';
const microDepositConnectionPlaceholderParam = props.microDepositConnectionPlaceholder ? `micro-deposit-connection-placeholder="${props.microDepositConnectionPlaceholder}"` : '';
return `
${menuItemsParam}
${queryFilterParam}
${paginationTypeParam}
${counterPartiesPerPageParam}
hide-title="${props.hideTitle || false}"
hide-counterparty-actions-button="${props.hideCounterpartyActionsButton || false}"
${menuPlaceholderParam}
${flowPlaceholderParam}
${payeeCreationPlaceholderParam}
${microDepositConnectionPlaceholderParam}
${plaidAccountFiltersParam}
${plaidLinkCustomizationNameParam}
style="height: 100%"
`;
};
exports.getPayeeParams = getPayeeParams;
const getPayeeManagementScript = () => {
return `
${_bodyScript.LISTENERS.unitCounterpartyCreated}
${_bodyScript.LISTENERS.unitConnectedAccountCreated}
${_bodyScript.LISTENERS.unitMicroDepositConnectionCreated}
${_bodyScript.LISTENERS.unitMicroDepositConnectionRejected}
${_bodyScript.LISTENERS.requestRefresh}
${_bodyScript.DISPATCH_PLAID_RESPONSE}
${_bodyScript.DISPATCH_PLAID_EXIT}
${_bodyScript.DISPATCH_OPEN_PLAID}
${_bodyScript.DISPATCH_REQUEST_REFRESH}
`;
};
exports.getPayeeManagementScript = getPayeeManagementScript;
const injectOpenActionsMenuScript = currentWeb => {
currentWeb?.injectJavaScript(`dispatchOpenActionsMenu('${_webComponent.WebComponentType.account}')`);
};
exports.injectOpenActionsMenuScript = injectOpenActionsMenuScript;
const injectRequestAccountActionScript = (currentWeb, action) => {
currentWeb?.injectJavaScript(`dispatchRequestAccountAction('${action}')`);
};
exports.injectRequestAccountActionScript = injectRequestAccountActionScript;
const injectRefreshEventIfNeeded = (currentWeb, requestRefreshEvent) => {
if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(_webComponent.WebComponentType.payeeManagement.valueOf())) {
currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);
}
};
exports.injectRefreshEventIfNeeded = injectRefreshEventIfNeeded;
const injectUnitOpenPlaid = (currentWeb, openPlaidData) => {
currentWeb?.injectJavaScript(`dispatchOpenPlaidEvent(${JSON.stringify({
data: openPlaidData
})})`);
};
exports.injectUnitOpenPlaid = injectUnitOpenPlaid;
const injectUnitPlaidResponse = (currentWeb, success) => {
const successObj = {
data: {
publicToken: success.publicToken,
metadata: JSON.parse(success.metadata.metadataJson ?? '{}')
}
};
currentWeb?.injectJavaScript(`dispatchPlaidEvent(${JSON.stringify(successObj)})`);
};
exports.injectUnitPlaidResponse = injectUnitPlaidResponse;
const injectUnitPlaidExit = (currentWeb, plaidLinkError) => {
// Android & iOS are not consist - we will extract the needed fields from the LinkError/errorJson
const errorJson = JSON.parse(plaidLinkError?.errorJson ?? '{}');
const type = plaidLinkError?.errorType ?? errorJson['error_type'] ?? '';
const code = plaidLinkError?.errorCode ?? errorJson['error_code'] ?? '';
const message = plaidLinkError?.errorMessage ?? errorJson['error_message'] ?? '';
const error = {
error_type: type,
error_code: code,
error_message: message
};
currentWeb?.injectJavaScript(`dispatchPlaidExit(${JSON.stringify(error)})`);
};
exports.injectUnitPlaidExit = injectUnitPlaidExit;
//# sourceMappingURL=UNPayeeManagementComponent.utils.js.map
;