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;