From e42831cfa901ce08d5b46ccccfac779a9d06474c Mon Sep 17 00:00:00 2001 From: neodk2004 Date: Mon, 5 Oct 2026 07:49:56 +0200 Subject: [PATCH] =?UTF-8?q?fix(admin):=20Feinschliff=20nach=20Live-Pr?= =?UTF-8?q?=C3=BCfung=20des=20neuen=20Admin-Panels?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Website-Theme (next-themes) überschrieb dark/color-scheme auf nachträglich → dunkler Scrollbalken, schwarzer Schalter im Hellmodus; Admin-Wahl wird jetzt per MutationObserver durchgesetzt - Trend bei kleiner Vergleichsbasis absolut (+15 statt +1500 %) - Diagramm: ganzzahlige y-Achse, keine überlappenden Datumslabels, breiter - Suche: Tierart als Unterzeile, Kürzel „/“ nur bei leerem Feld - Kopfzeile: Platzhalter statt „Admin“, solange der Name lädt Co-Authored-By: Claude Opus 5.5 --- src/__tests__/admin-overview.test.ts | 6 ++-- src/app/p/[secret]/layout.tsx | 3 +- src/components/admin/AdminSearch.tsx | 12 ++++---- src/components/admin/AdminThemeToggle.tsx | 36 ++++++++++++++++++----- src/components/admin/AdminTopbar.tsx | 10 +++++-- src/components/admin/TimeSeriesChart.tsx | 16 ++++++---- src/lib/admin/format.test.ts | 9 ++++-- src/lib/admin/format.ts | 11 +++++-- src/trpc/routers/admin-overview.ts | 16 ++++++++-- 9 files changed, 89 insertions(+), 30 deletions(-) diff --git a/src/__tests__/admin-overview.test.ts b/src/__tests__/admin-overview.test.ts index 093d73e..dbcb429 100644 --- a/src/__tests__/admin-overview.test.ts +++ b/src/__tests__/admin-overview.test.ts @@ -122,7 +122,9 @@ describe("adminOverview", () => { describe("search", () => { it("finds pets by name or nickname and owners via Clerk", async () => { - prisma.pet.findMany.mockResolvedValue([{ id: "p1", name: "Berli", nickname: null, avatarKey: null }]); + prisma.pet.findMany.mockResolvedValue([ + { id: "p1", name: "Berli", nickname: null, avatarKey: null, species: { name: "Cat", translations: [{ name: "Katze" }] } }, + ]); mockGetUserList.mockResolvedValue({ data: [{ id: "user_1", firstName: "Anna", lastName: null, primaryEmailAddress: { emailAddress: "anna@example.com" }, emailAddresses: [] }], }); @@ -134,7 +136,7 @@ describe("adminOverview", () => { ); expect(mockGetUserList).toHaveBeenCalledWith({ query: "berl", limit: 6 }); expect(result).toEqual({ - pets: [{ id: "p1", name: "Berli", nickname: null, avatarUrl: null }], + pets: [{ id: "p1", name: "Berli", nickname: null, species: "Katze", avatarUrl: null }], owners: [{ id: "user_1", name: "Anna", email: "anna@example.com" }], }); }); diff --git a/src/app/p/[secret]/layout.tsx b/src/app/p/[secret]/layout.tsx index 11859a0..62c8514 100644 --- a/src/app/p/[secret]/layout.tsx +++ b/src/app/p/[secret]/layout.tsx @@ -61,8 +61,9 @@ export default async function AdminLayout({ children, params }: AdminLayoutProps
-