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

@@ -348,7 +348,7 @@ const templatePegawai = z.object({
}
const result = await response.json();
if (result?.success) {
const data = result.data;
this.id = data.id;

View File

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

View File

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

View File

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

View File

@@ -51,7 +51,7 @@ const Pegawai = new Elysia({
telepon: t.Optional(t.String()),
alamat: 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 = true; // fallback
}
body.isActive = String(body.isActive).toLowerCase() === 'true';
try {
const updated = await prisma.pegawai.update({