import { useEffect, useState } from 'react' import Image from 'next/image' import { LlmEngine, Model } from '@janhq/core' import useGetModelsByEngine from '@/hooks/useGetModelsByEngine' import { getTitleByCategory } from '@/utils/model-engine' import ModelLabel from '../ModelLabel' type Props = { engine: LlmEngine searchText: string onModelSelected: (model: Model) => void } const ModelSection: React.FC = ({ engine, searchText, onModelSelected, }) => { const [models, setModels] = useState([]) const { getModelsByEngine } = useGetModelsByEngine() useEffect(() => { const matchedModels = getModelsByEngine(engine, searchText) setModels(matchedModels) }, [getModelsByEngine, engine, searchText]) if (models.length === 0) return null const engineName = getTitleByCategory(engine) return (
{engineName}
    {models.map((model) => (
  • onModelSelected(model)} > {model.metadata?.logo && ( logo )}

    {model.name ?? model.model}

  • ))}
) } export default ModelSection