From 657125c349f036ded453afc6ad210830c00af8b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82?= Date: Mon, 18 Feb 2019 11:05:16 +0100 Subject: [PATCH] Add Form component FormData generic typing --- src/ReactFinalForm.d.test.tsx | 26 ++++++++++++++++++++++++++ src/index.d.ts | 8 ++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/ReactFinalForm.d.test.tsx b/src/ReactFinalForm.d.test.tsx index f3cf0e20..38939bdf 100644 --- a/src/ReactFinalForm.d.test.tsx +++ b/src/ReactFinalForm.d.test.tsx @@ -116,3 +116,29 @@ function mutated() { ) } + +// with typed form data + +const typedOnSubmit = (values: { firstName: string }) => { + console.log(values) +} + +function withTypedFormData() { + return ( + onSubmit={typedOnSubmit}> + {({ handleSubmit }) => ( +
+
+ + +
+
+ )} + + ) +} diff --git a/src/index.d.ts b/src/index.d.ts index b3f34264..412b0542 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -69,7 +69,9 @@ export interface RenderableProps { render?: (props: T) => React.ReactNode } -export interface FormProps extends Config, RenderableProps { +export interface FormProps + extends Config, + RenderableProps { subscription?: FormSubscription decorators?: Decorator[] initialValuesEqual?: (a?: object, b?: object) => boolean @@ -94,7 +96,9 @@ export interface FormSpyProps extends RenderableProps { } export var Field: React.ComponentType -export var Form: React.ComponentType +export class Form extends React.Component< + FormProps +> {} export var FormSpy: React.ComponentType export var version: string