Refresh event list after create
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
tests / ui (push) Has been cancelled

This commit is contained in:
Codex Agent
2026-01-16 14:25:52 +01:00
parent 30c653913d
commit 9a4ece33bf
2 changed files with 26 additions and 0 deletions

View File

@@ -1,5 +1,6 @@
import React from 'react';
import { useNavigate, useParams } from 'react-router-dom';
import { useQueryClient } from '@tanstack/react-query';
import { useTranslation } from 'react-i18next';
import { CalendarDays, ChevronDown, MapPin } from 'lucide-react';
import { YStack, XStack } from '@tamagui/stacks';
@@ -31,6 +32,7 @@ import { useBackNavigation } from './hooks/useBackNavigation';
import { useAdminTheme } from './theme';
import { withAlpha } from './components/colors';
import { useAuth } from '../auth/context';
import { useEventContext } from '../context/EventContext';
type FormState = {
name: string;
@@ -52,6 +54,8 @@ export default function MobileEventFormPage() {
const navigate = useNavigate();
const { t } = useTranslation(['management', 'common']);
const { user } = useAuth();
const { selectEvent, refetch } = useEventContext();
const queryClient = useQueryClient();
const { text, muted, subtle, danger, border, surface, primary } = useAdminTheme();
const isSuperAdmin = user?.role === 'super_admin' || user?.role === 'superadmin';
@@ -259,6 +263,9 @@ export default function MobileEventFormPage() {
},
} as Parameters<typeof createEvent>[0];
const { event } = await createEvent(payload);
selectEvent(event.slug);
void queryClient.invalidateQueries({ queryKey: ['tenant-events'] });
void refetch();
void trackOnboarding('event_created', { event_id: event.id });
navigate(adminPath(`/mobile/events/${event.slug}`));
}
@@ -307,6 +314,9 @@ export default function MobileEventFormPage() {
...pendingPayload,
accepted_waiver: consents.acceptedWaiver,
});
selectEvent(event.slug);
void queryClient.invalidateQueries({ queryKey: ['tenant-events'] });
void refetch();
void trackOnboarding('event_created', { event_id: event.id });
navigate(adminPath(`/mobile/events/${event.slug}`));
setConsentOpen(false);

View File

@@ -4,12 +4,21 @@ import { act, fireEvent, render, screen } from '@testing-library/react';
const backMock = vi.fn();
const navigateMock = vi.fn();
const selectEventMock = vi.fn();
const refetchMock = vi.fn();
const invalidateQueriesMock = vi.fn();
vi.mock('react-router-dom', () => ({
useNavigate: () => navigateMock,
useParams: () => ({}),
}));
vi.mock('@tanstack/react-query', () => ({
useQueryClient: () => ({
invalidateQueries: invalidateQueriesMock,
}),
}));
vi.mock('../hooks/useBackNavigation', () => ({
useBackNavigation: () => backMock,
}));
@@ -92,6 +101,13 @@ vi.mock('../../auth/context', () => ({
useAuth: () => ({ user: { role: 'tenant_admin' } }),
}));
vi.mock('../../context/EventContext', () => ({
useEventContext: () => ({
selectEvent: selectEventMock,
refetch: refetchMock,
}),
}));
import { getEventTypes } from '../../api';
import MobileEventFormPage from '../EventFormPage';