import { useEffect, useState } from 'react'; import { Modal, Input, Divider, Typography, Switch, Button, ConfigProvider, Select } from 'antd'; import { NotifAlert, NotifOk } from '../../../../components/Global/ToastNotif'; const { Text } = Typography; const DetailPlantSection = (props) => { const [confirmLoading, setConfirmLoading] = useState(false); const defaultData = { plant_section_id: '', plantName: '', sectionName: '', status: true, }; const [FormData, setFormData] = useState(defaultData); const handleCancel = () => { props.setSelectedData(null); props.setActionMode('list'); }; const handleSave = async () => { setConfirmLoading(true); if (!FormData.plantName) { NotifOk({ icon: 'warning', title: 'Peringatan', message: 'Kolom Plant Name Tidak Boleh Kosong', }); setConfirmLoading(false); return; } if (!FormData.sectionName) { NotifOk({ icon: 'warning', title: 'Peringatan', message: 'Kolom Section Name Tidak Boleh Kosong', }); setConfirmLoading(false); return; } const payload = { plantName: FormData.plantName, sectionName: FormData.sectionName, status: FormData.status, }; try { await new Promise((resolve) => setTimeout(resolve, 500)); const response = { statusCode: FormData.plant_section_id ? 200 : 201, data: { plantName: FormData.plantName, sectionName: FormData.sectionName, }, }; if (response && (response.statusCode === 200 || response.statusCode === 201)) { NotifOk({ icon: 'success', title: 'Berhasil', message: `Data Plant Section "${ response.data?.plantName || FormData.plantName } - ${response.data?.sectionName || FormData.sectionName}" berhasil ${FormData.plant_section_id ? 'diubah' : 'ditambahkan'}.`, }); props.setActionMode('list'); } else { NotifAlert({ icon: 'error', title: 'Gagal', message: response?.message || 'Terjadi kesalahan saat menyimpan data.', }); } } catch (error) { console.error('Save Plant Section 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 handleStatusChange = (value) => { setFormData({ ...FormData, status: value, }); }; useEffect(() => { const token = localStorage.getItem('token'); if (token) { if (props.selectedData != null) { setFormData(props.selectedData); } else { setFormData(defaultData); } } else { // navigate('/signin'); // Uncomment if useNavigate is imported } }, [props.showModal]); return ( {!props.readOnly && ( )} , ]} > {FormData && (
Status *
{FormData.status === true ? 'Active' : 'Inactive'}
Plant Name *
Section Name *
)}
); }; export default DetailPlantSection;