From af60bcd6fcde1750bc5bc48ba43458cb7ad51f4b Mon Sep 17 00:00:00 2001 From: nico Date: Thu, 18 Dec 2025 17:25:22 +0800 Subject: [PATCH] Fix QC Kak Inno Tgl 17 Fix QC Kak Ayu Tgl 17 Fix UI Admin Mobile Menu PPID Search Admin Menu Landing Page & Menu PPID --- .../desa/_com/layoutTabLayanan.tsx | 79 +- .../desa/berita/kategori-berita/[id]/page.tsx | 2 +- .../berita/kategori-berita/create/page.tsx | 2 +- .../desa/berita/kategori-berita/page.tsx | 193 +++-- .../berita/list-berita/[id]/edit/page.tsx | 2 +- .../desa/berita/list-berita/[id]/page.tsx | 2 +- .../desa/berita/list-berita/create/page.tsx | 2 +- .../desa/berita/list-berita/page.tsx | 118 ++- .../desa/gallery/foto/[id]/edit/page.tsx | 2 +- .../desa/gallery/foto/[id]/page.tsx | 4 +- .../desa/gallery/foto/create/page.tsx | 2 +- .../(dashboard)/desa/gallery/foto/page.tsx | 129 +++- .../desa/gallery/video/[id]/edit/page.tsx | 2 +- .../desa/gallery/video/[id]/page.tsx | 4 +- .../desa/gallery/video/create/page.tsx | 2 +- .../(dashboard)/desa/gallery/video/page.tsx | 162 ++-- .../ajukan_permohonan/[id]/edit/page.tsx | 2 +- .../layanan/ajukan_permohonan/[id]/page.tsx | 4 +- .../desa/layanan/ajukan_permohonan/page.tsx | 148 ++-- .../[id]/page.tsx | 2 +- .../pelayanan_penduduk_non_permanent/page.tsx | 48 +- .../[id]/page.tsx | 2 +- .../pelayanan_perizinan_berusaha/page.tsx | 170 +++- .../[id]/edit/page.tsx | 2 +- .../pelayanan_surat_keterangan/[id]/page.tsx | 4 +- .../create/page.tsx | 2 +- .../pelayanan_surat_keterangan/page.tsx | 168 ++-- .../[id]/edit/page.tsx | 22 +- .../[id]/page.tsx | 4 +- .../create/page.tsx | 2 +- .../pelayanan_telunjuk_sakti_desa/page.tsx | 147 +++- .../desa/penghargaan/[id]/edit/page.tsx | 2 +- .../desa/penghargaan/[id]/page.tsx | 2 +- .../desa/penghargaan/create/page.tsx | 2 +- .../(dashboard)/desa/penghargaan/page.tsx | 138 ++-- .../desa/pengumuman/_com/layoutTabs.tsx | 99 ++- .../kategori-pengumuman/[id]/page.tsx | 2 +- .../kategori-pengumuman/create/page.tsx | 2 +- .../pengumuman/kategori-pengumuman/page.tsx | 218 ++++-- .../list-pengumuman/[id]/edit/page.tsx | 2 +- .../pengumuman/list-pengumuman/[id]/page.tsx | 21 +- .../list-pengumuman/create/page.tsx | 2 +- .../desa/pengumuman/list-pengumuman/page.tsx | 115 ++- .../potensi/kategori-potensi/[id]/page.tsx | 2 +- .../potensi/kategori-potensi/create/page.tsx | 2 +- .../desa/potensi/kategori-potensi/page.tsx | 203 +++-- .../potensi/list-potensi/[id]/edit/page.tsx | 2 +- .../desa/potensi/list-potensi/[id]/page.tsx | 4 +- .../desa/potensi/list-potensi/create/page.tsx | 2 +- .../desa/potensi/list-potensi/page.tsx | 161 +++- .../desa/profil/_lib/layoutTabsDetail.tsx | 99 ++- .../profil-desa/[id]/lambang_desa/page.tsx | 4 +- .../profil-desa/[id]/maskot_desa/page.tsx | 6 +- .../profil-desa/[id]/sejarah_desa/page.tsx | 6 +- .../profil-desa/[id]/visi_misi_desa/page.tsx | 4 +- .../desa/profil/profil-desa/page.tsx | 730 +++++++++++++----- .../[id]/edit/page.tsx | 2 +- .../[id]/page.tsx | 4 +- .../create/page.tsx | 2 +- .../page.tsx | 148 ++-- .../desa/profil/profil-perbekel/[id]/page.tsx | 2 +- .../desa/profil/profil-perbekel/page.tsx | 80 +- 62 files changed, 2494 insertions(+), 1008 deletions(-) diff --git a/src/app/admin/(dashboard)/desa/_com/layoutTabLayanan.tsx b/src/app/admin/(dashboard)/desa/_com/layoutTabLayanan.tsx index 9d44874b..56029f20 100644 --- a/src/app/admin/(dashboard)/desa/_com/layoutTabLayanan.tsx +++ b/src/app/admin/(dashboard)/desa/_com/layoutTabLayanan.tsx @@ -1,7 +1,7 @@ /* eslint-disable react-hooks/exhaustive-deps */ 'use client' import colors from '@/con/colors'; -import { ScrollArea, Stack, Tabs, TabsList, TabsPanel, TabsTab, Title } from '@mantine/core'; +import { Box, ScrollArea, Stack, Tabs, TabsList, TabsPanel, TabsTab, Title } from '@mantine/core'; import { IconBuildingStore, IconFileText, IconSparkles, IconUsers, IconUsersPlus } from '@tabler/icons-react'; import { usePathname, useRouter } from 'next/navigation'; import React, { useEffect, useState } from 'react'; @@ -72,35 +72,76 @@ function LayoutTabsLayanan({ children }: { children: React.ReactNode }) { keepMounted={false} > {/* ✅ Scroll horizontal wrapper */} - - - {tabs.map((tab, i) => ( + + + + {tabs.map((tab, i) => ( {tab.label} - ))} - - + ))} + + + + + + + + + {tabs.map((tab, i) => ( + + {tab.label} + + ))} + + + {tabs.map((tab, i) => ( + {/* Back Button + Title */} + + + + + Daftar Kategori Berita + + - - + {/* Desktop Table */} + +
- No - Nama - Edit - Hapus + + Kategori + + + Edit + + + Hapus + {filteredData.length > 0 ? ( - filteredData.map((item, index) => ( + filteredData.map((item) => ( - {index + 1} - - - + {item.name} - - + + - - + + )) ) : ( -
- +
+ Tidak ada data kategori berita yang cocok
@@ -161,22 +170,70 @@ function ListKategoriBerita({ search }: { search: string }) {
+ + {/* Mobile Cards */} + + {filteredData.length > 0 ? ( + filteredData.map((item) => ( + + + Kategori + + {item.name} + + + + + + + + )) + ) : ( +
+ + Tidak ada data kategori berita yang cocok + +
+ )} +
-
- { - load(newPage, 10, search); - window.scrollTo({ top: 0, behavior: 'smooth' }); - }} - total={totalPages} - mt="md" - mb="md" - color="blue" - radius="md" - /> -
+ {totalPages > 1 && ( +
+ { + load(newPage, 10, search); + window.scrollTo({ top: 0, behavior: 'smooth' }); + }} + total={totalPages} + color="blue" + radius="md" + /> +
+ )} {/* Modal Konfirmasi Hapus */} + {/* Header */} + Daftar Berita + Daftar Berita + - - + {/* Desktop Table */} + +
- Judul - Kategori - Aksi + Judul + Kategori + Aksi {filteredData.length > 0 ? ( filteredData.map((item) => ( - - - - {item.judul} - - + + + {item.judul} + - - + + {item.kategoriBerita?.name || '-'} - + )) ) : ( - -
- + +
+ Tidak ada data berita yang cocok
@@ -130,6 +134,52 @@ function ListBerita({ search }: { search: string }) {
+ + {/* Mobile Cards */} + + {filteredData.length > 0 ? ( + filteredData.map((item) => ( + + + + Judul + + + {item.judul} + + + + Kategori + + + {item.kategoriBerita?.name || '-'} + + + + + + )) + ) : ( +
+ + Tidak ada data berita yang cocok + +
+ )} +
@@ -150,4 +200,4 @@ function ListBerita({ search }: { search: string }) { ); } -export default Berita; +export default Berita; \ No newline at end of file diff --git a/src/app/admin/(dashboard)/desa/gallery/foto/[id]/edit/page.tsx b/src/app/admin/(dashboard)/desa/gallery/foto/[id]/edit/page.tsx index df492b39..21dd4231 100644 --- a/src/app/admin/(dashboard)/desa/gallery/foto/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/desa/gallery/foto/[id]/edit/page.tsx @@ -139,7 +139,7 @@ function EditFoto() { }; return ( - + {/* Header */} + + + + Daftar Foto + - + + {/* Desktop Table */} + - Judul Foto - Tanggal - Deskripsi - Aksi + Judul Foto + Tanggal + Deskripsi + Aksi {filteredData.length > 0 ? ( filteredData.map((item) => ( - - - {item.name} - + + + {item.name} + - - - + + {new Date(item.createdAt).toLocaleDateString('id-ID', { day: 'numeric', month: 'long', year: 'numeric', })} - - - - - + + - + @@ -133,7 +139,7 @@ function ListFoto({ search }: { search: string }) {
- Tidak ada foto yang cocok + Tidak ada foto yang cocok
@@ -141,7 +147,54 @@ function ListFoto({ search }: { search: string }) {
+ + {/* Mobile Card View */} + + + {filteredData.length > 0 ? ( + filteredData.map((item) => ( + + + + Judul Foto + {item.name} + + + Tanggal + + {new Date(item.createdAt).toLocaleDateString('id-ID', { + day: 'numeric', + month: 'long', + year: 'numeric', + })} + + + + Deskripsi + + + + + + )) + ) : ( +
+ Tidak ada foto yang cocok +
+ )} +
+
+
+ + + + + + Daftar Video + + - - + + {/* Desktop Table */} + +
- Judul Video - Tanggal - Deskripsi - Aksi + Judul Video + Tanggal + Deskripsi + Aksi {filteredData.length > 0 ? ( filteredData.map((item) => ( - - - {item.name} - + + + {item.name} + - - - + + {new Date(item.createdAt).toLocaleDateString('id-ID', { day: 'numeric', month: 'long', year: 'numeric', })} - - - - - + + - + @@ -132,8 +135,10 @@ function ListVideo({ search }: { search: string }) { ) : ( -
- Tidak ada video yang cocok +
+ + Tidak ada video yang cocok +
@@ -141,23 +146,74 @@ function ListVideo({ search }: { search: string }) {
+ + {/* Mobile Cards */} + + {filteredData.length > 0 ? ( + filteredData.map((item) => ( + + + + Judul Video + + {item.name} + + + + Tanggal + + {new Date(item.createdAt).toLocaleDateString('id-ID', { + day: 'numeric', + month: 'long', + year: 'numeric', + })} + + + + Deskripsi + + + + + + + + )) + ) : ( +
+ + Tidak ada video yang cocok + +
+ )} +
-
- { - load(newPage, 10) - window.scrollTo({ top: 0, behavior: 'smooth' }) - }} - total={totalPages} - mt="md" - mb="md" - color="blue" - radius="md" - /> -
+ + {totalPages > 1 && ( +
+ { + load(newPage, 10) + window.scrollTo({ top: 0, behavior: 'smooth' }) + }} + total={totalPages} + color="blue" + radius="md" + /> +
+ )}
); } -export default Video; +export default Video; \ No newline at end of file diff --git a/src/app/admin/(dashboard)/desa/layanan/ajukan_permohonan/[id]/edit/page.tsx b/src/app/admin/(dashboard)/desa/layanan/ajukan_permohonan/[id]/edit/page.tsx index 0ee0d2e2..14f2605f 100644 --- a/src/app/admin/(dashboard)/desa/layanan/ajukan_permohonan/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/desa/layanan/ajukan_permohonan/[id]/edit/page.tsx @@ -115,7 +115,7 @@ function EditAjukanPermohonan() { }; return ( - + {/* Back Button */} + + + + )) + ) : ( +
+ + Tidak ada data ajukan permohonan yang cocok + +
+ )} + +
-
- { - load(newPage, 10, search); - window.scrollTo({ top: 0, behavior: 'smooth' }); - }} - total={totalPages} - mt="md" - mb="md" - color="blue" - radius="md" - /> -
+ + {totalPages > 1 && ( +
+ { + load(newPage, 10, search); + window.scrollTo({ top: 0, behavior: 'smooth' }); + }} + total={totalPages} + color="blue" + radius="md" + /> +
+ )}
); } -export default AjukanPermohonan; +export default AjukanPermohonan; \ No newline at end of file diff --git a/src/app/admin/(dashboard)/desa/layanan/pelayanan_penduduk_non_permanent/[id]/page.tsx b/src/app/admin/(dashboard)/desa/layanan/pelayanan_penduduk_non_permanent/[id]/page.tsx index a425a358..6ebb654a 100644 --- a/src/app/admin/(dashboard)/desa/layanan/pelayanan_penduduk_non_permanent/[id]/page.tsx +++ b/src/app/admin/(dashboard)/desa/layanan/pelayanan_penduduk_non_permanent/[id]/page.tsx @@ -108,7 +108,7 @@ function EditPelayananPendudukNonPermanent() { }; return ( - + + @@ -70,14 +74,14 @@ function PelayananPendudukNonPermanent() {
- {data.name} - +
@@ -86,9 +90,11 @@ function PelayananPendudukNonPermanent() {
@@ -98,4 +104,4 @@ function PelayananPendudukNonPermanent() { ); } -export default PelayananPendudukNonPermanent; +export default PelayananPendudukNonPermanent; \ No newline at end of file diff --git a/src/app/admin/(dashboard)/desa/layanan/pelayanan_perizinan_berusaha/[id]/page.tsx b/src/app/admin/(dashboard)/desa/layanan/pelayanan_perizinan_berusaha/[id]/page.tsx index 9fdc6c56..d354e203 100644 --- a/src/app/admin/(dashboard)/desa/layanan/pelayanan_perizinan_berusaha/[id]/page.tsx +++ b/src/app/admin/(dashboard)/desa/layanan/pelayanan_perizinan_berusaha/[id]/page.tsx @@ -123,7 +123,7 @@ function EditPelayananPerizinanBerusaha() { } return ( - + {/* Header */} 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 a1cac551..43854e4c 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 @@ -41,8 +41,7 @@ function PerizinanBerusaha() { const loadData = async () => { try { setLoading(true); - // You should get the ID from your router query or params - const id = 'edit'; // Replace with actual ID or get from URL params + const id = 'edit'; await pelayananPerizinanBerusaha.findById.load(id); } catch (err) { setError('Gagal memuat data'); @@ -66,7 +65,7 @@ function PerizinanBerusaha() { if (error || !pelayananPerizinanBerusaha.findById.data) { return (
- {error || 'Data tidak ditemukan'} + {error || 'Data tidak ditemukan'}
); } @@ -79,24 +78,24 @@ function PerizinanBerusaha() { {/* Header */} - + <Title order={3} c={colors['blue-button']} lh={1.2}> Preview Pelayanan Perizinan Berusaha - + @@ -104,38 +103,40 @@ function PerizinanBerusaha() {
- {data.name} - +
Proses pendaftaran NIB melalui OSS mencakup beberapa langkah umum: - + - Pendaftaran akun pada portal OSS + + Pendaftaran akun pada portal OSS + - Mengisi informasi perusahaan, termasuk data pemegang saham, alamat perusahaan, dan lainnya + + Mengisi informasi perusahaan, termasuk data pemegang saham, alamat perusahaan, dan lainnya + - Memilih KBLI dengan jenis usaha yang akan didaftarkan + + Memilih KBLI dengan jenis usaha yang akan didaftarkan + - Mengunggah dokumen-dokumen yang diperlukan, seperti akta pendirian perusahaan, surat izin usaha, dan dokumen lainnya sesuai dengan ketentuan yang berlaku + + Mengunggah dokumen-dokumen yang diperlukan, seperti akta pendirian perusahaan, surat izin usaha, dan dokumen lainnya sesuai dengan ketentuan yang berlaku + - Proses verifikasi dan persetujuan oleh instansi terkait + + Proses verifikasi dan persetujuan oleh instansi terkait + - Jika proses sebelumnya berhasil, perusahaan akan menerima NIB sebagai identitas resmi usaha anda + + Jika proses sebelumnya berhasil, perusahaan akan menerima NIB sebagai identitas resmi usaha anda + - Selesai, anda telah mengikuti proses pendaftaran NIB melalui OSS + + Selesai, anda telah mengikuti proses pendaftaran NIB melalui OSS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -177,9 +265,10 @@ function PerizinanBerusaha() { Penting untuk diingat bahwa prosedur dan persyaratan dapat berubah seiring waktu. Untuk informasi yang lebih akurat dan @@ -203,5 +292,4 @@ function PerizinanBerusaha() { ); } -export default PerizinanBerusaha; - +export default PerizinanBerusaha; \ No newline at end of file diff --git a/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/edit/page.tsx b/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/edit/page.tsx index f91b84b8..3e1adf6a 100644 --- a/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/edit/page.tsx @@ -64,7 +64,7 @@ const FileUploader: React.FC = ({ }; return ( - + {title} diff --git a/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/page.tsx b/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/page.tsx index 4c911ca3..04ab79b6 100644 --- a/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/page.tsx +++ b/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/[id]/page.tsx @@ -49,7 +49,7 @@ function DetailSuratKeterangan() { const data = suratKeteranganState.findUnique.data; return ( - + {/* Tombol Kembali */} + + + + + List Surat Keterangan + + - + + {/* Desktop Table */} + - Nama - Deskripsi - Aksi + + Nama + + + Deskripsi + + + Aksi + {filteredData.length > 0 ? ( filteredData.map((item) => ( - - - - {item.name} - - + + + {item.name} + - - - - + + - +
+ + {/* Mobile Cards */} + + + {filteredData.length > 0 ? ( + filteredData.map((item) => ( + + + + + Nama + + + {item.name} + + + + + Deskripsi + + + + + + + + + + + )) + ) : ( +
+ + Tidak ada data surat keterangan yang cocok + +
+ )} +
+
+
{ - setFormData({ - name: originalData.name, - deskripsi: originalData.deskripsi, - link: originalData.link, - }); - toast.info("Form dikembalikan ke data awal"); - }; + setFormData({ + name: originalData.name, + deskripsi: originalData.deskripsi, + link: originalData.link, + }); + toast.info("Form dikembalikan ke data awal"); + }; // Submit: update global state hanya saat simpan const handleSubmit = async () => { @@ -102,12 +102,12 @@ function EditPelayananTelunjukSakti() { }; return ( - + {/* Back Button + Title */} - + Edit Pelayanan Telunjuk Sakti Desa diff --git a/src/app/admin/(dashboard)/desa/layanan/pelayanan_telunjuk_sakti_desa/[id]/page.tsx b/src/app/admin/(dashboard)/desa/layanan/pelayanan_telunjuk_sakti_desa/[id]/page.tsx index 180534c2..c45e9e33 100644 --- a/src/app/admin/(dashboard)/desa/layanan/pelayanan_telunjuk_sakti_desa/[id]/page.tsx +++ b/src/app/admin/(dashboard)/desa/layanan/pelayanan_telunjuk_sakti_desa/[id]/page.tsx @@ -50,7 +50,7 @@ function DetailPelayananTelunjukSakti() { const data = telunjukSaktiState.findUnique.data; return ( - + {/* Tombol Kembali */} + + Daftar Pelayanan Telunjuk Sakti + + - - + + {/* Desktop Table */} + +
- Nama - Link - Detail + + Nama + + + Link + + + Detail + @@ -93,18 +105,19 @@ function ListPelayananTelunjukSakti({ search }: { search: string }) { filteredData.map((item) => ( - - - {item.name} - - + + {item.name} + - - - - - + + + @@ -125,8 +140,8 @@ function ListPelayananTelunjukSakti({ search }: { search: string }) { ) : ( -
- +
+ Tidak ada data layanan yang cocok
@@ -136,17 +151,68 @@ function ListPelayananTelunjukSakti({ search }: { search: string }) {
+ + {/* Mobile Cards */} + + {filteredData.length > 0 ? ( + + {filteredData.map((item) => ( + + + + Nama + + + {item.name} + + + + + Link + + + {item.deskripsi} + + + + + ))} + + ) : ( +
+ + Tidak ada data layanan yang cocok + +
+ )} +
+
{ load(newPage, 10, search); window.scrollTo({ top: 0, behavior: 'smooth' }); - }} + } + } total={totalPages} mt="md" - mb="md" color="blue" radius="md" /> @@ -155,5 +221,4 @@ function ListPelayananTelunjukSakti({ search }: { search: string }) { ); } -export default PelayananTelunjukSakti; - +export default PelayananTelunjukSakti; \ No newline at end of file diff --git a/src/app/admin/(dashboard)/desa/penghargaan/[id]/edit/page.tsx b/src/app/admin/(dashboard)/desa/penghargaan/[id]/edit/page.tsx index 53ec0c12..08084881 100644 --- a/src/app/admin/(dashboard)/desa/penghargaan/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/desa/penghargaan/[id]/edit/page.tsx @@ -133,7 +133,7 @@ function EditPenghargaan() { }; return ( - + {/* Tombol Back + Title */} + + List Penghargaan + List Penghargaan + - + + {/* Desktop Table */} + - Nama - Deskripsi - Aksi + Nama + Deskripsi + Aksi @@ -91,31 +96,27 @@ function ListPenghargaan({ search }: { search: string }) { filteredData.map((item) => ( - - - {item.name} - - + + {item.name} + - - - +
+ + {/* Mobile Cards */} + + {filteredData.length > 0 ? ( + filteredData.map((item) => ( + + + + Nama + + + {item.name} + + + + + Deskripsi + + + + + + + + + + )) + ) : ( +
+ + Tidak ada data penghargaan yang cocok + +
+ )} +
+
{/* ✅ Scroll horizontal wrapper */} - - + + + {tabs.map((tab, i) => ( + + {tab.label} + + ))} + + + + + + - {tabs.map((tab, i) => ( - - {tab.label} - - ))} - - + + + {tabs.map((tab, i) => ( + + {tab.label} + + ))} + + + {tabs.map((tab, i) => ( + {/* Header */} - - + + + + List Kategori Pengumuman + + + + + + +
- No - Nama - Edit - Hapus + + + Nama + + + + + Edit + + + + + Hapus + + {filteredData.length > 0 ? ( - filteredData.map((item, index) => ( + filteredData.map((item) => ( - {(page - 1) * 10 + index + 1} - - - {item.name} + + {item.name} + @@ -124,8 +179,10 @@ function ListKategoriPengumuman({ search }: { search: string }) { ) : ( -
- Tidak ada data kategori pengumuman yang cocok +
+ + Tidak ada data kategori pengumuman yang cocok +
@@ -133,6 +190,71 @@ function ListKategoriPengumuman({ search }: { search: string }) {
+ + + {filteredData.length > 0 ? ( + filteredData.map((item) => ( + + + + + Nama + + + {item.name} + + + + + + + + + )) + ) : ( + +
+ + Tidak ada data kategori pengumuman yang cocok + +
+
+ )} +
@@ -153,7 +275,7 @@ function ListKategoriPengumuman({ search }: { search: string }) { text='Apakah anda yakin ingin menghapus kategori Pengumuman ini?' /> - ) + ); } -export default KategoriPengumuman; +export default KategoriPengumuman; \ No newline at end of file diff --git a/src/app/admin/(dashboard)/desa/pengumuman/list-pengumuman/[id]/edit/page.tsx b/src/app/admin/(dashboard)/desa/pengumuman/list-pengumuman/[id]/edit/page.tsx index cbeeceef..511fcaeb 100644 --- a/src/app/admin/(dashboard)/desa/pengumuman/list-pengumuman/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/desa/pengumuman/list-pengumuman/[id]/edit/page.tsx @@ -111,7 +111,7 @@ function EditPengumuman() { }; return ( - + - - + + {/* Desktop Table */} + +
- Judul - Kategori - Detail + + Judul + + + Kategori + + + Detail + @@ -91,14 +103,12 @@ function ListPengumuman({ search }: { search: string }) { filteredData.map((item) => ( - - - {item.judul} - - + + {item.judul} + - + {item.CategoryPengumuman?.name || '-'} @@ -109,9 +119,12 @@ function ListPengumuman({ search }: { search: string }) { onClick={() => router.push(`/admin/desa/pengumuman/list-pengumuman/${item.id}`) } + fz="sm" + px="sm" + py="xs" > - - Detail + + Detail @@ -119,8 +132,10 @@ function ListPengumuman({ search }: { search: string }) { ) : ( -
- Tidak ada pengumuman yang cocok +
+ + Tidak ada pengumuman yang cocok +
@@ -128,7 +143,59 @@ function ListPengumuman({ search }: { search: string }) {
+ + {/* Mobile Card List */} + + + {filteredData.length > 0 ? ( + filteredData.map((item) => ( + + + + + Judul + + + {item.judul} + + + + + Kategori + + + {item.CategoryPengumuman?.name || '-'} + + + + + + + + )) + ) : ( +
+ + Tidak ada pengumuman yang cocok + +
+ )} +
+
+
+ + + + + List Kategori Potensi + + - - + {/* Desktop Table */} + +
- No - Nama - Edit - Hapus + + + Nama + + + + + Edit + + + + + Hapus + + {filteredData.length > 0 ? ( - filteredData.map((item, index) => ( + filteredData.map((item) => ( - {(page - 1) * 10 + index + 1} + + {item.nama} + - {item.nama} - - - @@ -114,8 +157,10 @@ function ListKategoriPotensi({ search }: { search: string }) { ) : ( -
- Tidak ada data kategori potensi yang cocok +
+ + Tidak ada data kategori potensi yang cocok +
@@ -123,10 +168,70 @@ function ListKategoriPotensi({ search }: { search: string }) {
+ + {/* Mobile Cards */} + + {filteredData.length > 0 ? ( + filteredData.map((item, index) => ( + + + + + No + + + {(page - 1) * 10 + index + 1} + + + + + Nama + + + {item.nama} + + + + + + + + + )) + ) : ( +
+ + Tidak ada data kategori potensi yang cocok + +
+ )} +
-
+
load(newPage, 10, search)} @@ -143,7 +248,7 @@ function ListKategoriPotensi({ search }: { search: string }) { text='Apakah anda yakin ingin menghapus kategori Potensi ini?' /> - ) + ); } -export default KategoriPotensi; +export default KategoriPotensi; \ No newline at end of file diff --git a/src/app/admin/(dashboard)/desa/potensi/list-potensi/[id]/edit/page.tsx b/src/app/admin/(dashboard)/desa/potensi/list-potensi/[id]/edit/page.tsx index bf2197e6..2bf0a23c 100644 --- a/src/app/admin/(dashboard)/desa/potensi/list-potensi/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/desa/potensi/list-potensi/[id]/edit/page.tsx @@ -143,7 +143,7 @@ function EditPotensi() { }; return ( - + + + + + + Daftar Potensi Desa + + - - + + {/* Desktop Table */} + +
- Judul - Kategori - Deskripsi - Detail + + + Judul + + + + + Kategori + + + + + Deskripsi + + + + + Detail + + @@ -99,27 +121,23 @@ function ListPotensi({ search }: { search: string }) { filteredData.map((item) => ( - - - {item.name} - - + + {item.name} + - - {item.kategori?.nama || '-'} - + + {item.kategori?.nama || '-'} + - - - +
+ + {/* Mobile Cards */} + + {filteredData.length > 0 ? ( + + {filteredData.map((item) => ( + + + + Judul + + + {item.name} + + + + + Kategori + + + {item.kategori?.nama || '-'} + + + + + Deskripsi + + + + + + ))} + + ) : ( +
+ + Tidak ada data potensi yang cocok + +
+ )} +
+
{/* ✅ Scroll horizontal wrapper */} - - + + + {tabs.map((tab, i) => ( + + {tab.label} + + ))} + + + + + + - {tabs.map((tab, i) => ( - - {tab.label} - - ))} - - + + + {tabs.map((tab, i) => ( + + {tab.label} + + ))} + + + {tabs.map((tab, i) => ( + - - - - - -
- Logo Desa -
- - - {sejarah.judul} - - -
- - -
-
- - )} + + {sejarah && ( + + + Preview Sejarah Desa + + + + + + +
+ Logo Desa +
+ + + {sejarah.judul} + + +
+ + + + +
+
+
+ )} +
+ + + {sejarah && ( + + {/* Header */} + + + Preview Sejarah Desa + + + + + + {/* Content Wrapper */} + + + {/* Logo + Title */} + + Logo Desa + + + + {sejarah.judul} + + + + + + + {/* Deskripsi */} + + + + + + + )} + {/* Visi Misi Desa */} - {visiMisi && ( - - - + + {visiMisi && ( + + Preview Visi Misi Desa - - - - - + + - - - -
- Logo Desa -
- - - Visi Misi Desa - - -
- - Visi Desa - - Misi Desa - -
-
-
- )} + + + + +
+ Logo Desa +
+ + + Visi Misi Desa + + +
+ + + Visi Desa + + + + Misi Desa + + +
+
+ + )} +
+ + + {visiMisi && ( + + {/* Header */} + + + Preview Visi Misi Desa + + + + + + {/* Content Wrapper */} + + + {/* Logo + Title */} + + Logo Desa + + + + Visi Misi Desa + + + + + + + + Visi Desa + + + + + Misi Desa + + + + + + )} + {/* Lambang Desa */} - {lambang && ( - - - + + {lambang && ( + + Preview Lambang Desa - - - - - + + - - - -
- Logo Desa -
- - - {lambang.judul} - - -
- - -
-
-
- )} + + + +
+ Logo Desa +
+ + + {lambang.judul} + + +
+ + + + +
+
+ + )} + + + + {lambang && ( + + {/* Header */} + + + Preview Lambang Desa + + + + + + {/* Content Wrapper */} + + + {/* Logo + Title */} + + Logo Desa + + + + {lambang.judul} + + + + + + + {/* Deskripsi */} + + + + + + + )} + {/* Maskot Desa */} - {maskot && ( - - - + + {maskot && ( + + Preview Maskot Desa - - - - - + + - - - -
- Maskot Desa -
- - - Maskot Desa - - -
- - - - - {maskot.images.map((img, idx) => ( - -
- {img.label} -
- {img.label} -
- ))} -
-
-
-
-
- )} + + + +
+ Maskot Desa +
+ + + Maskot Desa + + +
+ + + + + + + {maskot.images.map((img, idx) => ( + +
+ {img.label} +
+ {img.label} +
+ ))} +
+
+
+
+ + )} + + + + {maskot && ( + + {/* Header */} + + + Preview Maskot Desa + + + + + + {/* Content Wrapper */} + + + {/* Logo + Title */} + + Logo Desa + + + + Maskot Desa + + + + + + + {/* Deskripsi */} + + + + + + {maskot.images.map((img, idx) => ( + +
+ {img.label} +
+ {img.label} +
+ ))} +
+
+
+
+
+ )} +
); diff --git a/src/app/admin/(dashboard)/desa/profil/profil-perbekel-dari-masa-ke-masa/[id]/edit/page.tsx b/src/app/admin/(dashboard)/desa/profil/profil-perbekel-dari-masa-ke-masa/[id]/edit/page.tsx index 8cf2e438..c83faf16 100644 --- a/src/app/admin/(dashboard)/desa/profil/profil-perbekel-dari-masa-ke-masa/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/desa/profil/profil-perbekel-dari-masa-ke-masa/[id]/edit/page.tsx @@ -127,7 +127,7 @@ function EditPerbekelDariMasaKeMasa() { }; return ( - + + + + + + List Perbekel Dari Masa Ke Masa + + - - + {/* Desktop Table */} + +
- Nama Perbekel - Periode - Aksi + Nama Perbekel + Periode + Aksi @@ -73,36 +94,32 @@ function ListPerbekelDariMasaKeMasa({ search }: { search: string }) { filteredData.map((item) => ( - - {item.nama} - + {item.nama} - - {item.periode} - + {item.periode} - - - + )) ) : ( -
- Tidak ada data perbekel yang cocok +
+ + Tidak ada data perbekel yang cocok +
@@ -110,6 +127,47 @@ function ListPerbekelDariMasaKeMasa({ search }: { search: string }) {
+ + {/* Mobile Card View */} + + + {filteredData.length > 0 ? ( + filteredData.map((item) => ( + + + + Nama Perbekel + {item.nama} + + + Periode + {item.periode} + + + + + + + )) + ) : ( +
+ + Tidak ada data perbekel yang cocok + +
+ )} +
+
@@ -120,8 +178,8 @@ function ListPerbekelDariMasaKeMasa({ search }: { search: string }) { window.scrollTo({ top: 0, behavior: 'smooth' }); }} total={totalPages} - mt="md" - mb="md" + mt={{ base: 'sm', md: 'md' }} + mb={{ base: 'sm', md: 'md' }} color="blue" radius="md" /> @@ -130,4 +188,4 @@ function ListPerbekelDariMasaKeMasa({ search }: { search: string }) { ); } -export default PerbekelDariMasaKeMasa; +export default PerbekelDariMasaKeMasa; \ No newline at end of file diff --git a/src/app/admin/(dashboard)/desa/profil/profil-perbekel/[id]/page.tsx b/src/app/admin/(dashboard)/desa/profil/profil-perbekel/[id]/page.tsx index bd26f5c1..a135b37e 100644 --- a/src/app/admin/(dashboard)/desa/profil/profil-perbekel/[id]/page.tsx +++ b/src/app/admin/(dashboard)/desa/profil/profil-perbekel/[id]/page.tsx @@ -97,7 +97,7 @@ function ProfilePerbekel() { } return ( - + {/* Header */} diff --git a/src/app/admin/(dashboard)/desa/profil/profil-perbekel/page.tsx b/src/app/admin/(dashboard)/desa/profil/profil-perbekel/page.tsx index 53ad1d8c..d06dcb40 100644 --- a/src/app/admin/(dashboard)/desa/profil/profil-perbekel/page.tsx +++ b/src/app/admin/(dashboard)/desa/profil/profil-perbekel/page.tsx @@ -33,18 +33,18 @@ function Page() { {/* Header + tombol edit */} - Preview Profil PPID + </GridCol> <GridCol span={{ base: 12, md: 1 }}> - <Button - c="green" - variant="light" - leftSection={<IconEdit size={18} stroke={2} />} - radius="md" - onClick={() => router.push(`/admin/desa/profil/profil-perbekel/${perbekel.id}`)} - > - Edit - </Button> + <Button + c="green" + variant="light" + leftSection={<IconEdit size={18} stroke={2} />} + radius="md" + onClick={() => router.push(`/admin/desa/profil/profil-perbekel/${perbekel.id}`)} + > + Edit + </Button> </GridCol> </Grid> @@ -58,7 +58,13 @@ function Page() { </Center> </GridCol> <GridCol span={12}> - <Text ta="center" fz={{ base: "1.2rem", md: "1.8rem" }} fw="bold" c={colors['blue-button']}> + <Text + ta="center" + fz={{ base: 'sm', md: 'md' }} + fw="bold" + c={colors['blue-button']} + lh={{ base: 1.45, md: 1.45 }} + > Profil Pimpinan Badan Publik Desa Darmasaba </Text> </GridCol> @@ -86,25 +92,55 @@ function Page() { className="glass3" style={{ mt: -30, boxShadow: '0 4px 20px rgba(0,0,0,0.15)' }} > - <Text ta="center" c={colors['white-1']} fw="bolder" fz={{ base: "1.2rem", md: "1.6rem" }}> - I.B. Surya Prabhawa Manuaba, S.H., M.H. + <Text + ta="center" + c={colors['white-1']} + fw="bolder" + fz={{ base: 'md', md: 'lg' }} + lh={{ base: 1.4, md: 1.4 }} + > + I.B. Surya Prabhawa Manuaba, S.H., M.H. </Text> </Paper> </Stack> {/* Biodata & Info */} <Box mt="lg"> - <Text fz={{ base: "1.125rem", md: "1.5rem" }} fw="bold" mb={4}>Biodata</Text> - <Text fz={{ base: "1rem", md: "1.4rem" }} ta="justify" style={{ wordBreak: "break-word", whiteSpace: "normal" }} dangerouslySetInnerHTML={{ __html: perbekel.biodata }} /> + <Title order={3} lh={1.2} mb={4} /> + <Text + fz={{ base: 'sm', md: 'md' }} + lh={{ base: 1.6, md: 1.6 }} + ta="justify" + style={{ wordBreak: "break-word", whiteSpace: "normal" }} + dangerouslySetInnerHTML={{ __html: perbekel.biodata }} + /> - <Text fz={{ base: "1.125rem", md: "1.5rem" }} fw="bold" mt="md" mb={4}>Pengalaman</Text> - <Text fz={{ base: "1rem", md: "1.4rem" }} ta="justify" style={{ wordBreak: "break-word", whiteSpace: "normal" }} dangerouslySetInnerHTML={{ __html: perbekel.pengalaman }} /> + <Title order={3} lh={1.2} mt="md" mb={4} /> + <Text + fz={{ base: 'sm', md: 'md' }} + lh={{ base: 1.6, md: 1.6 }} + ta="justify" + style={{ wordBreak: "break-word", whiteSpace: "normal" }} + dangerouslySetInnerHTML={{ __html: perbekel.pengalaman }} + /> - <Text fz={{ base: "1.125rem", md: "1.5rem" }} fw="bold" mt="md" mb={4}>Pengalaman Organisasi</Text> - <Text fz={{ base: "1rem", md: "1.4rem" }} ta="justify" style={{ wordBreak: "break-word", whiteSpace: "normal" }} dangerouslySetInnerHTML={{ __html: perbekel.pengalamanOrganisasi }} /> + <Title order={3} lh={1.2} mt="md" mb={4} /> + <Text + fz={{ base: 'sm', md: 'md' }} + lh={{ base: 1.6, md: 1.6 }} + ta="justify" + style={{ wordBreak: "break-word", whiteSpace: "normal" }} + dangerouslySetInnerHTML={{ __html: perbekel.pengalamanOrganisasi }} + /> - <Text fz={{ base: "1.125rem", md: "1.5rem" }} fw="bold" mt="md" mb={4}>Program Kerja Unggulan</Text> - <Text fz={{ base: "1rem", md: "1.4rem" }} ta="justify" style={{ wordBreak: "break-word", whiteSpace: "normal" }} dangerouslySetInnerHTML={{ __html: perbekel.programUnggulan }} /> + <Title order={3} lh={1.2} mt="md" mb={4} /> + <Text + fz={{ base: 'sm', md: 'md' }} + lh={{ base: 1.6, md: 1.6 }} + ta="justify" + style={{ wordBreak: "break-word", whiteSpace: "normal" }} + dangerouslySetInnerHTML={{ __html: perbekel.programUnggulan }} + /> </Box> </Paper> </Stack> @@ -112,4 +148,4 @@ function Page() { ); } -export default Page; +export default Page; \ No newline at end of file