fix(ui): discard cancelled signature pad dialog drafts (#3408)

\
This commit is contained in:
Catalin Pit
2026-09-30 16:18:58 +10:00
committed by GitHub
parent 22c697f712
commit b8b98f70c0
@@ -41,6 +41,15 @@ export const SignaturePadDialog = ({
const [showSignatureModal, setShowSignatureModal] = useState(false);
const [signature, setSignature] = useState<string>(value ?? '');
const onOpenChange = (open: boolean) => {
if (disabled) {
return;
}
setSignature(value ?? '');
setShowSignatureModal(open);
};
return (
<div
className={cn(
@@ -62,7 +71,7 @@ export const SignaturePadDialog = ({
type="button"
disabled={disabled}
className="absolute inset-0 flex items-center justify-center bg-transparent"
onClick={() => setShowSignatureModal(true)}
onClick={() => onOpenChange(true)}
whileHover="onHover"
>
{!value && !disableAnimation && (
@@ -109,7 +118,7 @@ export const SignaturePadDialog = ({
)}
</motion.button>
<Dialog open={showSignatureModal} onOpenChange={disabled ? undefined : setShowSignatureModal}>
<Dialog open={showSignatureModal} onOpenChange={onOpenChange}>
<DialogContent hideClose={true} className="p-6 pt-4">
<SignaturePad
id="signature"
@@ -135,7 +144,7 @@ export const SignaturePadDialog = ({
disabled={!signature}
onClick={() => {
onChange(signature);
setShowSignatureModal(false);
onOpenChange(false);
}}
>
{dialogConfirmText ? parseMessageDescriptor(i18n._, dialogConfirmText) : <Trans>Next</Trans>}