'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 (
Keine Einträge vorhanden
); } return (
{onDelete && } {entries.map((entry, index) => ( {(onDelete || onEdit) && ( )} ))}
Datum Tag Zeit Zucker
mg/dl
Essen Gewicht
kg
Druck sys
mmHg
Druck dia
mmHg
Puls
bpm
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)}
{onEdit && ( )} {onDelete && ( )}
); }