import React from "react"; import { useTranslation } from "react-i18next"; import { I18nKey } from "#/i18n/declaration"; import { BrandButton } from "#/components/features/settings/brand-button"; import { LoadingSpinner } from "#/components/shared/loading-spinner"; import { ApiKey } from "#/api/api-keys"; import { displayErrorToast, displaySuccessToast, } from "#/utils/custom-toast-handlers"; import { ApiKeyModalBase } from "./api-key-modal-base"; import { useDeleteApiKey } from "#/hooks/mutation/use-delete-api-key"; interface DeleteApiKeyModalProps { isOpen: boolean; keyToDelete: ApiKey | null; onClose: () => void; } export function DeleteApiKeyModal({ isOpen, keyToDelete, onClose, }: DeleteApiKeyModalProps) { const { t } = useTranslation(); const deleteApiKeyMutation = useDeleteApiKey(); const handleDeleteKey = async () => { if (!keyToDelete) return; try { await deleteApiKeyMutation.mutateAsync(keyToDelete.id); displaySuccessToast(t(I18nKey.SETTINGS$API_KEY_DELETED)); onClose(); } catch (error) { displayErrorToast(t(I18nKey.ERROR$GENERIC)); } }; if (!keyToDelete) return null; const modalFooter = ( <> {deleteApiKeyMutation.isPending ? ( ) : ( t(I18nKey.BUTTON$DELETE) )} {t(I18nKey.BUTTON$CANCEL)} ); return (

{t(I18nKey.SETTINGS$DELETE_API_KEY_CONFIRMATION, { name: keyToDelete.name, })}

); }