Compare commits

..

1 Commits

Author SHA1 Message Date
Renovate Bot
11786e8b50 Update dependency @tiptap/starter-kit to v3
Some checks failed
Build Nginx-based docker image / build-static-assets (push) Failing after 20s
Add copyright notice / copyright_notice (pull_request) Failing after 17s
Check usage of free licenses / build-static-assets (pull_request) Failing after 22s
Playwright Tests / test (pull_request) Failing after 16s
2025-09-15 22:02:39 +00:00
6 changed files with 58 additions and 73 deletions

View File

@ -8,7 +8,7 @@ import Arrangement from '@/app/ui/arrangements/arrangement';
import ArrangementsTable from '@/app/ui/arrangements/arrangements-table';
import { classNames } from '@/app/ui/components/button';
import { Toast } from 'primereact/toast';
import React, { useEffect, useRef, useState } from 'react';
import React, { useRef, useState } from 'react';
export default function Page() {
const toast = useRef<Toast>(null);

View File

@ -13,8 +13,6 @@ export function loadTableSimulations(onLoad?: (tableSimulations: TableArrangemen
name: record.name,
discomfort: record.discomfort,
valid: record.valid,
progress: record.progress,
status : record.status
});
}));
}, (error) => {

View File

@ -14,8 +14,6 @@ export type TableArrangement = {
guests?: Guest[];
discomfort?: number;
valid?: boolean;
progress: number;
status: 'in_progress' | 'completed' | 'not_started';
}
export type User = {

View File

@ -22,12 +22,10 @@ export type Table = {
export class TableSimulation implements Entity {
id?: string;
tables: Table[];
progress: number;
constructor(id?: string, tables?: Table[], progress?: number) {
constructor(id?: string, tables?: Table[]) {
this.id = id;
this.tables = tables || [];
this.progress = progress || 0;
}
}
@ -45,7 +43,7 @@ export class TableSimulationSerializer implements Serializable<TableSimulation>
}
},
}
}), data.progress);
}));
}
toJson(simulation: TableSimulation): string {

View File

@ -10,21 +10,11 @@ import { loadTableSimulations } from "@/app/api/tableSimulations";
import { ArchiveBoxXMarkIcon, CheckBadgeIcon } from "@heroicons/react/24/outline";
import { Tooltip } from "primereact/tooltip";
import clsx from "clsx";
import { ProgressBar } from "primereact/progressbar";
import { useEffect } from "react";
import { TableSimulation, TableSimulationSerializer } from "@/app/lib/tableSimulation";
import { AbstractApi } from "@/app/api/abstract-api";
export default function ArrangementsTable({ onArrangementSelected }: { onArrangementSelected: (arrangementId: string) => void }) {
const [arrangements, setArrangements] = useState<Array<TableArrangement>>([]);
const [arrangementsLoaded, setArrangementsLoaded] = useState(false);
useEffect(() => {
refreshSimulations();
const interval = setInterval(refreshSimulations, 10000);
return () => clearInterval(interval);
}, []);
function refreshSimulations() {
loadTableSimulations((arrangements) => {
setArrangements(arrangements);
@ -36,9 +26,11 @@ export default function ArrangementsTable({ onArrangementSelected }: { onArrange
onArrangementSelected(e.currentTarget.getAttribute('data-arrangement-id') || '');
}
!arrangementsLoaded && refreshSimulations();
return (
<TableOfContents
headers={['Name', 'Discomfort', 'Status', 'Actions']}
headers={['Name', 'Discomfort', 'Actions', 'Status']}
caption='Simulations'
elements={arrangements}
rowRender={(arrangement) => (
@ -52,19 +44,18 @@ export default function ArrangementsTable({ onArrangementSelected }: { onArrange
<td className="px-6 py-4">
{arrangement.discomfort}
</td>
<td className="px-4">
<Tooltip target=".tooltip-status" />
<>
{ arrangement.valid && arrangement.status === 'not_started' && <ProgressBar mode="indeterminate" style={{ height: '6px' }}></ProgressBar> }
{ arrangement.valid && arrangement.status !== 'not_started' && <ProgressBar value={(100 * arrangement.progress).toFixed(2) }></ProgressBar> }
{ !arrangement.valid && 'The list of potential guests has changed since this simulation.' }
</>
</td>
<td>
<button data-arrangement-id={arrangement.id} onClick={arrangementClicked} className={classNames('primary')}>Load</button>
</td>
<td>
<Tooltip target=".tooltip-status" />
{
arrangement.valid ?
<CheckBadgeIcon className='size-6 tooltip-status' data-pr-position="right" data-pr-tooltip="Simulation is valid" /> :
<ArchiveBoxXMarkIcon className='size-6 tooltip-status' data-pr-position="right" data-pr-tooltip="Simulation is expired due to attendance or affinity changes" />
}
</td>
</tr>
)}
/>

86
pnpm-lock.yaml generated
View File

@ -1624,11 +1624,11 @@ snapshots:
dependencies:
'@tiptap/pm': 3.4.3
'@tiptap/extension-blockquote@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))':
'@tiptap/extension-blockquote@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/extension-bold@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))':
'@tiptap/extension-bold@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
@ -1640,24 +1640,24 @@ snapshots:
'@tiptap/extension-bullet-list@3.4.3(@tiptap/extension-list@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3))':
dependencies:
'@tiptap/extension-list': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@2.26.1)
'@tiptap/extension-list': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)
'@tiptap/extension-code-block@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))(@tiptap/pm@3.4.3)':
'@tiptap/extension-code-block@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/pm': 3.4.3
'@tiptap/extension-code@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))':
'@tiptap/extension-code@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/extension-document@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))':
'@tiptap/extension-document@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/extension-dropcursor@3.4.3(@tiptap/extensions@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))(@tiptap/pm@3.4.3))':
'@tiptap/extension-dropcursor@3.4.3(@tiptap/extensions@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3))':
dependencies:
'@tiptap/extensions': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))(@tiptap/pm@3.4.3)
'@tiptap/extensions': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)
'@tiptap/extension-floating-menu@2.26.1(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@2.26.1)':
dependencies:
@ -1665,28 +1665,28 @@ snapshots:
'@tiptap/pm': 2.26.1
tippy.js: 6.3.7
'@tiptap/extension-gapcursor@3.4.3(@tiptap/extensions@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))(@tiptap/pm@3.4.3))':
'@tiptap/extension-gapcursor@3.4.3(@tiptap/extensions@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3))':
dependencies:
'@tiptap/extensions': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))(@tiptap/pm@3.4.3)
'@tiptap/extensions': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)
'@tiptap/extension-hard-break@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))':
'@tiptap/extension-hard-break@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/extension-heading@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))':
'@tiptap/extension-heading@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/extension-horizontal-rule@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))(@tiptap/pm@3.4.3)':
'@tiptap/extension-horizontal-rule@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/pm': 3.4.3
'@tiptap/extension-italic@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))':
'@tiptap/extension-italic@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/extension-link@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))(@tiptap/pm@3.4.3)':
'@tiptap/extension-link@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/pm': 3.4.3
@ -1694,38 +1694,38 @@ snapshots:
'@tiptap/extension-list-item@3.4.3(@tiptap/extension-list@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3))':
dependencies:
'@tiptap/extension-list': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@2.26.1)
'@tiptap/extension-list': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)
'@tiptap/extension-list-keymap@3.4.3(@tiptap/extension-list@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3))':
dependencies:
'@tiptap/extension-list': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@2.26.1)
'@tiptap/extension-list': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)
'@tiptap/extension-list@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@2.26.1)':
'@tiptap/extension-list@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/pm': 2.26.1
'@tiptap/pm': 3.4.3
'@tiptap/extension-ordered-list@3.4.3(@tiptap/extension-list@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3))':
dependencies:
'@tiptap/extension-list': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@2.26.1)
'@tiptap/extension-list': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)
'@tiptap/extension-paragraph@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))':
'@tiptap/extension-paragraph@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/extension-strike@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))':
'@tiptap/extension-strike@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/extension-text@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))':
'@tiptap/extension-text@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/extension-underline@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))':
'@tiptap/extension-underline@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/extensions@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))(@tiptap/pm@3.4.3)':
'@tiptap/extensions@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/pm': 3.4.3
@ -1787,28 +1787,28 @@ snapshots:
'@tiptap/starter-kit@3.4.3':
dependencies:
'@tiptap/core': 3.4.3(@tiptap/pm@3.4.3)
'@tiptap/extension-blockquote': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))
'@tiptap/extension-bold': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))
'@tiptap/extension-blockquote': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))
'@tiptap/extension-bold': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))
'@tiptap/extension-bullet-list': 3.4.3(@tiptap/extension-list@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3))
'@tiptap/extension-code': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))
'@tiptap/extension-code-block': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))(@tiptap/pm@3.4.3)
'@tiptap/extension-document': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))
'@tiptap/extension-dropcursor': 3.4.3(@tiptap/extensions@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))(@tiptap/pm@3.4.3))
'@tiptap/extension-gapcursor': 3.4.3(@tiptap/extensions@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))(@tiptap/pm@3.4.3))
'@tiptap/extension-hard-break': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))
'@tiptap/extension-heading': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))
'@tiptap/extension-horizontal-rule': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))(@tiptap/pm@3.4.3)
'@tiptap/extension-italic': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))
'@tiptap/extension-link': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))(@tiptap/pm@3.4.3)
'@tiptap/extension-list': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@2.26.1)
'@tiptap/extension-code': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))
'@tiptap/extension-code-block': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)
'@tiptap/extension-document': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))
'@tiptap/extension-dropcursor': 3.4.3(@tiptap/extensions@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3))
'@tiptap/extension-gapcursor': 3.4.3(@tiptap/extensions@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3))
'@tiptap/extension-hard-break': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))
'@tiptap/extension-heading': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))
'@tiptap/extension-horizontal-rule': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)
'@tiptap/extension-italic': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))
'@tiptap/extension-link': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)
'@tiptap/extension-list': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)
'@tiptap/extension-list-item': 3.4.3(@tiptap/extension-list@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3))
'@tiptap/extension-list-keymap': 3.4.3(@tiptap/extension-list@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3))
'@tiptap/extension-ordered-list': 3.4.3(@tiptap/extension-list@3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3))
'@tiptap/extension-paragraph': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))
'@tiptap/extension-strike': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))
'@tiptap/extension-text': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))
'@tiptap/extension-underline': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))
'@tiptap/extensions': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@3.4.3))(@tiptap/pm@3.4.3)
'@tiptap/extension-paragraph': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))
'@tiptap/extension-strike': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))
'@tiptap/extension-text': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))
'@tiptap/extension-underline': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))
'@tiptap/extensions': 3.4.3(@tiptap/core@3.4.3(@tiptap/pm@2.26.1))(@tiptap/pm@3.4.3)
'@tiptap/pm': 3.4.3
'@types/bcrypt@5.0.2':