'use client'; import { WerteEntry } from '@/types/werte'; interface WerteListProps { entries: WerteEntry[]; onDelete?: (id: number) => void; onEdit?: (entry: WerteEntry) => void; } export default function WerteList({ entries, onDelete, onEdit }: WerteListProps) { const formatValue = (value: number | string | null | undefined) => { if (value === null || value === undefined || value === '' || value === '0' || value === '0.0') { return '-'; } return value; }; const formatDate = (dateStr: string) => { // Convert YYYY-MM-DD to DD.MM.YYYY if (!dateStr) return '-'; // Parse the date string directly (MySQL returns YYYY-MM-DD) const parts = dateStr.toString().split('T')[0].split('-'); if (parts.length === 3) { return `${parts[2]}.${parts[1]}.${parts[0]}`; } return dateStr; }; const formatTime = (timeStr: string) => { // Convert HH:MM:SS to HH:MM if (!timeStr) return '-'; const timeString = timeStr.toString(); return timeString.substring(0, 5); }; const getWeekday = (dateStr: string) => { if (!dateStr) return '-'; const weekdays = ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa']; // Parse date parts to avoid timezone issues const [year, month, day] = dateStr.toString().split('T')[0].split('-'); const date = new Date(Number(year), Number(month) - 1, Number(day)); return weekdays[date.getDay()]; }; const handleDelete = async (id: number) => { if (!confirm('Eintrag wirklich löschen?')) { return; } try { const response = await fetch(`/api/werte/${id}`, { method: 'DELETE', }); if (response.ok && onDelete) { onDelete(id); } else { alert('Fehler beim Löschen!'); } } catch (error) { console.error('Error:', error); alert('Fehler beim Löschen!'); } }; if (entries.length === 0) { return (
| Datum | Tag | Zeit | Zucker mg/dl |
Essen | Gewicht kg |
Druck sys mmHg |
Druck dia mmHg |
Puls bpm |
{onDelete && Aktion | }
|---|---|---|---|---|---|---|---|---|---|
| {formatDate(entry.Datum)} | {getWeekday(entry.Datum)} | {formatTime(entry.Zeit)} | {formatValue(entry.Zucker)} | {formatValue(entry.Essen)} | {formatValue(entry.Gewicht)} | {formatValue(entry.DruckS)} | {formatValue(entry.DruckD)} | {formatValue(entry.Puls)} | {(onDelete || onEdit) && (
{onEdit && (
)}
{onDelete && (
)}
|
)}