@adyen/react-native
Version:
Wraps Adyen Checkout Drop-In and Components for iOS and Android for convenient use with React Native
37 lines (36 loc) • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setAppTheme = setAppTheme;
const defaultTheme = 'AppTheme';
function setAppTheme(androidStyles) {
let resources = androidStyles.resources;
if (!resources) {
resources = {
$: { 'xmlns:tools': 'http://schemas.android.com/tools' },
};
androidStyles.resources = resources;
}
let styles = resources.style;
if (!Array.isArray(styles)) {
styles = [];
resources.style = styles;
}
let appTheme = styles.find((item) => item.$.name === defaultTheme);
if (!appTheme) {
console.log(`Default theme is not '${defaultTheme}'. Please set your theme parent as descendent of 'Theme.MaterialComponents'`);
}
else {
var parentTheme = 'Theme.MaterialComponents.Light.NoActionBar';
const oldParent = appTheme.$.parent;
if (oldParent && oldParent.includes('DayNight')) {
parentTheme = 'Theme.MaterialComponents.DayNight.NoActionBar';
}
appTheme.$ = { name: defaultTheme, parent: parentTheme };
}
let unwantedAppTheme = styles.findLast((item) => item.$.name === defaultTheme && item.$.parent.includes('AppCompat'));
if (unwantedAppTheme) {
const index = styles.indexOf(unwantedAppTheme);
styles.splice(index, 1);
}
return androidStyles;
}