@adyen/react-native
Version:
Wraps Adyen Checkout Drop-In and Components for iOS and Android for convenient use with React Native
43 lines (42 loc) • 1.82 kB
JavaScript
;
import { withAppDelegate, withEntitlementsPlist } from '@expo/config-plugins';
import { setEntitlements } from './setEntitlements';
import { setImport } from './setImport';
import { setApplicationOpenUrl } from './setApplicationOpenUrl';
import { setApplicationContinueUserActivity } from './setApplicationContinueUserActivity';
import { setImportSwift } from './setImportSwift';
import { setApplicationOpenUrlSwift } from './setApplicationOpenUrlSwift';
import { setApplicationContinueUserActivitySwift } from './setApplicationContinueUserActivitySwift';
export const withAdyenIos = (config, {
merchantIdentifier,
useFrameworks
}) => {
config = withAppDelegate(config, newConfig => {
var appDelegate = newConfig.modResults.contents;
if (appDelegate.includes('ADYRedirectComponent') || appDelegate.includes('import Adyen')) {
return newConfig;
}
// Detect if it's Swift or Objective-C
const isSwift = appDelegate.includes('import Expo') || appDelegate.includes('import UIKit');
if (isSwift) {
appDelegate = setImportSwift(appDelegate);
appDelegate = setApplicationOpenUrlSwift(appDelegate);
appDelegate = setApplicationContinueUserActivitySwift(appDelegate);
} else {
appDelegate = setImport(appDelegate, useFrameworks);
appDelegate = setApplicationOpenUrl(appDelegate);
appDelegate = setApplicationContinueUserActivity(appDelegate);
}
newConfig.modResults.contents = appDelegate;
return newConfig;
});
if (merchantIdentifier) {
config = withEntitlementsPlist(config, newConfig => {
const entitlements = newConfig.modResults;
newConfig.modResults = setEntitlements(entitlements, merchantIdentifier);
return newConfig;
});
}
return config;
};
//# sourceMappingURL=withAdyenIos.js.map