/* eslint array-callback-return: "off" */ /* eslint consistent-return: "off" */ import f7 from '../utils/f7'; import events from '../utils/events'; export default { name: 'f7-routable-modals', state() { return { modals: [], }; }, render() { return (
{this.state.modals.map((modal) => { const ModalComponent = modal.component; if (process.env.COMPILER === 'react') { return ( ); } if (process.env.COMPILER === 'vue') { return ( ); } })}
); }, componentDidUpdate() { const self = this; if (!self.routerData) return; events.emit('modalsRouterDidUpdate', self.routerData); }, componentWillUnmount() { const self = this; if (!self.routerData) return; f7.routers.modals = null; self.routerData = null; delete self.routerData; }, componentDidMount() { const self = this; const el = self.refs.el; self.setState({ modals: [] }); self.routerData = { el, component: self, }; f7.routers.modals = self.routerData; }, };