import { Dialog } from '@umami/react-zen'; import { ActionButton } from '@/components/input/ActionButton'; import { Trash } from '@/components/icons'; import { ConfirmationForm } from '@/components/common/ConfirmationForm'; import { messages } from '@/components/messages'; import { useDeleteQuery, useMessages, useModified } from '@/components/hooks'; export function PixelDeleteButton({ pixelId, name, onSave, }: { pixelId: string; name: string; onSave?: () => void; }) { const { formatMessage, labels, getErrorMessage, FormattedMessage } = useMessages(); const { mutateAsync, isPending, error } = useDeleteQuery(`/pixels/${pixelId}`); const { touch } = useModified(); const handleConfirm = async (close: () => void) => { await mutateAsync(null, { onSuccess: () => { touch('pixels'); onSave?.(); close(); }, }); }; return ( }> {({ close }) => ( {name}, }} /> } isLoading={isPending} error={getErrorMessage(error)} onConfirm={handleConfirm.bind(null, close)} onClose={close} buttonLabel={formatMessage(labels.delete)} buttonVariant="danger" /> )} ); }