|
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