Display a button to create new simulations

This commit is contained in:
Manuel Bustillo 2025-01-26 13:21:20 +01:00
parent e597b4fc00
commit bf7e871a1b
2 changed files with 17 additions and 4 deletions

View File

@ -2,15 +2,28 @@
'use client';
import { AbstractApi } from '@/app/api/abstract-api';
import { TableSimulation, TableSimulationSerializer } from '@/app/lib/tableSimulation';
import Arrangement from '@/app/ui/arrangements/arrangement';
import React, { useState } from 'react';
import ArrangementsTable from '@/app/ui/arrangements/arrangements-table';
import { classNames } from '@/app/ui/components/button';
import { useState } from 'react';
export default function Page() {
const [currentArrangement, setCurrentArrangement] = useState<string | null>(null);
function createSimulation() {
const api = new AbstractApi<TableSimulation>();
const serializer = new TableSimulationSerializer();
api.create(serializer, new TableSimulation(), () => {});
}
return (
<>
<div className="flex flex-col w-full items-center justify-between">
<button onClick={createSimulation} className={classNames('primary')}>Add new</button>
</div>
<ArrangementsTable onArrangementSelected={setCurrentArrangement} />
{currentArrangement && <Arrangement key={currentArrangement} id={currentArrangement} />}
</>

View File

@ -19,12 +19,12 @@ export type Table = {
}
export class TableSimulation implements Entity {
id: string;
id?: string;
tables: Table[];
constructor(id: string, tables: Table[]) {
constructor(id?: string, tables?: Table[]) {
this.id = id;
this.tables = tables;
this.tables = tables || [];
}
}