From 3c21f7742c278a55b461803f536bcc1d4b275087 Mon Sep 17 00:00:00 2001 From: nico Date: Tue, 14 Oct 2025 10:38:55 +0800 Subject: [PATCH] Yang sudh dikerjakan: - Saat Mau minjam muncul modal data diri peminjam buku V - Ada Status Peminjamannya ( status buku bisa engga otomatis dipinjemnya), kalau dikembalikan statusnya otomatis ) Yang Mau Dikerjakan: Cek fungsi menu yang kompleks --- .../_state/pendidikan/perpustakaan-digital.ts | 35 ++++++++++++++ .../ppid/struktur_ppid/struktur_PPID.ts | 39 +++++++++++++++ .../pelayanan_penduduk_non_permanent/page.tsx | 2 +- .../pelayanan_perizinan_berusaha/page.tsx | 2 +- .../beasiswa-desa/_lib/layoutTabs.tsx | 6 ++- .../_lib/layoutTabs.tsx | 6 ++- .../info-sekolah/_lib/layoutTabs.tsx | 6 ++- .../pendidikan-non-formal/_lib/layoutTabs.tsx | 6 ++- .../perpustakaan-digital/_lib/layoutTabs.tsx | 6 ++- .../peminjam/[id]/edit/page.tsx | 23 ++++++--- .../_lib/layoutTabs.tsx | 6 ++- .../ppid/struktur-ppid/pegawai/page.tsx | 13 +---- .../struktur-organisasi/page.tsx | 8 ++-- src/app/admin/_com/list_PageAdmin.tsx | 19 +------- .../data-perpustakaan/findManyAll.ts | 48 +++++++++++++++++++ .../data-perpustakaan/index.ts | 3 +- .../ppid/struktur_ppid/pegawai/findMany.ts | 38 ++++++++------- .../ppid/struktur_ppid/pegawai/findManyAll.ts | 48 +++++++++++++++++++ .../_lib/ppid/struktur_ppid/pegawai/index.ts | 4 ++ .../_com/pelayananPendudukNonPermanent.tsx | 2 +- .../_com/pelayananPerizinanBerusaha.tsx | 2 +- .../(pages)/desa/potensi/[id]/page.tsx | 4 +- 22 files changed, 255 insertions(+), 71 deletions(-) create mode 100644 src/app/api/[[...slugs]]/_lib/pendidikan/perpustakaan-digital/data-perpustakaan/findManyAll.ts create mode 100644 src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/pegawai/findManyAll.ts diff --git a/src/app/admin/(dashboard)/_state/pendidikan/perpustakaan-digital.ts b/src/app/admin/(dashboard)/_state/pendidikan/perpustakaan-digital.ts index 6fee556c..341bbe79 100644 --- a/src/app/admin/(dashboard)/_state/pendidikan/perpustakaan-digital.ts +++ b/src/app/admin/(dashboard)/_state/pendidikan/perpustakaan-digital.ts @@ -95,6 +95,41 @@ const dataPerpustakaan = proxy({ } }, }, + findManyAll: { + data: null as + | Prisma.DataPerpustakaanGetPayload<{ + include: { + image: true; + kategori: true; + }; + }>[] + | null, + loading: false, + search: "", + load: async (search = "", kategori = "") => { + dataPerpustakaan.findMany.loading = true; // ✅ Akses langsung via nama path + dataPerpustakaan.findMany.search = search; + + try { + const query: any = {}; + if (search) query.search = search; + if (kategori) query.kategori = kategori; + + const res = await ApiFetch.api.pendidikan.perpustakaandigital.dataperpustakaan["findManyAll"].get({ query }); + + if (res.status === 200 && res.data?.success) { + dataPerpustakaan.findManyAll.data = res.data.data ?? []; + } else { + dataPerpustakaan.findManyAll.data = []; + } + } catch (err) { + console.error("Gagal fetch data perpustakaan paginated:", err); + dataPerpustakaan.findManyAll.data = []; + } finally { + dataPerpustakaan.findManyAll.loading = false; + } + }, + }, findUnique: { data: null as Prisma.DataPerpustakaanGetPayload<{ include: { diff --git a/src/app/admin/(dashboard)/_state/ppid/struktur_ppid/struktur_PPID.ts b/src/app/admin/(dashboard)/_state/ppid/struktur_ppid/struktur_PPID.ts index 7c390f1b..cc326aed 100644 --- a/src/app/admin/(dashboard)/_state/ppid/struktur_ppid/struktur_PPID.ts +++ b/src/app/admin/(dashboard)/_state/ppid/struktur_ppid/struktur_PPID.ts @@ -561,6 +561,45 @@ const pegawai = proxy({ } }, }, + findManyAll: { + data: null as + | Prisma.PegawaiPPIDGetPayload<{ + include: { + image: true; + posisi: true; + }; + }>[] + | null, + loading: false, + search: "", + load: async (search = "") => { + // Change to arrow function + pegawai.findManyAll.loading = true; // Use the full path to access the property + pegawai.findManyAll.search = search; + try { + const query: any = { search }; + if (search) query.search = search; + + const res = await ApiFetch.api.ppid.strukturppid.pegawai[ + "find-many-all" + ].get({ + query, + }); + + if (res.status === 200 && res.data?.success) { + pegawai.findManyAll.data = res.data.data || []; + } else { + console.error("Failed to load pegawai:", res.data?.message); + pegawai.findManyAll.data = []; + } + } catch (error) { + console.error("Error loading pegawai:", error); + pegawai.findManyAll.data = []; + } finally { + pegawai.findManyAll.loading = false; + } + }, + }, findUnique: { data: null as | (Prisma.PegawaiPPIDGetPayload<{ diff --git a/src/app/admin/(dashboard)/desa/layanan/pelayanan_penduduk_non_permanent/page.tsx b/src/app/admin/(dashboard)/desa/layanan/pelayanan_penduduk_non_permanent/page.tsx index e2c6f3e8..e5ce63bd 100644 --- a/src/app/admin/(dashboard)/desa/layanan/pelayanan_penduduk_non_permanent/page.tsx +++ b/src/app/admin/(dashboard)/desa/layanan/pelayanan_penduduk_non_permanent/page.tsx @@ -27,7 +27,7 @@ function PelayananPendudukNonPermanent() { ); useShallowEffect(() => { - pelayananPendudukNonPermanen.findById.load('1'); + pelayananPendudukNonPermanen.findById.load('edit'); }, []); if (!pelayananPendudukNonPermanen.findById.data) { diff --git a/src/app/admin/(dashboard)/desa/layanan/pelayanan_perizinan_berusaha/page.tsx b/src/app/admin/(dashboard)/desa/layanan/pelayanan_perizinan_berusaha/page.tsx index 70f2e731..3edb28cd 100644 --- a/src/app/admin/(dashboard)/desa/layanan/pelayanan_perizinan_berusaha/page.tsx +++ b/src/app/admin/(dashboard)/desa/layanan/pelayanan_perizinan_berusaha/page.tsx @@ -43,7 +43,7 @@ function PerizinanBerusaha() { try { setLoading(true); // You should get the ID from your router query or params - const id = '1'; // Replace with actual ID or get from URL params + const id = 'edit'; // Replace with actual ID or get from URL params await pelayananPerizinanBerusaha.findById.load(id); } catch (err) { setError('Gagal memuat data'); diff --git a/src/app/admin/(dashboard)/pendidikan/beasiswa-desa/_lib/layoutTabs.tsx b/src/app/admin/(dashboard)/pendidikan/beasiswa-desa/_lib/layoutTabs.tsx index 6c0b4be0..2f2d3997 100644 --- a/src/app/admin/(dashboard)/pendidikan/beasiswa-desa/_lib/layoutTabs.tsx +++ b/src/app/admin/(dashboard)/pendidikan/beasiswa-desa/_lib/layoutTabs.tsx @@ -65,7 +65,11 @@ function LayoutTabs({ children }: { children: React.ReactNode }) { background: "linear-gradient(135deg, #e7ebf7, #f9faff)", borderRadius: "1rem", boxShadow: "inset 0 0 10px rgba(0,0,0,0.05)", - }} + display: "flex", + flexWrap: "nowrap", + gap: "0.5rem", + paddingInline: "0.5rem", // ✅ biar nggak nempel ke tepi + }} > {tabs.map((tab, i) => ( {tabs.map((tab, i) => ( {tabs.map((tab, i) => ( diff --git a/src/app/admin/(dashboard)/pendidikan/pendidikan-non-formal/_lib/layoutTabs.tsx b/src/app/admin/(dashboard)/pendidikan/pendidikan-non-formal/_lib/layoutTabs.tsx index 672d9156..e83af8ac 100644 --- a/src/app/admin/(dashboard)/pendidikan/pendidikan-non-formal/_lib/layoutTabs.tsx +++ b/src/app/admin/(dashboard)/pendidikan/pendidikan-non-formal/_lib/layoutTabs.tsx @@ -73,7 +73,11 @@ function LayoutTabs({ children }: { children: React.ReactNode }) { background: "linear-gradient(135deg, #e7ebf7, #f9faff)", borderRadius: "1rem", boxShadow: "inset 0 0 10px rgba(0,0,0,0.05)", - }} + display: "flex", + flexWrap: "nowrap", + gap: "0.5rem", + paddingInline: "0.5rem", // ✅ biar nggak nempel ke tepi + }} > {tabs.map((tab, i) => ( {tabs.map((tab, i) => ( { + perpustakaanDigitalState.dataPerpustakaan.findManyAll.load() + }) + useEffect(() => { const loadPeminjam = async () => { const id = params?.id as string; @@ -159,13 +164,17 @@ function EditPeminjam() { required /> - Buku} - placeholder="Buku" - required - readOnly - /> + + Buku +