From 3dd36b8248dc3b8200598e34dd0ffdc7f9a5c3bf Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 11 Dec 2025 11:05:20 +0700 Subject: [PATCH] fix(FE): Parse recordingId and hide actions for rejected --- .../production/recording/detail/edit/page.tsx | 2 +- src/app/production/recording/detail/page.tsx | 2 +- .../production/recording/RecordingTable.tsx | 9 ++- .../recording/form/RecordingForm.tsx | 78 +++++++++++-------- 4 files changed, 56 insertions(+), 35 deletions(-) diff --git a/src/app/production/recording/detail/edit/page.tsx b/src/app/production/recording/detail/edit/page.tsx index de53a354..ad6c6a9a 100644 --- a/src/app/production/recording/detail/edit/page.tsx +++ b/src/app/production/recording/detail/edit/page.tsx @@ -14,7 +14,7 @@ const RecordingEdit = () => { const { data: recording, isLoading: isLoadingRecording } = useSWR( recordingId, - (id: number) => RecordingApi.getSingle(id) // Gunakan RecordingApi + (id: 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 77b82a68..194365a3 100644 --- a/src/app/production/recording/detail/page.tsx +++ b/src/app/production/recording/detail/page.tsx @@ -14,7 +14,7 @@ const RecordingDetail = () => { const { data: recording, isLoading: isLoadingRecording } = useSWR( recordingId, - (id: number) => RecordingApi.getSingle(id) + (id: string) => RecordingApi.getSingle(parseInt(id)) ); if (!recordingId) { diff --git a/src/components/pages/production/recording/RecordingTable.tsx b/src/components/pages/production/recording/RecordingTable.tsx index 965e6c9e..65cead2a 100644 --- a/src/components/pages/production/recording/RecordingTable.tsx +++ b/src/components/pages/production/recording/RecordingTable.tsx @@ -50,7 +50,12 @@ const RowOptionsMenu = ({ ); }; + const isRecordingRejected = (recording: Recording) => { + return recording.approval?.action === 'REJECTED'; + }; + const isApproved = isRecordingApproved(props.row.original); + const isRejected = isRecordingRejected(props.row.original); return ( @@ -72,7 +77,7 @@ const RowOptionsMenu = ({ Edit - {!isApproved && ( + {!isApproved && !isRejected && ( - {type === 'detail' && !isRecordingApproved(initialValues) && ( -
- + {type === 'detail' && + initialValues?.approval && + !isRecordingApproved(initialValues) && + !isRecordingRejected(initialValues) && ( +
+ - -
- )} + +
+ )}

@@ -2803,7 +2818,8 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => { {/* Approve Confirmation Modal */} {(type as 'add' | 'edit' | 'detail') === 'detail' && - !isRecordingApproved(initialValues) && ( + !isRecordingApproved(initialValues) && + !isRecordingRejected(initialValues) && (