diff --git a/src/app/production/recording/detail/edit/page.tsx b/src/app/production/recording/detail/edit/page.tsx index ad6c6a9a..aa5f1f46 100644 --- a/src/app/production/recording/detail/edit/page.tsx +++ b/src/app/production/recording/detail/edit/page.tsx @@ -11,10 +11,13 @@ const RecordingEdit = () => { const searchParams = useSearchParams(); const recordingId = searchParams.get('recordingId'); + const recordingDetailKey = recordingId + ? ['recording-detail', recordingId] + : null; const { data: recording, isLoading: isLoadingRecording } = useSWR( - recordingId, - (id: string) => RecordingApi.getSingle(parseInt(id)) + recordingDetailKey, + ([, id]: [string, string]) => RecordingApi.getSingle(parseInt(id)) ); if (!recordingId) { diff --git a/src/app/production/recording/detail/page.tsx b/src/app/production/recording/detail/page.tsx index 194365a3..136c4283 100644 --- a/src/app/production/recording/detail/page.tsx +++ b/src/app/production/recording/detail/page.tsx @@ -11,10 +11,13 @@ const RecordingDetail = () => { const searchParams = useSearchParams(); const recordingId = searchParams.get('recordingId'); + const recordingDetailKey = recordingId + ? ['recording-detail', recordingId] + : null; const { data: recording, isLoading: isLoadingRecording } = useSWR( - recordingId, - (id: string) => RecordingApi.getSingle(parseInt(id)) + recordingDetailKey, + ([, id]: [string, string]) => RecordingApi.getSingle(parseInt(id)) ); if (!recordingId) { diff --git a/src/components/pages/production/recording/form/RecordingForm.tsx b/src/components/pages/production/recording/form/RecordingForm.tsx index 0ac34983..2a044874 100644 --- a/src/components/pages/production/recording/form/RecordingForm.tsx +++ b/src/components/pages/production/recording/form/RecordingForm.tsx @@ -4,7 +4,7 @@ import { useMemo, useState, useEffect, useCallback } from 'react'; import { useRouter } from 'next/navigation'; import { useFormik } from 'formik'; -import useSWR from 'swr'; +import useSWR, { useSWRConfig } from 'swr'; import { Icon } from '@iconify/react'; import Button from '@/components/Button'; @@ -183,6 +183,7 @@ const productionStandardColumns: ColumnDef[] = [ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => { // ===== HOOKS & ROUTER ===== const router = useRouter(); + const { mutate } = useSWRConfig(); // ===== STATE MANAGEMENT ===== const [selectedRecordDate, setSelectedRecordDate] = useState( @@ -319,11 +320,12 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => { setRecordingFormErrorMessage(res.message); return; } + await mutate(['recording-detail', recordingId.toString()]); toast.success(res?.message as string); router.refresh(); router.push('/production/recording'); }, - [router] + [mutate, router] ); const deleteRecordingClickHandler = useCallback(() => {