UNPKG

zmp-react

Version:

Build full featured iOS & Android apps using ZMP & React

105 lines (83 loc) 2.59 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.setTheme = exports.zmpinitEvents = exports.zmprouters = exports.zmpinit = exports.zmpevents = exports.zmpready = exports.theme = exports.zmp = void 0; var _lite = _interopRequireDefault(require("zmp-core/lite")); var _utils = require("./utils"); /* eslint-disable import/no-mutable-exports */ var zmp; exports.zmp = zmp; var zmpevents; exports.zmpevents = zmpevents; var theme = {}; exports.theme = theme; var zmprouters = { views: [], tabs: [], modals: null }; exports.zmprouters = zmprouters; var setTheme = function setTheme() { if (!zmp) return; theme.ios = zmp.theme === 'ios'; theme.md = zmp.theme === 'md'; theme.aurora = zmp.theme === 'aurora'; }; exports.setTheme = setTheme; var cleanup = function cleanup() { (0, _utils.unsetRouterIds)(); delete theme.ios; delete theme.md; delete theme.aurora; zmprouters.views = []; zmprouters.tabs = []; zmprouters.modals = null; }; var zmpinitEvents = function zmpinitEvents() { exports.zmpevents = zmpevents = new _lite.default.Events(); }; exports.zmpinitEvents = zmpinitEvents; var zmpinit = function zmpinit(rootEl, params, init) { if (params === void 0) { params = {}; } if (init === void 0) { init = true; } var zmpParams = (0, _utils.extend)({}, params, { el: rootEl, init: init }); if (typeof params.store !== 'undefined') zmpParams.store = params.store; if (!zmpParams.routes) zmpParams.routes = []; if (zmpParams.userAgent && (zmpParams.theme === 'auto' || !zmpParams.theme)) { var device = _lite.default.getDevice({ userAgent: zmpParams.userAgent }, true); theme.ios = !!device.ios; theme.aurora = device.desktop && device.electron; theme.md = !theme.ios && !theme.aurora; } // eslint-disable-next-line if (zmp && typeof window !== 'undefined') return; // eslint-disable-next-line if (typeof window === 'undefined') cleanup(); var instance = new _lite.default(zmpParams); exports.zmp = zmp = instance; setTheme(); if (instance.initialized) { exports.zmp = zmp = instance; zmpevents.emit('ready', zmp); } else { instance.on('init', function () { exports.zmp = zmp = instance; zmpevents.emit('ready', zmp); }); } }; exports.zmpinit = zmpinit; var zmpready = function zmpready(callback) { if (!callback) return; if (zmp && zmp.initialized) callback(zmp);else { zmpevents.once('ready', callback); } }; exports.zmpready = zmpready;