UNPKG

11 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/Page/PageModule.js"],"names":["PageModule","_page","components","exit","state","promise","beforePageId","res","err","afterPageId","Err","rootState","uapp","getRootState","app","__page__","meta","title","metas","map","t","reverse","join","fn","log","trace","onExit","setState","length","Bluebird","error","isDev","onError","component","next","disabled","catchError","JSON","stringify","push","merge","args","result","redirect","Component","props","Array","isArray","React","createElement","children","renderComponent","Provider","page","Module","observable"],"mappings":"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","sourcesContent":["import { isDev } from '@lskjs/env';\nimport Err from '@lskjs/err';\nimport Module from '@lskjs/module';\nimport Bluebird from 'bluebird';\nimport merge from 'lodash/merge';\nimport { observable } from 'mobx';\nimport React from 'react';\n// import Loading from '@lskjs/general/Loading';\n\n// const DEBUG = isDev && false;\n// const deprecated = createLogger({ name: 'uapp/Page', type: 'deprecated' });\n\n// DEBUG ? () => null : console.log; // eslint-disable-line no-console\n// const DEBUG = true;\n\nexport class PageModule extends Module {\n _page = 1;\n @observable state = {};\n // rootState = null;\n\n beforeResolve() {\n this.exit();\n this.state = {};\n this._page += 1;\n }\n afterResolve() {\n //\n }\n\n async wait(promise) {\n const beforePageId = this._page;\n let res;\n let err;\n try {\n res = await promise;\n } catch (error) {\n err = error;\n }\n const afterPageId = this._page;\n if (beforePageId !== afterPageId) throw new Err('page.cancel');\n if (err) throw err;\n return res;\n }\n\n getRootState() {\n if (this.rootState) return this.rootState;\n if (this.uapp && this.uapp.getRootState) return this.uapp.getRootState();\n if (this.app && this.app.getRootState) return this.app.getRootState();\n return { __page__: 123 };\n }\n\n getMeta() {\n const meta = (this.state && this.state.meta) || {};\n const title = (this.state.metas || [])\n .map((t) => t.title)\n .reverse()\n .join(' - ');\n return {\n ...meta,\n title,\n };\n }\n\n onExit(fn) {\n this.log.trace('onExit()');\n const { onExit = [] } = this.state;\n this.setState({\n onExit: [...onExit, fn],\n });\n return this;\n }\n\n async exit() {\n this.log.trace('exit()');\n const { onExit } = this.state;\n if (onExit && onExit.length) {\n await Bluebird.map(onExit, (fn) => fn());\n this.state.onExit = [];\n }\n }\n\n setState(state = {}) {\n this.log.trace('setState()');\n this.state = {\n ...this.state,\n ...state,\n };\n return this;\n }\n\n catchError(err) {\n this.log.error('error()', err);\n if (isDev) {\n if (this.app && this.app.onError) this.app.onError(err);\n }\n // if (isDev) {\n // if (err.message) {\n // console.error('Page.error:', err.message); // eslint-disable-line no-console\n // if (err.stack) console.error(err.stack); // eslint-disable-line no-console\n // } else {\n // console.error(err); // eslint-disable-line no-console\n // }\n // }\n // if (__CLIENT__ && this.uapp.checkVersion) {\n // // / !!!!!!!!!!!!!\n // this.uapp.checkVersion();\n // }\n throw err;\n }\n\n loading(...args) {\n this.log.trace('loading()');\n if (!args.length) return this.component('Loading...');\n return this.component(...args);\n }\n\n async next(next) {\n this.log.trace('next()');\n if (this.disabled) return this;\n try {\n const res = await next();\n return res;\n } catch (err) {\n return this.catchError(err);\n }\n }\n\n meta(meta) {\n this.log.trace('meta()', JSON.stringify(this.state.metas), meta);\n if (!this.state.metas) this.state.metas = [];\n this.state.metas.push(meta);\n this.state.meta = merge({}, ...this.state.metas);\n return this;\n }\n\n components = [];\n\n async component(...args) {\n this.log.trace('component()', args[0]);\n const result = await args[0];\n if (!result) throw new Err('!component');\n if (result.default) {\n args[0] = result.default; // eslint-disable-line no-param-reassign\n } else {\n args[0] = result; // eslint-disable-line no-param-reassign\n }\n // }\n if (args.length > 1) {\n this.components = args;\n } else {\n this.components = args[0]; // eslint-disable-line prefer-destructuring\n }\n this.log.trace('components()', this.components);\n return this;\n }\n\n redirect(...args) {\n const [redirect] = args;\n this.log.trace('redirect()', redirect);\n if (this.disabled) return this;\n this.state.redirect = args;\n return this;\n }\n\n renderComponent() {\n this.log.trace('renderComponent()', this.state);\n let Component;\n let props = {};\n if (Array.isArray(this.components)) {\n [Component, props] = this.components;\n } else {\n Component = this.components;\n }\n if (Array.isArray(this.components)) {\n return React.createElement(this.components[0], this.components[1] || {});\n }\n return React.createElement(Component, props);\n }\n\n render() {\n this.log.trace('renderRoot()');\n let children = this.renderComponent();\n if (typeof children === 'undefined') {\n if (isDev) {\n children = 'Page return empty result';\n } else {\n children = '';\n }\n }\n const { Provider } = this;\n if (!Provider) return children;\n const res = React.createElement(Provider, { app: this.app, page: this }, children);\n return res;\n }\n}\n\nexport default PageModule;\n"],"file":"PageModule.js"}
\No newline at end of file