Teaches useFormStatus hook for tracking form submission state in React 19. Use when implementing submit buttons, form loading states, or pending indicators.
Tracks form submission state in React 19 using useFormStatus hook. Use when implementing submit buttons with loading states or pending indicators inside form components.
/plugin marketplace add djankies/claude-configs/plugin install react-19@claude-configsThis skill is limited to using the following tools:
useFormStatus provides status info about parent form submissions.
MUST be called inside a form component:
import { useFormStatus } from 'react-dom';
function SubmitButton() {
const { pending, data, method, action } = useFormStatus();
return (
<button type="submit" disabled={pending}>
{pending ? 'Submitting...' : 'Submit'}
</button>
);
}
function MyForm() {
async function handleSubmit(formData) {
'use server';
await saveData(formData);
}
return (
<form action={handleSubmit}>
<input name="email" />
<SubmitButton />
</form>
);
}
pending (boolean): Whether form is submittingdata (FormData | null): Data being submittedmethod (string): HTTP method ('get' or 'post')action (function | null): Action function❌ Wrong - called at form level:
function MyForm() {
const { pending } = useFormStatus();
return <form>...</form>;
}
✅ Correct - called inside form:
function MyForm() {
return (
<form>
<SubmitButton />
</form>
);
}
function SubmitButton() {
const { pending } = useFormStatus();
return <button disabled={pending}>Submit</button>;
}
For comprehensive useFormStatus documentation, see: research/react-19-comprehensive.md lines 312-355.