export async function action({ request }: ActionArgs) {
const formData = await request.formData();
const parsing = z
.object({ ... })
.safeParse(Object.fromEntries(formData.entries()));
if (!parsing.success) {
const errors = parsing.error.flatten();
return json({ errors }, { status: 400 });
}
try {
...
} catch (error) {
if (
error instanceof Prisma.PrismaClientKnownRequestError &&
error.code === "P2002"
) {
return json({ error: "This name is already taken" }, { status: 400 });
}
throw error;
}
}
export default function AdminCreateOrganisation() {
const data = useActionData<typeof action>();
const error = data?.error;
const errors = data?.errors?.fieldErrors;
Leads to:
app/routes/admin/organisations/create.tsx:50:23 - error TS2339: Property 'error' does not exist on type 'SerializeObject<UndefinedToOptional<{ errors: typeToFlattenedError<{ name: string; id: string; }, string>; }>> | SerializeObject<...>'.
Property 'error' does not exist on type 'SerializeObject<UndefinedToOptional<{ errors: typeToFlattenedError<{ name: string; id: string; }, string>; }>>'.
50 const error = data?.error;
~~~~~
app/routes/admin/organisations/create.tsx:51:24 - error TS2339: Property 'errors' does not exist on type 'SerializeObject<UndefinedToOptional<{ errors: typeToFlattenedError<{ name: string; id: string; }, string>; }>> | SerializeObject<...>'.
Property 'errors' does not exist on type 'SerializeObject<UndefinedToOptional<{ error: string; }>>'.
51 const errors = data?.errors?.fieldErrors;
~~~~~~