import { DataTable } from 'primereact/datatable'; import { Column } from 'primereact/column'; import { FilterMatchMode } from 'primereact/api'; import { MultiSelect } from 'primereact/multiselect'; import { useState } from 'react'; import Medal from './Medal'; const ModelTable = ({ data }) => { const [filters, setFilters] = useState({ "provider": { value: null, matchMode: FilterMatchMode.IN }, "model": { value: null, matchMode: FilterMatchMode.CONTAINS } }); const table = data.model_table; const rankBodyTemplate = (rowData) => { return ; }; const providers = [...new Set(table.map(item => item.provider))]; const providerRowFilterTemplate = (options) => { return ( { options.filterApplyCallback(e.value); setFilters(prevFilters => ({ ...prevFilters, provider: { value: e.value, matchMode: FilterMatchMode.IN } })); }} placeholder="All providers" /> ); }; const sizeBodyTemplate = (rowData) => { const size = rowData.size; if (size === null) { return
N/A
; } let sizeStr; if (size < 1000) { sizeStr = size.toFixed(0) + ""; } else if (size < 1000 * 1000) { sizeStr = (size / 1000).toFixed(0) + "K"; } else if (size < 1000 * 1000 * 1000) { sizeStr = (size / 1000 / 1000).toFixed(0) + "M"; } else { sizeStr = (size / 1000 / 1000 / 1000).toFixed(0) + "B"; } return
{sizeStr}
; }; const modelBodyTemplate = (rowData) => { // bold return
{rowData.model}
; }; return ( AI Models} sortField="average" removableSort filters={filters} filterDisplay="menu" scrollable scrollHeight="500px"> ); }; export default ModelTable;