jiro-ui
Version:
A Mithril.js UI library based from construct-ui
53 lines (48 loc) • 1.39 kB
text/typescript
import m from 'mithril';
import { Card, RadioGroup, Switch, Size } from '@/';
import { Example, SizeSelect } from '@shared/examples';
const EXAMPLE_SRC = 'components/card/examples/index.ts';
const elevations = ['0', '1', '2', '3', '4'];
export class CardExample {
private elevation = 1;
private fluid: boolean;
private interactive = false;
private size: Size;
public view() {
return m(Example, { options: this.renderOptions(), center: true, src: EXAMPLE_SRC }, [
m(Card, {
elevation: this.elevation,
fluid: this.fluid,
interactive: this.interactive,
size: this.size,
style: 'min-width: 300px'
},
m('h4', 'Card title'),
m('', 'Card content')
)
]);
}
private renderOptions() {
return [
m('h5', 'Size'),
m(SizeSelect, {
value: this.size,
onSelect: (size: Size) => this.size = size
}),
m(Switch, {
label: 'Interactive',
onchange: () => this.interactive = !this.interactive
}),
m(Switch, {
label: 'Fluid',
onchange: () => this.fluid = !this.fluid
}),
m('h5', 'Elevation'),
m(RadioGroup, {
options: elevations,
value: this.elevation.toString(),
onchange: (e: Event) => this.elevation = parseInt((e.currentTarget as HTMLInputElement).value)
})
];
}
}