import { useEffect, useState } from 'react'; import { Modal, Input, Typography, Switch, Button, ConfigProvider, Divider } from 'antd'; import { NotifAlert, NotifOk } from '../../../../components/Global/ToastNotif'; import { createShift, updateShift } from '../../../../api/master-shift'; const { Text } = Typography; const DetailShift = (props) => { const [confirmLoading, setConfirmLoading] = useState(false); const readOnly = props.actionMode === 'preview'; const defaultData = { id: '', nama_shift: '', jam_shift: '', status: true, // default to active }; const [FormData, setFormData] = useState(defaultData); const handleCancel = () => { props.setSelectedData(null); props.setActionMode('list'); }; const handleSave = async () => { setConfirmLoading(true); if (!FormData.nama_shift) { NotifOk({ icon: 'warning', title: 'Peringatan', message: 'Kolom Nama Shift Tidak Boleh Kosong' }); setConfirmLoading(false); return; } if (!FormData.jam_shift) { NotifOk({ icon: 'warning', title: 'Peringatan', message: 'Kolom Jam Shift Tidak Boleh Kosong' }); setConfirmLoading(false); return; } const payload = { nama_shift: FormData.nama_shift, jam_shift: FormData.jam_shift, status: FormData.status, }; try { if (FormData.id) { props.onUpdate(payload); } else { props.onAdd(payload); } NotifOk({ icon: 'success', title: 'Berhasil', message: `Data Shift "${payload.nama_shift}" berhasil ${FormData.id ? 'diubah' : 'ditambahkan'}.`, }); } catch (error) { console.error('Save Shift Error:', error); NotifAlert({ icon: 'error', title: 'Error', message: error.message || 'Terjadi kesalahan pada server. Coba lagi nanti.', }); } setConfirmLoading(false); }; const handleInputChange = (e) => { const { name, value } = e.target; setFormData({ ...FormData, [name]: value }); }; const handleStatusToggle = (checked) => { setFormData({ ...FormData, status: checked }); }; useEffect(() => { if (props.selectedData) { setFormData(props.selectedData); } else { setFormData(defaultData); } }, [props.actionMode, props.selectedData]); return ( {!readOnly && ( )} , ]} > {FormData && (
Status
{FormData.status === true ? 'Active' : 'Inactive'}
Nama Shift *
Jam Shift *
)}
); }; export default DetailShift;