1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-24 23:37:51 +01:00
Maicol Battistini 636c7ac68e
feat: 💥 Conversione a Typescript
- Rimossi Babel e Flow, sostituito con Typescript
- Qualche piccolo fix qua e là
- Aggiornate dipendenze
2022-01-06 15:45:35 +01:00

46 lines
1011 B
TypeScript

import '@material/mwc-checkbox';
import {collect} from 'collect.js';
import type {Children, Vnode} from 'mithril';
import Component from '../Component';
import TableCell from './TableCell';
declare global {
namespace JSX {
interface IntrinsicElements {
'TableRow': TableRow;
}
}
}
export type TableRowAttributes = {checkable?: boolean};
export default class TableRow extends Component<TableRowAttributes> {
view(vnode: Vnode<TableRowAttributes>) {
this.attrs.addClassNames('mdc-data-table__row');
return (
<tr {...this.attrs.all()}>
{this.checkbox(vnode.children as Children[])}
{vnode.children}
</tr>
);
}
checkbox(children: Children[]): Children {
if (!this.attrs.has('checkable')) {
return <></>;
}
for (const child of children) {
const attributes = collect((child as Vnode).attrs);
if (attributes.get('type') === 'checkbox') {
break;
}
}
return <TableCell type="checkbox" />;
}
}