From 51fdb93e97a3d1505a55cb975e465af760633015 Mon Sep 17 00:00:00 2001 From: Florian Wilde Date: Sat, 18 Jul 2026 08:14:49 +0200 Subject: [PATCH] =?UTF-8?q?Automatisch-=C3=BCbersetzen-Button=20nur=20bei?= =?UTF-8?q?=20konfiguriertem=20DEEPL=5FAPI=5FKEY?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Statt den Button immer anzuzeigen und erst nach Klick auf die fehlende Konfiguration hinzuweisen, wird er serverseitig anhand von process.env.DEEPL_API_KEY ein-/ausgeblendet (Gerichte, Allergene, Zusatzstoffe). Die dadurch überflüssige "translateUnavailable"- Meldung wurde aus allen drei Sprachen entfernt. --- app/intern/gerichte/page.tsx | 2 +- app/intern/kennzeichnung/page.tsx | 5 +-- components/CodeListManager.tsx | 53 +++++++++++++--------------- components/DishManager.tsx | 57 +++++++++++++++---------------- lib/i18n/dictionaries.ts | 6 ---- 5 files changed, 55 insertions(+), 68 deletions(-) diff --git a/app/intern/gerichte/page.tsx b/app/intern/gerichte/page.tsx index 96de7e9..c6ef73b 100644 --- a/app/intern/gerichte/page.tsx +++ b/app/intern/gerichte/page.tsx @@ -1,5 +1,5 @@ import DishManager from "@/components/DishManager"; export default function GerichtePage() { - return ; + return ; } diff --git a/app/intern/kennzeichnung/page.tsx b/app/intern/kennzeichnung/page.tsx index d965d2a..dcfbaed 100644 --- a/app/intern/kennzeichnung/page.tsx +++ b/app/intern/kennzeichnung/page.tsx @@ -1,10 +1,11 @@ import CodeListManager from "@/components/CodeListManager"; export default function KennzeichnungPage() { + const translateEnabled = !!process.env.DEEPL_API_KEY; return (
- - + +
); } diff --git a/components/CodeListManager.tsx b/components/CodeListManager.tsx index ed3b429..1a677dd 100644 --- a/components/CodeListManager.tsx +++ b/components/CodeListManager.tsx @@ -12,8 +12,10 @@ import { useDict, useLocale } from "@/components/i18n/LocaleProvider"; export default function CodeListManager({ table, + translateEnabled, }: { table: "allergens" | "additives"; + translateEnabled: boolean; }) { const supabase = useMemo(() => createClient(), []); const dict = useDict(); @@ -34,9 +36,9 @@ export default function CodeListManager({ namePl: string; } | null>(null); const [error, setError] = useState(null); - const [translateState, setTranslateState] = useState< - "idle" | "busy" | "done" | "unavailable" - >("idle"); + const [translateState, setTranslateState] = useState<"idle" | "busy" | "done">( + "idle" + ); const load = useCallback(async () => { const { data, error } = await supabase.from(table).select("*").order("sort"); @@ -115,10 +117,6 @@ export default function CodeListManager({ }); const data = await res.json(); if (!res.ok) throw new Error(data?.error ?? `Fehler (${res.status})`); - if (data.configured === false) { - setTranslateState("unavailable"); - return; - } setEditing((prev) => prev ? { ...prev, nameEn: data.en ?? prev.nameEn, namePl: data.pl ?? prev.namePl } : prev ); @@ -191,28 +189,25 @@ export default function CodeListManager({ /> -
- - {translateState === "done" && ( - - {dict.dishManager.translated} - - )} - {translateState === "unavailable" && ( - - {dict.dishManager.translateUnavailable} - - )} -
+ {translateEnabled && ( +
+ + {translateState === "done" && ( + + {dict.dishManager.translated} + + )} +
+ )}
-
- - {translateState === "done" && ( - - {dict.dishManager.translated} - - )} - {translateState === "unavailable" && ( - - {dict.dishManager.translateUnavailable} - - )} -
+ {translateEnabled && ( +
+ + {translateState === "done" && ( + + {dict.dishManager.translated} + + )} +
+ )}