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:
parent
f65d0735b7
commit
95450c495c
53
resources/js/Components/ListPage.js
vendored
Normal file
53
resources/js/Components/ListPage.js
vendored
Normal 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>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user