UNPKG

adonisjs-livewire

Version:

A front-end framework for AdonisJS

37 lines (36 loc) 1.24 kB
import ComponentHook from '../../component_hook.js'; import { store } from '../../store.js'; export class SupportEvents extends ComponentHook { async call(method, params, _returnEarly) { if (method === '__dispatch') { let [name, args] = params; let ev = store(this.component) .get('listeners') .find((l) => l.name === name); if (ev) { await this.component[ev.event](args); } let ev2 = this.component.getListeners()[name]; if (!ev2) return; await this[ev2](args); } } async dehydrate(context) { const s = store(this.component); if (context.mounting) { const listeners = [ ...new Set([ ...Object.keys(this.component.getListeners()), ...s.get('listeners').map((l) => l.name), ]), ]; if (listeners.length > 0) { context.addEffect('listeners', listeners); } } if (!s.has('dispatched')) return; context.addEffect('dispatched', store(this.component).get('dispatched')); } }