import { useForm } from 'react-hook-form'; import DatasetsGrid from './DatasetsGrid'; import { Project } from '../lib/project.interface'; import { Index } from 'flexsearch'; export default function DatasetsSearch({ datasets }: { datasets: Project[] }) { const index = new Index({ tokenize: 'full' }); datasets.forEach((dataset: Project) => index.add( dataset.name, `${dataset.repo} ${dataset.name} ${dataset.title} ${dataset.author} ${dataset.title} ${dataset.cityCode} ${dataset.fiscalPeriod?.start} ${dataset.fiscalPeriod?.end}` ) ); const { register, watch, handleSubmit, reset, resetField } = useForm({ defaultValues: { searchTerm: '', country: '', minDate: '', maxDate: '', }, }); const allCountries = datasets .map((item) => item.countryCode) .filter((v) => v) // Filters false values .filter((v, i, a) => a.indexOf(v) === i) // Remove duplicates // TODO: title should be the full name .map((code) => ({ code, title: code })); return ( <>