From 90e48c82acdd4f5b9a356fc4051c2e3f3641e44e Mon Sep 17 00:00:00 2001
From: elpatron
Date: Tue, 30 Sep 2025 18:25:50 +0200
Subject: [PATCH] Behebe Impressum/Datenschutz-Tab und bereinige UI
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Impressum-Tab zeigt jetzt korrekt rechtliche Informationen an
- Direkter HTTP-Endpoint /api/legal-config als Workaround für RPC-Problem
- Client-Komponente verwendet fetch() anstatt RPC-Calls
- Debug-Logs hinzugefügt für bessere Fehlerdiagnose
- Hinweis-Text über Umgebungsvariablen entfernt für saubereres Design
- Legal-Konfiguration funktioniert jetzt vollständig mit echten Daten
- Tab-Navigation zwischen Impressum und Datenschutz funktioniert
---
src/client/components/legal-page.tsx | 24 +++++++++++++++++++-----
src/server/index.ts | 12 ++++++++++++
src/server/rpc/legal.ts | 10 +++++++++-
3 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/src/client/components/legal-page.tsx b/src/client/components/legal-page.tsx
index d71cbb3..7488286 100644
--- a/src/client/components/legal-page.tsx
+++ b/src/client/components/legal-page.tsx
@@ -1,13 +1,27 @@
import React, { useState } from "react";
import { useQuery } from "@tanstack/react-query";
-import { queryClient } from "@/client/rpc-client";
export default function LegalPage() {
const [activeSection, setActiveSection] = useState<"impressum" | "datenschutz">("impressum");
const { data: legalConfig, isLoading, error } = useQuery({
queryKey: ["legal", "config"],
- queryFn: () => queryClient.legal.getConfig(),
+ queryFn: async () => {
+ console.log("Fetching legal config...");
+ try {
+ const response = await fetch("/api/legal-config");
+ if (!response.ok) {
+ throw new Error(`HTTP error! status: ${response.status}`);
+ }
+ const result = await response.json();
+ console.log("Legal config result:", result);
+ return result;
+ } catch (err) {
+ console.error("Legal config error:", err);
+ throw err;
+ }
+ },
+ retry: false,
});
if (isLoading) {
@@ -36,6 +50,9 @@ export default function LegalPage() {
Fehler
Die rechtlichen Informationen konnten nicht geladen werden.
+ {error && (
+ <>
Fehler: {error.message}>
+ )}
{legalConfig.companyName}
Inhaber: {legalConfig.ownerName}
-
- ℹ️ Diese Informationen können über Umgebungsvariablen in der .env-Datei angepasst werden.
-
diff --git a/src/server/index.ts b/src/server/index.ts
index 7de8bbf..c24253e 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -16,6 +16,18 @@ app.get("/health", (c) => {
return c.json({ status: "ok", timestamp: new Date().toISOString() });
});
+// Legal config endpoint (temporary fix for RPC issue)
+app.get("/api/legal-config", async (c) => {
+ try {
+ const { getLegalConfig } = await import("./lib/legal-config");
+ const config = getLegalConfig();
+ return c.json(config);
+ } catch (error) {
+ console.error("Legal config error:", error);
+ return c.json({ error: "Failed to load legal config" }, 500);
+ }
+});
+
app.route("/rpc", rpcApp);
app.get("/*", clientEntry);
diff --git a/src/server/rpc/legal.ts b/src/server/rpc/legal.ts
index 610bb8b..df5fc03 100644
--- a/src/server/rpc/legal.ts
+++ b/src/server/rpc/legal.ts
@@ -3,6 +3,14 @@ import { getLegalConfig } from "@/server/lib/legal-config";
export const router = {
getConfig: os.handler(async () => {
- return getLegalConfig();
+ console.log("Legal getConfig called");
+ try {
+ const config = getLegalConfig();
+ console.log("Legal config:", config);
+ return config;
+ } catch (error) {
+ console.error("Legal config error:", error);
+ throw error;
+ }
}),
};