1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-24 23:37:51 +01:00
Maicol Battistini 2d37c8eda4
feat: Sostituito Laravel Mix con Vite
Vite permette di utilizzare i moduli ES6, in modo da caricare le views dei moduli custom tramite Import Maps (automatico). Gli assets devono essere inseriti nella cartella resources/static invece che nella cartella public.
Altri miglioramenti:
- I componenti sono stati migliorati, in modo da utilizzare collect.js (le collections di Laravel in JS) e classnames (per l'aggiunta di classi CSS ai componenti)
- Ogni cartella ha ora un file `index.js` così da poter importare facilmente i componenti nei moduli custom
- Possibilità di aggiungere un titolo nella pagina, definendolo nella route
-
2021-09-07 13:28:20 +02:00

54 lines
1.3 KiB
JavaScript

import DataTable from '../DataTable/DataTable';
import TableBody from '../DataTable/TableBody';
import TableCell from '../DataTable/TableCell';
import TableHead from '../DataTable/TableHead';
import TableHeadCell from '../DataTable/TableHeadCell';
import TableHeadRow from '../DataTable/TableHeadRow';
import TableRow from '../DataTable/TableRow';
import Page from '../Page';
/**
* @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, index) => (
<TableHeadCell key={index}>
{column}
</TableHeadCell>
)
);
const rows = this.rows.length > 0 ? this.rows.map((row, index) => (
<TableRow key={index}>
{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>
</>
);
}
}