feat: update shift management with jadwal shift integration and improved error handling

This commit is contained in:
2025-10-13 23:13:40 +07:00
parent 5ed5ee26bf
commit 973713286f
5 changed files with 192 additions and 76 deletions

View File

@@ -1,10 +1,39 @@
import { useState } from 'react';
import { useState, useEffect } from 'react';
import ListJadwalShift from './component/ListJadwalShift';
import DetailJadwalShift from './component/DetailJadwalShift';
import { getAllJadwalShift, deleteJadwalShift } from '../../api/jadwal-shift';
const IndexJadwalShift = () => {
const [actionMode, setActionMode] = useState('list');
const [selectedData, setSelectedData] = useState(null);
const [jadwalShiftData, setJadwalShiftData] = useState([]);
const [loading, setLoading] = useState(false);
const fetchData = async () => {
setLoading(true);
try {
const response = await getAllJadwalShift(new URLSearchParams());
if (response.data) {
setJadwalShiftData(response.data.data);
}
} catch (error) {
console.error("Error fetching jadwal shift data:", error);
}
setLoading(false);
};
useEffect(() => {
fetchData();
}, []);
const handleDelete = async (id) => {
try {
await deleteJadwalShift(id);
fetchData();
} catch (error) {
console.error("Error deleting jadwal shift:", error);
}
};
return (
<>
@@ -12,6 +41,9 @@ const IndexJadwalShift = () => {
<ListJadwalShift
setActionMode={setActionMode}
setSelectedData={setSelectedData}
jadwalShiftData={jadwalShiftData}
loading={loading}
onDelete={handleDelete}
/>
)}
{(actionMode === 'add' || actionMode === 'edit') && (
@@ -19,6 +51,8 @@ const IndexJadwalShift = () => {
actionMode={actionMode}
selectedData={selectedData}
setActionMode={setActionMode}
setSelectedData={setSelectedData}
fetchData={fetchData}
/>
)}
</>