4466ba436b
## Description This PR ensures that the default prettier config is used for examples and templates. This config is compatible with `prettier@3` as well (upgrading prettier is bigger change that can be a future PR). ## Changes - Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will be needed upgrading to prettier@3) - Added `examples/.prettierrc.json` with default config (this will change every example) - Added `packages/create-next-app/templates/.prettierrc.json` with default config (this will change every template) ## Related - Fixes #54402 - Closes #54409
33 lines
755 B
TypeScript
33 lines
755 B
TypeScript
"use client";
|
|
|
|
import { useFormState, useFormStatus } from "react-dom";
|
|
import { deleteTodo } from "@/app/actions";
|
|
|
|
const initialState = {
|
|
message: "",
|
|
};
|
|
|
|
function DeleteButton() {
|
|
const { pending } = useFormStatus();
|
|
|
|
return (
|
|
<button type="submit" aria-disabled={pending}>
|
|
Delete
|
|
</button>
|
|
);
|
|
}
|
|
|
|
export function DeleteForm({ id, todo }: { id: number; todo: string }) {
|
|
const [state, formAction] = useFormState(deleteTodo, initialState);
|
|
|
|
return (
|
|
<form action={formAction}>
|
|
<input type="hidden" name="id" value={id} />
|
|
<input type="hidden" name="todo" value={todo} />
|
|
<DeleteButton />
|
|
<p aria-live="polite" className="sr-only" role="status">
|
|
{state?.message}
|
|
</p>
|
|
</form>
|
|
);
|
|
}
|