diff --git a/src/components/admin-image-field.tsx b/src/components/admin-image-field.tsx index 3881c82..8382399 100644 --- a/src/components/admin-image-field.tsx +++ b/src/components/admin-image-field.tsx @@ -1,5 +1,6 @@ "use client"; +import Image from "next/image"; import { useRef, useState, type ChangeEvent } from "react"; import { useI18n } from "@/i18n/i18n-provider"; @@ -56,8 +57,15 @@ export function AdminImageField({ name, label, initialValue }: AdminImageFieldPr
{value ? ( - // eslint-disable-next-line @next/next/no-img-element -- kleine Admin-Vorschau, next/image lohnt hier nicht. - + // Ueber next/image statt als rohes : gespeichert wird ein Bild + // mit bis zu MAX_IMAGE_DIMENSION Kantenlaenge (siehe lib/uploads.ts), + // also durchaus ein paar hundert KB. Als rohes laedt die + // Admin-Seite dieses Vollbild fuer eine 80x80-Kachel — bei einem + // Formular mit mehreren Bildern summiert sich das spuerbar. Der + // Optimierer liefert stattdessen genau die gebrauchte Groesse. +
+ +
) : (
{t.adminImageField.none} diff --git a/src/components/admin-image-list-field.tsx b/src/components/admin-image-list-field.tsx index 5d1d2b3..fff0d13 100644 --- a/src/components/admin-image-list-field.tsx +++ b/src/components/admin-image-list-field.tsx @@ -1,5 +1,6 @@ "use client"; +import Image from "next/image"; import { useRef, useState, type ChangeEvent } from "react"; import { useI18n } from "@/i18n/i18n-provider"; @@ -67,8 +68,13 @@ export function AdminImageListField({ name, label, initialValues }: AdminImageLi
{images.map((src, i) => (
- {/* eslint-disable-next-line @next/next/no-img-element -- kleine Admin-Vorschau, next/image lohnt hier nicht. */} - + {/* Ueber next/image statt als rohes — siehe Begruendung in + admin-image-field.tsx. Hier wiegt es schwerer, weil ein + Produkt mehrere Bilder tragen kann und sonst JEDES davon in + voller Groesse fuer eine Miniatur geladen wuerde. */} +
+ +