Problem
`abortRef.current` (`hooks/use-batch-create.ts:45, 203-205`) is only set via the returned `cancel()` function. There's no `useEffect` cleanup that aborts automatically on unmount.
Location
`hooks/use-batch-create.ts:45, 203-205`
Impact
Navigating away mid-batch leaves the async loop running in the background, continuing to trigger wallet-signature popups for a screen the user can no longer see or cancel from.
Suggested fix
Add a `useEffect` cleanup that calls the same abort logic as `cancel()` on unmount.
Problem
`abortRef.current` (`hooks/use-batch-create.ts:45, 203-205`) is only set via the returned `cancel()` function. There's no `useEffect` cleanup that aborts automatically on unmount.
Location
`hooks/use-batch-create.ts:45, 203-205`
Impact
Navigating away mid-batch leaves the async loop running in the background, continuing to trigger wallet-signature popups for a screen the user can no longer see or cancel from.
Suggested fix
Add a `useEffect` cleanup that calls the same abort logic as `cancel()` on unmount.