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" import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/ui/tooltip" 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 const setDefaultLabel = t("models.action.setDefault") const setDefaultDisabledReason = (() => { if (settingDefault) return t("models.action.setDefaultDisabled.setting") if (!model.available) return t("models.action.setDefaultDisabled.unavailable") if (model.is_default) return t("models.action.setDefaultDisabled.isDefault") if (model.is_virtual) return t("models.action.setDefaultDisabled.isVirtual") return setDefaultLabel })() const editLabel = t("models.action.edit") const deleteLabel = t("models.action.delete") const deleteDisabledReason = model.is_default ? t("models.action.deleteDisabled.isDefault") : deleteLabel const deleteDisabled = model.is_default return (
{model.model}