From 75c2a063cc9b705b161880ac16ec31f0432c2fcd Mon Sep 17 00:00:00 2001 From: Junyan Qin Date: Thu, 1 Jan 2026 15:07:37 +0800 Subject: [PATCH] refactor: remove providerUuid prop from model components and enhance provider deletion confirmation UI --- .../components/AddModelPopover.tsx | 2 - .../models-dialog/components/ModelItem.tsx | 2 - .../models-dialog/components/ProviderCard.tsx | 75 ++++++++++++++----- web/src/i18n/locales/en-US.ts | 2 + web/src/i18n/locales/ja-JP.ts | 1 + web/src/i18n/locales/zh-Hans.ts | 1 + web/src/i18n/locales/zh-Hant.ts | 1 + 7 files changed, 62 insertions(+), 22 deletions(-) diff --git a/web/src/app/home/components/models-dialog/components/AddModelPopover.tsx b/web/src/app/home/components/models-dialog/components/AddModelPopover.tsx index 0afb438c..ac64d37d 100644 --- a/web/src/app/home/components/models-dialog/components/AddModelPopover.tsx +++ b/web/src/app/home/components/models-dialog/components/AddModelPopover.tsx @@ -17,7 +17,6 @@ import { ExtraArg, ModelType, TestResult } from '../types'; import ExtraArgsEditor from './ExtraArgsEditor'; interface AddModelPopoverProps { - providerUuid: string; isOpen: boolean; onOpen: () => void; onClose: () => void; @@ -40,7 +39,6 @@ interface AddModelPopoverProps { } export default function AddModelPopover({ - providerUuid, isOpen, onOpen, onClose, diff --git a/web/src/app/home/components/models-dialog/components/ModelItem.tsx b/web/src/app/home/components/models-dialog/components/ModelItem.tsx index 113e5cff..81649195 100644 --- a/web/src/app/home/components/models-dialog/components/ModelItem.tsx +++ b/web/src/app/home/components/models-dialog/components/ModelItem.tsx @@ -20,7 +20,6 @@ import ExtraArgsEditor from './ExtraArgsEditor'; interface ModelItemProps { model: LLMModel | EmbeddingModel; modelType: ModelType; - providerUuid: string; isLangBotModels: boolean; editModelPopoverOpen: string | null; deleteConfirmOpen: string | null; @@ -58,7 +57,6 @@ function convertExtraArgsToArray(extraArgs?: object): ExtraArg[] { export default function ModelItem({ model, modelType, - providerUuid, isLangBotModels, editModelPopoverOpen, deleteConfirmOpen, diff --git a/web/src/app/home/components/models-dialog/components/ProviderCard.tsx b/web/src/app/home/components/models-dialog/components/ProviderCard.tsx index 1076c032..b9bd4f81 100644 --- a/web/src/app/home/components/models-dialog/components/ProviderCard.tsx +++ b/web/src/app/home/components/models-dialog/components/ProviderCard.tsx @@ -1,5 +1,6 @@ 'use client'; +import { useState } from 'react'; import { Plus, ChevronDown, @@ -9,17 +10,18 @@ import { LogIn, } from 'lucide-react'; import { httpClient, systemInfo } from '@/app/infra/http/HttpClient'; -import { - ModelProvider, - LLMModel, - EmbeddingModel, -} from '@/app/infra/entities/api'; +import { ModelProvider } from '@/app/infra/entities/api'; import { Button } from '@/components/ui/button'; import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from '@/components/ui/collapsible'; +import { + Popover, + PopoverContent, + PopoverTrigger, +} from '@/components/ui/popover'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Badge } from '@/components/ui/badge'; import { useTranslation } from 'react-i18next'; @@ -116,6 +118,8 @@ export default function ProviderCard({ onResetTestResult, }: ProviderCardProps) { const { t } = useTranslation(); + const [deleteProviderConfirmOpen, setDeleteProviderConfirmOpen] = + useState(false); const canDelete = !isLangBotModels && @@ -231,17 +235,55 @@ export default function ProviderCard({ {canDelete && ( - + + + + e.stopPropagation()} + > +
+

+ {t('models.deleteProviderConfirmation')} +

+
+ + +
+
+
+ )} )} @@ -266,7 +308,6 @@ export default function ProviderCard({ )} {!isLangBotModels && (