import React, { useRef, useEffect, useState } from 'react' import { InformationCircleIcon, DocumentTextIcon } from '@heroicons/react/24/outline' import GitHubIcon from './icons/GitHubIcon' import { Tooltip as ReactTooltip } from 'react-tooltip' import 'react-tooltip/dist/react-tooltip.css' import Descriptions from '../Descriptions' interface ModelInfoIconProps { modelName: string } const ModelInfoIcon: React.FC = ({ modelName }) => { const [descriptionsLoaded, setDescriptionsLoaded] = useState(false) const descriptions = useRef(Descriptions.getInstance()) useEffect(() => { descriptions.current.load().then(() => setDescriptionsLoaded(true)) }, []) const fullName = descriptions.current.getModelFullName(modelName) || modelName const description = descriptions.current.getModelDescription(modelName) const paperUrl = descriptions.current.getModelPaperUrl(modelName) const githubUrl = descriptions.current.getModelGithubUrl(modelName) return ( <>
{fullName}
{description || 'No description available.'}
{paperUrl && (
Paper
)} {githubUrl && (
GitHub
)}
) } export default ModelInfoIcon