import { IconEdit, IconKey, IconLoader2, IconStar, IconStarFilled, IconTrash, } from "@tabler/icons-react" import { useTranslation } from "react-i18next" import type { ModelInfo } from "@/api/models" import { Button } from "@/components/ui/button" interface ModelCardProps { model: ModelInfo onEdit: (model: ModelInfo) => void onSetDefault: (model: ModelInfo) => void onDelete: (model: ModelInfo) => void settingDefault: boolean } export function ModelCard({ model, onEdit, onSetDefault, onDelete, settingDefault, }: ModelCardProps) { const { t } = useTranslation() const isOAuth = model.auth_method === "oauth" const status = model.status const statusLabel = t(`models.status.${status}`) const canSetDefault = model.available && !model.is_default && !model.is_virtual return (
{model.model_name} {model.is_default && ( {t("models.badge.default")} )} {model.is_virtual && ( {t("models.badge.virtual")} )}
{model.is_default ? ( ) : ( )}

{model.model}

{isOAuth ? ( OAuth ) : status === "available" && model.api_key ? ( {model.api_key} ) : ( {statusLabel} )}
) }