diff --git a/src/app/admin/(dashboard)/_state/ppid/permohonan_informasi_publik/permohonanInformasiPublik.ts b/src/app/admin/(dashboard)/_state/ppid/permohonan_informasi_publik/permohonanInformasiPublik.ts
index 0cd22ea0..4a4cd5dc 100644
--- a/src/app/admin/(dashboard)/_state/ppid/permohonan_informasi_publik/permohonanInformasiPublik.ts
+++ b/src/app/admin/(dashboard)/_state/ppid/permohonan_informasi_publik/permohonanInformasiPublik.ts
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
import ApiFetch from "@/lib/api-fetch";
import { Prisma } from "@prisma/client";
import { toast } from "react-toastify";
@@ -136,12 +137,43 @@ const statepermohonanInformasiPublik = proxy({
};
}>[]
| null,
- async load() {
- const res = await ApiFetch.api.ppid.permohonaninformasipublik[
- "find-many"
- ].get();
- if (res.status === 200) {
- statepermohonanInformasiPublik.findMany.data = res.data?.data ?? [];
+ page: 1,
+ totalPages: 1,
+ total: 0,
+ loading: false,
+ search: "",
+ load: async (page = 1, limit = 10, search = "") => {
+ // Change to arrow function
+ statepermohonanInformasiPublik.findMany.loading = true; // Use the full path to access the property
+ statepermohonanInformasiPublik.findMany.page = page;
+ statepermohonanInformasiPublik.findMany.search = search;
+ try {
+ const query: any = { page, limit };
+ if (search) query.search = search;
+
+ const res = await ApiFetch.api.ppid.permohonaninformasipublik[
+ "find-many"
+ ].get({
+ query,
+ });
+
+ if (res.status === 200 && res.data?.success) {
+ statepermohonanInformasiPublik.findMany.data = res.data.data || [];
+ statepermohonanInformasiPublik.findMany.total = res.data.total || 0;
+ statepermohonanInformasiPublik.findMany.totalPages = res.data.totalPages || 1;
+ } else {
+ console.error("Failed to load permohonan keberatan informasi:", res.data?.message);
+ statepermohonanInformasiPublik.findMany.data = [];
+ statepermohonanInformasiPublik.findMany.total = 0;
+ statepermohonanInformasiPublik.findMany.totalPages = 1;
+ }
+ } catch (error) {
+ console.error("Error loading permohonan keberatan informasi:", error);
+ statepermohonanInformasiPublik.findMany.data = [];
+ statepermohonanInformasiPublik.findMany.total = 0;
+ statepermohonanInformasiPublik.findMany.totalPages = 1;
+ } finally {
+ statepermohonanInformasiPublik.findMany.loading = false;
}
},
},
diff --git a/src/app/admin/(dashboard)/_state/ppid/permohonan_keberatan_informasi_publik/permohonanKeberatanInformasi.ts b/src/app/admin/(dashboard)/_state/ppid/permohonan_keberatan_informasi_publik/permohonanKeberatanInformasi.ts
index b1545785..4ba89cb7 100644
--- a/src/app/admin/(dashboard)/_state/ppid/permohonan_keberatan_informasi_publik/permohonanKeberatanInformasi.ts
+++ b/src/app/admin/(dashboard)/_state/ppid/permohonan_keberatan_informasi_publik/permohonanKeberatanInformasi.ts
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
import ApiFetch from "@/lib/api-fetch";
import { Prisma } from "@prisma/client";
import { toast } from "react-toastify";
@@ -57,17 +58,48 @@ const permohonanKeberatanInformasi = proxy({
},
},
findMany: {
- data: null as
+ data: null as
+ | null
| Prisma.FormulirPermohonanKeberatanGetPayload<{
omit: { isActive: true };
- }>[]
- | null,
- async load() {
- const res = await ApiFetch.api.ppid.permohonankeberataninformasipublik[
- "find-many"
- ].get();
- if (res.status === 200) {
- permohonanKeberatanInformasi.findMany.data = res.data?.data ?? [];
+ }>[],
+ page: 1,
+ totalPages: 1,
+ total: 0,
+ loading: false,
+ search: "",
+ load: async (page = 1, limit = 10, search = "") => {
+ // Change to arrow function
+ permohonanKeberatanInformasi.findMany.loading = true; // Use the full path to access the property
+ permohonanKeberatanInformasi.findMany.page = page;
+ permohonanKeberatanInformasi.findMany.search = search;
+ try {
+ const query: any = { page, limit };
+ if (search) query.search = search;
+
+ const res = await ApiFetch.api.ppid.permohonankeberataninformasipublik[
+ "find-many"
+ ].get({
+ query,
+ });
+
+ if (res.status === 200 && res.data?.success) {
+ permohonanKeberatanInformasi.findMany.data = res.data.data || [];
+ permohonanKeberatanInformasi.findMany.total = res.data.total || 0;
+ permohonanKeberatanInformasi.findMany.totalPages = res.data.totalPages || 1;
+ } else {
+ console.error("Failed to load permohonan keberatan informasi:", res.data?.message);
+ permohonanKeberatanInformasi.findMany.data = [];
+ permohonanKeberatanInformasi.findMany.total = 0;
+ permohonanKeberatanInformasi.findMany.totalPages = 1;
+ }
+ } catch (error) {
+ console.error("Error loading permohonan keberatan informasi:", error);
+ permohonanKeberatanInformasi.findMany.data = [];
+ permohonanKeberatanInformasi.findMany.total = 0;
+ permohonanKeberatanInformasi.findMany.totalPages = 1;
+ } finally {
+ permohonanKeberatanInformasi.findMany.loading = false;
}
},
},
diff --git a/src/app/admin/(dashboard)/desa/profil/profil-perbekel-dari-masa-ke-masa/[id]/page.tsx b/src/app/admin/(dashboard)/desa/profil/profil-perbekel-dari-masa-ke-masa/[id]/page.tsx
index c8f9eca9..bb0e2eea 100644
--- a/src/app/admin/(dashboard)/desa/profil/profil-perbekel-dari-masa-ke-masa/[id]/page.tsx
+++ b/src/app/admin/(dashboard)/desa/profil/profil-perbekel-dari-masa-ke-masa/[id]/page.tsx
@@ -4,7 +4,7 @@ import stateProfileDesa from '@/app/admin/(dashboard)/_state/desa/profile';
import colors from '@/con/colors';
import { Box, Button, Group, Image, Paper, Skeleton, Stack, Text } from '@mantine/core';
import { useShallowEffect } from '@mantine/hooks';
-import { IconArrowBack, IconEdit, IconX } from '@tabler/icons-react';
+import { IconArrowBack, IconEdit, IconTrash } from '@tabler/icons-react';
import { useParams, useRouter } from 'next/navigation';
import { useState } from 'react';
import { useProxy } from 'valtio/utils';
@@ -108,7 +108,7 @@ function DetailPerbekelDariMasa() {
radius="md"
size="md"
>
-
+