/* eslint-disable react-hooks/exhaustive-deps */ "use client"; import stateLayananDesa from "@/app/admin/(dashboard)/_state/desa/layananDesa"; import colors from "@/con/colors"; import { Carousel } from "@mantine/carousel"; import { Box, Button, Container, Divider, Group, Paper, Skeleton, Stack, Text, useMantineTheme } from "@mantine/core"; import { useMediaQuery } from "@mantine/hooks"; import Autoplay from "embla-carousel-autoplay"; import _ from "lodash"; import { useTransitionRouter } from "next-view-transitions"; import Link from "next/link"; import { useEffect, useRef, useState } from "react"; import { useProxy } from "valtio/utils"; const textHeading = { title: "Layanan", des: "Layanan adalah fitur yang membantu warga desa mengakses berbagai kebutuhan administrasi, informasi, dan bantuan secara cepat, mudah, dan transparan. Dengan fitur ini, semua layanan desa ada dalam genggaman Anda!", }; function Layanan() { return ( {textHeading.title} {textHeading.des} ); } const height = 720; function Slider() { const state = useProxy(stateLayananDesa) const [loading, setLoading] = useState(false); const theme = useMantineTheme(); const mobile = useMediaQuery(`(max-width: ${theme.breakpoints.sm})`); const autoplay = useRef(Autoplay({ delay: 2000 })); const router = useTransitionRouter() useEffect(()=> { const loadData = async () => { try { setLoading(true); await state.suratKeterangan.findMany.load() } catch (error) { console.error('Error loading data:', error); } finally { setLoading(false); } } loadData() }, []) const data = (state.suratKeterangan.findMany.data || []).slice(0, 8); const slides = data.map((item) => ( {_.startCase(item.name)} )); return ( {loading ? ( ) : ( {slides} )} ); } export default Layanan;