2021-11-09 12:15:15 +01:00
|
|
|
import {type ClassComponent} from 'mithril';
|
|
|
|
|
2021-09-29 15:32:31 +02:00
|
|
|
import Component from './Component.jsx';
|
2021-09-07 13:28:20 +02:00
|
|
|
|
2021-11-09 12:15:15 +01:00
|
|
|
export default class Mdi extends Component implements ClassComponent<{icon?: string}> {
|
2021-09-07 13:28:20 +02:00
|
|
|
view(vnode) {
|
2021-11-09 12:15:15 +01:00
|
|
|
this.attrs.addClassNames('mdi', `mdi-${this.attrs.pull('icon')}`);
|
2021-09-07 13:28:20 +02:00
|
|
|
return <i {...this.attrs.all()} />;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-09-29 15:32:31 +02:00
|
|
|
/**
|
2021-10-08 13:07:18 +02:00
|
|
|
Quando MWC supporterà pienamente le icone SVG si potrà fare così:
|
|
|
|
import * as mdi from '@mdi/js';
|
|
|
|
import {camelCase} from 'lodash-es/string';
|
2021-09-07 13:28:20 +02:00
|
|
|
|
2021-10-08 13:07:18 +02:00
|
|
|
return <svg class={`mdi ${vnode.attrs.class ?? ''}`}
|
|
|
|
{...vnode.attrs} viewBox={vnode.attrs.viewBox ?? '0 0 24 24'}>
|
|
|
|
<path d={vnode.attrs.icon ? mdi[camelCase(`mdi-${vnode.attrs.icon}`)] : ''} />
|
|
|
|
</svg>;
|
2021-09-29 15:32:31 +02:00
|
|
|
|
2021-10-08 13:07:18 +02:00
|
|
|
@see https://github.com/material-components/material-web/issues/1812
|
|
|
|
*/
|