'use client' import kolaborasiInovasiState from '@/app/admin/(dashboard)/_state/inovasi/kolaborasi-inovasi'; import mitraKolaborasi from '@/app/admin/(dashboard)/_state/inovasi/mitra-kolaborasi'; import colors from '@/con/colors'; import { Box, Center, Grid, GridCol, Group, Image, Pagination, Paper, Select, SimpleGrid, Skeleton, Stack, Text, TextInput } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; import { IconSearch } from '@tabler/icons-react'; import { useState } from 'react'; import { useProxy } from 'valtio/utils'; import BackButton from '../../desa/layanan/_com/BackButto'; function Page() { const kolabState = useProxy(kolaborasiInovasiState) const mitraState = useProxy(mitraKolaborasi) const [search, setSearch] = useState(''); const [selectedYear, setSelectedYear] = useState(null); // Get unique years from kolaborasiInovasi data const years = Array.from( new Set( kolabState.findMany.data?.map(item => new Date(item.createdAt).getFullYear().toString() ) || [] ) ) .sort((a, b) => b.localeCompare(a)) .map(year => ({ value: year, label: year })); const { data, page, totalPages, loading, load } = kolabState.findMany; useShallowEffect(() => { mitraState.findMany.load(page, 10); load(page, 10, search, selectedYear || ''); }, [page, search, selectedYear]); const mitraData = mitraState.findMany.data || []; const mitraLoading = mitraState.findMany.loading; return ( <> {/* Header Kolaborasi Inovasi */} Kolaborasi Inovasi setSearch(e.target.value)} leftSection={} w={{ base: "50%", md: "100%" }} /> {/* Filter Tahun */}