|
1 | 1 | import React from "react";
|
2 |
| -import { DefaultError, DefaultState, FormState } from "./form"; |
| 2 | +import { DefaultError, DefaultState, ErrorType, FormState } from "./form"; |
3 | 3 | import { useListener } from "./hooks";
|
4 | 4 | import { ElementProps } from "./Field";
|
5 | 5 |
|
@@ -29,11 +29,11 @@ export function FieldError<
|
29 | 29 | * `<FieldError as={CustomError} {...} />`
|
30 | 30 | */
|
31 | 31 | as?: C;
|
32 |
| - transformer?: (error: Error) => React.ReactNode; |
33 |
| - } & Omit<ElementProps<C>, "transformer" | "as" | "name" | "form" | "children"> |
| 32 | + transformer?: (error: ErrorType<T[K], Error>) => React.ReactNode; |
| 33 | + } & Omit<ElementProps<C>, "transformer" | "as" | "name" | "form" | "children" | "field"> |
34 | 34 | ) {
|
35 | 35 | const { form, as = React.Fragment, transformer, ...rest } = props;
|
36 |
| - const { error } = useListener(form, props.name); |
37 |
| - if (!error || typeof error === "object") return null; |
38 |
| - return React.createElement(as, { ...rest, children: String(transformer ? transformer(error as Error) : error) }); |
| 36 | + const field = useListener(form, props.name); |
| 37 | + if (!field.error || typeof field.error === "object") return null; |
| 38 | + return React.createElement(as, { ...rest, field, children: transformer ? transformer(field.error) : String(field.error) }); |
39 | 39 | }
|
0 commit comments