Files
varo-website/src/app/admin/reports/Reports.svelte
bytedream eb39cae44c
All checks were successful
deploy / build-and-deploy (/testvaro, /opt/website-test, website-test) (push) Successful in 24s
deploy / build-and-deploy (/varo, /opt/website, website) (push) Successful in 14s
show date in admin ui report table
2025-06-21 21:25:47 +02:00

47 lines
1.2 KiB
Svelte

<script lang="ts">
import BottomBar from '@app/admin/reports/BottomBar.svelte';
import { onMount } from 'svelte';
import DataTable from '@components/admin/table/DataTable.svelte';
import { type StrikeReasons, getStrikeReasons, reports } from '@app/admin/reports/reports.ts';
// consts
const dateFormat = new Intl.DateTimeFormat('de-DE', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit'
});
// states
let strikeReasons = $state<StrikeReasons>([]);
let activeReport = $state<Report | null>(null);
// lifecycle
onMount(() => {
getStrikeReasons().then((data) => (strikeReasons = data ?? []));
});
</script>
{#snippet date(value: string)}
{dateFormat.format(new Date(value))}
{/snippet}
<DataTable
data={reports}
count={true}
keys={[
{ key: 'reason', label: 'Grund' },
{ key: 'reporter.name', label: 'Report Team' },
{ key: 'reported?.name', label: 'Reportetes Team' },
{ key: 'createdAt', label: 'Datum', transform: date },
{ key: 'report.status?.status', label: 'Bearbeitungsstatus' }
]}
onClick={(report) => (activeReport = report)}
>
</DataTable>
{#key activeReport}
<BottomBar {strikeReasons} report={activeReport} />
{/key}