1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-23 23:07:46 +01:00

feat(pages): Aggiunta pagina base ListPage

La pagina che mostra i record di un modulo. Ancora molto basica e senza nessun controllo
This commit is contained in:
Maicol Battistini 2021-08-26 20:10:31 +02:00
parent f65d0735b7
commit 95450c495c
No known key found for this signature in database
GPG Key ID: 4FDB0F87CDB1D34A

53
resources/js/Components/ListPage.js vendored Normal file
View File

@ -0,0 +1,53 @@
import Page from './Page';
import DataTable from './DataTable/DataTable';
import TableHeadCell from './DataTable/TableHeadCell';
import TableHead from './DataTable/TableHead';
import TableHeadRow from './DataTable/TableHeadRow';
import TableBody from './DataTable/TableBody';
import TableRow from './DataTable/TableRow';
import TableCell from './DataTable/TableCell';
/**
* @abstract
*/
export default class ListPage extends Page {
columns: Array<{
id: string,
title: string,
type: string | null
}>;
rows: Array<Array<string>> = [];
view(vnode) {
const columns = this.columns.map(
(column, i) => (
<TableHeadCell key={i} type={null}>
{column}
</TableHeadCell>
)
);
const rows = this.rows.length ? this.rows.map((row, i) => (
<TableRow key={i}>
{row.map((cell, index) => <TableCell key={index}>{cell}</TableCell>)}
</TableRow>
)) : <TableRow><TableCell colspan={columns.length}>{this.__('Non sono presenti dati')}</TableCell></TableRow>;
return (
<>
<h2>{this.title}</h2>
<DataTable>
<TableHead>
<TableHeadRow>
{columns}
</TableHeadRow>
</TableHead>
<TableBody>
{rows}
</TableBody>
</DataTable>
</>
);
}
}