@rnw-community/react-native-payments
Version:
Accept Payments with Apple Pay and Android Pay using the Payment Request API.
38 lines (31 loc) • 1.52 kB
text/typescript
import { AndroidConfig, withAndroidManifest } from '@expo/config-plugins';
import { validateGooglePayEnvironment } from './validate-google-pay-environment.util.js';
import { validateSupportedNetworks } from './validate-supported-networks.util.js';
import type { ReactNativePaymentsPluginProps } from './plugin.props.js';
import type { ConfigPlugin } from '@expo/config-plugins';
export const withGooglePay: ConfigPlugin<ReactNativePaymentsPluginProps> = (
initialConfig,
{ supportedNetworks, googlePayEnvironment }
) => {
const validatedSupportedNetworks = validateSupportedNetworks(supportedNetworks);
const validatedGooglePayEnvironment = validateGooglePayEnvironment(googlePayEnvironment);
return withAndroidManifest(initialConfig, config => {
const mainApplication = AndroidConfig.Manifest.getMainApplicationOrThrow(config.modResults);
AndroidConfig.Manifest.addMetaDataItemToMainApplication(
mainApplication,
'com.google.android.gms.wallet.api.enabled',
'true'
);
AndroidConfig.Manifest.addMetaDataItemToMainApplication(
mainApplication,
'com.google.android.gms.wallet.api.environment',
validatedGooglePayEnvironment
);
AndroidConfig.Manifest.addMetaDataItemToMainApplication(
mainApplication,
'com.rnw-community.react-native-payments.supported-networks',
validatedSupportedNetworks.join(',')
);
return config;
});
};