jiro-ui
Version:
A Mithril.js UI library based from construct-ui
27 lines (22 loc) • 692 B
text/typescript
import m from 'mithril';
import classnames from 'classnames';
import { Classes, IAttrs, ISizeAttrs } from '../../_shared';
export interface IListAttrs extends IAttrs, ISizeAttrs {
/** Wether to show background on item hover */
interactive?: boolean;
[htmlAttrs: string]: any;
}
export class List implements m.Component<IListAttrs> {
public view({ attrs, children }: m.Vnode<IListAttrs>) {
const { class: className, size, interactive = true, ...htmlAttrs } = attrs;
return m('', {
...htmlAttrs,
class: classnames(
Classes.LIST,
interactive && Classes.INTERACTIVE,
size && `cui-${size}`,
className
)
}, children);
}
}