Fix All Image Add Lazy Loading
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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"}>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -156,6 +156,7 @@ interface FileItem {
|
||||
height={250}
|
||||
width="100%"
|
||||
style={{ objectFit: 'cover', height: '100%', width: '100%' }}
|
||||
loading="lazy"
|
||||
/>
|
||||
</Box>
|
||||
<Box>
|
||||
|
||||
@@ -95,6 +95,7 @@ function Page() {
|
||||
maw={500}
|
||||
mx="auto"
|
||||
style={{ boxShadow: '0 0 20px rgba(28,110,164,0.2)' }}
|
||||
loading="lazy"
|
||||
/>
|
||||
</Center>
|
||||
)}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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.'}
|
||||
|
||||
@@ -33,6 +33,7 @@ function LambangDesa() {
|
||||
alt="Lambang resmi desa"
|
||||
w={{ base: 180, md: 280 }}
|
||||
radius="md"
|
||||
loading="lazy"
|
||||
/>
|
||||
</Center>
|
||||
<Text
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -58,6 +58,7 @@ function ProfilPerbekel() {
|
||||
onError={(e) => {
|
||||
e.currentTarget.src = "/perbekel.png";
|
||||
}}
|
||||
loading="lazy"
|
||||
/>
|
||||
<Paper
|
||||
bg={colors['blue-button']}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -72,6 +72,7 @@ function SemuaPerbekel() {
|
||||
fit="cover"
|
||||
h="100%"
|
||||
w="100%"
|
||||
loading="lazy"
|
||||
/>
|
||||
</Box>
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ function VisiMisiDesa() {
|
||||
alt="Lambang Desa Darmasaba"
|
||||
w={{ base: 160, md: 240 }}
|
||||
radius="md"
|
||||
loading="lazy"
|
||||
/>
|
||||
|
||||
<Paper
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 }} />
|
||||
|
||||
@@ -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 }} />
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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 />
|
||||
|
||||
@@ -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}>
|
||||
|
||||
@@ -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'}>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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']}>
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -108,6 +108,7 @@ function Page() {
|
||||
h={160}
|
||||
fit="contain"
|
||||
radius="md"
|
||||
loading="lazy"
|
||||
/>
|
||||
</Center>
|
||||
<Stack gap={4} w="100%">
|
||||
|
||||
@@ -98,6 +98,7 @@ export default function Page() {
|
||||
w="100%"
|
||||
h={180}
|
||||
fit="cover"
|
||||
loading="lazy"
|
||||
/>
|
||||
</Center>
|
||||
<Flex align="center" gap="xs">
|
||||
|
||||
@@ -49,6 +49,7 @@ function Page() {
|
||||
w="100%"
|
||||
maw={800}
|
||||
fit="cover"
|
||||
loading="lazy"
|
||||
/>
|
||||
) : (
|
||||
<Skeleton h={300} w="100%" radius="xl" />
|
||||
|
||||
@@ -131,6 +131,7 @@ export default function Page() {
|
||||
radius="xl"
|
||||
height={180}
|
||||
fit="cover"
|
||||
loading="lazy"
|
||||
/>
|
||||
<Box px="lg" pb="lg">
|
||||
<Text
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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"}>
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}>
|
||||
|
||||
@@ -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}>
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -74,6 +74,7 @@ function Page() {
|
||||
fit="contain"
|
||||
mah={400}
|
||||
fallbackSrc="https://placehold.co/600x400?text=Tidak+Ada+Gambar"
|
||||
loading="lazy"
|
||||
/>
|
||||
</Stack>
|
||||
</Container>
|
||||
|
||||
@@ -72,6 +72,7 @@ function Page() {
|
||||
alt={state.findUnique.data.name || 'Prestasi'}
|
||||
w={"100%"}
|
||||
style={{ maxHeight: '500px', objectFit: 'cover' }}
|
||||
loading="lazy"
|
||||
/>
|
||||
)}
|
||||
<Box mt="md">
|
||||
|
||||
@@ -78,6 +78,7 @@ function Page() {
|
||||
style={{
|
||||
boxShadow: '0 0 25px rgba(0, 190, 255, 0.25)',
|
||||
}}
|
||||
loading="lazy"
|
||||
/>
|
||||
)}
|
||||
|
||||
|
||||
@@ -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%' }}>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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}>
|
||||
|
||||
@@ -101,6 +101,7 @@ export default function SDGS() {
|
||||
w={mobile ? 90 : 110}
|
||||
h={mobile ? 90 : 110}
|
||||
fit="contain"
|
||||
loading="lazy"
|
||||
/>
|
||||
</Box>
|
||||
</Center>
|
||||
|
||||
Reference in New Issue
Block a user