/* eslint-disable react/display-name */ "use client"; import ExploreModelItemHeader from "../ExploreModelItemHeader"; import ModelVersionList from "../ModelVersionList"; import { Fragment, forwardRef, useEffect, useState } from "react"; import SimpleTag from "../SimpleTag"; import { MiscellanousTag, NumOfBit, QuantMethodTag, RamRequired, UsecaseTag, VersionTag, } from "@/_components/SimpleTag/TagType"; import { displayDate } from "@/_utils/datetime"; import { Product } from "@/_models/Product"; import useGetMostSuitableModelVersion from "@/_hooks/useGetMostSuitableModelVersion"; import { toGigabytes } from "@/_utils/converter"; type Props = { model: Product; }; const ExploreModelItem = forwardRef(({ model }, ref) => { const [show, setShow] = useState(false); const { availableVersions } = model; const { suitableModel, getMostSuitableModelVersion } = useGetMostSuitableModelVersion(); useEffect(() => { getMostSuitableModelVersion(availableVersions); }, [availableVersions]); if (!suitableModel) { return null; } const { quantMethod, bits, maxRamRequired, usecase } = suitableModel; return (
Release Date
{displayDate(model.releaseDate)}
Version
Author
{model.author}
Compatibility
About {model.longDescription}
Tags
{model.tags.map((tag) => ( ))}
{model.availableVersions?.length > 0 && ( {show && ( )} )}
); }); export default ExploreModelItem;