diff --git a/src/components/pages/production/recording/RecordingTable.tsx b/src/components/pages/production/recording/RecordingTable.tsx index 6beb0954..a461e2d8 100644 --- a/src/components/pages/production/recording/RecordingTable.tsx +++ b/src/components/pages/production/recording/RecordingTable.tsx @@ -858,10 +858,7 @@ const RecordingTable = () => { const status = approval.action; const statusColor = getStatusBadgeColor(status); - const statusText = - status === 'REJECTED' - ? 'Ditolak' - : approval.step_name || getStatusText(status); + const statusText = approval.step_name || getStatusText(status); return ( = { + APPROVED: 'Disetujui', + Disetujui: 'Disetujui', + REJECTED: 'Ditolak', + Ditolak: 'Ditolak', + CREATED: 'Dibuat', + UPDATED: 'Diperbarui', +}; + +const getStatusText = (status: string): string => { + return statusTextMap[status] || status; +}; + +const statusBadgeColorMap: Record< + string, + 'success' | 'error' | 'neutral' | 'info' | 'warning' | 'primary' +> = { + APPROVED: 'success', + Disetujui: 'success', + approved: 'success', + disetujui: 'success', + REJECTED: 'error', + Ditolak: 'error', + rejected: 'error', + ditolak: 'error', + CREATED: 'neutral', + Dibuat: 'neutral', + created: 'neutral', + dibuat: 'neutral', + UPDATED: 'warning', + Diperbarui: 'warning', + updated: 'warning', + diperbarui: 'warning', +}; + +const getStatusBadgeColor = ( + status: string +): 'success' | 'error' | 'neutral' | 'info' | 'warning' | 'primary' => { + return statusBadgeColorMap[status] || 'neutral'; +}; + // ===== INTERFACES ===== interface RowOptionsMenuProps { type: 'dropdown' | 'collapse'; @@ -160,48 +202,48 @@ const PurchaseTable = () => { const approval = props.row.original.latest_approval; if (!approval) return '-'; - const isRejected = approval.action === 'REJECTED'; + const status = approval.action; let statusColor: | 'warning' | 'success' | 'neutral' | 'error' - | 'primary' - | 'info' = 'neutral'; + | 'info' + | 'primary' = 'neutral'; - switch (approval.step_number) { - case 1: - statusColor = 'neutral'; - break; - case 2: - statusColor = 'primary'; - break; - case 3: - statusColor = 'info'; - break; - case 4: - statusColor = 'warning'; - break; - case 5: - statusColor = 'success'; - break; + if (status === 'REJECTED') { + statusColor = getStatusBadgeColor(status); + } else { + switch (approval.step_number) { + case 1: + statusColor = 'neutral'; + break; + case 2: + statusColor = 'primary'; + break; + case 3: + statusColor = 'info'; + break; + case 4: + statusColor = 'warning'; + break; + case 5: + statusColor = 'success'; + break; + } } - if (isRejected) { - statusColor = 'error'; - } + const statusText = approval.step_name || getStatusText(status); return ( - - {isRejected ? 'Ditolak' : approval.step_name} - + /> ); }, }, @@ -369,6 +411,7 @@ const PurchaseTable = () => { text={`Apakah anda yakin ingin menghapus data permintaan pembelian ini?`} secondaryButton={{ text: 'Tidak', + onClick: () => deleteModal.closeModal(), }} primaryButton={{ text: 'Ya',