Skip to content

Commit 45cc144

Browse files
authored
fix: correct input.value type for useField and Field (#947)
1 parent 4217772 commit 45cc144

File tree

3 files changed

+26
-26
lines changed

3 files changed

+26
-26
lines changed

typescript/Field.test.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* eslint-disable @typescript-eslint/no-unused-vars */
2-
import * as React from 'react';
3-
import { Field, FieldRenderProps } from 'react-final-form';
2+
import * as React from "react";
3+
import { Field, FieldRenderProps } from "react-final-form";
44

55
const NumberInput: React.FC<{ value?: number }> = () => null;
66

@@ -17,15 +17,15 @@ function FormText2({ input }: FieldRenderProps<string, HTMLInputElement>) {
1717

1818
function FieldNumberValue() {
1919
return (
20-
<Field<number, FieldRenderProps<number>> name="numberField">
20+
<Field<number> name="numberField">
2121
{({ input }) => <NumberInput value={input.value} />}
2222
</Field>
2323
);
2424
}
2525

2626
function FieldNumberInputValue() {
2727
return (
28-
<Field<string, FieldRenderProps<string, HTMLElement, number>>
28+
<Field<string, HTMLElement, number>
2929
name="numberField"
3030
parse={(value: number) => String(value)}
3131
>

typescript/index.d.ts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ interface AnyObject {
4646
export interface FieldRenderProps<
4747
FieldValue,
4848
T extends HTMLElement = HTMLElement,
49-
InputValue = FieldValue
49+
InputValue = FieldValue,
5050
> {
5151
input: FieldInputProps<InputValue, T>;
5252
meta: FieldMetaState<FieldValue>;
@@ -114,7 +114,7 @@ export interface FieldProps<
114114
FieldValue,
115115
RP extends FieldRenderProps<FieldValue, T, InputValue>,
116116
T extends HTMLElement = HTMLElement,
117-
InputValue = any
117+
InputValue = FieldValue,
118118
> extends UseFieldConfig<FieldValue, InputValue>,
119119
RenderableProps<RP> {
120120
name: string;
@@ -137,49 +137,49 @@ export interface FormSpyProps<
137137

138138
export const Field: <
139139
FieldValue = any,
140+
T extends HTMLElement = HTMLElement,
141+
InputValue = FieldValue,
140142
RP extends FieldRenderProps<FieldValue, T, InputValue> = FieldRenderProps<
141143
FieldValue,
142-
HTMLElement,
143-
any
144+
T,
145+
InputValue
144146
>,
145-
T extends HTMLElement = HTMLElement,
146-
InputValue = any
147147
>(
148-
props: FieldProps<FieldValue, RP, T, InputValue>
148+
props: FieldProps<FieldValue, RP, T, InputValue>,
149149
) => React.ReactElement;
150150
export const Form: <
151151
FormValues = Record<string, any>,
152-
InitialFormValues = Partial<FormValues>
152+
InitialFormValues = Partial<FormValues>,
153153
>(
154-
props: FormProps<FormValues, InitialFormValues>
154+
props: FormProps<FormValues, InitialFormValues>,
155155
) => React.ReactElement;
156156
export const FormSpy: <
157157
FormValues = Record<string, any>,
158-
InitialFormValues = Partial<FormValues>
158+
InitialFormValues = Partial<FormValues>,
159159
>(
160-
props: FormSpyProps<FormValues, InitialFormValues>
160+
props: FormSpyProps<FormValues, InitialFormValues>,
161161
) => React.ReactElement;
162162
export function useField<
163163
FieldValue = any,
164164
T extends HTMLElement = HTMLElement,
165-
InputValue = any
165+
InputValue = FieldValue,
166166
>(
167167
name: string,
168-
config?: UseFieldConfig<FieldValue, InputValue>
168+
config?: UseFieldConfig<FieldValue, InputValue>,
169169
): FieldRenderProps<FieldValue, T, InputValue>;
170170
export function useForm<
171171
FormValues = Record<string, any>,
172-
InitialFormValues = Partial<FormValues>
172+
InitialFormValues = Partial<FormValues>,
173173
>(componentName?: string): FormApi<FormValues, InitialFormValues>;
174174
export function useFormState<
175175
FormValues = Record<string, any>,
176-
InitialFormValues = Partial<FormValues>
176+
InitialFormValues = Partial<FormValues>,
177177
>(
178-
params?: UseFormStateParams<FormValues, InitialFormValues>
178+
params?: UseFormStateParams<FormValues, InitialFormValues>,
179179
): FormState<FormValues, InitialFormValues>;
180180
export function withTypes<
181181
FormValues = Record<string, any>,
182-
InitialFormValues = Partial<FormValues>
182+
InitialFormValues = Partial<FormValues>,
183183
>(): {
184184
Form: React.FC<FormProps<FormValues, InitialFormValues>>;
185185
FormSpy: React.FC<FormSpyProps<FormValues, InitialFormValues>>;

typescript/useField.test.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
/* eslint-disable @typescript-eslint/no-unused-vars */
2-
import * as React from 'react';
3-
import { useField } from 'react-final-form';
2+
import * as React from "react";
3+
import { useField } from "react-final-form";
44

55
const NumberInput: React.FC<{ value?: number }> = () => null;
66

77
function NumberFieldValue() {
8-
const { input } = useField<number>('numberField');
8+
const { input } = useField<number>("numberField");
99
return <NumberInput value={input.value} />;
1010
}
1111

1212
function NumberInputValue() {
13-
const { input } = useField('numberField', {
13+
const { input } = useField("numberField", {
1414
format: (value: string) => Number(value),
15-
parse: (value: number) => String(value)
15+
parse: (value: number) => String(value),
1616
});
1717
return <NumberInput value={input.value} />;
1818
}

0 commit comments

Comments
 (0)