import { forwardRef } from 'react'; import type { ForwardedRef } from 'react'; import { CheckIcon } from 'lucide-react'; import { DialogButton } from '~/components/ui'; import { Spinner } from '~/components/svg'; import type { TDangerButtonProps } from '~/common'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; const DangerButton = (props: TDangerButtonProps, ref: ForwardedRef) => { const { id, onClick, mutation, disabled, confirmClear, infoTextCode, actionTextCode, className = '', showText = true, dataTestIdInitial, dataTestIdConfirm, confirmActionTextCode = 'com_ui_confirm_action', } = props; const localize = useLocalize(); const renderMutation = (node: React.ReactNode | string) => { if (mutation && mutation.isLoading) { return ; } return node; }; return (
{showText &&
{localize(infoTextCode)}
} {confirmClear ? (
{renderMutation()} {mutation && mutation.isLoading ? null : localize(confirmActionTextCode)}
) : (
{renderMutation(localize(actionTextCode))}
)}
); }; export default forwardRef(DangerButton);