react-server675fbba4
react-serverfilestestfixturesuse-action-state.jsx
test/fixtures/use-action-state.jsxjsx610 Bafb36562
"use client";

import { useActionState } from "react";
import { useFormStatus } from "react-dom";

import { formAction } from "./actions.mjs";

function SubmitButton() {
  const { pending } = useFormStatus();

  return (
    <button type="submit" disabled={pending}>
      Submit
    </button>
  );
}

export default function App() {
  const [state, dispatch] = useActionState(formAction, {
    name: "",
  });

  return (
    <form action={dispatch}>
      <pre>{JSON.stringify(state, null, 2)}</pre>
      <input type="text" name="name" defaultValue={state.name} />
      <SubmitButton />
    </form>
  );
}