Adjust event defaults and nav width
This commit is contained in:
@@ -1704,7 +1704,7 @@
|
|||||||
"fields": {
|
"fields": {
|
||||||
"name": {
|
"name": {
|
||||||
"label": "Eventname",
|
"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.",
|
"help": "Die Kennung und Event-URL werden automatisch aus dem Namen generiert.",
|
||||||
"fallback": "Event"
|
"fallback": "Event"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -94,9 +94,9 @@ export default function MobileEventFormPage() {
|
|||||||
try {
|
try {
|
||||||
const types = await getEventTypes();
|
const types = await getEventTypes();
|
||||||
setEventTypes(types);
|
setEventTypes(types);
|
||||||
// Default to first type if none set
|
const preferredType = types.find((type) => type.slug === 'wedding') ?? types[0] ?? null;
|
||||||
if (!form.eventTypeId && types.length) {
|
if (preferredType) {
|
||||||
setForm((prev) => ({ ...prev, eventTypeId: types[0].id }));
|
setForm((prev) => (prev.eventTypeId ? prev : { ...prev, eventTypeId: preferredType.id }));
|
||||||
}
|
}
|
||||||
} catch {
|
} catch {
|
||||||
// silently ignore; fallback to null
|
// silently ignore; fallback to null
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ vi.mock('../theme', () => ({
|
|||||||
}),
|
}),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
import { getEventTypes } from '../../api';
|
||||||
import MobileEventFormPage from '../EventFormPage';
|
import MobileEventFormPage from '../EventFormPage';
|
||||||
|
|
||||||
describe('MobileEventFormPage', () => {
|
describe('MobileEventFormPage', () => {
|
||||||
@@ -94,4 +95,18 @@ describe('MobileEventFormPage', () => {
|
|||||||
|
|
||||||
expect(backMock).toHaveBeenCalled();
|
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(<MobileEventFormPage />);
|
||||||
|
});
|
||||||
|
|
||||||
|
const select = screen.getByRole('combobox');
|
||||||
|
expect(select).toHaveValue('22');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ export function BottomNav({ active, onNavigate }: { active: NavKey; onNavigate:
|
|||||||
WebkitBackdropFilter: 'blur(14px)',
|
WebkitBackdropFilter: 'blur(14px)',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<XStack justifyContent="space-between" alignItems="center">
|
<XStack width="100%" maxWidth={800} marginHorizontal="auto" justifyContent="space-between" alignItems="center">
|
||||||
{items.map((item) => {
|
{items.map((item) => {
|
||||||
const activeState = item.key === active;
|
const activeState = item.key === active;
|
||||||
const isPressed = pressedKey === item.key;
|
const isPressed = pressedKey === item.key;
|
||||||
|
|||||||
Reference in New Issue
Block a user