import { AutoComplete as PrimeAutoComplete } from 'primereact/autocomplete' import { useState } from 'react' const AutoComplete = ({ languages, onComplete }) => { const [autoComplete, setAutoComplete] = useState('') const [suggestions, setSuggestions] = useState([]) const exampleCodes = ['de', 'fr', 'ar', 'hi', 'sw', 'fa'] const exampleLanguages = exampleCodes.map(code => languages?.find(item => item.bcp_47 === code) ) const search = e => { const matches = languages.filter(language => { const query = e.query.toLowerCase() return ( language.language_name.toLowerCase().includes(query) || language.autonym.toLowerCase().includes(query) || language.bcp_47.toLowerCase().includes(query) ) }) setSuggestions(matches) } const itemTemplate = item => (
{item.autonym} {item.language_name} {item.bcp_47}
) return ( <> setAutoComplete(e.value)} onClick={() => { setAutoComplete('') setSuggestions(languages) }} onSelect={e => { setAutoComplete(e.value.language_name) onComplete([e.value]) }} suggestions={suggestions} completeMethod={search} virtualScrollerOptions={{ itemSize: 50 }} // smaller values give layout problems delay={500} autoHighlight autoFocus itemTemplate={itemTemplate} field='language_name' minLength={0} /> Examples: {exampleLanguages?.map(language => ( { onComplete([language]) setAutoComplete(language.language_name) }} style={{ textDecoration: 'underline', cursor: 'pointer' }} > {language.language_name} Leaderboard ))} {/*
  • African Leaderboard
  • Indic Leaderboard
  • Transcription Leaderboard
  • Dataset Availability for African Languages
  • GPT 4.5 Evaluation
  • MMLU Evaluation of Open Models
  • */}
    ) } export default AutoComplete