From 1cdff53c56c44213aa8cf220ff300fbaf1f9466b Mon Sep 17 00:00:00 2001 From: nico Date: Mon, 4 Aug 2025 10:29:13 +0800 Subject: [PATCH] Sinkronisasi UI Admin & User Menu Landing Page, Submenu Profile, SDGSDesa --- .../landing-page/sdgs-desa/sdgs-desa.json | 114 +++++++++++++++ prisma/schema.prisma | 4 +- .../_state/landing-page/sdgs-desa.ts | 46 ++++-- .../kategori-desa-anti-korupsi/page.tsx | 2 +- .../list-desa-anti-korupsi/page.tsx | 2 +- .../profile/media-sosial/page.tsx | 2 +- .../profile/program-inovasi/page.tsx | 2 +- .../landing-page/sdgs-desa/[id]/edit/page.tsx | 2 +- .../landing-page/sdgs-desa/create/page.tsx | 2 +- .../landing-page/sdgs-desa/page.tsx | 75 ++++++++-- .../_lib/landing_page/sdgs-desa/findMany.ts | 2 +- .../_lib/landing_page/sdgs-desa/index.ts | 2 +- .../darmasaba/(tambahan)/sdgs-desa/page.tsx | 110 +++++++++++++-- src/app/darmasaba/_com/Footer.tsx | 4 +- .../main-page/landing-page/SosmedView.tsx | 16 ++- .../_com/main-page/landing-page/index.tsx | 44 +++++- .../darmasaba/_com/main-page/sdgs/index.tsx | 133 +++++++++++++++--- 17 files changed, 490 insertions(+), 72 deletions(-) create mode 100644 prisma/data/landing-page/sdgs-desa/sdgs-desa.json diff --git a/prisma/data/landing-page/sdgs-desa/sdgs-desa.json b/prisma/data/landing-page/sdgs-desa/sdgs-desa.json new file mode 100644 index 00000000..9f1fc623 --- /dev/null +++ b/prisma/data/landing-page/sdgs-desa/sdgs-desa.json @@ -0,0 +1,114 @@ +[ + { + "id": "cmdsjzdl30002vneknuvo4irv", + "name": "Desa Tanpa Kemiskinan", + "jumlah": "52.62", + "imageId": "" + }, + { + "id": "cmdskargd0005vnek0mu2ofk9", + "name": "Desa Tanpa Kelaparan", + "jumlah": "35.75", + "imageId": "" + }, + { + "id": "cmdskbvl0008vnek5dmieatb", + "name": "Desa Sehat Dan Sejahtera", + "jumlah": "77.37", + "imageId": "" + }, + { + "id": "cmdskcx91000bvneko7tuaoqa", + "name": "Pendidikan Desa Berkualitas", + "jumlah": "34.11", + "imageId": "" + }, + { + "id": "cmdskjare000evnek1hglu0x8", + "name": "Keterlibatan Perempuan Desa", + "jumlah": "45.70", + "imageId": "" + }, + { + "id": "cmdskqcpc0002vnvnqjkqgm92", + "name": "Desa Layak Air Bersih Dan Sanitasi", + "jumlah": "48.54", + "imageId": "" + }, + { + "id": "cmdsktl3x0005vnvne15seefw", + "name": "Desa Berenergi Bersih Dan Terbarukan", + "jumlah": "99.64", + "imageId": "" + }, + { + "id": "cmdskuncw0008vnvcsdqoeog", + "name": "Pertumbuhan Ekonomi Desa Merata", + "jumlah": "40.92", + "imageId": "" + }, + { + "id": "cmdskw83j000bvvn9szqrea6", + "name": "Infrastruktur Dan Inovasi Desa Sesuai Kebutuhan", + "jumlah": "35.37", + "imageId": "" + }, + { + "id": "cmdskwrq7000envnvy0c5nbgf", + "name": "Desa Tanpa Kesenjangan", + "jumlah": "35.47", + "imageId": "" + }, + { + "id": "cmdskxivx000hnvnvsx520gv1", + "name": "Kawasan Pemukiman Desa Aman Dan Nyaman", + "jumlah": "40.35", + "imageId": "" + }, + { + "id": "cmdskzg4c000kvnnkiv61gkt", + "name": "Konsumsi Dan Produksi Desa Sadar Lingkungan", + "jumlah": "16.67", + "imageId": "" + }, + { + "id": "cmdsl07lk000nvnnvnrepsdy5m", + "name": "Desa Tanggap Perubahan Iklim", + "jumlah": "0.00", + "imageId": "" + }, + { + "id": "cmdsl10rq000qvnvnlch9c1yv", + "name": "Desa Peduli Lingkungan Laut", + "jumlah": "50.00", + "imageId": "" + }, + { + "id": "cmdsl1mc2000tvnvn357n8usi", + "name": "Desa Peduli Lingkungan Darat", + "jumlah": "0.00", + "imageId": "" + }, + { + "id": "cmdsl2bx3000wvnvntshi4gnj", + "name": "Desa Damai Berkeadilan", + "jumlah": "78.65", + "imageId": "" + }, + { + "id": "cmdsl2yz3000zvnvnmf60ok7q", + "name": "Kemitraan Untuk Pembangunan Desa", + "jumlah": "20.00", + "imageId": "" + }, + { + "id": "cmdsl492h0012vnvnmckm3n2x", + "name": "Kelembagaan Desa Dinamis Dan Budaya Desa Adaptif", + "jumlah": "47.22", + "imageId": "" + } +] + + + + diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 39c55fae..faa3a86d 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -171,8 +171,8 @@ model SDGSDesa { id String @id @default(cuid()) name String @unique jumlah String - image FileStorage @relation(fields: [imageId], references: [id]) - imageId String + image FileStorage? @relation(fields: [imageId], references: [id]) + imageId String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt deletedAt DateTime @default(now()) diff --git a/src/app/admin/(dashboard)/_state/landing-page/sdgs-desa.ts b/src/app/admin/(dashboard)/_state/landing-page/sdgs-desa.ts index 4056a954..d6525062 100644 --- a/src/app/admin/(dashboard)/_state/landing-page/sdgs-desa.ts +++ b/src/app/admin/(dashboard)/_state/landing-page/sdgs-desa.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"; @@ -52,19 +53,38 @@ const sdgsDesa = proxy({ }, }, findMany: { - data: null as Array< - Prisma.SDGSDesaGetPayload<{ - include: { - image: true; - }; - }> - > | null, - async load() { - const res = await ApiFetch.api.landingpage.sdgsdesa[ - "find-many" - ].get(); - if (res.status === 200) { - sdgsDesa.findMany.data = res.data?.data ?? []; + data: null as any[] | null, + page: 1, + totalPages: 1, + total: 0, + loading: false, + load: async (page = 1, limit = 10) => { // Change to arrow function + sdgsDesa.findMany.loading = true; // Use the full path to access the property + sdgsDesa.findMany.page = page; + try { + const res = await ApiFetch.api.landingpage.sdgsdesa[ + "findMany" + ].get({ + query: { page, limit }, + }); + + if (res.status === 200 && res.data?.success) { + sdgsDesa.findMany.data = res.data.data || []; + sdgsDesa.findMany.total = res.data.total || 0; + sdgsDesa.findMany.totalPages = res.data.totalPages || 1; + } else { + console.error("Failed to load media sosial:", res.data?.message); + sdgsDesa.findMany.data = []; + sdgsDesa.findMany.total = 0; + sdgsDesa.findMany.totalPages = 1; + } + } catch (error) { + console.error("Error loading media sosial:", error); + sdgsDesa.findMany.data = []; + sdgsDesa.findMany.total = 0; + sdgsDesa.findMany.totalPages = 1; + } finally { + sdgsDesa.findMany.loading = false; } }, }, diff --git a/src/app/admin/(dashboard)/landing-page/desa-anti-korupsi/kategori-desa-anti-korupsi/page.tsx b/src/app/admin/(dashboard)/landing-page/desa-anti-korupsi/kategori-desa-anti-korupsi/page.tsx index 4ad364e4..aa742f1e 100644 --- a/src/app/admin/(dashboard)/landing-page/desa-anti-korupsi/kategori-desa-anti-korupsi/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/desa-anti-korupsi/kategori-desa-anti-korupsi/page.tsx @@ -68,7 +68,7 @@ function ListKategoriKegiatan({ search }: { search: string }) { if (loading || !data) { return ( - + ); } diff --git a/src/app/admin/(dashboard)/landing-page/desa-anti-korupsi/list-desa-anti-korupsi/page.tsx b/src/app/admin/(dashboard)/landing-page/desa-anti-korupsi/list-desa-anti-korupsi/page.tsx index 91925c43..2ae40e67 100644 --- a/src/app/admin/(dashboard)/landing-page/desa-anti-korupsi/list-desa-anti-korupsi/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/desa-anti-korupsi/list-desa-anti-korupsi/page.tsx @@ -59,7 +59,7 @@ function ListDesaAntiKorupsi({ search }: { search: string }) { if (loading || !data) { return ( - + ); } diff --git a/src/app/admin/(dashboard)/landing-page/profile/media-sosial/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/media-sosial/page.tsx index 25a74ee1..9a23fa29 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/media-sosial/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/media-sosial/page.tsx @@ -57,7 +57,7 @@ function ListMediaSosial({ search }: { search: string }) { if (loading || !data) { return ( - + ); } diff --git a/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/page.tsx index 5772af74..a6af1166 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/page.tsx @@ -57,7 +57,7 @@ function ListProgramInovasi({ search }: { search: string }) { if (loading || !data) { return ( - + ); } diff --git a/src/app/admin/(dashboard)/landing-page/sdgs-desa/[id]/edit/page.tsx b/src/app/admin/(dashboard)/landing-page/sdgs-desa/[id]/edit/page.tsx index c39993e0..f48cc975 100644 --- a/src/app/admin/(dashboard)/landing-page/sdgs-desa/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/sdgs-desa/[id]/edit/page.tsx @@ -163,7 +163,7 @@ function EditKolaborasiInovasi() {