Skip to content

Commit 89a7c70

Browse files
authored
chore: add a secondary confirmation dialog when the user delete the tool (langgenius#5634)
1 parent e1a72e0 commit 89a7c70

File tree

16 files changed

+60
-4
lines changed

16 files changed

+60
-4
lines changed

web/app/components/tools/edit-custom-collection-modal/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ const EditCustomCollectionModal: FC<Props> = ({
302302
<div className={cn(isEdit ? 'justify-between' : 'justify-end', 'mt-2 shrink-0 flex py-4 px-6 rounded-b-[10px] bg-gray-50 border-t border-black/5')} >
303303
{
304304
isEdit && (
305-
<Button onClick={onRemove}>{t('common.operation.remove')}</Button>
305+
<Button onClick={onRemove} className='text-red-500 border-red-50 hover:border-red-500'>{t('common.operation.delete')}</Button>
306306
)
307307
}
308308
<div className='flex space-x-2 '>

web/app/components/tools/provider/detail.tsx

+32-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import type { Collection, CustomCollectionBackend, Tool, WorkflowToolProviderReq
88
import ToolItem from './tool-item'
99
import I18n from '@/context/i18n'
1010
import { getLanguage } from '@/i18n/language'
11+
import Confirm from '@/app/components/base/confirm'
1112
import AppIcon from '@/app/components/base/app-icon'
1213
import Button from '@/app/components/base/button'
1314
import Indicator from '@/app/components/header/indicator'
@@ -83,6 +84,8 @@ const ProviderDetail = ({
8384
// custom provider
8485
const [customCollection, setCustomCollection] = useState<CustomCollectionBackend | WorkflowToolProviderResponse | null>(null)
8586
const [isShowEditCollectionToolModal, setIsShowEditCustomCollectionModal] = useState(false)
87+
const [showConfirmDelete, setShowConfirmDelete] = useState(false)
88+
const [deleteAction, setDeleteAction] = useState(null)
8689
const doUpdateCustomToolCollection = async (data: CustomCollectionBackend) => {
8790
await updateCustomCollection(data)
8891
onRefreshData()
@@ -158,6 +161,23 @@ const ProviderDetail = ({
158161
})
159162
setIsShowEditWorkflowToolModal(false)
160163
}
164+
const onClickCustomToolDelete = () => {
165+
setDeleteAction('customTool')
166+
setShowConfirmDelete(true)
167+
}
168+
const onClickWorkflowToolDelete = () => {
169+
setDeleteAction('workflowTool')
170+
setShowConfirmDelete(true)
171+
}
172+
const handleConfirmDelete = () => {
173+
if (deleteAction === 'customTool')
174+
doRemoveCustomToolCollection()
175+
176+
else if (deleteAction === 'workflowTool')
177+
removeWorkflowToolProvider()
178+
179+
setShowConfirmDelete(false)
180+
}
161181

162182
// ToolList
163183
const [toolList, setToolList] = useState<Tool[]>([])
@@ -330,17 +350,27 @@ const ProviderDetail = ({
330350
payload={customCollection}
331351
onHide={() => setIsShowEditCustomCollectionModal(false)}
332352
onEdit={doUpdateCustomToolCollection}
333-
onRemove={doRemoveCustomToolCollection}
353+
onRemove={onClickCustomToolDelete}
334354
/>
335355
)}
336356
{isShowEditWorkflowToolModal && (
337357
<WorkflowToolModal
338358
payload={customCollection}
339359
onHide={() => setIsShowEditWorkflowToolModal(false)}
340-
onRemove={removeWorkflowToolProvider}
360+
onRemove={onClickWorkflowToolDelete}
341361
onSave={updateWorkflowToolProvider}
342362
/>
343363
)}
364+
{showConfirmDelete && (
365+
<Confirm
366+
title={t('tools.createTool.deleteToolConfirmTitle')}
367+
content={t('tools.createTool.deleteToolConfirmContent')}
368+
isShow={showConfirmDelete}
369+
onClose={() => setShowConfirmDelete(false)}
370+
onConfirm={handleConfirmDelete}
371+
onCancel={() => setShowConfirmDelete(false)}
372+
/>
373+
)}
344374
</div>
345375
)
346376
}

web/app/components/tools/workflow-tool/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ const WorkflowToolAsModal: FC<Props> = ({
244244
</div>
245245
<div className={cn((!isAdd && onRemove) ? 'justify-between' : 'justify-end', 'mt-2 shrink-0 flex py-4 px-6 rounded-b-[10px] bg-gray-50 border-t border-black/5')} >
246246
{!isAdd && onRemove && (
247-
<Button onClick={onRemove}>{t('common.operation.remove')}</Button>
247+
<Button onClick={onRemove} className='text-red-500 border-red-50 hover:border-red-500'>{t('common.operation.delete')}</Button>
248248
)}
249249
<div className='flex space-x-2 '>
250250
<Button onClick={onHide}>{t('common.operation.cancel')}</Button>

web/i18n/de-DE/tools.ts

+2
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ const translation = {
7373
privacyPolicyPlaceholder: 'Bitte Datenschutzrichtlinie eingeben',
7474
customDisclaimer: 'Benutzer Haftungsausschluss',
7575
customDisclaimerPlaceholder: 'Bitte benutzerdefinierten Haftungsausschluss eingeben',
76+
deleteToolConfirmTitle: 'Löschen Sie dieses Werkzeug?',
77+
deleteToolConfirmContent: 'Das Löschen des Werkzeugs ist irreversibel. Benutzer können Ihr Werkzeug nicht mehr verwenden.',
7678
},
7779
test: {
7880
title: 'Test',

web/i18n/en-US/tools.ts

+2
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ const translation = {
105105
customDisclaimerPlaceholder: 'Please enter custom disclaimer',
106106
confirmTitle: 'Confirm to save ?',
107107
confirmTip: 'Apps using this tool will be affected',
108+
deleteToolConfirmTitle: 'Delete this Tool?',
109+
deleteToolConfirmContent: 'Deleting the Tool is irreversible. Users will no longer be able to access your Tool.',
108110
},
109111
test: {
110112
title: 'Test',

web/i18n/fr-FR/tools.ts

+2
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ const translation = {
7373
privacyPolicyPlaceholder: 'Veuillez entrer la politique de confidentialité',
7474
customDisclaimer: 'Clause de non-responsabilité personnalisée',
7575
customDisclaimerPlaceholder: 'Entrez le texte de la clause de non-responsabilité personnalisée',
76+
deleteToolConfirmTitle: 'Supprimer cet outil ?',
77+
deleteToolConfirmContent: 'La suppression de l\'outil est irréversible. Les utilisateurs ne pourront plus accéder à votre outil.',
7678
},
7779
test: {
7880
title: 'Test',

web/i18n/hi-IN/tools.ts

+2
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ const translation = {
108108
customDisclaimerPlaceholder: 'कस्टम अस्वीकरण दर्ज करें',
109109
confirmTitle: 'सहेजने की पुष्टि करें ?',
110110
confirmTip: 'इस उपकरण का उपयोग करने वाले ऐप्स प्रभावित होंगे',
111+
deleteToolConfirmTitle: 'इस उपकरण को हटाएं?',
112+
deleteToolConfirmContent: 'इस उपकरण को हटाने से वापस नहीं आ सकता है। उपयोगकर्ता अब तक आपके उपकरण पर अन्तराल नहीं कर सकेंगे।',
111113
},
112114
test: {
113115
title: 'परीक्षण',

web/i18n/ja-JP/tools.ts

+2
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ const translation = {
7373
privacyPolicyPlaceholder: 'プライバシーポリシーを入力してください',
7474
customDisclaimer: 'カスタム免責事項',
7575
customDisclaimerPlaceholder: 'カスタム免責事項を入力してください',
76+
deleteToolConfirmTitle: 'このツールを削除しますか?',
77+
deleteToolConfirmContent: 'ツールの削除は取り消しできません。ユーザーはもうあなたのツールにアクセスできません。',
7678
},
7779
test: {
7880
title: 'テスト',

web/i18n/ko-KR/tools.ts

+2
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ const translation = {
105105
customDisclaimerPlaceholder: '사용자 정의 권리 포기 문구를 입력해주세요.',
106106
confirmTitle: '저장하시겠습니까?',
107107
confirmTip: '이 도구를 사용하는 앱은 영향을 받습니다.',
108+
deleteToolConfirmTitle: '이 도구를 삭제하시겠습니까?',
109+
deleteToolConfirmContent: '이 도구를 삭제하면 되돌릴 수 없습니다. 사용자는 더 이상 당신의 도구에 액세스할 수 없습니다.',
108110
},
109111
test: {
110112
title: '테스트',

web/i18n/pl-PL/tools.ts

+2
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ const translation = {
7575
privacyPolicyPlaceholder: 'Proszę wprowadzić politykę prywatności',
7676
customDisclaimer: 'Oświadczenie niestandardowe',
7777
customDisclaimerPlaceholder: 'Proszę wprowadzić oświadczenie niestandardowe',
78+
deleteToolConfirmTitle: 'Skasuj ten przyrząd?',
79+
deleteToolConfirmContent: 'Usunięcie narzędzia jest nieodwracalne. Użytkownicy nie będą mieli już dostępu do Twojego narzędzia.',
7880
},
7981
test: {
8082
title: 'Test',

web/i18n/pt-BR/tools.ts

+2
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ const translation = {
7373
privacyPolicyPlaceholder: 'Digite a política de privacidade',
7474
customDisclaimer: 'Aviso Personalizado',
7575
customDisclaimerPlaceholder: 'Digite o aviso personalizado',
76+
deleteToolConfirmTitle: 'Excluir esta ferramenta?',
77+
deleteToolConfirmContent: 'Excluir a ferramenta é irreversível. Os usuários não poderão mais acessar sua ferramenta.',
7678
},
7779
test: {
7880
title: 'Testar',

web/i18n/ro-RO/tools.ts

+2
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ const translation = {
7171
},
7272
privacyPolicy: 'Politica de Confidențialitate',
7373
privacyPolicyPlaceholder: 'Vă rugăm să introduceți politica de confidențialitate',
74+
deleteToolConfirmTitle: 'Ștergeți această unealtă?',
75+
deleteToolConfirmContent: ' Ștergerea uneltă este irreversibilă. Utilizatorii nu vor mai putea accesa uneltă dvs.',
7476
},
7577
test: {
7678
title: 'Testează',

web/i18n/uk-UA/tools.ts

+2
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ const translation = {
7272
privacyPolicyPlaceholder: 'Введіть політику конфіденційності',
7373
customDisclaimer: 'Власний відомості',
7474
customDisclaimerPlaceholder: 'Введіть власні відомості',
75+
deleteToolConfirmTitle: 'Видалити цей інструмент?',
76+
deleteToolConfirmContent: 'Видалення інструменту є незворотнім. Користувачі більше не зможуть отримати доступ до вашого інструменту.',
7577
},
7678

7779
test: {

web/i18n/vi-VN/tools.ts

+2
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ const translation = {
7373
privacyPolicyPlaceholder: 'Vui lòng nhập chính sách bảo mật',
7474
customDisclaimer: 'Tuyên bố Tùy chỉnh',
7575
customDisclaimerPlaceholder: 'Vui lòng nhập tuyên bố tùy chỉnh',
76+
deleteToolConfirmTitle: 'Xóa công cụ này?',
77+
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.',
7678
},
7779
test: {
7880
title: 'Kiểm tra',

web/i18n/zh-Hans/tools.ts

+2
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ const translation = {
105105
customDisclaimerPlaceholder: '请输入自定义免责声明',
106106
confirmTitle: '确认保存?',
107107
confirmTip: '发布新的工具版本可能会影响该工具已关联的应用',
108+
deleteToolConfirmTitle: '删除这个工具?',
109+
deleteToolConfirmContent: '删除工具是不可逆的。用户将无法再访问您的工具。',
108110
},
109111
test: {
110112
title: '测试',

web/i18n/zh-Hant/tools.ts

+2
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ const translation = {
7373
privacyPolicyPlaceholder: '請輸入隱私協議',
7474
customDisclaimer: '自定義免責聲明',
7575
customDisclaimerPlaceholder: '請輸入自定義免責聲明',
76+
deleteToolConfirmTitle: '刪除這個工具?',
77+
deleteToolConfirmContent: '刪除工具是不可逆的。用戶將無法再訪問您的工具。',
7678
},
7779
test: {
7880
title: '測試',

0 commit comments

Comments
 (0)