+
+
Journal-Einträge
+
+
+
+
+
+ {error ? (
+
+ ) : null}
+ {loading ?
Lade Einträge...
: null}
+ {!loading && entries.length === 0 ? (
+
Noch keine Einträge vorhanden.
+ ) : null}
+
+ setFilters((prev) => ({ ...prev, query: event.target.value }))}
+ placeholder="Suche..."
+ className="min-w-[140px] flex-1 border border-gray-300 rounded-md px-3 py-2 text-sm"
+ />
+ setFilters((prev) => ({ ...prev, dateFrom: event.target.value }))}
+ className="min-w-[140px]"
+ />
+ setFilters((prev) => ({ ...prev, dateTo: event.target.value }))}
+ className="min-w-[140px]"
+ />
+
+
+
+
+ {filteredEntries.map((entry) => {
+ const reminder = entry.reminder || {};
+ const reminderLabel = reminder.enabled
+ ? `${intervalLabels[reminder.interval] || 'Jährlich'}, ${reminder.daysBefore} Tage vorher`
+ : 'Keine Erinnerung';
+ const storeLabel =
+ entry.storeName ||
+ storeLabelMap.get(String(entry.storeId)) ||
+ `Store ${entry.storeId}`;
+ const mainImage = Array.isArray(entry.images) && entry.images.length > 0 ? entry.images[0] : null;
+ return (
+
+
+
+ {mainImage ? (
+
+
+

+ showHoverPreview(event, mainImage, { width: 720, height: 540 })
+ }
+ onMouseLeave={hideHoverPreview}
+ />
+
+
+ ) : (
+
+ Kein Bild
+
+ )}
+
+
+
+
+
{entry.pickupDate}
+
+ {storeLabel}
+
+
+
+
+
+
+
+ {entry.note ?
{entry.note}
: null}
+
{reminderLabel}
+ {Array.isArray(entry.images) && entry.images.length > 1 ? (
+
+ {entry.images.slice(1).map((image) => (
+
+
+

+ showHoverPreview(event, image, { width: 600, height: 450 })
+ }
+ onMouseLeave={hideHoverPreview}
+ />
+
+
+ ))}
+
+ ) : null}
+
+
+
+ );
+ })}
+ {!loading && entries.length > 0 && filteredEntries.length === 0 ? (
+
Keine Einträge für die aktuellen Filter.
+ ) : null}
+
+