UNPKG

adonisjs-livewire

Version:

A front-end framework for AdonisJS

60 lines (59 loc) 1.82 kB
import { store } from './store.js'; export class BaseComponent { // @ts-ignore __id; // @ts-ignore __name; // @ts-ignore __view_path; get view() { return { share: (data) => { return this.__view.share(data); }, render: async (templatePath, state) => { this.__view_data = Object.assign({}, this.__view_data || {}, state || {}); return await this.__view.render(templatePath, state); }, renderSync: (templatePath, state) => { this.__view_data = Object.assign({}, this.__view_data || {}, state || {}); return this.__view.renderSync(templatePath, state); }, renderRaw: async (contents, state, templatePath) => { this.__view_data = Object.assign({}, this.__view_data || {}, state || {}); return await this.__view.renderRaw(contents, state, templatePath); }, renderRawSync: (contents, state, templatePath) => { this.__view_data = Object.assign({}, this.__view_data || {}, state || {}); return this.__view.renderRawSync(contents, state, templatePath); }, }; } setId(id) { this.__id = id; } getId() { return this.__id; } setName(name) { this.__name = name; } setViewPath(view) { this.__view_path = view; } getName() { return this.__name; } async render() { return this.view.render(this.__view_path); } skipRender(html) { store(this).set('skipRender', html ?? true); } skipMount() { store(this).set('skipMount', true); } skipHydrate() { store(this).set('skipHydrate', true); } }