diff --git a/resources/assets/src/index.tsx b/resources/assets/src/index.tsx index 8472cee9..4a3d822a 100644 --- a/resources/assets/src/index.tsx +++ b/resources/assets/src/index.tsx @@ -3,6 +3,7 @@ import * as React from 'react' import ReactDOM from 'react-dom' import './scripts/app' import routes from './scripts/route' +import * as emitter from './scripts/event' Vue.config.productionTip = false @@ -19,21 +20,25 @@ function loadModules() { } if (route.react) { const Component = React.lazy( - route.react as (() => Promise<{ default: React.ComponentType }>) + route.react as () => Promise<{ default: React.ComponentType }>, ) const Root = () => ( ) - if (typeof route.el === 'string') { - ReactDOM.render(, document.querySelector(route.el)) - } else { - ReactDOM.render(, route.el) - } + const c = + typeof route.el === 'string' + ? document.querySelector(route.el) + : route.el + ReactDOM.render(, c, () => { + emitter.emit('mounted', { el: route.el }) + }) } if (route.component) { - Vue.prototype.$route = new RegExp(`^${route.path}$`, 'i').exec(blessing.route) + Vue.prototype.$route = new RegExp(`^${route.path}$`, 'i').exec( + blessing.route, + ) // eslint-disable-next-line no-new new Vue({ el: route.el,