import type { ApiBasedExtensionResponse } from '@dify/contracts/api/console/api-based-extension/types.gen' import { AlertDialog, AlertDialogActions, AlertDialogCancelButton, AlertDialogConfirmButton, AlertDialogContent, AlertDialogTitle, } from '@langgenius/dify-ui/alert-dialog' import { Button } from '@langgenius/dify-ui/button' import { useMutation } from '@tanstack/react-query' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { consoleQuery } from '@/service/client' type ItemProps = { apiBasedExtension: ApiBasedExtensionResponse onEdit: (apiBasedExtension: ApiBasedExtensionResponse) => void canManage?: boolean } export function Item({ apiBasedExtension, onEdit, canManage = true }: ItemProps) { const { t } = useTranslation() const [showDeleteConfirm, setShowDeleteConfirm] = useState(false) const deleteApiBasedExtensionMutation = useMutation( consoleQuery.apiBasedExtension.byId.delete.mutationOptions(), ) const handleOpenApiBasedExtensionModal = () => { if (!canManage) return onEdit(apiBasedExtension) } const handleDeleteApiBasedExtension = () => { if (!canManage) return deleteApiBasedExtensionMutation.mutate( { params: { id: apiBasedExtension.id, }, }, { onSuccess: () => { setShowDeleteConfirm(false) }, }, ) } return (