import { useState, useEffect } from 'react' import { PrimeReactProvider } from 'primereact/api' import 'primereact/resources/themes/lara-light-cyan/theme.css' import ModelTable from './components/ModelTable' import LanguageTable from './components/LanguageTable' import DatasetTable from './components/DatasetTable' import WorldMap from './components/WorldMap' import AutoComplete from './components/AutoComplete' import LanguagePlot from './components/LanguagePlot' import { Carousel } from 'primereact/carousel' import { FilterMatchMode } from 'primereact/api' function App () { const [data, setData] = useState(null) const [loading, setLoading] = useState(true) const [error, setError] = useState(null) const [allSuggestions, setAllSuggestions] = useState([]) const [selectedLanguages, setSelectedLanguages] = useState([]) useEffect(() => { fetch('/api/data', { method: 'POST', body: JSON.stringify({ selectedLanguages }) }) .then(response => { if (!response.ok) { throw new Error('Network response was not ok') } return response.json() }) .then(jsonData => { setData(jsonData) setLoading(false) }) .catch(err => { setError(err.message) setLoading(false) }) }, [selectedLanguages]) useEffect(() => { if (data) { const models = data.model_table.map(item => ({ type: 'Model', value: item.model, detail: item.provider, searchText: item.model.toLowerCase() })) const languages = data.language_table.map(item => ({ type: 'Language', value: item.autonym, detail: item.language_name, searchText: item.language_name.toLowerCase() + ' ' + item.autonym.toLowerCase(), bcp_47: item.bcp_47 })) const datasets = data.dataset_table.map(item => ({ type: 'Dataset', value: item.name, detail: item.tasks, searchText: item.author.toLowerCase() + ' ' + item.name.toLowerCase() + ' ' + item.tasks.map(task => task.toLowerCase()).join(' ') })) const allSuggestions = [...models, ...languages, ...datasets] setAllSuggestions(allSuggestions) } }, [data]) return (
🌍

Global AI Language Monitor

Tracking language proficiency of AI models for every language

{ if (item.type === 'Language') setSelectedLanguages(() => [item]) }} />
{JSON.stringify(selectedLanguages, null, 2)}
{loading && ( )} {error &&

Error: {error}

} {data && ( <>
, ]} numScroll={1} numVisible={1} itemTemplate={item => item} circular />
)}
) } export default App