From e82a10cb8b591ef77bdd6abcc1f45f82ec289a43 Mon Sep 17 00:00:00 2001 From: Codex Agent Date: Tue, 6 Jan 2026 12:22:12 +0100 Subject: [PATCH] Adjust event defaults and nav width --- .../js/admin/i18n/locales/de/management.json | 2 +- resources/js/admin/mobile/EventFormPage.tsx | 6 +++--- .../admin/mobile/__tests__/EventFormPage.test.tsx | 15 +++++++++++++++ .../js/admin/mobile/components/BottomNav.tsx | 2 +- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/resources/js/admin/i18n/locales/de/management.json b/resources/js/admin/i18n/locales/de/management.json index 8032e74..3d35c76 100644 --- a/resources/js/admin/i18n/locales/de/management.json +++ b/resources/js/admin/i18n/locales/de/management.json @@ -1704,7 +1704,7 @@ "fields": { "name": { "label": "Eventname", - "placeholder": "z. B. Sommerfest 2025", + "placeholder": "z. B. Hochzeit von Franziska & Florian", "help": "Die Kennung und Event-URL werden automatisch aus dem Namen generiert.", "fallback": "Event" }, diff --git a/resources/js/admin/mobile/EventFormPage.tsx b/resources/js/admin/mobile/EventFormPage.tsx index 51262ff..f1328d8 100644 --- a/resources/js/admin/mobile/EventFormPage.tsx +++ b/resources/js/admin/mobile/EventFormPage.tsx @@ -94,9 +94,9 @@ export default function MobileEventFormPage() { try { const types = await getEventTypes(); setEventTypes(types); - // Default to first type if none set - if (!form.eventTypeId && types.length) { - setForm((prev) => ({ ...prev, eventTypeId: types[0].id })); + const preferredType = types.find((type) => type.slug === 'wedding') ?? types[0] ?? null; + if (preferredType) { + setForm((prev) => (prev.eventTypeId ? prev : { ...prev, eventTypeId: preferredType.id })); } } catch { // silently ignore; fallback to null diff --git a/resources/js/admin/mobile/__tests__/EventFormPage.test.tsx b/resources/js/admin/mobile/__tests__/EventFormPage.test.tsx index 6e3eed7..ea35d78 100644 --- a/resources/js/admin/mobile/__tests__/EventFormPage.test.tsx +++ b/resources/js/admin/mobile/__tests__/EventFormPage.test.tsx @@ -81,6 +81,7 @@ vi.mock('../theme', () => ({ }), })); +import { getEventTypes } from '../../api'; import MobileEventFormPage from '../EventFormPage'; describe('MobileEventFormPage', () => { @@ -94,4 +95,18 @@ describe('MobileEventFormPage', () => { expect(backMock).toHaveBeenCalled(); }); + + it('defaults event type to wedding when available', async () => { + vi.mocked(getEventTypes).mockResolvedValueOnce([ + { id: 11, slug: 'conference', name: 'Conference', name_translations: {}, icon: null, settings: {} }, + { id: 22, slug: 'wedding', name: 'Wedding', name_translations: {}, icon: null, settings: {} }, + ]); + + await act(async () => { + render(); + }); + + const select = screen.getByRole('combobox'); + expect(select).toHaveValue('22'); + }); }); diff --git a/resources/js/admin/mobile/components/BottomNav.tsx b/resources/js/admin/mobile/components/BottomNav.tsx index 61d6853..516abd4 100644 --- a/resources/js/admin/mobile/components/BottomNav.tsx +++ b/resources/js/admin/mobile/components/BottomNav.tsx @@ -47,7 +47,7 @@ export function BottomNav({ active, onNavigate }: { active: NavKey; onNavigate: WebkitBackdropFilter: 'blur(14px)', }} > - + {items.map((item) => { const activeState = item.key === active; const isPressed = pressedKey === item.key;