UNPKG

@jadis/create

Version:

Jadis boilerplate generator

55 lines (42 loc) 1.41 kB
import { createElement, Jadis } from '@jadis/core'; import template from './main-page.html?raw'; import style from './main-page.css?inline'; import { myRouter } from '../../router'; import Counter from '../../components/counter'; import logo from '../../assets/logo.svg'; class MainPage extends Jadis { static readonly selector = 'main-page'; static readonly template = template; static readonly style = style; onConnect(): void { createElement('img', { src: logo }, this.headerElement); this.wrapperElement.replaceChildren( ...Array.from({ length: 3 }).map((_, i) => this.createCounter(i)) ); this.on(this.buttonElement, 'click', () => this.onButtonClick()); } private onButtonClick(): void { myRouter.gotoName('hello', { name: this.inputElement.value }); } private createCounter(id: number): Counter { const counter = new Counter(); counter.events.register('change', (count) => { return console.log(`Counter id ${id}:`, count); }); return counter; } get inputElement(): HTMLInputElement { return this.getElement('input'); } get buttonElement(): HTMLButtonElement { return this.getElement('button'); } get wrapperElement(): HTMLDivElement { return this.getElement('.wrapper'); } get headerElement(): HTMLDivElement { return this.getElement('.header'); } } MainPage.register(); export default MainPage;