Fix Tabs Pegawai, Submenu Struktur & Organisasi, Menu Ekonomi

This commit is contained in:
2025-07-08 12:05:10 +08:00
parent 7e95d5fbb4
commit bffe648802
6 changed files with 14 additions and 25 deletions

View File

@@ -55,10 +55,6 @@ export default function EditPegawai() {
isActive: true, isActive: true,
}); });
const statusOptions = [
{ value: true, label: 'Aktif' },
{ value: false, label: 'Tidak Aktif' },
];
// Format date to YYYY-MM-DD for date input // Format date to YYYY-MM-DD for date input
const formatDateForInput = (dateString: string) => { const formatDateForInput = (dateString: string) => {
@@ -121,6 +117,8 @@ export default function EditPegawai() {
isActive: formData.isActive, isActive: formData.isActive,
}; };
if (id && !stateOrganisasi.edit.id) { if (id && !stateOrganisasi.edit.id) {
stateOrganisasi.edit.id = id; stateOrganisasi.edit.id = id;
} }
@@ -134,6 +132,9 @@ export default function EditPegawai() {
console.error("Error updating pegawai:", error); console.error("Error updating pegawai:", error);
toast.error(error instanceof Error ? error.message : "Gagal memperbarui data pegawai"); toast.error(error instanceof Error ? error.message : "Gagal memperbarui data pegawai");
} }
}; };
return ( return (
@@ -254,16 +255,17 @@ export default function EditPegawai() {
/> />
<Select <Select
label="Status Pegawai" label="Status Pegawai"
data={statusOptions.map((s) => ({ data={[
value: String(s.value), { value: 'true', label: 'Aktif' },
label: s.label, { value: 'false', label: 'Tidak Aktif' },
}))} ]}
value={String(formData.isActive)} value={String(formData.isActive)} // 'true' atau 'false'
onChange={(val) => { onChange={(val) => {
setFormData({ ...formData, isActive: val === 'true' }); setFormData({ ...formData, isActive: val === 'true' });
}} }}
/> />
<Group> <Group>
<Button <Button
onClick={handleSubmit} onClick={handleSubmit}

View File

@@ -32,7 +32,6 @@ function ListPegawai({ search }: { search: string }) {
useShallowEffect(() => { useShallowEffect(() => {
const loadData = async () => { const loadData = async () => {
console.log('1. Starting to load pegawai data...');
try { try {
// Clear existing data to ensure we see the loading state // Clear existing data to ensure we see the loading state
stateOrganisasi.findMany.data = []; stateOrganisasi.findMany.data = [];
@@ -40,12 +39,8 @@ function ListPegawai({ search }: { search: string }) {
// Load new data // Load new data
await stateOrganisasi.findMany.load(); await stateOrganisasi.findMany.load();
// Log the raw response and state
console.log('2. Raw API response:', stateOrganisasi.findMany.data);
// Type guard to ensure data is an array // Type guard to ensure data is an array
const data = stateOrganisasi.findMany.data || []; const data = stateOrganisasi.findMany.data || [];
console.log(`3. Loaded ${data.length} pegawai records`);
if (data.length > 0) { if (data.length > 0) {
console.log('4. First record sample:', data[0]); console.log('4. First record sample:', data[0]);
} }
@@ -75,7 +70,6 @@ function ListPegawai({ search }: { search: string }) {
// Handle loading state // Handle loading state
if (stateOrganisasi.findMany.data === null) { if (stateOrganisasi.findMany.data === null) {
console.log('Showing loading state');
return ( return (
<Stack py={10}> <Stack py={10}>
<Skeleton height={300} /> <Skeleton height={300} />
@@ -86,7 +80,6 @@ function ListPegawai({ search }: { search: string }) {
// Check if data is an empty array // Check if data is an empty array
const data = stateOrganisasi.findMany.data || []; const data = stateOrganisasi.findMany.data || [];
if (data.length === 0) { if (data.length === 0) {
console.log('No data available to display');
return ( return (
<Box py={10}> <Box py={10}>
<Paper p="md" ta="center"> <Paper p="md" ta="center">

View File

@@ -119,7 +119,6 @@ function CreatePolsekTerdekat() {
body: JSON.stringify({ nama: namaLayananBaru }), body: JSON.stringify({ nama: namaLayananBaru }),
}); });
const data = await res.json(); const data = await res.json();
console.log("data setelah create:", data);
if (data.success) { if (data.success) {
const newLayanan = { const newLayanan = {
@@ -150,7 +149,6 @@ function CreatePolsekTerdekat() {
body: JSON.stringify({ nama: namaBaru }), body: JSON.stringify({ nama: namaBaru }),
}); });
const data = await res.json(); const data = await res.json();
console.log("data setelah update:", data);
if (data.success) { if (data.success) {
await fetchLayanan(); // Refresh list await fetchLayanan(); // Refresh list
@@ -174,7 +172,6 @@ function CreatePolsekTerdekat() {
method: "DELETE", method: "DELETE",
}); });
const data = await res.json(); const data = await res.json();
console.log("data setelah delete:", data);
if (data.success) { if (data.success) {
await fetchLayanan(); // Refresh list await fetchLayanan(); // Refresh list

View File

@@ -51,7 +51,7 @@ const Pegawai = new Elysia({
telepon: t.Optional(t.String()), telepon: t.Optional(t.String()),
alamat: t.Optional(t.String()), alamat: t.Optional(t.String()),
posisiId: t.Optional(t.String()), posisiId: t.Optional(t.String()),
aktif: t.Optional(t.Boolean()), isActive: t.Optional(t.Boolean()),
}), }),
} }
) )

View File

@@ -25,10 +25,7 @@ export default async function pegawaiUpdate(context: Context) {
}; };
} }
if (typeof body.isActive !== 'boolean') { body.isActive = String(body.isActive).toLowerCase() === 'true';
body.isActive = true; // fallback
}
try { try {
const updated = await prisma.pegawai.update({ const updated = await prisma.pegawai.update({