diff --git a/apps/web/src/components/retire-modal.tsx b/apps/web/src/components/retire-modal.tsx index df5843b..04b0e2f 100644 --- a/apps/web/src/components/retire-modal.tsx +++ b/apps/web/src/components/retire-modal.tsx @@ -60,8 +60,12 @@ export function RetireModal({ certificateId, kwh, onConfirm, onClose }: Props) { async function handleSubmit(e: React.FormEvent) { e.preventDefault() setSubmitting(true) + setError(null) try { await onConfirm(reason) + setSucceeded(true) + } catch (err) { + setError(err instanceof Error ? err.message : 'Retirement failed. Please try again.') } finally { setSubmitting(false) } @@ -70,7 +74,7 @@ export function RetireModal({ certificateId, kwh, onConfirm, onClose }: Props) { return (
e.target === e.currentTarget && onClose()} + onClick={(e) => e.target === e.currentTarget && !submitting && onClose()} >
-
- + ) : ( + <> +

+ You are about to permanently retire certificate{' '} + + {' '}({kwh.toFixed(3)} kWh). This action cannot be undone. +

+ + {error && ( +
+ {error} +
+ )} + +
+
+ +