import React, { useContext } from "react"; import styled from "styled-components"; import { buttonColor, defaultBorderRadius, lightGray } from "."; import { useSelector } from "react-redux"; import { RootStore } from "../redux/store"; import { BookOpenIcon } from "@heroicons/react/24/outline"; import HeaderButtonWithText from "./HeaderButtonWithText"; import { MODEL_PROVIDER_TAG_COLORS } from "../util/modelData"; const Div = styled.div<{ color: string; disabled: boolean }>` border: 1px solid ${lightGray}; border-radius: ${defaultBorderRadius}; padding: 4px 8px; position: relative; width: 100%; transition: all 0.5s; ${(props) => props.disabled ? ` opacity: 0.5; ` : ` &:hover { border: 1px solid ${props.color}; background-color: ${props.color}22; cursor: pointer; } `} `; interface ModelCardProps { title: string; description: string; tags?: string[]; refUrl?: string; icon?: string; onClick: (e: React.MouseEvent) => void; disabled?: boolean; } function ModelCard(props: ModelCardProps) { const vscMediaUrl = useSelector( (state: RootStore) => state.config.vscMediaUrl ); return (
props.onClick(e)} >
{vscMediaUrl && props.icon && ( )}

{props.title}

{props.tags?.map((tag) => { return ( {tag} ); })}

{props.description}

{props.refUrl && ( )}
); } export default ModelCard;