From 89a7c707308b244550a786842450845d02e41aaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=9E=E6=B3=95=E6=93=8D=E4=BD=9C?= Date: Wed, 26 Jun 2024 19:27:22 +0800 Subject: [PATCH] chore: add a secondary confirmation dialog when the user delete the tool (#5634) --- .../edit-custom-collection-modal/index.tsx | 2 +- web/app/components/tools/provider/detail.tsx | 34 +++++++++++++++++-- .../components/tools/workflow-tool/index.tsx | 2 +- web/i18n/de-DE/tools.ts | 2 ++ web/i18n/en-US/tools.ts | 2 ++ web/i18n/fr-FR/tools.ts | 2 ++ web/i18n/hi-IN/tools.ts | 2 ++ web/i18n/ja-JP/tools.ts | 2 ++ web/i18n/ko-KR/tools.ts | 2 ++ web/i18n/pl-PL/tools.ts | 2 ++ web/i18n/pt-BR/tools.ts | 2 ++ web/i18n/ro-RO/tools.ts | 2 ++ web/i18n/uk-UA/tools.ts | 2 ++ web/i18n/vi-VN/tools.ts | 2 ++ web/i18n/zh-Hans/tools.ts | 2 ++ web/i18n/zh-Hant/tools.ts | 2 ++ 16 files changed, 60 insertions(+), 4 deletions(-) diff --git a/web/app/components/tools/edit-custom-collection-modal/index.tsx b/web/app/components/tools/edit-custom-collection-modal/index.tsx index c06c3af123..8de57bbafa 100644 --- a/web/app/components/tools/edit-custom-collection-modal/index.tsx +++ b/web/app/components/tools/edit-custom-collection-modal/index.tsx @@ -302,7 +302,7 @@ const EditCustomCollectionModal: FC = ({
{ isEdit && ( - + ) }
diff --git a/web/app/components/tools/provider/detail.tsx b/web/app/components/tools/provider/detail.tsx index ba96fb1126..31d9aefc71 100644 --- a/web/app/components/tools/provider/detail.tsx +++ b/web/app/components/tools/provider/detail.tsx @@ -8,6 +8,7 @@ import type { Collection, CustomCollectionBackend, Tool, WorkflowToolProviderReq import ToolItem from './tool-item' import I18n from '@/context/i18n' import { getLanguage } from '@/i18n/language' +import Confirm from '@/app/components/base/confirm' import AppIcon from '@/app/components/base/app-icon' import Button from '@/app/components/base/button' import Indicator from '@/app/components/header/indicator' @@ -83,6 +84,8 @@ const ProviderDetail = ({ // custom provider const [customCollection, setCustomCollection] = useState(null) const [isShowEditCollectionToolModal, setIsShowEditCustomCollectionModal] = useState(false) + const [showConfirmDelete, setShowConfirmDelete] = useState(false) + const [deleteAction, setDeleteAction] = useState(null) const doUpdateCustomToolCollection = async (data: CustomCollectionBackend) => { await updateCustomCollection(data) onRefreshData() @@ -158,6 +161,23 @@ const ProviderDetail = ({ }) setIsShowEditWorkflowToolModal(false) } + const onClickCustomToolDelete = () => { + setDeleteAction('customTool') + setShowConfirmDelete(true) + } + const onClickWorkflowToolDelete = () => { + setDeleteAction('workflowTool') + setShowConfirmDelete(true) + } + const handleConfirmDelete = () => { + if (deleteAction === 'customTool') + doRemoveCustomToolCollection() + + else if (deleteAction === 'workflowTool') + removeWorkflowToolProvider() + + setShowConfirmDelete(false) + } // ToolList const [toolList, setToolList] = useState([]) @@ -330,17 +350,27 @@ const ProviderDetail = ({ payload={customCollection} onHide={() => setIsShowEditCustomCollectionModal(false)} onEdit={doUpdateCustomToolCollection} - onRemove={doRemoveCustomToolCollection} + onRemove={onClickCustomToolDelete} /> )} {isShowEditWorkflowToolModal && ( setIsShowEditWorkflowToolModal(false)} - onRemove={removeWorkflowToolProvider} + onRemove={onClickWorkflowToolDelete} onSave={updateWorkflowToolProvider} /> )} + {showConfirmDelete && ( + setShowConfirmDelete(false)} + onConfirm={handleConfirmDelete} + onCancel={() => setShowConfirmDelete(false)} + /> + )}
) } diff --git a/web/app/components/tools/workflow-tool/index.tsx b/web/app/components/tools/workflow-tool/index.tsx index 9462fef964..80f786835b 100644 --- a/web/app/components/tools/workflow-tool/index.tsx +++ b/web/app/components/tools/workflow-tool/index.tsx @@ -244,7 +244,7 @@ const WorkflowToolAsModal: FC = ({
{!isAdd && onRemove && ( - + )}
diff --git a/web/i18n/de-DE/tools.ts b/web/i18n/de-DE/tools.ts index 2c15a3f9ad..a45d0da1b1 100644 --- a/web/i18n/de-DE/tools.ts +++ b/web/i18n/de-DE/tools.ts @@ -73,6 +73,8 @@ const translation = { privacyPolicyPlaceholder: 'Bitte Datenschutzrichtlinie eingeben', customDisclaimer: 'Benutzer Haftungsausschluss', customDisclaimerPlaceholder: 'Bitte benutzerdefinierten Haftungsausschluss eingeben', + deleteToolConfirmTitle: 'Löschen Sie dieses Werkzeug?', + deleteToolConfirmContent: 'Das Löschen des Werkzeugs ist irreversibel. Benutzer können Ihr Werkzeug nicht mehr verwenden.', }, test: { title: 'Test', diff --git a/web/i18n/en-US/tools.ts b/web/i18n/en-US/tools.ts index d425f8d74b..e50086c3eb 100644 --- a/web/i18n/en-US/tools.ts +++ b/web/i18n/en-US/tools.ts @@ -105,6 +105,8 @@ const translation = { customDisclaimerPlaceholder: 'Please enter custom disclaimer', confirmTitle: 'Confirm to save ?', confirmTip: 'Apps using this tool will be affected', + deleteToolConfirmTitle: 'Delete this Tool?', + deleteToolConfirmContent: 'Deleting the Tool is irreversible. Users will no longer be able to access your Tool.', }, test: { title: 'Test', diff --git a/web/i18n/fr-FR/tools.ts b/web/i18n/fr-FR/tools.ts index 634739144f..5e2c770fea 100644 --- a/web/i18n/fr-FR/tools.ts +++ b/web/i18n/fr-FR/tools.ts @@ -73,6 +73,8 @@ const translation = { privacyPolicyPlaceholder: 'Veuillez entrer la politique de confidentialité', customDisclaimer: 'Clause de non-responsabilité personnalisée', customDisclaimerPlaceholder: 'Entrez le texte de la clause de non-responsabilité personnalisée', + deleteToolConfirmTitle: 'Supprimer cet outil ?', + deleteToolConfirmContent: 'La suppression de l\'outil est irréversible. Les utilisateurs ne pourront plus accéder à votre outil.', }, test: { title: 'Test', diff --git a/web/i18n/hi-IN/tools.ts b/web/i18n/hi-IN/tools.ts index cc81e3efc6..ea8e915ea3 100644 --- a/web/i18n/hi-IN/tools.ts +++ b/web/i18n/hi-IN/tools.ts @@ -108,6 +108,8 @@ const translation = { customDisclaimerPlaceholder: 'कस्टम अस्वीकरण दर्ज करें', confirmTitle: 'सहेजने की पुष्टि करें ?', confirmTip: 'इस उपकरण का उपयोग करने वाले ऐप्स प्रभावित होंगे', + deleteToolConfirmTitle: 'इस उपकरण को हटाएं?', + deleteToolConfirmContent: 'इस उपकरण को हटाने से वापस नहीं आ सकता है। उपयोगकर्ता अब तक आपके उपकरण पर अन्तराल नहीं कर सकेंगे।', }, test: { title: 'परीक्षण', diff --git a/web/i18n/ja-JP/tools.ts b/web/i18n/ja-JP/tools.ts index 65c60d8e3f..8173a9903f 100644 --- a/web/i18n/ja-JP/tools.ts +++ b/web/i18n/ja-JP/tools.ts @@ -73,6 +73,8 @@ const translation = { privacyPolicyPlaceholder: 'プライバシーポリシーを入力してください', customDisclaimer: 'カスタム免責事項', customDisclaimerPlaceholder: 'カスタム免責事項を入力してください', + deleteToolConfirmTitle: 'このツールを削除しますか?', + deleteToolConfirmContent: 'ツールの削除は取り消しできません。ユーザーはもうあなたのツールにアクセスできません。', }, test: { title: 'テスト', diff --git a/web/i18n/ko-KR/tools.ts b/web/i18n/ko-KR/tools.ts index ab47c7e2a0..c896a17a4f 100644 --- a/web/i18n/ko-KR/tools.ts +++ b/web/i18n/ko-KR/tools.ts @@ -105,6 +105,8 @@ const translation = { customDisclaimerPlaceholder: '사용자 정의 권리 포기 문구를 입력해주세요.', confirmTitle: '저장하시겠습니까?', confirmTip: '이 도구를 사용하는 앱은 영향을 받습니다.', + deleteToolConfirmTitle: '이 도구를 삭제하시겠습니까?', + deleteToolConfirmContent: '이 도구를 삭제하면 되돌릴 수 없습니다. 사용자는 더 이상 당신의 도구에 액세스할 수 없습니다.', }, test: { title: '테스트', diff --git a/web/i18n/pl-PL/tools.ts b/web/i18n/pl-PL/tools.ts index 77749544f6..f5d3226e8c 100644 --- a/web/i18n/pl-PL/tools.ts +++ b/web/i18n/pl-PL/tools.ts @@ -75,6 +75,8 @@ const translation = { privacyPolicyPlaceholder: 'Proszę wprowadzić politykę prywatności', customDisclaimer: 'Oświadczenie niestandardowe', customDisclaimerPlaceholder: 'Proszę wprowadzić oświadczenie niestandardowe', + deleteToolConfirmTitle: 'Skasuj ten przyrząd?', + deleteToolConfirmContent: 'Usunięcie narzędzia jest nieodwracalne. Użytkownicy nie będą mieli już dostępu do Twojego narzędzia.', }, test: { title: 'Test', diff --git a/web/i18n/pt-BR/tools.ts b/web/i18n/pt-BR/tools.ts index 1e646bb3cf..28b6e82176 100644 --- a/web/i18n/pt-BR/tools.ts +++ b/web/i18n/pt-BR/tools.ts @@ -73,6 +73,8 @@ const translation = { privacyPolicyPlaceholder: 'Digite a política de privacidade', customDisclaimer: 'Aviso Personalizado', customDisclaimerPlaceholder: 'Digite o aviso personalizado', + deleteToolConfirmTitle: 'Excluir esta ferramenta?', + deleteToolConfirmContent: 'Excluir a ferramenta é irreversível. Os usuários não poderão mais acessar sua ferramenta.', }, test: { title: 'Testar', diff --git a/web/i18n/ro-RO/tools.ts b/web/i18n/ro-RO/tools.ts index a35633fa95..e878162426 100644 --- a/web/i18n/ro-RO/tools.ts +++ b/web/i18n/ro-RO/tools.ts @@ -71,6 +71,8 @@ const translation = { }, privacyPolicy: 'Politica de Confidențialitate', privacyPolicyPlaceholder: 'Vă rugăm să introduceți politica de confidențialitate', + deleteToolConfirmTitle: 'Ștergeți această unealtă?', + deleteToolConfirmContent: ' Ștergerea uneltă este irreversibilă. Utilizatorii nu vor mai putea accesa uneltă dvs.', }, test: { title: 'Testează', diff --git a/web/i18n/uk-UA/tools.ts b/web/i18n/uk-UA/tools.ts index ac6bcca919..313332e3a4 100644 --- a/web/i18n/uk-UA/tools.ts +++ b/web/i18n/uk-UA/tools.ts @@ -72,6 +72,8 @@ const translation = { privacyPolicyPlaceholder: 'Введіть політику конфіденційності', customDisclaimer: 'Власний відомості', customDisclaimerPlaceholder: 'Введіть власні відомості', + deleteToolConfirmTitle: 'Видалити цей інструмент?', + deleteToolConfirmContent: 'Видалення інструменту є незворотнім. Користувачі більше не зможуть отримати доступ до вашого інструменту.', }, test: { diff --git a/web/i18n/vi-VN/tools.ts b/web/i18n/vi-VN/tools.ts index a774003eaa..faf491d892 100644 --- a/web/i18n/vi-VN/tools.ts +++ b/web/i18n/vi-VN/tools.ts @@ -73,6 +73,8 @@ const translation = { privacyPolicyPlaceholder: 'Vui lòng nhập chính sách bảo mật', customDisclaimer: 'Tuyên bố Tùy chỉnh', customDisclaimerPlaceholder: 'Vui lòng nhập tuyên bố tùy chỉnh', + deleteToolConfirmTitle: 'Xóa công cụ này?', + deleteToolConfirmContent: 'Xóa công cụ là không thể hồi tơi. Người dùng sẽ không thể truy cập lại công cụ của bạn.', }, test: { title: 'Kiểm tra', diff --git a/web/i18n/zh-Hans/tools.ts b/web/i18n/zh-Hans/tools.ts index 46451d25b4..9064bbd263 100644 --- a/web/i18n/zh-Hans/tools.ts +++ b/web/i18n/zh-Hans/tools.ts @@ -105,6 +105,8 @@ const translation = { customDisclaimerPlaceholder: '请输入自定义免责声明', confirmTitle: '确认保存?', confirmTip: '发布新的工具版本可能会影响该工具已关联的应用', + deleteToolConfirmTitle: '删除这个工具?', + deleteToolConfirmContent: '删除工具是不可逆的。用户将无法再访问您的工具。', }, test: { title: '测试', diff --git a/web/i18n/zh-Hant/tools.ts b/web/i18n/zh-Hant/tools.ts index 1b6d7cedd2..58ba9f5c81 100644 --- a/web/i18n/zh-Hant/tools.ts +++ b/web/i18n/zh-Hant/tools.ts @@ -73,6 +73,8 @@ const translation = { privacyPolicyPlaceholder: '請輸入隱私協議', customDisclaimer: '自定義免責聲明', customDisclaimerPlaceholder: '請輸入自定義免責聲明', + deleteToolConfirmTitle: '刪除這個工具?', + deleteToolConfirmContent: '刪除工具是不可逆的。用戶將無法再訪問您的工具。', }, test: { title: '測試',