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 5ffabf01..9dba990e 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 @@ -352,17 +352,19 @@ const posisiOrganisasi = proxy({ totalPages: 1, loading: false, search: "", - load: async (page = 1, limit = 10, search = "") => { - posisiOrganisasi.findMany.loading = true; // ✅ Akses langsung via nama path + load: async (page = 1, limit?: number, search = "") => { + const appliedLimit = limit ?? 10; posisiOrganisasi.findMany.page = page; posisiOrganisasi.findMany.search = search; - + try { - const query: any = { page, limit }; + const query: any = { page, limit: appliedLimit }; if (search) query.search = search; - - const res = await ApiFetch.api.ppid.strukturppid.posisiorganisasi["find-many"].get({ query }); - + + const res = await ApiFetch.api.ppid.strukturppid.posisiorganisasi[ + "find-many" + ].get({ query }); + if (res.status === 200 && res.data?.success) { posisiOrganisasi.findMany.data = res.data.data ?? []; posisiOrganisasi.findMany.totalPages = res.data.totalPages ?? 1; diff --git a/src/app/admin/(dashboard)/auth/login-admin/page.tsx b/src/app/admin/(dashboard)/auth/login-admin/page.tsx index db8133c9..ab591207 100644 --- a/src/app/admin/(dashboard)/auth/login-admin/page.tsx +++ b/src/app/admin/(dashboard)/auth/login-admin/page.tsx @@ -51,7 +51,7 @@ function Login() { Login
- +
diff --git a/src/app/admin/(dashboard)/auth/registrasi-admin/page.tsx b/src/app/admin/(dashboard)/auth/registrasi-admin/page.tsx index 89790f9f..62d2554b 100644 --- a/src/app/admin/(dashboard)/auth/registrasi-admin/page.tsx +++ b/src/app/admin/(dashboard)/auth/registrasi-admin/page.tsx @@ -63,7 +63,7 @@ function Registrasi() { Registrasi
- +
)} diff --git a/src/app/admin/(dashboard)/desa/berita/list-berita/[id]/page.tsx b/src/app/admin/(dashboard)/desa/berita/list-berita/[id]/page.tsx index fbe84b8a..2ffcb31c 100644 --- a/src/app/admin/(dashboard)/desa/berita/list-berita/[id]/page.tsx +++ b/src/app/admin/(dashboard)/desa/berita/list-berita/[id]/page.tsx @@ -93,6 +93,7 @@ function DetailBerita() { h={200} radius="md" fit="cover" + loading='lazy' /> ) : ( Tidak ada gambar diff --git a/src/app/admin/(dashboard)/desa/berita/list-berita/create/page.tsx b/src/app/admin/(dashboard)/desa/berita/list-berita/create/page.tsx index dff9ca15..3100163a 100644 --- a/src/app/admin/(dashboard)/desa/berita/list-berita/create/page.tsx +++ b/src/app/admin/(dashboard)/desa/berita/list-berita/create/page.tsx @@ -183,6 +183,7 @@ export default function CreateBerita() { objectFit: 'contain', border: '1px solid #ddd', }} + loading="lazy" />
)} diff --git a/src/app/admin/(dashboard)/desa/berita/list-berita/page.tsx b/src/app/admin/(dashboard)/desa/berita/list-berita/page.tsx index 81db81f6..1e632b96 100644 --- a/src/app/admin/(dashboard)/desa/berita/list-berita/page.tsx +++ b/src/app/admin/(dashboard)/desa/berita/list-berita/page.tsx @@ -114,7 +114,7 @@ function ListBerita({ search }: { search: string }) { style={{ borderRadius: 8, overflow: 'hidden' }} > {item.image?.link ? ( - gambar + gambar ) : ( )} diff --git a/src/app/admin/(dashboard)/desa/gallery/foto/page.tsx b/src/app/admin/(dashboard)/desa/gallery/foto/page.tsx index 4c15f898..3b08fbea 100644 --- a/src/app/admin/(dashboard)/desa/gallery/foto/page.tsx +++ b/src/app/admin/(dashboard)/desa/gallery/foto/page.tsx @@ -131,6 +131,7 @@ export default function ListImage() { h={120} fit="contain" opacity={0.7} + loading="lazy" /> Belum ada foto yang tersedia 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 070acbc2..d1c6d8ae 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 @@ -188,6 +188,7 @@ function EditSuratKeterangan() { objectFit: 'contain', border: `1px solid ${colors['blue-button']}`, }} + loading="lazy" /> )} @@ -244,6 +245,7 @@ function EditSuratKeterangan() { objectFit: 'contain', border: `1px solid ${colors['blue-button']}`, }} + loading="lazy" /> )} 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 bb25a987..2da12ed5 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 @@ -110,6 +110,7 @@ function DetailSuratKeterangan() { h={200} radius="md" fit="cover" + loading="lazy" /> ) : ( @@ -130,6 +131,7 @@ function DetailSuratKeterangan() { h={200} radius="md" fit="cover" + loading="lazy" /> ) : ( diff --git a/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/create/page.tsx b/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/create/page.tsx index 697d7796..2af7efc7 100644 --- a/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/create/page.tsx +++ b/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/create/page.tsx @@ -170,6 +170,7 @@ function CreateSuratKeterangan() { alt="Preview Gambar Utama" radius="md" style={{ maxHeight: 200, objectFit: 'contain', border: '1px solid #ddd' }} + loading="lazy" /> )} @@ -219,6 +220,7 @@ function CreateSuratKeterangan() { alt="Preview Gambar Tambahan" radius="md" style={{ maxHeight: 200, objectFit: 'contain', border: '1px solid #ddd' }} + loading="lazy" /> ) : ( diff --git a/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/page.tsx b/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/page.tsx index 5276c315..db80a721 100644 --- a/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/page.tsx +++ b/src/app/admin/(dashboard)/desa/layanan/pelayanan_surat_keterangan/page.tsx @@ -20,7 +20,7 @@ import { Title, Tooltip } from '@mantine/core'; -import { IconDeviceImac, IconPlus, IconSearch } from '@tabler/icons-react'; +import { IconDeviceImacCog, IconPlus, IconSearch } from '@tabler/icons-react'; import { useRouter } from 'next/navigation'; import { useEffect, useMemo, useState } from 'react'; import { useProxy } from 'valtio/utils'; @@ -124,14 +124,16 @@ function ListSuratKeterangan({ search }: { search: string }) { 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 f9a4c105..8e5606dc 100644 --- a/src/app/admin/(dashboard)/desa/penghargaan/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/desa/penghargaan/[id]/edit/page.tsx @@ -183,6 +183,7 @@ function EditPenghargaan() { alt="Preview Gambar" radius="md" style={{ maxHeight: 220, objectFit: 'contain', border: `1px solid ${colors['blue-button']}` }} + loading="lazy" /> )} diff --git a/src/app/admin/(dashboard)/desa/penghargaan/[id]/page.tsx b/src/app/admin/(dashboard)/desa/penghargaan/[id]/page.tsx index 07a07bb1..a8d902e4 100644 --- a/src/app/admin/(dashboard)/desa/penghargaan/[id]/page.tsx +++ b/src/app/admin/(dashboard)/desa/penghargaan/[id]/page.tsx @@ -87,6 +87,7 @@ function DetailPenghargaan() { h={200} radius="md" fit="cover" + loading="lazy" /> ) : ( diff --git a/src/app/admin/(dashboard)/desa/penghargaan/create/page.tsx b/src/app/admin/(dashboard)/desa/penghargaan/create/page.tsx index 37c36247..94a3c4e4 100644 --- a/src/app/admin/(dashboard)/desa/penghargaan/create/page.tsx +++ b/src/app/admin/(dashboard)/desa/penghargaan/create/page.tsx @@ -152,6 +152,7 @@ function CreatePenghargaan() { alt="Preview Gambar" radius="md" style={{ maxHeight: 200, objectFit: 'contain', border: '1px solid #ddd' }} + loading="lazy" /> )} diff --git a/src/app/admin/(dashboard)/desa/penghargaan/page.tsx b/src/app/admin/(dashboard)/desa/penghargaan/page.tsx index 1e2887e0..4e54e837 100644 --- a/src/app/admin/(dashboard)/desa/penghargaan/page.tsx +++ b/src/app/admin/(dashboard)/desa/penghargaan/page.tsx @@ -21,7 +21,7 @@ import { Title, Tooltip } from '@mantine/core'; -import { IconDeviceImac, IconPlus, IconSearch } from '@tabler/icons-react'; +import { IconDeviceImacCog, IconPlus, IconSearch } from '@tabler/icons-react'; import { useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; import { useProxy } from 'valtio/utils'; @@ -113,14 +113,16 @@ function ListPenghargaan({ search }: { search: string }) { 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 6f35d9d0..1bcdc41a 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 @@ -202,6 +202,7 @@ function EditPotensi() { objectFit: "contain", border: `1px solid ${colors["blue-button"]}`, }} + loading="lazy" /> )} diff --git a/src/app/admin/(dashboard)/desa/potensi/list-potensi/[id]/page.tsx b/src/app/admin/(dashboard)/desa/potensi/list-potensi/[id]/page.tsx index 34183a08..dc40fae6 100644 --- a/src/app/admin/(dashboard)/desa/potensi/list-potensi/[id]/page.tsx +++ b/src/app/admin/(dashboard)/desa/potensi/list-potensi/[id]/page.tsx @@ -90,6 +90,7 @@ export default function DetailPotensi() { h={200} radius="md" fit="cover" + loading='lazy' /> ) : ( Tidak ada gambar diff --git a/src/app/admin/(dashboard)/desa/potensi/list-potensi/create/page.tsx b/src/app/admin/(dashboard)/desa/potensi/list-potensi/create/page.tsx index 1add5ff6..b7a9f1dd 100644 --- a/src/app/admin/(dashboard)/desa/potensi/list-potensi/create/page.tsx +++ b/src/app/admin/(dashboard)/desa/potensi/list-potensi/create/page.tsx @@ -165,6 +165,7 @@ function CreatePotensi() { alt="Preview Gambar" radius="md" style={{ maxHeight: 200, objectFit: 'contain', border: '1px solid #ddd' }} + loading='lazy' /> )} @@ -195,7 +196,7 @@ function CreatePotensi() { boxShadow: '0 4px 15px rgba(79, 172, 254, 0.4)', }} > - Simpan Potensi + Simpan diff --git a/src/app/admin/(dashboard)/desa/potensi/list-potensi/page.tsx b/src/app/admin/(dashboard)/desa/potensi/list-potensi/page.tsx index 987f0417..2a7c6eb8 100644 --- a/src/app/admin/(dashboard)/desa/potensi/list-potensi/page.tsx +++ b/src/app/admin/(dashboard)/desa/potensi/list-potensi/page.tsx @@ -120,12 +120,14 @@ function ListPotensi({ search }: { search: string }) { diff --git a/src/app/admin/(dashboard)/desa/profile/profile-desa/[id]/maskot_desa/page.tsx b/src/app/admin/(dashboard)/desa/profile/profile-desa/[id]/maskot_desa/page.tsx index fa0b0ddb..8926e3bf 100644 --- a/src/app/admin/(dashboard)/desa/profile/profile-desa/[id]/maskot_desa/page.tsx +++ b/src/app/admin/(dashboard)/desa/profile/profile-desa/[id]/maskot_desa/page.tsx @@ -241,6 +241,7 @@ function Page() { height={180} fit="cover" radius="sm" + loading='lazy' />
- Logo Desa + Logo Desa
- Logo Desa + Logo Desa
- Logo Desa + Logo Desa
- Maskot Desa + Maskot Desa
{img.label} diff --git a/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/[id]/edit/page.tsx b/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/[id]/edit/page.tsx index 7dee124a..f48a8bba 100644 --- a/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/[id]/edit/page.tsx @@ -161,6 +161,7 @@ function EditPerbekelDariMasaKeMasa() { objectFit: 'contain', border: `1px solid ${colors['blue-button']}`, }} + loading='lazy' /> )} diff --git a/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/[id]/page.tsx b/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/[id]/page.tsx index 2a2d200b..048d8494 100644 --- a/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/[id]/page.tsx +++ b/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/[id]/page.tsx @@ -75,6 +75,7 @@ function DetailPerbekelDariMasa() { h={150} radius="md" fit="cover" + loading='lazy' /> ) : ( Tidak ada gambar diff --git a/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/create/page.tsx b/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/create/page.tsx index c261db14..ff5f7104 100644 --- a/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/create/page.tsx +++ b/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/create/page.tsx @@ -131,6 +131,7 @@ function CreatePerbekelDariMasaKeMasa() { alt="Preview Gambar" radius="md" style={{ maxHeight: 200, objectFit: 'contain', border: '1px solid #ddd' }} + loading='lazy' /> )} diff --git a/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/page.tsx b/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/page.tsx index 07c93826..01367ad9 100644 --- a/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/page.tsx +++ b/src/app/admin/(dashboard)/desa/profile/profile-perbekel-dari-masa-ke-masa/page.tsx @@ -2,7 +2,7 @@ import colors from '@/con/colors'; import { Box, Button, Center, Group, Pagination, Paper, Skeleton, Stack, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Text, Title, Tooltip } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; -import { IconDeviceImac, IconPlus, IconSearch } from '@tabler/icons-react'; +import { IconDeviceImacCog, IconPlus, IconSearch } from '@tabler/icons-react'; import { useRouter } from 'next/navigation'; import { useState } from 'react'; import { useProxy } from 'valtio/utils'; @@ -82,12 +82,14 @@ function ListPerbekelDariMasaKeMasa({ search }: { search: string }) { diff --git a/src/app/admin/(dashboard)/desa/profile/profile-perbekel/[id]/page.tsx b/src/app/admin/(dashboard)/desa/profile/profile-perbekel/[id]/page.tsx index ed786d9e..43eefc8a 100644 --- a/src/app/admin/(dashboard)/desa/profile/profile-perbekel/[id]/page.tsx +++ b/src/app/admin/(dashboard)/desa/profile/profile-perbekel/[id]/page.tsx @@ -145,7 +145,7 @@ function ProfilePerbekel() { {/* Preview */} {previewImage ? ( - Preview + Preview ) : (
diff --git a/src/app/admin/(dashboard)/desa/profile/profile-perbekel/page.tsx b/src/app/admin/(dashboard)/desa/profile/profile-perbekel/page.tsx index 50838a9e..1f435fea 100644 --- a/src/app/admin/(dashboard)/desa/profile/profile-perbekel/page.tsx +++ b/src/app/admin/(dashboard)/desa/profile/profile-perbekel/page.tsx @@ -56,7 +56,7 @@ function Page() {
- Logo Desa + Logo Desa
@@ -77,6 +77,7 @@ function Page() { alt="Foto Profil Perbekel" radius="md" onError={(e) => { e.currentTarget.src = "/perbekel.png"; }} + loading='lazy' />
)} diff --git a/src/app/admin/(dashboard)/ekonomi/pasar-desa/produk-pasar-desa/[id]/page.tsx b/src/app/admin/(dashboard)/ekonomi/pasar-desa/produk-pasar-desa/[id]/page.tsx index 9508a2ab..c6881f1a 100644 --- a/src/app/admin/(dashboard)/ekonomi/pasar-desa/produk-pasar-desa/[id]/page.tsx +++ b/src/app/admin/(dashboard)/ekonomi/pasar-desa/produk-pasar-desa/[id]/page.tsx @@ -95,6 +95,7 @@ function DetailPasarDesa() { h={120} radius="md" fit="cover" + loading="lazy" /> ) : ( Tidak ada gambar diff --git a/src/app/admin/(dashboard)/ekonomi/pasar-desa/produk-pasar-desa/create/page.tsx b/src/app/admin/(dashboard)/ekonomi/pasar-desa/produk-pasar-desa/create/page.tsx index be3f9664..861b1069 100644 --- a/src/app/admin/(dashboard)/ekonomi/pasar-desa/produk-pasar-desa/create/page.tsx +++ b/src/app/admin/(dashboard)/ekonomi/pasar-desa/produk-pasar-desa/create/page.tsx @@ -134,6 +134,7 @@ export default function CreatePasarDesa() { alt="Preview Gambar" radius="md" style={{ maxHeight: 200, objectFit: 'contain', border: '1px solid #ddd' }} + loading="lazy" /> )} diff --git a/src/app/admin/(dashboard)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/pegawai/[id]/edit/page.tsx b/src/app/admin/(dashboard)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/pegawai/[id]/edit/page.tsx index 8ee8d661..7cf73d5d 100644 --- a/src/app/admin/(dashboard)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/pegawai/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/pegawai/[id]/edit/page.tsx @@ -208,6 +208,7 @@ export default function EditPegawai() { fit="cover" radius="sm" mt="md" + loading="lazy" /> )} diff --git a/src/app/admin/(dashboard)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/pegawai/[id]/page.tsx b/src/app/admin/(dashboard)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/pegawai/[id]/page.tsx index 6fa54e36..261a61de 100644 --- a/src/app/admin/(dashboard)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/pegawai/[id]/page.tsx +++ b/src/app/admin/(dashboard)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/pegawai/[id]/page.tsx @@ -60,7 +60,7 @@ function DetailPegawai() { Image {statePegawai.findUnique.data?.image?.link ? ( - + ) : ( Tidak ada gambar )} diff --git a/src/app/admin/(dashboard)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/pegawai/create/page.tsx b/src/app/admin/(dashboard)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/pegawai/create/page.tsx index e99c88e2..540a3daf 100644 --- a/src/app/admin/(dashboard)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/pegawai/create/page.tsx +++ b/src/app/admin/(dashboard)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/pegawai/create/page.tsx @@ -141,6 +141,7 @@ function CreatePegawai() { fit="cover" radius="sm" mt="md" + loading="lazy" /> )} diff --git a/src/app/admin/(dashboard)/inovasi/desa-digital-smart-village/[id]/edit/page.tsx b/src/app/admin/(dashboard)/inovasi/desa-digital-smart-village/[id]/edit/page.tsx index 269f7a43..715e3c0d 100644 --- a/src/app/admin/(dashboard)/inovasi/desa-digital-smart-village/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/inovasi/desa-digital-smart-village/[id]/edit/page.tsx @@ -146,6 +146,7 @@ function EditPenghargaan() { borderRadius: '8px', border: '1px solid #ddd', }} + loading="lazy" /> )} diff --git a/src/app/admin/(dashboard)/inovasi/desa-digital-smart-village/[id]/page.tsx b/src/app/admin/(dashboard)/inovasi/desa-digital-smart-village/[id]/page.tsx index a5bcd748..1fcbdbeb 100644 --- a/src/app/admin/(dashboard)/inovasi/desa-digital-smart-village/[id]/page.tsx +++ b/src/app/admin/(dashboard)/inovasi/desa-digital-smart-village/[id]/page.tsx @@ -60,7 +60,7 @@ function DetailDesaDigital() { Gambar - gambar + gambar - - {/* Header Search */} {/* Tombol Back */} - diff --git a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/persentase_data_kelahiran_kematian/kematian/page.tsx b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/persentase_data_kelahiran_kematian/kematian/page.tsx index 5f8fdeaf..78e601d9 100644 --- a/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/persentase_data_kelahiran_kematian/kematian/page.tsx +++ b/src/app/admin/(dashboard)/kesehatan/data-kesehatan-warga/persentase_data_kelahiran_kematian/kematian/page.tsx @@ -37,7 +37,7 @@ function Kematian() { {/* Tombol Back */} - diff --git a/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/[id]/edit/page.tsx b/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/[id]/edit/page.tsx index a46119b1..8d330f3c 100644 --- a/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/[id]/edit/page.tsx @@ -195,6 +195,7 @@ function EditInfoWabahPenyakit() { borderRadius: '8px', border: '1px solid #ddd', }} + loading="lazy" /> )} diff --git a/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/[id]/page.tsx b/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/[id]/page.tsx index 4e5219ae..9e96bd7f 100644 --- a/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/[id]/page.tsx +++ b/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/[id]/page.tsx @@ -104,6 +104,7 @@ function DetailInfoWabahPenyakit() { alt="gambar wabah" radius="md" mt="xs" + loading="lazy" /> ) : ( - diff --git a/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/create/page.tsx b/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/create/page.tsx index 5fffba47..0e0b6255 100644 --- a/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/create/page.tsx +++ b/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/create/page.tsx @@ -168,6 +168,7 @@ function CreateInfoWabahPenyakit() { borderRadius: '8px', border: '1px solid #ddd', }} + loading="lazy" /> )} diff --git a/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/page.tsx b/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/page.tsx index dd37f3f3..37e6ba9d 100644 --- a/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/page.tsx +++ b/src/app/admin/(dashboard)/kesehatan/info-wabah-penyakit/page.tsx @@ -115,7 +115,7 @@ function ListInfoWabahPenyakit({ search }: { search: string }) {
- image + image 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 30fa0ff7..8508dbc0 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 @@ -66,9 +66,7 @@ function ListDesaAntiKorupsi({ search }: { search: string }) { Daftar Program Desa Anti Korupsi - diff --git a/src/app/admin/(dashboard)/landing-page/profile/media-sosial/[id]/edit/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/media-sosial/[id]/edit/page.tsx index ed1ef43a..a0320bff 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/media-sosial/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/media-sosial/[id]/edit/page.tsx @@ -152,6 +152,7 @@ function EditMediaSosial() { alt="Preview Gambar" radius="md" style={{ maxHeight: 220, objectFit: 'contain', border: `1px solid ${colors['blue-button']}` }} + loading="lazy" /> )} diff --git a/src/app/admin/(dashboard)/landing-page/profile/media-sosial/[id]/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/media-sosial/[id]/page.tsx index 807f3442..71f7d212 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/media-sosial/[id]/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/media-sosial/[id]/page.tsx @@ -71,7 +71,7 @@ function DetailMediaSosial() { - Icon / Nomor Telepon + Link / Nomor Telepon {data.iconUrl || '-'} @@ -85,6 +85,7 @@ function DetailMediaSosial() { h={120} radius="md" fit="cover" + loading="lazy" /> ) : ( Tidak ada gambar diff --git a/src/app/admin/(dashboard)/landing-page/profile/media-sosial/create/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/media-sosial/create/page.tsx index 49de8819..7101c3af 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/media-sosial/create/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/media-sosial/create/page.tsx @@ -129,6 +129,7 @@ export default function CreateMediaSosial() { alt="Preview Gambar" radius="md" style={{ maxHeight: 200, objectFit: 'contain', border: '1px solid #ddd' }} + loading="lazy" /> )} 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 fb276ffb..b5232fb9 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 @@ -2,7 +2,7 @@ import colors from '@/con/colors'; import { Box, Button, Center, Group, Image, Pagination, Paper, Skeleton, Stack, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Text, Title, Tooltip } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; -import { IconDeviceImac, IconPlus, IconSearch } from '@tabler/icons-react'; +import { IconDeviceImacCog, IconPlus, IconSearch } from '@tabler/icons-react'; import { useRouter } from 'next/navigation'; import { useState } from 'react'; import { useProxy } from 'valtio/utils'; @@ -68,7 +68,7 @@ function ListMediaSosial({ search }: { search: string }) { Nama Media Sosial / Kontak Gambar - Icon / No. Telepon + Link / No. Telepon Aksi @@ -76,31 +76,35 @@ function ListMediaSosial({ search }: { search: string }) { {filteredData.length > 0 ? ( filteredData.map((item) => ( - + {item.name} - - - {item.image?.link ? ( - {item.name} - ) : ( - - )} - + + + {item.image?.link ? ( + {item.name} + ) : ( + + )} + - - - {item.iconUrl || item.noTelp || '-'} - + + + + {item.iconUrl || item.noTelp || '-'} + + - + diff --git a/src/app/admin/(dashboard)/landing-page/profile/pejabat-desa/[id]/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/pejabat-desa/[id]/page.tsx index 8f3c6f81..277c61af 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/pejabat-desa/[id]/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/pejabat-desa/[id]/page.tsx @@ -229,6 +229,7 @@ function EditPejabatDesa() { borderRadius: '8px', border: '1px solid #ddd', }} + loading="lazy" /> )} @@ -240,7 +241,7 @@ function EditPejabatDesa() { Preview Gambar {previewImage ? ( - Profile preview + Profile preview ) : (
diff --git a/src/app/admin/(dashboard)/landing-page/profile/pejabat-desa/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/pejabat-desa/page.tsx index 9446c859..79d00b1d 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/pejabat-desa/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/pejabat-desa/page.tsx @@ -54,7 +54,7 @@ function Page() {
- Logo Desa + Logo Desa
@@ -76,6 +76,7 @@ function Page() { alt="Foto Profil Pejabat" radius="md" onError={(e) => { e.currentTarget.src = "/perbekel.png"; }} + loading='lazy' />
)} diff --git a/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/[id]/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/[id]/page.tsx index 6e62372b..428524b1 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/[id]/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/[id]/page.tsx @@ -73,6 +73,7 @@ function DetailProgramInovasi() { alt="Gambar Program" radius="md" style={{ maxWidth: '100%', maxHeight: 300, objectFit: 'contain' }} + loading="lazy" /> ) : ( - diff --git a/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/create/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/create/page.tsx index 45c2fae9..e214827a 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/create/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/create/page.tsx @@ -135,6 +135,7 @@ function CreateProgramInovasi() { alt="Preview Gambar" radius="md" style={{ maxHeight: 200, objectFit: 'contain', border: '1px solid #ddd' }} + loading="lazy" /> )} 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 d5d2e121..1d2c6851 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 @@ -2,7 +2,7 @@ import colors from '@/con/colors'; import { Box, Button, Center, Pagination, Paper, Skeleton, Stack, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Text, Title, Tooltip } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; -import { IconDeviceImac, IconPlus, IconSearch } from '@tabler/icons-react'; +import { IconDeviceImacCog, IconPlus, IconSearch } from '@tabler/icons-react'; import { useRouter } from 'next/navigation'; import { useState } from 'react'; import { useProxy } from 'valtio/utils'; @@ -107,14 +107,16 @@ function ListProgramInovasi({ search }: { search: string }) { 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 40d0d3c1..b3003d71 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 @@ -166,6 +166,7 @@ function EditKolaborasiInovasi() { alt="Preview Gambar" radius="md" style={{ maxHeight: 220, objectFit: 'contain', border: `1px solid ${colors['blue-button']}` }} + loading="lazy" /> )} diff --git a/src/app/admin/(dashboard)/landing-page/sdgs-desa/[id]/page.tsx b/src/app/admin/(dashboard)/landing-page/sdgs-desa/[id]/page.tsx index 82f29939..59b8f825 100644 --- a/src/app/admin/(dashboard)/landing-page/sdgs-desa/[id]/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/sdgs-desa/[id]/page.tsx @@ -87,6 +87,7 @@ function DetailSDGSDesa() { h={200} radius="md" fit="contain" + loading="lazy" /> ) : ( Tidak ada gambar diff --git a/src/app/admin/(dashboard)/landing-page/sdgs-desa/create/page.tsx b/src/app/admin/(dashboard)/landing-page/sdgs-desa/create/page.tsx index a50d3ab5..3bfff685 100644 --- a/src/app/admin/(dashboard)/landing-page/sdgs-desa/create/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/sdgs-desa/create/page.tsx @@ -135,6 +135,7 @@ function CreateSDGsDesa() { src={previewImage} alt="Preview" style={{ width: '100%', height: 'auto' }} + loading="lazy" /> diff --git a/src/app/admin/(dashboard)/landing-page/sdgs-desa/page.tsx b/src/app/admin/(dashboard)/landing-page/sdgs-desa/page.tsx index 74593627..e7eadb5e 100644 --- a/src/app/admin/(dashboard)/landing-page/sdgs-desa/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/sdgs-desa/page.tsx @@ -99,10 +99,7 @@ function ListSdgsDesa({ search }: { search: string }) { Daftar Sdgs Desa - diff --git a/src/app/admin/(dashboard)/lingkungan/gotong-royong/kegiatan-desa/[id]/edit/page.tsx b/src/app/admin/(dashboard)/lingkungan/gotong-royong/kegiatan-desa/[id]/edit/page.tsx index 3b278668..da8d277c 100644 --- a/src/app/admin/(dashboard)/lingkungan/gotong-royong/kegiatan-desa/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/lingkungan/gotong-royong/kegiatan-desa/[id]/edit/page.tsx @@ -224,6 +224,7 @@ function EditGotongRoyong() { borderRadius: '8px', border: '1px solid #ddd', }} + loading="lazy" /> )} diff --git a/src/app/admin/(dashboard)/lingkungan/gotong-royong/kegiatan-desa/[id]/page.tsx b/src/app/admin/(dashboard)/lingkungan/gotong-royong/kegiatan-desa/[id]/page.tsx index 4154486d..a669aa1e 100644 --- a/src/app/admin/(dashboard)/lingkungan/gotong-royong/kegiatan-desa/[id]/page.tsx +++ b/src/app/admin/(dashboard)/lingkungan/gotong-royong/kegiatan-desa/[id]/page.tsx @@ -86,7 +86,7 @@ function DetailKegiatanDesa() { Gambar - gambar + gambar diff --git a/src/app/admin/(dashboard)/ppid/dasar-hukum/page.tsx b/src/app/admin/(dashboard)/ppid/dasar-hukum/page.tsx index 6af53a65..2ae90bba 100644 --- a/src/app/admin/(dashboard)/ppid/dasar-hukum/page.tsx +++ b/src/app/admin/(dashboard)/ppid/dasar-hukum/page.tsx @@ -59,7 +59,7 @@ function Page() {
- Logo PPID + Logo PPID
diff --git a/src/app/admin/(dashboard)/ppid/ikm-desa-darmasaba/responden/page.tsx b/src/app/admin/(dashboard)/ppid/ikm-desa-darmasaba/responden/page.tsx index 6507adf4..4d640a62 100644 --- a/src/app/admin/(dashboard)/ppid/ikm-desa-darmasaba/responden/page.tsx +++ b/src/app/admin/(dashboard)/ppid/ikm-desa-darmasaba/responden/page.tsx @@ -1,7 +1,7 @@ 'use client'; import { Box, Button, Center, Pagination, Paper, Skeleton, Stack, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Text, Title } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; -import { IconDeviceImac, IconSearch } from '@tabler/icons-react'; +import { IconDeviceImacCog, IconSearch } from '@tabler/icons-react'; import { useRouter } from 'next/navigation'; import { useState } from 'react'; import { useProxy } from 'valtio/utils'; @@ -112,11 +112,14 @@ function ListResponden({ search }: ListRespondenProps) { {item.jenisKelamin.name} diff --git a/src/app/admin/(dashboard)/ppid/profile-ppid/[id]/page.tsx b/src/app/admin/(dashboard)/ppid/profile-ppid/[id]/page.tsx index 3ff48c1a..babed390 100644 --- a/src/app/admin/(dashboard)/ppid/profile-ppid/[id]/page.tsx +++ b/src/app/admin/(dashboard)/ppid/profile-ppid/[id]/page.tsx @@ -28,6 +28,7 @@ function EditProfilePPID() { // Load data on mount useEffect(() => { + const loadData = async () => { const id = params?.id as string; if (!id) { @@ -230,6 +231,7 @@ function EditProfilePPID() { borderRadius: '8px', border: '1px solid #ddd', }} + loading='lazy' /> )} diff --git a/src/app/admin/(dashboard)/ppid/profile-ppid/page.tsx b/src/app/admin/(dashboard)/ppid/profile-ppid/page.tsx index 9d294848..88548b7e 100644 --- a/src/app/admin/(dashboard)/ppid/profile-ppid/page.tsx +++ b/src/app/admin/(dashboard)/ppid/profile-ppid/page.tsx @@ -54,7 +54,7 @@ function Page() {
- Logo Desa + Logo Desa
@@ -76,6 +76,7 @@ function Page() { alt="Foto Profil PPID" radius="md" onError={(e) => { e.currentTarget.src = "/perbekel.png"; }} + loading='lazy' /> { - stateStrukturPPID.posisiOrganisasi.findMany.load(); const loadPegawai = async () => { try { + await stateStrukturPPID.posisiOrganisasi.findMany.load(1, 0); // ambil semua data const data = await stateOrganisasi.edit.load(id); if (data) { setFormData({ @@ -81,6 +81,8 @@ export default function EditPegawaiPPID() { ); } }; + console.log('Current posisiId:', formData.posisiId); + console.log('Available positions:', stateStrukturPPID.posisiOrganisasi.findMany.data?.map(p => p.id)); loadPegawai(); }, [id]); @@ -223,6 +225,7 @@ export default function EditPegawaiPPID() { alt="Preview Gambar" radius="md" style={{ maxHeight: 220, objectFit: 'contain', border: `1px solid ${colors['blue-button']}` }} + loading='lazy' /> )} @@ -314,7 +317,7 @@ export default function EditPegawaiPPID() { boxShadow: '0 4px 15px rgba(79, 172, 254, 0.4)', }} > - Simpan Perubahan + Simpan
diff --git a/src/app/admin/(dashboard)/ppid/struktur-ppid/pegawai/[id]/page.tsx b/src/app/admin/(dashboard)/ppid/struktur-ppid/pegawai/[id]/page.tsx index da7c1aa4..f6edba65 100644 --- a/src/app/admin/(dashboard)/ppid/struktur-ppid/pegawai/[id]/page.tsx +++ b/src/app/admin/(dashboard)/ppid/struktur-ppid/pegawai/[id]/page.tsx @@ -17,6 +17,7 @@ function DetailPegawai() { const router = useRouter(); useShallowEffect(() => { + stateStrukturPPID.posisiOrganisasi.findMany.load(); statePegawai.findUnique.load(params?.id as string); }, []); @@ -117,6 +118,7 @@ function DetailPegawai() { border: '1px solid #e0e0e0', borderRadius: '8px', }} + loading='lazy' /> ) : ( Tidak ada foto profil diff --git a/src/app/admin/(dashboard)/ppid/struktur-ppid/pegawai/create/page.tsx b/src/app/admin/(dashboard)/ppid/struktur-ppid/pegawai/create/page.tsx index 42e80f57..75f09c72 100644 --- a/src/app/admin/(dashboard)/ppid/struktur-ppid/pegawai/create/page.tsx +++ b/src/app/admin/(dashboard)/ppid/struktur-ppid/pegawai/create/page.tsx @@ -16,7 +16,7 @@ function CreatePegawaiPPID() { const [previewImage, setPreviewImage] = useState<{ preview: string; file: File } | null>(null); const stateOrganisasi = useProxy(stateStrukturPPID.pegawai) useEffect(() => { - stateStrukturPPID.posisiOrganisasi.findMany.load(); + stateStrukturPPID.posisiOrganisasi.findMany.load(1, 0); resetForm(); }, []); @@ -183,6 +183,7 @@ function CreatePegawaiPPID() { border: '1px solid #e0e0e0', borderRadius: '8px', }} + loading='lazy' /> )} diff --git a/src/app/admin/(dashboard)/ppid/struktur-ppid/pegawai/page.tsx b/src/app/admin/(dashboard)/ppid/struktur-ppid/pegawai/page.tsx index dc6cee57..80816406 100644 --- a/src/app/admin/(dashboard)/ppid/struktur-ppid/pegawai/page.tsx +++ b/src/app/admin/(dashboard)/ppid/struktur-ppid/pegawai/page.tsx @@ -59,10 +59,10 @@ function ListPegawaiPPID({ search }: { search: string }) { Daftar Pegawai PPID - diff --git a/src/app/admin/(dashboard)/ppid/struktur-ppid/struktur-organisasi/page.tsx b/src/app/admin/(dashboard)/ppid/struktur-ppid/struktur-organisasi/page.tsx index 5aa51441..fa46cef3 100644 --- a/src/app/admin/(dashboard)/ppid/struktur-ppid/struktur-organisasi/page.tsx +++ b/src/app/admin/(dashboard)/ppid/struktur-ppid/struktur-organisasi/page.tsx @@ -118,6 +118,7 @@ function nodeTemplate(node: any) { style={{ border: '1px solid #D3D1D1FF', }} + loading='lazy' /> {name} diff --git a/src/app/admin/(dashboard)/ppid/visi-misi-ppid/page.tsx b/src/app/admin/(dashboard)/ppid/visi-misi-ppid/page.tsx index e80c479c..ea659743 100644 --- a/src/app/admin/(dashboard)/ppid/visi-misi-ppid/page.tsx +++ b/src/app/admin/(dashboard)/ppid/visi-misi-ppid/page.tsx @@ -60,7 +60,7 @@ function VisiMisiPPIDList() {
- Logo PPID + Logo PPID
diff --git a/src/app/admin/_com/list_PageAdmin.tsx b/src/app/admin/_com/list_PageAdmin.tsx index 96391a21..64a808f0 100644 --- a/src/app/admin/_com/list_PageAdmin.tsx +++ b/src/app/admin/_com/list_PageAdmin.tsx @@ -26,7 +26,7 @@ export const navBar = [ }, { id: "Landing_Page_5", - name: "APBDes", + name: "Apbdes", path: "/admin/landing-page/apbdes" }, { diff --git a/src/app/admin/auth/registrasi/page.tsx b/src/app/admin/auth/registrasi/page.tsx index 705eba7f..fec920fc 100644 --- a/src/app/admin/auth/registrasi/page.tsx +++ b/src/app/admin/auth/registrasi/page.tsx @@ -20,7 +20,7 @@ function Page() {
- +
diff --git a/src/app/admin/layout.tsx b/src/app/admin/layout.tsx index 8e08527c..45576784 100644 --- a/src/app/admin/layout.tsx +++ b/src/app/admin/layout.tsx @@ -62,6 +62,7 @@ export default function Layout({ children }: { children: React.ReactNode }) { width={46} height={46} radius="md" + loading="lazy" /> <Text fw={700} @@ -107,7 +108,7 @@ export default function Layout({ children }: { children: React.ReactNode }) { variant="gradient" gradient={{ from: colors["blue-button"], to: "#228be6" }} > - <Image src="/assets/images/darmasaba-icon.png" alt="Logo Darmasaba" w={25} h={25} radius="md" /> + <Image src="/assets/images/darmasaba-icon.png" alt="Logo Darmasaba" w={25} h={25} radius="md" loading="lazy" /> </ActionIcon> </Tooltip> <Tooltip label="Keluar" position="bottom" withArrow> diff --git a/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/pegawai/findMany.ts b/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/pegawai/findMany.ts index 98e125a3..7c2f377c 100644 --- a/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/pegawai/findMany.ts +++ b/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/pegawai/findMany.ts @@ -6,17 +6,22 @@ import { Context } from "elysia"; export default async function pegawaiFindMany(context: Context) { const page = Number(context.query.page) || 1; const limit = Number(context.query.limit) || 10; - const search = (context.query.search as string) || ''; + const search = (context.query.search as string) || ""; const skip = (page - 1) * limit; // Buat where clause - const where: any = { isActive: true }; + const isActiveParam = context.query.isActive; + + const where: any = {}; + if (isActiveParam !== undefined) { + where.isActive = isActiveParam === "true"; + } // Tambahkan pencarian (jika ada) if (search) { where.OR = [ - { namaLengkap: { contains: search, mode: 'insensitive' } }, - { alamat: { contains: search, mode: 'insensitive' } }, + { namaLengkap: { contains: search, mode: "insensitive" } }, + { alamat: { contains: search, mode: "insensitive" } }, ]; } @@ -30,11 +35,11 @@ export default async function pegawaiFindMany(context: Context) { }, skip, take: limit, - orderBy: { posisi: { hierarki: 'asc' } }, + orderBy: { posisi: { hierarki: "asc" } }, }), prisma.pegawaiPPID.count({ where, - }) + }), ]); const totalPages = Math.ceil(total / limit); @@ -58,4 +63,4 @@ export default async function pegawaiFindMany(context: Context) { total: 0, }; } -} \ No newline at end of file +} diff --git a/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/pegawai/updt.ts b/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/pegawai/updt.ts index 17bee2d1..8ed3bb8c 100644 --- a/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/pegawai/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/pegawai/updt.ts @@ -34,6 +34,7 @@ export default async function pegawaiUpdate(context: Context) { imageId, alamat, posisiId, + isActive, } = body; if (!id) { @@ -102,7 +103,8 @@ export default async function pegawaiUpdate(context: Context) { imageId, telepon, alamat, - posisiId + posisiId, + isActive, }, include: { image: true, diff --git a/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/posisi-organisasi/findMany.ts b/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/posisi-organisasi/findMany.ts index adb92d79..48d63c0c 100644 --- a/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/posisi-organisasi/findMany.ts +++ b/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/posisi-organisasi/findMany.ts @@ -20,14 +20,18 @@ async function posisiOrganisasiFindMany(context: Context) { try { const whereClause = { ...where, - isActive: true + isActive: true, }; const [data, total] = await Promise.all([ prisma.posisiOrganisasiPPID.findMany({ where: whereClause, - skip: (page - 1) * limit, - take: limit, + ...(limit === 0 + ? {} // kalau limit = 0 → ambil semua data (tanpa skip & take) + : { + skip: (page - 1) * limit, + take: limit, + }), orderBy: { hierarki: "asc" }, }), prisma.posisiOrganisasiPPID.count({ where: whereClause }), @@ -35,15 +39,18 @@ async function posisiOrganisasiFindMany(context: Context) { return { success: true, - message: "Berhasil mengambil data posisi organisasi dengan pagination", + message: + limit === 0 + ? "Berhasil mengambil semua data posisi organisasi" + : "Berhasil mengambil data posisi organisasi dengan pagination", data: data.map((item: any) => ({ id: item.id, nama: item.nama, deskripsi: item.deskripsi, hierarki: item.hierarki, })), - page, - totalPages: Math.ceil(total / limit), + page: limit === 0 ? 1 : page, + totalPages: limit === 0 ? 1 : Math.ceil(total / limit), total, }; } catch (e) { diff --git a/src/app/coba/page.tsx b/src/app/coba/page.tsx index 0e8b24e6..4c025c56 100644 --- a/src/app/coba/page.tsx +++ b/src/app/coba/page.tsx @@ -1,156 +1,62 @@ import colors from '@/con/colors'; -import { Avatar, Box, Flex, Group, Paper, SimpleGrid, Stack, Text } from '@mantine/core'; -import { IconAmbulance, IconBadge, IconBuildingBank, IconBuildingSkyscraper, IconFiretruck, IconFirstAidKit, IconPhoneCall, IconUser } from '@tabler/icons-react'; +import { Stack, Container, Box, List, ListItem, Text, Image } from '@mantine/core'; +import React from 'react'; +import BackButton from '../darmasaba/(pages)/desa/layanan/_com/BackButto'; - -const emergencyServices = [ - { - id: 1, - name: "Polisi", - icon: <IconBadge size={24} color={colors['blue-button']} />, - nomor: '081xxxxxxxxx' - }, - { - id: 2, - name: "Ambulans", - icon: <IconAmbulance size={24} color={colors['blue-button']} />, - nomor: '081xxxxxxxxx' - }, - { - id: 3, - name: "Pemadam Kebakaran", - icon: <IconFiretruck size={24} color={colors['blue-button']} />, - nomor: '081xxxxxxxxx' - } -]; - -const healthFacilities = [ - { - id: 4, - name: "Puskesmas Darmasaba", - icon: <IconFirstAidKit size={24} color={colors['blue-button']} />, - nomor: '081xxxxxxxxx' - }, - { - id: 5, - name: "UGD Terdekat", - icon: <IconAmbulance size={24} color={colors['blue-button']} />, - nomor: '081xxxxxxxxx' - } -]; - -const villageGovernment = [ - { - id: 6, - name: "Kantor Desa Darmasaba", - icon: <IconBuildingSkyscraper size={24} color={colors['blue-button']} />, - nomor: '081xxxxxxxxx' - }, - { - id: 7, - name: "Kepala Desa", - icon: <IconUser size={24} color={colors['blue-button']} />, - nomor: '081xxxxxxxxx' - } -]; function Page() { return ( - <Stack pos={"relative"} bg={colors.Bg} py={"xl"} gap={"22"}> - <Box> - <Text ta={"center"} fz={{ base: "h1", md: "2.5rem" }} c={colors["blue-button"]} fw={"bold"}> - Kontak Darurat - </Text> - <Text px={{ base: 20, md: 150 }} ta={"center"} fz={{ base: "h4", md: "h3" }} > - Desa Darmasaba, Kecamatan Abiansemal, Kabupaten Badung. - </Text> - </Box> - <Box px={{ base: "md", md: 100 }}> - <Stack gap={'lg'}> - <Paper p={"xl"} bg={colors['white-trans-1']} w={{ base: "100%", md: "100%" }}> - <Flex justify={'center'} gap={'lg'} align={'center'}> - <Avatar radius={"xl"} size={'lg'} bg={colors['BG-trans']}> - <IconPhoneCall size={30} color={colors["blue-button"]} /> - </Avatar> - <Box> - <Text ta={'center'} c={colors['blue-button']} py={10} fz={{ base: "md", md: "h4" }} fw={"bold"} > - Nomor Darurat Utama - </Text> - <Text ta={'center'} fw={"bold"} fz={'h2'} c={colors["blue-button"]}>112</Text> + <Stack pos={"relative"} bg={colors.Bg} py={"xl"} gap={"22"} px={{ base: "md", md: 0 }}> + <Box px={{ base: "md", md: 100 }}><BackButton /></Box> + <Container w={{ base: "100%", md: "50%" }} > + <Box pb={20}> + <Text ta={"center"} fz={"3.4rem"} c={colors["blue-button"]} fw={"bold"}> + IKM Berbasis Pengolahan Pangan + </Text> + <Text + ta={"center"} + fw={"bold"} + fz={"1.4rem"} + > + Informasi dan Pelayanan Administrasi Digital + </Text> </Box> - </Flex> - </Paper> - </Stack> - </Box> - <Box px={{ base: "md", md: 100 }}> - <SimpleGrid cols={{ base: 1, md: 2 }} spacing="xl"> - {/* Layanan Darurat */} - <Paper p="lg" radius="md" bg={colors['white-trans-1']}> - <Group pb="md" align="center"> - <Avatar radius={"xl"} size={'lg'} bg={colors['BG-trans']}> - <IconFirstAidKit size={30} color={colors["blue-button"]} /> - </Avatar> - <Text fw="bold" fz={{ base: "lg", md: "xl" }} c={colors["blue-button"]}> - Layanan Darurat + <Image src="/api/img/ikm.png" alt='' w={"100%"} loading="lazy"/> + </Container> + <Box px={{ base: "md", md: 100 }}> + <Text py={20} fz={{ base: "sm", md: "lg" }} ta={"justify"}> + Desa Darmasaba, yang terletak di Kecamatan Abiansemal, Kabupaten Badung, memiliki potensi besar dalam Industri Kecil dan Menengah (IKM) berbasis pengolahan pangan. Dengan sumber daya alam yang melimpah dan warisan kuliner khas Bali, Darmasaba dapat mengembangkan sektor ini untuk meningkatkan kesejahteraan masyarakat dan menciptakan lapangan kerja baru. </Text> - </Group> - - {emergencyServices.map((v, k) => ( - <Group key={k} px="md" py="sm" bg={colors['BG-trans']} mb="xs" justify="space-between" style={{ borderRadius: 8 }}> - <Group> - {v.icon} - <Text>{v.name}</Text> - </Group> - <Text>{v.nomor}</Text> - </Group> - ))} - </Paper> - - {/* Fasilitas Kesehatan */} - <Paper p="lg" radius="md" bg={colors['white-trans-1']}> - <Group pb="md" align="center"> - <Avatar radius={"xl"} size={'lg'} bg={colors['BG-trans']}> - <IconBuildingSkyscraper size={30} color={colors["blue-button"]} /> - </Avatar> - <Text fw="bold" fz={{ base: "lg", md: "xl" }} c={colors["blue-button"]}> - Fasilitas Kesehatan + <Text fz={{ base: "sm", md: "lg" }} ta={"justify"}> + Potensi dan Peran IKM Berbasis Pengolahan Pangan: </Text> - </Group> - - {healthFacilities.map((v, k) => ( - <Group key={k} px="md" py="sm" bg={colors['BG-trans']} mb="xs" justify="space-between" style={{ borderRadius: 8 }}> - <Group> - {v.icon} - <Text>{v.name}</Text> - </Group> - <Text>{v.nomor}</Text> - </Group> - ))} - </Paper> - - {/* Pemerintah Desa */} - <Paper p="lg" radius="md" bg={colors['white-trans-1']}> - <Group pb="md" align="center"> - <Avatar radius={"xl"} size={'lg'} bg={colors['BG-trans']}> - <IconBuildingBank size={30} color={colors["blue-button"]} /> - </Avatar> - <Text fw="bold" fz={{ base: "lg", md: "xl" }} c={colors["blue-button"]}> - Pemerintah Desa + <List py={20} type='ordered'> + <ListItem fz={{ base: "sm", md: "lg" }} ta={"justify"}> + <Text fz={{ base: "sm", md: "lg" }} fw={"bold"}>Produk Unggulan Pengolahan Pangan</Text> + <Text fz={{ base: "sm", md: "lg" }} ta={"justify"}>Beberapa produk olahan pangan yang potensial dikembangkan di Darmasaba meliputi:</Text> + <Text fz={{ base: "sm", md: "lg" }} ta={"justify"}> - Keripik dan Snack Tradisional : Seperti keripik pisang, keripik singkong, dan rengginang.</Text> + <Text fz={{ base: "sm", md: "lg" }} ta={"justify"}> - Sambal Khas Bali : Seperti sambal matah dan sambal embe yang banyak diminati pasar lokal dan nasional.</Text> + <Text fz={{ base: "sm", md: "lg" }} ta={"justify"}> - Minuman Herbal dan Jamu : Berbasis rempah seperti kunyit asam, beras kencur, dan wedang jahe.</Text> + <Text fz={{ base: "sm", md: "lg" }} ta={"justify"}> - Olahan Makanan Berbasis Kelapa : Seperti virgin coconut oil (VCO), serundeng, dan gula aren.</Text> + <Text fz={{ base: "sm", md: "lg" }} ta={"justify"}> - Kue Tradisional Bali : Seperti jaje laklak, jaje uli, dan klepon yang dapat dikemas secara modern.</Text> + </ListItem> + <ListItem fz={{ base: "sm", md: "lg" }} ta={"justify"}> + <Text fz={{ base: "sm", md: "lg" }} fw={"bold"}>Peluang Ekonomi dan Pemberdayaan UMKM:</Text>IKM berbasis pengolahan pangan dapat membuka peluang bagi masyarakat, terutama ibu rumah tangga dan pemuda desa, untuk berwirausaha. Dengan dukungan modal dan pelatihan dari pemerintah desa atau BUMDes Pudak Mesari, usaha kecil ini dapat berkembang menjadi industri yang lebih besar. + </ListItem> + <ListItem fz={{ base: "sm", md: "lg" }} ta={"justify"}> + <Text fz={{ base: "sm", md: "lg" }} fw={"bold"}>Digitalisasi dan Pemasaran Online:</Text>Darmasaba dapat mengembangkan kawasan sentra IKM sebagai pusat produksi, pelatihan, dan pemasaran produk olahan pangan. Dengan adanya fasilitas ini, para pelaku usaha dapat lebih mudah berkolaborasi, meningkatkan kualitas produk, serta mendapatkan akses ke permodalan dan distribusi yang lebih luas. + </ListItem> + <ListItem fz={{ base: "sm", md: "lg" }} ta={"justify"}> + <Text fz={{ base: "sm", md: "lg" }} fw={"bold"}>Pengembangan Kawasan Sentra IKM:</Text>Dengan berkembangnya sektor kuliner, banyak pelaku UMKM di Darmasaba mulai merintis usaha makanan, baik dalam bentuk warung makan, katering, hingga produksi makanan ringan seperti keripik, sambal, dan minuman tradisional. Potensi ini dapat terus dikembangkan dengan dukungan pemerintah desa dan promosi melalui media sosial. + </ListItem> + <ListItem fz={{ base: "sm", md: "lg" }} ta={"justify"}> + <Text fz={{ base: "sm", md: "lg" }} fw={"bold"}>Sinergi dengan Pariwisata dan Agrowisata:</Text>Dengan berkembangnya sektor wisata di Darmasaba, produk olahan pangan dapat dijadikan suvenir khas desa. Pengunjung dapat membeli oleh-oleh seperti sambal kemasan, jajanan khas, atau minuman herbal sebagai bagian dari pengalaman wisata mereka. + </ListItem> + </List> + <Text fz={{ base: "sm", md: "lg" }} ta={"justify"}> + IKM berbasis pengolahan pangan memiliki potensi besar untuk menjadi sektor unggulan di Desa Darmasaba. Dengan inovasi, dukungan teknologi, serta pemasaran yang baik, produk-produk lokal dapat bersaing di pasar yang lebih luas, meningkatkan kesejahteraan masyarakat, dan menjadikan Darmasaba sebagai pusat industri pangan kreatif di Kabupaten Badung. </Text> - </Group> - - {villageGovernment.map((v, k) => ( - <Group key={k} px="md" py="sm" bg={colors['BG-trans']} mb="xs" justify="space-between" style={{ borderRadius: 8 }}> - <Group> - {v.icon} - <Text>{v.name}</Text> - </Group> - <Text>{v.nomor}</Text> - </Group> - ))} - </Paper> - </SimpleGrid> - </Box> - </Stack> + </Box> + </Stack> ); } diff --git a/src/app/darmasaba/(pages)/desa/berita/[kategori]/Content.tsx b/src/app/darmasaba/(pages)/desa/berita/[kategori]/Content.tsx index 22deaa42..350d3032 100644 --- a/src/app/darmasaba/(pages)/desa/berita/[kategori]/Content.tsx +++ b/src/app/darmasaba/(pages)/desa/berita/[kategori]/Content.tsx @@ -65,6 +65,7 @@ export default function Content({ kategori }: { kategori: string }) { fit="cover" radius="md" style={{ borderBottomRightRadius: 0, borderTopRightRadius: 0 }} + loading="lazy" /> </GridCol> <GridCol span={{ base: 12, md: 6 }} p="xl"> @@ -124,11 +125,11 @@ export default function Content({ kategori }: { kategori: string }) { p="lg" radius="md" withBorder - onClick={() => router.push(`/darmasaba/desa/berita/${item.id}`)} + onClick={() => router.push(`/darmasaba/desa/berita/${kategori}/${item.id}`)} style={{ cursor: 'pointer' }} > <Card.Section> - <Image src={item.image?.link} height={200} alt={item.judul} fit="cover" /> + <Image src={item.image?.link} height={200} alt={item.judul} fit="cover" loading="lazy"/> </Card.Section> <Badge color="blue" variant="light" mt="md"> {item.kategoriBerita?.name || kategori} diff --git a/src/app/darmasaba/(pages)/desa/berita/[kategori]/[id]/page.tsx b/src/app/darmasaba/(pages)/desa/berita/[kategori]/[id]/page.tsx index 0552714b..52286403 100644 --- a/src/app/darmasaba/(pages)/desa/berita/[kategori]/[id]/page.tsx +++ b/src/app/darmasaba/(pages)/desa/berita/[kategori]/[id]/page.tsx @@ -64,7 +64,7 @@ function Page() { Informasi dan Pelayanan Administrasi Digital </Text> </Box> - <Image src={state.findUnique.data?.image?.link || ''} alt='' w={"100%"} /> + <Image src={state.findUnique.data?.image?.link || ''} alt='' w={"100%"} loading="lazy"/> </Container> <Box px={{ base: "md", md: 100 }}> <Stack gap={"xs"}> diff --git a/src/app/darmasaba/(pages)/desa/berita/semua/page.tsx b/src/app/darmasaba/(pages)/desa/berita/semua/page.tsx index 8c8568da..c6aaf3f2 100644 --- a/src/app/darmasaba/(pages)/desa/berita/semua/page.tsx +++ b/src/app/darmasaba/(pages)/desa/berita/semua/page.tsx @@ -72,6 +72,7 @@ function Semua() { fit="cover" radius="md" style={{ borderBottomRightRadius: 0, borderTopRightRadius: 0 }} + loading="lazy" /> </GridCol> <GridCol span={{ base: 12, md: 6 }} p="xl"> @@ -136,6 +137,7 @@ function Semua() { height={200} alt={item.judul} fit="cover" + loading="lazy" /> </Card.Section> diff --git a/src/app/darmasaba/(pages)/desa/galery/foto/Content.tsx b/src/app/darmasaba/(pages)/desa/galery/foto/Content.tsx index e19185c0..97d8cb08 100644 --- a/src/app/darmasaba/(pages)/desa/galery/foto/Content.tsx +++ b/src/app/darmasaba/(pages)/desa/galery/foto/Content.tsx @@ -156,6 +156,7 @@ interface FileItem { height={250} width="100%" style={{ objectFit: 'cover', height: '100%', width: '100%' }} + loading="lazy" /> </Box> <Box> diff --git a/src/app/darmasaba/(pages)/desa/layanan/[id]/page.tsx b/src/app/darmasaba/(pages)/desa/layanan/[id]/page.tsx index 7dc134fe..7bd59eb3 100644 --- a/src/app/darmasaba/(pages)/desa/layanan/[id]/page.tsx +++ b/src/app/darmasaba/(pages)/desa/layanan/[id]/page.tsx @@ -95,6 +95,7 @@ function Page() { maw={500} mx="auto" style={{ boxShadow: '0 0 20px rgba(28,110,164,0.2)' }} + loading="lazy" /> </Center> )} diff --git a/src/app/darmasaba/(pages)/desa/page.tsx b/src/app/darmasaba/(pages)/desa/page.tsx index 85263315..01a391b6 100644 --- a/src/app/darmasaba/(pages)/desa/page.tsx +++ b/src/app/darmasaba/(pages)/desa/page.tsx @@ -17,7 +17,7 @@ export default function Page() { "Dharma Temaja" </Text> </Stack> - <Image py={20} src="/api/img/darmasaba.jpeg" w={"100%"} h={"50%"} alt="" /> + <Image py={20} src="/api/img/darmasaba.jpeg" w={"100%"} h={"50%"} alt="" loading="lazy"/> <Text fz={"sm"} ta={"justify"}> Desa Darmasaba adalah desa yang terletak di Kecamatan Abiansemal, Kabupaten Badung, Provinsi Bali. Desa ini merupakan wilayah paling selatan di Kecamatan Abiansemal. </Text> diff --git a/src/app/darmasaba/(pages)/desa/pengumuman/page.tsx b/src/app/darmasaba/(pages)/desa/pengumuman/page.tsx index b3ecb8fb..218e82bf 100644 --- a/src/app/darmasaba/(pages)/desa/pengumuman/page.tsx +++ b/src/app/darmasaba/(pages)/desa/pengumuman/page.tsx @@ -130,7 +130,7 @@ function Page() { <Text fz="sm" fw="bold" c="black" style={{ textTransform: 'uppercase' }}> {item.judul} </Text> - <Text ta="justify" fz="sm" c="black" lineClamp={3} dangerouslySetInnerHTML={{ __html: item.content }} /> + <Text ta="justify" fz="sm" c="black" lineClamp={3} dangerouslySetInnerHTML={{ __html: item.deskripsi }} /> </Stack> <Flex pt={20} gap="md" justify="space-between"> <Group style={{ color: 'black' }}> @@ -241,7 +241,7 @@ function Page() { fz="sm" c="dimmed" lineClamp={4} - dangerouslySetInnerHTML={{ __html: item.content }} + dangerouslySetInnerHTML={{ __html: item.deskripsi }} mb="md" /> </div> diff --git a/src/app/darmasaba/(pages)/desa/potensi/[id]/page.tsx b/src/app/darmasaba/(pages)/desa/potensi/[id]/page.tsx index 03c2bc2b..4b2ef6a2 100644 --- a/src/app/darmasaba/(pages)/desa/potensi/[id]/page.tsx +++ b/src/app/darmasaba/(pages)/desa/potensi/[id]/page.tsx @@ -75,6 +75,7 @@ function Page() { w="100%" h={{ base: 220, md: 400 }} fallbackSrc="https://placehold.co/800x400?text=Gambar+tidak+tersedia" + loading="lazy" /> <Text py="md" fz={{ base: "sm", md: "md" }} ta="justify" lh={1.8}> {state.findUnique.data?.deskripsi || 'Belum ada deskripsi untuk potensi desa ini.'} diff --git a/src/app/darmasaba/(pages)/desa/profile/ui/lambangDesa.tsx b/src/app/darmasaba/(pages)/desa/profile/ui/lambangDesa.tsx index e3312bd4..0622bcc9 100644 --- a/src/app/darmasaba/(pages)/desa/profile/ui/lambangDesa.tsx +++ b/src/app/darmasaba/(pages)/desa/profile/ui/lambangDesa.tsx @@ -33,6 +33,7 @@ function LambangDesa() { alt="Lambang resmi desa" w={{ base: 180, md: 280 }} radius="md" + loading="lazy" /> </Center> <Text diff --git a/src/app/darmasaba/(pages)/desa/profile/ui/maskotDesa.tsx b/src/app/darmasaba/(pages)/desa/profile/ui/maskotDesa.tsx index 6942374d..da477ecf 100644 --- a/src/app/darmasaba/(pages)/desa/profile/ui/maskotDesa.tsx +++ b/src/app/darmasaba/(pages)/desa/profile/ui/maskotDesa.tsx @@ -31,7 +31,7 @@ function MaskotDesa() { <Box pb={80}> <Stack align="center" gap="xl"> <Stack align="center" gap={10}> - <Image src="/pudak-icon.png" alt="Ikon Desa" w={{ base: 160, md: 240 }} /> + <Image src="/pudak-icon.png" alt="Ikon Desa" w={{ base: 160, md: 240 }} loading="lazy"/> <Text c={colors['blue-button']} ta="center" fw={700} fz={{ base: 28, md: 36 }}>Maskot Desa</Text> </Stack> @@ -72,6 +72,7 @@ function MaskotDesa() { h={200} fit="cover" radius="md" + loading="lazy" /> <Text ta="center" mt="sm" fw={600} fz="sm" c="dark"> {img.label} diff --git a/src/app/darmasaba/(pages)/desa/profile/ui/profilPerbekel.tsx b/src/app/darmasaba/(pages)/desa/profile/ui/profilPerbekel.tsx index d1ef5938..e59f4d57 100644 --- a/src/app/darmasaba/(pages)/desa/profile/ui/profilPerbekel.tsx +++ b/src/app/darmasaba/(pages)/desa/profile/ui/profilPerbekel.tsx @@ -58,6 +58,7 @@ function ProfilPerbekel() { onError={(e) => { e.currentTarget.src = "/perbekel.png"; }} + loading="lazy" /> <Paper bg={colors['blue-button']} diff --git a/src/app/darmasaba/(pages)/desa/profile/ui/sejarahDesa.tsx b/src/app/darmasaba/(pages)/desa/profile/ui/sejarahDesa.tsx index b588b892..0fab6754 100644 --- a/src/app/darmasaba/(pages)/desa/profile/ui/sejarahDesa.tsx +++ b/src/app/darmasaba/(pages)/desa/profile/ui/sejarahDesa.tsx @@ -34,6 +34,7 @@ function SejarahDesa() { w={{ base: 180, md: 260 }} radius="md" style={{ filter: 'drop-shadow(0 4px 12px rgba(0,0,0,0.15))' }} + loading="lazy" /> </Center> <Center> diff --git a/src/app/darmasaba/(pages)/desa/profile/ui/semuaPerbekel.tsx b/src/app/darmasaba/(pages)/desa/profile/ui/semuaPerbekel.tsx index 9008127f..3ba7b404 100644 --- a/src/app/darmasaba/(pages)/desa/profile/ui/semuaPerbekel.tsx +++ b/src/app/darmasaba/(pages)/desa/profile/ui/semuaPerbekel.tsx @@ -72,6 +72,7 @@ function SemuaPerbekel() { fit="cover" h="100%" w="100%" + loading="lazy" /> </Box> diff --git a/src/app/darmasaba/(pages)/desa/profile/ui/visimisiDesa.tsx b/src/app/darmasaba/(pages)/desa/profile/ui/visimisiDesa.tsx index a6edeb48..cf8111f5 100644 --- a/src/app/darmasaba/(pages)/desa/profile/ui/visimisiDesa.tsx +++ b/src/app/darmasaba/(pages)/desa/profile/ui/visimisiDesa.tsx @@ -31,6 +31,7 @@ function VisiMisiDesa() { alt="Lambang Desa Darmasaba" w={{ base: 160, md: 240 }} radius="md" + loading="lazy" /> <Paper diff --git a/src/app/darmasaba/(pages)/ekonomi/pasar-desa/page.tsx b/src/app/darmasaba/(pages)/ekonomi/pasar-desa/page.tsx index 8062d4ab..ef19511f 100644 --- a/src/app/darmasaba/(pages)/ekonomi/pasar-desa/page.tsx +++ b/src/app/darmasaba/(pages)/ekonomi/pasar-desa/page.tsx @@ -117,6 +117,7 @@ function Page() { h={200} w='100%' style={{ objectFit: 'cover' }} + loading="lazy" /> <Text py={10} fw={'bold'} fz={'lg'}>{v.nama}</Text> <Text fz={'md'}>Rp {v.harga.toLocaleString('id-ID')}</Text> diff --git a/src/app/darmasaba/(pages)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/page.tsx b/src/app/darmasaba/(pages)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/page.tsx index 8e2732c7..507f0957 100644 --- a/src/app/darmasaba/(pages)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/page.tsx +++ b/src/app/darmasaba/(pages)/ekonomi/struktur-organisasi-dan-sk-pengurus-bumdesa/page.tsx @@ -14,7 +14,7 @@ function Page() { </Text> <Box px={{ base: "md", md: 100 }}> <Stack gap={'lg'} justify='center'> - <Image src={'/api/img/bpddarmasaba.png'} alt='' /> + <Image src={'/api/img/bpddarmasaba.png'} alt='' loading="lazy"/> </Stack> </Box> </Stack> diff --git a/src/app/darmasaba/(pages)/inovasi/desa-digital-smart-village/page.tsx b/src/app/darmasaba/(pages)/inovasi/desa-digital-smart-village/page.tsx index ea42b000..ecaf2a91 100644 --- a/src/app/darmasaba/(pages)/inovasi/desa-digital-smart-village/page.tsx +++ b/src/app/darmasaba/(pages)/inovasi/desa-digital-smart-village/page.tsx @@ -70,7 +70,7 @@ function Page() { {filteredData.map((v, k) => { return ( <Paper p={'xl'} key={k}> - <Image src={v.image.link? v.image.link : ''} pb={10} radius={10} alt='' /> + <Image src={v.image.link? v.image.link : ''} pb={10} radius={10} alt='' loading="lazy"/> <Text fz={'h3'} fw={'bold'} c={colors['blue-button']}>{v.name}</Text> <Box> <Text fz={"md"} dangerouslySetInnerHTML={{ __html: v.deskripsi }} /> diff --git a/src/app/darmasaba/(pages)/inovasi/info-teknologi-tepat-guna/page.tsx b/src/app/darmasaba/(pages)/inovasi/info-teknologi-tepat-guna/page.tsx index e5935bf7..7bda4660 100644 --- a/src/app/darmasaba/(pages)/inovasi/info-teknologi-tepat-guna/page.tsx +++ b/src/app/darmasaba/(pages)/inovasi/info-teknologi-tepat-guna/page.tsx @@ -71,7 +71,7 @@ function Page() { {filteredData.map((v, k) => { return ( <Paper p={'xl'} key={k}> - <Image src={v.image.link || ''} pb={10} radius={10} alt='' /> + <Image src={v.image.link || ''} pb={10} radius={10} alt='' loading="lazy"/> <Text fz={'h3'} fw={'bold'} c={colors['blue-button']}>{v.name}</Text> <Box pr={'lg'} pb={10}> <Text fz={'h4'} fw={'bold'} dangerouslySetInnerHTML={{ __html: v.deskripsi }} /> diff --git a/src/app/darmasaba/(pages)/inovasi/kolaborasi-inovasi/page.tsx b/src/app/darmasaba/(pages)/inovasi/kolaborasi-inovasi/page.tsx index 8110e378..3863bf09 100644 --- a/src/app/darmasaba/(pages)/inovasi/kolaborasi-inovasi/page.tsx +++ b/src/app/darmasaba/(pages)/inovasi/kolaborasi-inovasi/page.tsx @@ -122,7 +122,7 @@ function Page() { <Text ta={'center'} fz={'h4'}>Kami berkolaborasi dengan berbagai mitra dari berbagai sektor untuk mewujudkan visi Smart Village Darmasaba.</Text> </Box> <Center> - <Image src={'/api/img/logoukm-kolaborasiinvoasi.png'} alt='' w={{ base: 500, md: 650 }} /> + <Image src={'/api/img/logoukm-kolaborasiinvoasi.png'} alt='' w={{ base: 500, md: 650 }} loading="lazy"/> </Center> </Stack> </Box> diff --git a/src/app/darmasaba/(pages)/inovasi/layanan-online-desa/informasi-desa/page.tsx b/src/app/darmasaba/(pages)/inovasi/layanan-online-desa/informasi-desa/page.tsx index 6f822525..5dc168ec 100644 --- a/src/app/darmasaba/(pages)/inovasi/layanan-online-desa/informasi-desa/page.tsx +++ b/src/app/darmasaba/(pages)/inovasi/layanan-online-desa/informasi-desa/page.tsx @@ -50,6 +50,7 @@ function InformasiDesa() { fit="cover" height={250} maw={600} + loading="lazy" /> </GridCol> <GridCol span={{ md: 6, base: 12 }}> @@ -74,6 +75,7 @@ function InformasiDesa() { alt={item.judul} height={160} // gambar fix height fit="cover" + loading="lazy" /> </Card.Section> <Stack gap="xs" mt="sm"> diff --git a/src/app/darmasaba/(pages)/inovasi/layanan-online-desa/pengaduan-masyarakat/page.tsx b/src/app/darmasaba/(pages)/inovasi/layanan-online-desa/pengaduan-masyarakat/page.tsx index f861c328..1f9e10a6 100644 --- a/src/app/darmasaba/(pages)/inovasi/layanan-online-desa/pengaduan-masyarakat/page.tsx +++ b/src/app/darmasaba/(pages)/inovasi/layanan-online-desa/pengaduan-masyarakat/page.tsx @@ -190,7 +190,7 @@ function PengaduanMasyarakat() { </Group> </Dropzone> {previewImage ? ( - <Image alt="" src={previewImage} w={200} h={200} /> + <Image alt="" src={previewImage} w={200} h={200} loading="lazy"/> ) : ( <Center w={200} h={200} bg={"gray"}> <IconImageInPicture /> diff --git a/src/app/darmasaba/(pages)/keamanan/keamanan-lingkungan-pecalang-patwal/page.tsx b/src/app/darmasaba/(pages)/keamanan/keamanan-lingkungan-pecalang-patwal/page.tsx index 902977d8..b8846f90 100644 --- a/src/app/darmasaba/(pages)/keamanan/keamanan-lingkungan-pecalang-patwal/page.tsx +++ b/src/app/darmasaba/(pages)/keamanan/keamanan-lingkungan-pecalang-patwal/page.tsx @@ -73,7 +73,7 @@ function Page() { <Paper radius={10} key={k} bg={colors["white-trans-1"]}> <Stack gap={'xs'}> <Center px={10} py={20}> - <Image src={v.image?.link} alt='' /> + <Image loading="lazy" src={v.image?.link} alt='' /> </Center> <Box px={'lg'}> <Box pb={20}> diff --git a/src/app/darmasaba/(pages)/keamanan/tips-keamanan/page.tsx b/src/app/darmasaba/(pages)/keamanan/tips-keamanan/page.tsx index 2a230ecb..6adbdfe3 100644 --- a/src/app/darmasaba/(pages)/keamanan/tips-keamanan/page.tsx +++ b/src/app/darmasaba/(pages)/keamanan/tips-keamanan/page.tsx @@ -73,7 +73,7 @@ function Page() { <Paper radius={10} key={k} bg={colors["white-trans-1"]}> <Stack gap={'xs'}> <Center p={10}> - <Image src={v.image?.link} radius={10} + <Image src={v.image?.link} radius={10} loading="lazy" alt='' /> </Center> <Box px={'xl'}> diff --git a/src/app/darmasaba/(pages)/kesehatan/data-kesehatan-warga/artikel-kesehatan-page/page.tsx b/src/app/darmasaba/(pages)/kesehatan/data-kesehatan-warga/artikel-kesehatan-page/page.tsx index 274b5c11..abcb1889 100644 --- a/src/app/darmasaba/(pages)/kesehatan/data-kesehatan-warga/artikel-kesehatan-page/page.tsx +++ b/src/app/darmasaba/(pages)/kesehatan/data-kesehatan-warga/artikel-kesehatan-page/page.tsx @@ -51,7 +51,7 @@ function ArtikelKesehatanPage() { onMouseLeave={(e) => (e.currentTarget.style.transform = 'translateY(0)')} > <Card.Section> - <Image src={item.image?.link} alt={item.title} height={200} fit="cover" /> + <Image src={item.image?.link} alt={item.title} height={200} fit="cover" loading="lazy"/> </Card.Section> <Stack gap="xs" mt="md"> <Text fw="bold" fz="xl" c="dark">{item.title}</Text> diff --git a/src/app/darmasaba/(pages)/kesehatan/info-wabah-penyakit/page.tsx b/src/app/darmasaba/(pages)/kesehatan/info-wabah-penyakit/page.tsx index 9015445f..3dc4af80 100644 --- a/src/app/darmasaba/(pages)/kesehatan/info-wabah-penyakit/page.tsx +++ b/src/app/darmasaba/(pages)/kesehatan/info-wabah-penyakit/page.tsx @@ -108,6 +108,7 @@ function Page() { src={v.image.link} alt={v.name} fit="cover" + loading="lazy" /> <Group justify="space-between" mt="sm"> <Text fw={700} fz="lg" c={colors['blue-button']}> diff --git a/src/app/darmasaba/(pages)/kesehatan/kontak-darurat/page.tsx b/src/app/darmasaba/(pages)/kesehatan/kontak-darurat/page.tsx index 5147aad6..aa19062a 100644 --- a/src/app/darmasaba/(pages)/kesehatan/kontak-darurat/page.tsx +++ b/src/app/darmasaba/(pages)/kesehatan/kontak-darurat/page.tsx @@ -107,6 +107,7 @@ function Page() { h={140} fit="contain" radius="md" + loading="lazy" /> <Text ta="center" fw={700} fz="lg" c={colors['blue-button']}> {v.name} diff --git a/src/app/darmasaba/(pages)/kesehatan/penanganan-darurat/page.tsx b/src/app/darmasaba/(pages)/kesehatan/penanganan-darurat/page.tsx index 17507309..17b83e42 100644 --- a/src/app/darmasaba/(pages)/kesehatan/penanganan-darurat/page.tsx +++ b/src/app/darmasaba/(pages)/kesehatan/penanganan-darurat/page.tsx @@ -108,6 +108,7 @@ function Page() { h={160} fit="contain" radius="md" + loading="lazy" /> </Center> <Stack gap={4} w="100%"> diff --git a/src/app/darmasaba/(pages)/kesehatan/posyandu/page.tsx b/src/app/darmasaba/(pages)/kesehatan/posyandu/page.tsx index a1c6bc8b..5acdef17 100644 --- a/src/app/darmasaba/(pages)/kesehatan/posyandu/page.tsx +++ b/src/app/darmasaba/(pages)/kesehatan/posyandu/page.tsx @@ -98,6 +98,7 @@ export default function Page() { w="100%" h={180} fit="cover" + loading="lazy" /> </Center> <Flex align="center" gap="xs"> diff --git a/src/app/darmasaba/(pages)/kesehatan/program-kesehatan/[id]/page.tsx b/src/app/darmasaba/(pages)/kesehatan/program-kesehatan/[id]/page.tsx index 0a999d14..e40a6088 100644 --- a/src/app/darmasaba/(pages)/kesehatan/program-kesehatan/[id]/page.tsx +++ b/src/app/darmasaba/(pages)/kesehatan/program-kesehatan/[id]/page.tsx @@ -49,6 +49,7 @@ function Page() { w="100%" maw={800} fit="cover" + loading="lazy" /> ) : ( <Skeleton h={300} w="100%" radius="xl" /> diff --git a/src/app/darmasaba/(pages)/kesehatan/program-kesehatan/page.tsx b/src/app/darmasaba/(pages)/kesehatan/program-kesehatan/page.tsx index 51ed97ea..6b58c9d6 100644 --- a/src/app/darmasaba/(pages)/kesehatan/program-kesehatan/page.tsx +++ b/src/app/darmasaba/(pages)/kesehatan/program-kesehatan/page.tsx @@ -131,6 +131,7 @@ export default function Page() { radius="xl" height={180} fit="cover" + loading="lazy" /> <Box px="lg" pb="lg"> <Text diff --git a/src/app/darmasaba/(pages)/kesehatan/puskesmas/page.tsx b/src/app/darmasaba/(pages)/kesehatan/puskesmas/page.tsx index 50f7bf52..12331aab 100644 --- a/src/app/darmasaba/(pages)/kesehatan/puskesmas/page.tsx +++ b/src/app/darmasaba/(pages)/kesehatan/puskesmas/page.tsx @@ -91,6 +91,7 @@ function Page() { radius="md" height={160} fit="cover" + loading="lazy" /> <Group justify="space-between"> <Text fw={600} fz="lg" lineClamp={1}>{v.name}</Text> diff --git a/src/app/darmasaba/(pages)/lingkungan/gotong-royong/[kategori]/[id]/page.tsx b/src/app/darmasaba/(pages)/lingkungan/gotong-royong/[kategori]/[id]/page.tsx index 26c2f814..788730e3 100644 --- a/src/app/darmasaba/(pages)/lingkungan/gotong-royong/[kategori]/[id]/page.tsx +++ b/src/app/darmasaba/(pages)/lingkungan/gotong-royong/[kategori]/[id]/page.tsx @@ -66,7 +66,7 @@ function Page() { Informasi Kegiatan Gotong Royong </Text> </Box> - <Image src={state.findUnique.data?.image?.link || ''} alt='' w={"100%"} /> + <Image src={state.findUnique.data?.image?.link || ''} alt='' w={"100%"} loading="lazy"/> </Container> <Box px={{ base: "md", md: 100 }}> <Stack gap={"xs"}> diff --git a/src/app/darmasaba/(pages)/lingkungan/gotong-royong/[kategori]/content.tsx b/src/app/darmasaba/(pages)/lingkungan/gotong-royong/[kategori]/content.tsx index 76df3628..1c38fa7d 100644 --- a/src/app/darmasaba/(pages)/lingkungan/gotong-royong/[kategori]/content.tsx +++ b/src/app/darmasaba/(pages)/lingkungan/gotong-royong/[kategori]/content.tsx @@ -65,6 +65,7 @@ export default function Content({ kategori }: { kategori: string }) { fit="cover" radius="md" style={{ borderBottomRightRadius: 0, borderTopRightRadius: 0 }} + loading="lazy" /> </GridCol> <GridCol span={{ base: 12, md: 6 }} p="xl"> @@ -128,7 +129,7 @@ export default function Content({ kategori }: { kategori: string }) { style={{ cursor: 'pointer' }} > <Card.Section> - <Image src={item.image?.link} height={200} alt={item.judul} fit="cover" /> + <Image src={item.image?.link} height={200} alt={item.judul} fit="cover" loading="lazy"/> </Card.Section> <Badge color="blue" variant="light" mt="md"> {item.kategoriKegiatan?.nama || kategori} diff --git a/src/app/darmasaba/(pages)/lingkungan/gotong-royong/semua/page.tsx b/src/app/darmasaba/(pages)/lingkungan/gotong-royong/semua/page.tsx index 3effe8a3..8f6748cf 100644 --- a/src/app/darmasaba/(pages)/lingkungan/gotong-royong/semua/page.tsx +++ b/src/app/darmasaba/(pages)/lingkungan/gotong-royong/semua/page.tsx @@ -67,6 +67,7 @@ function Page() { fit="cover" radius="md" style={{ borderBottomRightRadius: 0, borderTopRightRadius: 0 }} + loading="lazy" /> </GridCol> <GridCol span={{ base: 12, md: 6 }} p="xl"> @@ -135,6 +136,7 @@ function Page() { height={200} alt={item.judul} fit="cover" + loading="lazy" /> </Card.Section> diff --git a/src/app/darmasaba/(pages)/pendidikan/beasiswa-desa/page.tsx b/src/app/darmasaba/(pages)/pendidikan/beasiswa-desa/page.tsx index f39ff342..dca68008 100644 --- a/src/app/darmasaba/(pages)/pendidikan/beasiswa-desa/page.tsx +++ b/src/app/darmasaba/(pages)/pendidikan/beasiswa-desa/page.tsx @@ -76,7 +76,7 @@ function Page() { </Group> </Box> <Box> - <Image alt="Beasiswa Desa" src="/api/img/beasiswa-siswa.png" radius="lg" /> + <Image alt="Beasiswa Desa" src="/api/img/beasiswa-siswa.png" radius="lg" loading="lazy"/> </Box> </SimpleGrid> diff --git a/src/app/darmasaba/(pages)/pendidikan/perpustakaan-digital/[kategoriBuku]/content.tsx b/src/app/darmasaba/(pages)/pendidikan/perpustakaan-digital/[kategoriBuku]/content.tsx index 2805b4f6..9c41fb3d 100644 --- a/src/app/darmasaba/(pages)/pendidikan/perpustakaan-digital/[kategoriBuku]/content.tsx +++ b/src/app/darmasaba/(pages)/pendidikan/perpustakaan-digital/[kategoriBuku]/content.tsx @@ -74,7 +74,7 @@ function Content({ kategoriBuku }: { kategoriBuku: string }) { {!state.dataPerpustakaan.findMany.data || state.dataPerpustakaan.findMany.data.length === 0 ? ( <Center py="xl"> <Stack gap="xs" align="center"> - <Image src="/empty-books.svg" alt="Kosong" w={140} h="auto" /> + <Image loading="lazy" src="/empty-books.svg" alt="Kosong" w={140} h="auto" /> <Text c="dimmed" fz="sm">Belum ada buku yang tersedia dalam kategori ini</Text> </Stack> </Center> @@ -113,6 +113,7 @@ function Content({ kategoriBuku }: { kategoriBuku: string }) { fit="contain" fallbackSrc="/placeholder-book.jpg" radius="md" + loading="lazy" /> </Center> <Stack gap={4} align="center"> diff --git a/src/app/darmasaba/(pages)/pendidikan/perpustakaan-digital/semua/content.tsx b/src/app/darmasaba/(pages)/pendidikan/perpustakaan-digital/semua/content.tsx index ddfe032f..40a98660 100644 --- a/src/app/darmasaba/(pages)/pendidikan/perpustakaan-digital/semua/content.tsx +++ b/src/app/darmasaba/(pages)/pendidikan/perpustakaan-digital/semua/content.tsx @@ -69,7 +69,7 @@ function Content({ searchQuery }: ContentProps) { state.dataPerpustakaan.findMany.data.length === 0 ? ( <Center py="xl"> <Stack gap="xs" align="center"> - <Image src="/empty-books.svg" alt="Kosong" w={140} h="auto" /> + <Image loading="lazy" src="/empty-books.svg" alt="Kosong" w={140} h="auto" /> <Text c="dimmed" fz="sm">Belum ada buku yang tersedia</Text> </Stack> </Center> @@ -108,6 +108,7 @@ function Content({ searchQuery }: ContentProps) { fit="contain" fallbackSrc="/placeholder-book.jpg" radius="md" + loading="lazy" /> </Center> <Stack gap={4} align="center"> diff --git a/src/app/darmasaba/(pages)/ppid/daftar-informasi-publik-desa-darmasaba/page.tsx b/src/app/darmasaba/(pages)/ppid/daftar-informasi-publik-desa-darmasaba/page.tsx index c21b7309..719ff015 100644 --- a/src/app/darmasaba/(pages)/ppid/daftar-informasi-publik-desa-darmasaba/page.tsx +++ b/src/app/darmasaba/(pages)/ppid/daftar-informasi-publik-desa-darmasaba/page.tsx @@ -63,7 +63,7 @@ function Page() { <BackButton /> </Box> <Center> - <Image src="/darmasaba-icon.png" w={{ base: 70, md: 100 }} alt="Logo Desa Darmasaba" /> + <Image src="/darmasaba-icon.png" w={{ base: 70, md: 100 }} alt="Logo Desa Darmasaba" loading="lazy"/> </Center> <Text ta="center" fz={{ base: "1.8rem", md: "2.5rem" }} c={colors["blue-button"]} fw="bold" lh={1.4}> Daftar Informasi Publik Desa Darmasaba diff --git a/src/app/darmasaba/(pages)/ppid/profile-ppid/page.tsx b/src/app/darmasaba/(pages)/ppid/profile-ppid/page.tsx index 52edee7e..be3ec85e 100644 --- a/src/app/darmasaba/(pages)/ppid/profile-ppid/page.tsx +++ b/src/app/darmasaba/(pages)/ppid/profile-ppid/page.tsx @@ -42,7 +42,7 @@ function Page() { </Box> <Box px={{ base: 'md', md: 100 }}> <Text ta="center" fz={{ base: "2rem", md: "2.5rem", lg: "3rem", xl: "3.4rem" }} c={colors["blue-button"]} fw="bold"> - PPID Desa Darmasaba Profile + Profil PPID Desa Darmasaba </Text> </Box> {dataArray.map((item) => ( @@ -50,9 +50,9 @@ function Page() { <Paper p="xl" bg={colors['white-trans-1']} radius="lg" shadow="xl"> <Box px={{ base: "md", md: 100 }}> <Flex align="center" gap={40} justify="center"> - <Image src="/darmasaba-icon.png" h={{ base: 70, md: 120 }} alt="Village logo" /> + <Image loading='lazy' src="/darmasaba-icon.png" h={{ base: 70, md: 120 }} alt="Logo Desa" /> <Text fz={{ base: "1.5rem", md: "2rem", lg: "2.5rem", xl: "3rem" }} fw="bold"> - Public Information Officer + Pejabat Pengelola Informasi Publik </Text> </Flex> </Box> @@ -65,9 +65,10 @@ function Page() { <Stack gap="md"> <Center> <Image - src={item.image.link ? `${item.image.link}?t=${Date.now()}` : "/perbekel.png"} + loading='lazy' + src={item.image?.link ? `${item.image.link}?t=${Date.now()}` : "/perbekel.png"} w={{ base: 220, md: 330 }} - alt="Leader photo" + alt="Foto Pimpinan" radius="md" /> </Center> @@ -85,14 +86,14 @@ function Page() { <Box> <Flex align="center" gap="sm" mb="sm"> <IconUser size={28} /> - <Text fz={{ base: "1.25rem", md: "1.5rem" }} fw="bold">Biography</Text> + <Text fz={{ base: "1.25rem", md: "1.5rem" }} fw="bold">Biografi</Text> </Flex> <Text fz={{ base: "1rem", md: "1.125rem", lg: "1.25rem" }} ta="justify" dangerouslySetInnerHTML={{ __html: item.biodata }} /> </Box> <Box> <Flex align="center" gap="sm" mb="sm"> <IconTimeline size={28} /> - <Text fz={{ base: "1.25rem", md: "1.5rem" }} fw="bold">Career History</Text> + <Text fz={{ base: "1.25rem", md: "1.5rem" }} fw="bold">Riwayat Karir</Text> </Flex> <Text fz={{ base: "1rem", md: "1.125rem", lg: "1.25rem" }} dangerouslySetInnerHTML={{ __html: item.riwayat }} /> </Box> @@ -104,7 +105,7 @@ function Page() { <Box pb={40}> <Flex align="center" gap="sm" mb="sm"> <IconBuildingCommunity size={28} /> - <Text fz={{ base: "1.25rem", md: "1.5rem" }} fw="bold">Organizational Experience</Text> + <Text fz={{ base: "1.25rem", md: "1.5rem" }} fw="bold">Pengalaman Organisasi</Text> </Flex> <List spacing="xs" size="sm"> <Box px={20}> @@ -116,7 +117,7 @@ function Page() { <Box> <Flex align="center" gap="sm" mb="sm"> <IconTargetArrow size={28} /> - <Text fz={{ base: "1.25rem", md: "1.5rem" }} fw="bold">Flagship Programs</Text> + <Text fz={{ base: "1.25rem", md: "1.5rem" }} fw="bold">Program Unggulan</Text> </Flex> <List spacing="xs" size="sm"> <Box px={20}> diff --git a/src/app/darmasaba/(pages)/ppid/struktur-ppid/page.tsx b/src/app/darmasaba/(pages)/ppid/struktur-ppid/page.tsx index 5e8c40eb..6c3d3b05 100644 --- a/src/app/darmasaba/(pages)/ppid/struktur-ppid/page.tsx +++ b/src/app/darmasaba/(pages)/ppid/struktur-ppid/page.tsx @@ -362,6 +362,7 @@ function nodeTemplate(node: any) { border: '2px solid rgba(255,255,255,0.2)', marginBottom: 12, }} + loading='lazy' /> <Text fw={700}>{name}</Text> <Text size="sm" c="dimmed" mt={4}> diff --git a/src/app/darmasaba/(pages)/ppid/visi-misi-ppid/page.tsx b/src/app/darmasaba/(pages)/ppid/visi-misi-ppid/page.tsx index d4019e57..5047e88a 100644 --- a/src/app/darmasaba/(pages)/ppid/visi-misi-ppid/page.tsx +++ b/src/app/darmasaba/(pages)/ppid/visi-misi-ppid/page.tsx @@ -48,7 +48,7 @@ function Page() { <Stack gap="xl"> <Box> <Center mb="md"> - <Image src="/darmasaba-icon.png" w={{ base: 80, md: 130 }} alt="Logo Desa Darmasaba" /> + <Image src="/darmasaba-icon.png" w={{ base: 80, md: 130 }} alt="Logo Desa Darmasaba" loading='lazy' /> </Center> <Text ta="center" diff --git a/src/app/darmasaba/(tambahan)/penghargaan/[id]/page.tsx b/src/app/darmasaba/(tambahan)/penghargaan/[id]/page.tsx index 866c972d..28cf98f7 100644 --- a/src/app/darmasaba/(tambahan)/penghargaan/[id]/page.tsx +++ b/src/app/darmasaba/(tambahan)/penghargaan/[id]/page.tsx @@ -74,6 +74,7 @@ function Page() { fit="contain" mah={400} fallbackSrc="https://placehold.co/600x400?text=Tidak+Ada+Gambar" + loading="lazy" /> </Stack> </Container> diff --git a/src/app/darmasaba/(tambahan)/prestasi-desa/[id]/page.tsx b/src/app/darmasaba/(tambahan)/prestasi-desa/[id]/page.tsx index b8e6f43c..32609b13 100644 --- a/src/app/darmasaba/(tambahan)/prestasi-desa/[id]/page.tsx +++ b/src/app/darmasaba/(tambahan)/prestasi-desa/[id]/page.tsx @@ -72,6 +72,7 @@ function Page() { alt={state.findUnique.data.name || 'Prestasi'} w={"100%"} style={{ maxHeight: '500px', objectFit: 'cover' }} + loading="lazy" /> )} <Box mt="md"> diff --git a/src/app/darmasaba/(tambahan)/program-inovasi/[id]/page.tsx b/src/app/darmasaba/(tambahan)/program-inovasi/[id]/page.tsx index 7c6187da..d44d66cf 100644 --- a/src/app/darmasaba/(tambahan)/program-inovasi/[id]/page.tsx +++ b/src/app/darmasaba/(tambahan)/program-inovasi/[id]/page.tsx @@ -78,6 +78,7 @@ function Page() { style={{ boxShadow: '0 0 25px rgba(0, 190, 255, 0.25)', }} + loading="lazy" /> )} diff --git a/src/app/darmasaba/(tambahan)/sdgs-desa/page.tsx b/src/app/darmasaba/(tambahan)/sdgs-desa/page.tsx index e4589665..65d78318 100644 --- a/src/app/darmasaba/(tambahan)/sdgs-desa/page.tsx +++ b/src/app/darmasaba/(tambahan)/sdgs-desa/page.tsx @@ -110,6 +110,7 @@ function Page() { height={120} fit="contain" style={{ filter: 'drop-shadow(0px 2px 6px rgba(0,0,0,0.1))' }} + loading="lazy" /> </Box> <Stack gap="xs" align="center" style={{ width: '100%' }}> diff --git a/src/app/darmasaba/_com/Footer.tsx b/src/app/darmasaba/_com/Footer.tsx index 1524bba1..9076b82b 100644 --- a/src/app/darmasaba/_com/Footer.tsx +++ b/src/app/darmasaba/_com/Footer.tsx @@ -46,7 +46,7 @@ function Footer() { <Group justify="apart" align="center" mt="lg"> <Text c="#F3F2EC" ta="center" fz="md" fw={700} style={{ fontStyle: 'italic' }}>"Desa Kuat, Warga Sejahtera!"</Text> <ActionIcon size={80} radius="xl" variant="transparent"> - <Image src="/chatbot-removebg-preview.png" alt="Logo Desa" width={80} height={80} /> + <Image src="/chatbot-removebg-preview.png" alt="Logo Desa" width={80} height={80} loading="lazy"/> </ActionIcon> </Group> </Stack> diff --git a/src/app/darmasaba/_com/Navbar.tsx b/src/app/darmasaba/_com/Navbar.tsx index cb0e8a6d..95c14d56 100644 --- a/src/app/darmasaba/_com/Navbar.tsx +++ b/src/app/darmasaba/_com/Navbar.tsx @@ -38,7 +38,7 @@ export function Navbar() { }} > <Tooltip label="Go to homepage" position="bottom" withArrow> - <Image src="/darmasaba-icon.png" alt="Village Logo" width={48} height={48} /> + <Image src="/darmasaba-icon.png" alt="Village Logo" width={48} height={48} loading="lazy"/> </Tooltip> </ActionIcon> <Tooltip label={mobileOpen ? "Close menu" : "Open menu"} position="bottom" withArrow> diff --git a/src/app/darmasaba/_com/main-page/desaantikorupsi/FlipScroll.tsx b/src/app/darmasaba/_com/main-page/desaantikorupsi/FlipScroll.tsx index 7d03df50..cab8ad93 100644 --- a/src/app/darmasaba/_com/main-page/desaantikorupsi/FlipScroll.tsx +++ b/src/app/darmasaba/_com/main-page/desaantikorupsi/FlipScroll.tsx @@ -28,7 +28,7 @@ const FlipOnScroll = () => { }} > - <Image src={"https://awsimages.detik.net.id/community/media/visual/2023/04/14/gambar-pemandangan-6_169.jpeg?w=1200"} alt="a" /> + <Image src={"https://awsimages.detik.net.id/community/media/visual/2023/04/14/gambar-pemandangan-6_169.jpeg?w=1200"} alt="a" loading="lazy"/> </motion.div> </div> diff --git a/src/app/darmasaba/_com/main-page/landing-page/ProfileView.tsx b/src/app/darmasaba/_com/main-page/landing-page/ProfileView.tsx index 18839fb6..5081dcd0 100644 --- a/src/app/darmasaba/_com/main-page/landing-page/ProfileView.tsx +++ b/src/app/darmasaba/_com/main-page/landing-page/ProfileView.tsx @@ -39,6 +39,7 @@ export default function ProfileView({ data }: ProfileViewProps) { alt={data.name || 'Foto profil'} fit="cover" radius="lg" + loading="lazy" /> ) : ( <Stack align="center" gap="xs" w="100%" py="xl"> diff --git a/src/app/darmasaba/_com/main-page/landing-page/index.tsx b/src/app/darmasaba/_com/main-page/landing-page/index.tsx index 3fe8c40b..0c43440e 100644 --- a/src/app/darmasaba/_com/main-page/landing-page/index.tsx +++ b/src/app/darmasaba/_com/main-page/landing-page/index.tsx @@ -129,12 +129,12 @@ function LandingPage() { <Grid w="100%"> <Grid.Col span={{ base: 3, sm: 2 }}> <Box bg="white" w={72} h={72} p="sm" style={{ borderRadius: 24 }}> - <Image src="/darmasaba-icon.png" alt="Logo Darmasaba" fit="contain" /> + <Image loading="lazy" src="/darmasaba-icon.png" alt="Logo Darmasaba" fit="contain" /> </Box> </Grid.Col> <Grid.Col span={{ base: 9, sm: 10 }}> <Box bg="white" w={72} h={72} p="sm" style={{ borderRadius: 24 }}> - <Image src="/pudak-icon.png" alt="Logo Pudak" fit="contain" /> + <Image loading="lazy" src="/pudak-icon.png" alt="Logo Pudak" fit="contain" /> </Box> </Grid.Col> <Grid.Col span={12}> diff --git a/src/app/darmasaba/_com/main-page/sdgs/index.tsx b/src/app/darmasaba/_com/main-page/sdgs/index.tsx index fdef35a9..750cd7ee 100644 --- a/src/app/darmasaba/_com/main-page/sdgs/index.tsx +++ b/src/app/darmasaba/_com/main-page/sdgs/index.tsx @@ -101,6 +101,7 @@ export default function SDGS() { w={mobile ? 90 : 110} h={mobile ? 90 : 110} fit="contain" + loading="lazy" /> </Box> </Center> diff --git a/src/app/percobaan/page.tsx b/src/app/percobaan/page.tsx index bc7105af..4ee40bbe 100644 --- a/src/app/percobaan/page.tsx +++ b/src/app/percobaan/page.tsx @@ -50,13 +50,13 @@ function Page() { }} /> <Button onClick={submit}>submit</Button> </Flex> - {gambar && <Image w={400} src={gambar || null} alt="gambar" />} + {gambar && <Image w={400} src={gambar || null} alt="gambar" loading="lazy"/>} </Card> <Text>Test</Text> <SimpleGrid cols={6} p={"lg"}> {listFile.map((v) => ( - <Image key={v} src={v} alt="gambar" /> + <Image loading="lazy" key={v} src={v} alt="gambar" /> ))} </SimpleGrid> </Stack>