/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable react-hooks/exhaustive-deps */ 'use client' import stateDashboardKegiatan from '@/app/admin/(dashboard)/_state/desa/kegiatanDesa'; import BackButton from '@/app/darmasaba/(pages)/desa/layanan/_com/BackButto'; import colors from '@/con/colors'; import { Box, Group, Select, Stack, Text, TextInput } from '@mantine/core'; import { useDebouncedValue } from '@mantine/hooks'; import { IconSearch } from '@tabler/icons-react'; import { useRouter, useSearchParams } from 'next/navigation'; import React, { useEffect, useState } from 'react'; import { useProxy } from 'valtio/utils'; function LayoutTabsKegiatanDesa({ children }: { children: React.ReactNode }) { const router = useRouter(); const searchParams = useSearchParams(); const kategoriState = useProxy(stateDashboardKegiatan.kategoriKegiatan); const [searchValue, setSearchValue] = useState(searchParams.get('search') || ''); const [debouncedSearch] = useDebouncedValue(searchValue, 500); useEffect(() => { kategoriState.findMany.load(1, 100); }, []); useEffect(() => { const params = new URLSearchParams(searchParams.toString()); if (debouncedSearch) params.set('search', debouncedSearch); else params.delete('search'); params.delete('page'); router.push(`/darmasaba/desa/kegiatan-desa/semua?${params.toString()}`); }, [debouncedSearch]); const handleKategoriChange = (value: string | null) => { const params = new URLSearchParams(searchParams.toString()); if (value) params.set('kategori', value); else params.delete('kategori'); params.delete('page'); router.push(`/darmasaba/desa/kegiatan-desa/semua?${params.toString()}`); }; const kategoriOptions = (kategoriState.findMany.data || []).map((k: any) => ({ value: k.nama, label: k.nama, })); return ( Kegiatan Desa Darmasaba Temukan berbagai kegiatan dan program yang dilaksanakan Desa Darmasaba