Don't show global loading overlay for client-handled forms

Fixkamo-internal
Shipped
May 12, 2026 at 2:22 AM UTC
Author
kamo
Commit
1c00483

NavigationInterceptor's submit listener treated any form whose form.action was truthy and method=get as a navigation, and called setLoading(true) on the global LoadingContext. Without an explicit action attribute, the browser resolves form.action to the current page URL — always truthy — so every MUI/React form using onSubmit and preventDefault tripped this branch. preventDefault stopped the actual navigation, but nothing ever flipped isLoading back to false, so the fullscreen loading overlay sat on top of the page until the user reloaded. Test against the actual HTML attribute (form.getAttribute('action')) so only forms genuinely set up to GET-navigate elsewhere trigger the overlay; client-handled forms are now ignored.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing