Polls an async-rail payment (SEPA, ACH, vouchers — anything that resolves
"processing") to a terminal state. Fetches immediately on mount, then keeps
polling with exponentially growing gaps (intervalMs doubling up to
maxIntervalMs) until the status is terminal ("succeeded" | "failed" |
"canceled"), the component unmounts, or enabled flips false. Server-side
webhooks stay the source of truth — this is the browser mirror for the
waiting UI. Needs no ; SSR-safe (polling starts in an
effect); the refresh identity is stable across renders.
Polls an async-rail payment (SEPA, ACH, vouchers — anything that resolves "processing") to a terminal state. Fetches immediately on mount, then keeps polling with exponentially growing gaps (intervalMs doubling up to maxIntervalMs) until the status is terminal ("succeeded" | "failed" | "canceled"), the component unmounts, or enabled flips false. Server-side webhooks stay the source of truth — this is the browser mirror for the waiting UI. Needs no; SSR-safe (polling starts in an
effect); the refresh identity is stable across renders.