import m, { ClassComponent, CVnode } from "mithril"; import stream from "mithril/stream"; import { IPropWidget, TProp } from "../interface/widget"; import { BaseText } from "./baseText"; export class DateText implements ClassComponent { private formatted!: stream; private formatter(val: TProp): TProp { return val ? new Date(String(val)).toLocaleDateString() : val; } public oninit({ attrs: { value } }: CVnode) { this.formatted = (value as stream).map(this.formatter); } public onremove() { this.formatted.end(true); } public view({ attrs: { field } }: CVnode) { return m(BaseText, { field, value: this.formatted }); } }