zmp-react
Version:
Build full featured iOS & Android apps using ZMP & React
40 lines (36 loc) • 1.2 kB
JavaScript
import ZMP from 'zmp-core/lite';
import componentsRouter from './components-router';
import { zmp, zmpready, theme, zmpinitEvents, setTheme } from './zmp';
var ZMPReact = {
name: 'reactPlugin',
installed: false,
install: function install(params) {
if (params === void 0) {
params = {};
}
if (ZMPReact.installed) return;
ZMPReact.installed = true;
zmpinitEvents();
var _params = params,
paramsTheme = _params.theme,
userAgent = _params.userAgent;
if (paramsTheme === 'md') theme.md = true;
if (paramsTheme === 'ios') theme.ios = true;
if (paramsTheme === 'aurora') theme.aurora = true; // eslint-disable-next-line
var needThemeCalc = typeof window === 'undefined' ? !!userAgent : true;
if (needThemeCalc && (!paramsTheme || paramsTheme === 'auto')) {
var device = ZMP.getDevice({
userAgent: userAgent
}, true);
theme.ios = !!device.ios;
theme.aurora = device.desktop && device.electron;
theme.md = !theme.ios && !theme.aurora;
}
zmpready(function () {
setTheme();
});
ZMP.Router.use(componentsRouter);
}
};
export { zmpready, zmp, theme };
export default ZMPReact;