diff --git a/packages/react-form-devtools/eslint.config.js b/packages/react-form-devtools/eslint.config.js index dd590b561..66f87d647 100644 --- a/packages/react-form-devtools/eslint.config.js +++ b/packages/react-form-devtools/eslint.config.js @@ -20,6 +20,8 @@ export default [ 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', 'react-compiler/react-compiler': 'error', + // Must be "off" to avoid moving `useContext` to `use`, which breaks React 17/18 usage. + '@eslint-react/no-use-context': 'off', }, }, ] diff --git a/packages/react-form-nextjs/eslint.config.js b/packages/react-form-nextjs/eslint.config.js index dd590b561..66f87d647 100644 --- a/packages/react-form-nextjs/eslint.config.js +++ b/packages/react-form-nextjs/eslint.config.js @@ -20,6 +20,8 @@ export default [ 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', 'react-compiler/react-compiler': 'error', + // Must be "off" to avoid moving `useContext` to `use`, which breaks React 17/18 usage. + '@eslint-react/no-use-context': 'off', }, }, ] diff --git a/packages/react-form-remix/eslint.config.js b/packages/react-form-remix/eslint.config.js index dd590b561..66f87d647 100644 --- a/packages/react-form-remix/eslint.config.js +++ b/packages/react-form-remix/eslint.config.js @@ -20,6 +20,8 @@ export default [ 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', 'react-compiler/react-compiler': 'error', + // Must be "off" to avoid moving `useContext` to `use`, which breaks React 17/18 usage. + '@eslint-react/no-use-context': 'off', }, }, ] diff --git a/packages/react-form-start/eslint.config.js b/packages/react-form-start/eslint.config.js index dd590b561..66f87d647 100644 --- a/packages/react-form-start/eslint.config.js +++ b/packages/react-form-start/eslint.config.js @@ -20,6 +20,8 @@ export default [ 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', 'react-compiler/react-compiler': 'error', + // Must be "off" to avoid moving `useContext` to `use`, which breaks React 17/18 usage. + '@eslint-react/no-use-context': 'off', }, }, ] diff --git a/packages/react-form/eslint.config.js b/packages/react-form/eslint.config.js index dd590b561..66f87d647 100644 --- a/packages/react-form/eslint.config.js +++ b/packages/react-form/eslint.config.js @@ -20,6 +20,8 @@ export default [ 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', 'react-compiler/react-compiler': 'error', + // Must be "off" to avoid moving `useContext` to `use`, which breaks React 17/18 usage. + '@eslint-react/no-use-context': 'off', }, }, ] diff --git a/packages/react-form/src/createFormHook.tsx b/packages/react-form/src/createFormHook.tsx index 5c0e8b7ad..4008c47fc 100644 --- a/packages/react-form/src/createFormHook.tsx +++ b/packages/react-form/src/createFormHook.tsx @@ -359,7 +359,6 @@ export function createFormHook< return ( {(field) => ( - // eslint-disable-next-line @eslint-react/no-context-provider {children(Object.assign(field, fieldComponents))} diff --git a/packages/react-form/src/useField.tsx b/packages/react-form/src/useField.tsx index 2a3f546cf..76d2bc923 100644 --- a/packages/react-form/src/useField.tsx +++ b/packages/react-form/src/useField.tsx @@ -1,6 +1,6 @@ 'use client' -import { useMemo, useRef, useState } from 'react' +import { useMemo, useState } from 'react' import { useStore } from '@tanstack/react-store' import { FieldApi, functionalUpdate } from '@tanstack/form-core' import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect' @@ -15,42 +15,9 @@ import type { FormAsyncValidateOrFn, FormValidateOrFn, } from '@tanstack/form-core' -import type { FunctionComponent, ReactElement, ReactNode } from 'react' +import type { FunctionComponent, ReactNode } from 'react' import type { UseFieldOptions, UseFieldOptionsBound } from './types' -interface ReactFieldApi< - TParentData, - TFormOnMount extends undefined | FormValidateOrFn, - TFormOnChange extends undefined | FormValidateOrFn, - TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, - TFormOnBlur extends undefined | FormValidateOrFn, - TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, - TFormOnSubmit extends undefined | FormValidateOrFn, - TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, - TFormOnDynamic extends undefined | FormValidateOrFn, - TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, - TFormOnServer extends undefined | FormAsyncValidateOrFn, - TPatentSubmitMeta, -> { - /** - * A pre-bound and type-safe sub-field component using this field as a root. - */ - Field: FieldComponent< - TParentData, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TPatentSubmitMeta - > -} - /** * A type representing a hook for using a field in a form with the given form data type. * @@ -305,23 +272,7 @@ export function useField< TFormOnDynamicAsync, TFormOnServer, TPatentSubmitMeta - > & - ReactFieldApi< - TParentData, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TPatentSubmitMeta - > = reactiveFieldApi as never - - extendedApi.Field = Field as never + > = reactiveFieldApi as never return extendedApi }, [ diff --git a/packages/solid-form/src/createField.tsx b/packages/solid-form/src/createField.tsx index 504564b03..1284f0aaf 100644 --- a/packages/solid-form/src/createField.tsx +++ b/packages/solid-form/src/createField.tsx @@ -15,7 +15,6 @@ import type { FieldValidators, FormAsyncValidateOrFn, FormValidateOrFn, - Narrow, } from '@tanstack/form-core' import type { Accessor, JSX, JSXElement } from 'solid-js' @@ -51,94 +50,6 @@ interface SolidFieldApi< > } -export type CreateField< - TParentData, - TFormOnMount extends undefined | FormValidateOrFn, - TFormOnChange extends undefined | FormValidateOrFn, - TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, - TFormOnBlur extends undefined | FormValidateOrFn, - TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, - TFormOnSubmit extends undefined | FormValidateOrFn, - TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, - TFormOnDynamic extends undefined | FormValidateOrFn, - TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, - TFormOnServer extends undefined | FormAsyncValidateOrFn, - TParentSubmitMeta, -> = < - TName extends DeepKeys, - TData extends DeepValue, - TOnMount extends undefined | FieldValidateOrFn, - TOnChange extends undefined | FieldValidateOrFn, - TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, - TOnBlur extends undefined | FieldValidateOrFn, - TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, - TOnSubmit extends undefined | FieldValidateOrFn, - TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, - TOnDynamic extends undefined | FieldValidateOrFn, - TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, ->( - opts: () => { name: Narrow } & CreateFieldOptionsBound< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TOnDynamic, - TOnDynamicAsync - >, -) => () => FieldApi< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TOnDynamic, - TOnDynamicAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TParentSubmitMeta -> & - SolidFieldApi< - TParentData, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TParentSubmitMeta - > - // ugly way to trick solid into triggering updates for changes on the fieldApi function makeFieldReactive< TParentData, @@ -326,23 +237,7 @@ export function createField< const api = new FieldApi(options) - const extendedApi: typeof api & - SolidFieldApi< - TParentData, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TParentSubmitMeta - > = api as never - - extendedApi.Field = Field as never + const extendedApi: typeof api = api as never let mounted = false // Instantiates field meta and removes it when unrendered diff --git a/packages/solid-form/src/createForm.tsx b/packages/solid-form/src/createForm.tsx index 383014c09..0c01b193a 100644 --- a/packages/solid-form/src/createForm.tsx +++ b/packages/solid-form/src/createForm.tsx @@ -9,7 +9,7 @@ import type { FormValidateOrFn, } from '@tanstack/form-core' import type { JSXElement } from 'solid-js' -import type { CreateField, FieldComponent } from './createField' +import type { FieldComponent } from './createField' export interface SolidFormApi< TParentData, @@ -39,20 +39,6 @@ export interface SolidFormApi< TFormOnServer, TSubmitMeta > - createField: CreateField< - TParentData, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TSubmitMeta - > useStore: < TSelected = NoInfer< FormState< @@ -231,10 +217,6 @@ export function createForm< > = api as never extendedApi.Field = (props) => - extendedApi.createField = (props) => - createField(() => { - return { ...props(), form: api } - }) as never extendedApi.useStore = (selector) => useStore(api.store, selector) extendedApi.Subscribe = (props) => functionalUpdate(props.children, useStore(api.store, props.selector)) diff --git a/packages/svelte-form/src/Field.svelte b/packages/svelte-form/src/Field.svelte index 57fba2860..9d63c23e4 100644 --- a/packages/svelte-form/src/Field.svelte +++ b/packages/svelte-form/src/Field.svelte @@ -10,8 +10,7 @@ } from '@tanstack/form-core' import { useStore } from '@tanstack/svelte-store' import { onMount, type Snippet } from 'svelte' - import Field from './Field.svelte' - import type { CreateFieldOptions, SvelteFieldApi } from './types.js' + import type { CreateFieldOptions } from './types.js' export function createField< TParentData, @@ -76,23 +75,7 @@ const api = new FieldApi(options) - const extendedApi: typeof api & - SvelteFieldApi< - TParentData, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TParentSubmitMeta - > = api as never - - extendedApi.Field = Field as never + const extendedApi: typeof api = api as never let mounted = false // Instantiates field meta and removes it when unrendered diff --git a/packages/svelte-form/src/createForm.svelte.ts b/packages/svelte-form/src/createForm.svelte.ts index 5bd92181c..fc770e941 100644 --- a/packages/svelte-form/src/createForm.svelte.ts +++ b/packages/svelte-form/src/createForm.svelte.ts @@ -1,7 +1,7 @@ import { FormApi } from '@tanstack/form-core' import { useStore } from '@tanstack/svelte-store' import { onMount } from 'svelte' -import Field, { createField } from './Field.svelte' +import Field from './Field.svelte' import Subscribe from './Subscribe.svelte' import type { Component, @@ -15,7 +15,7 @@ import type { FormState, FormValidateOrFn, } from '@tanstack/form-core' -import type { CreateField, FieldComponent, WithoutFunction } from './types.js' +import type { FieldComponent, WithoutFunction } from './types.js' export interface SvelteFormApi< TParentData, @@ -45,20 +45,6 @@ export interface SvelteFormApi< TFormOnServer, TSubmitMeta > - createField: CreateField< - TParentData, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TSubmitMeta - > useStore: < TSelected = NoInfer< FormState< @@ -287,10 +273,6 @@ export function createForm< // @ts-expect-error constructor definition exists only on a type level extendedApi.Field = (internal, props) => Field(internal, { ...props, form: api as never } as never) - extendedApi.createField = (props) => - createField(() => { - return { ...props(), form: api } as never - }) as never // Type cast because else "Error: Type instantiation is excessively deep and possibly infinite." extendedApi.useStore = (selector) => useStore(api.store, selector) // @ts-expect-error constructor definition exists only on a type level extendedApi.Subscribe = (internal, props) => diff --git a/packages/svelte-form/src/createFormCreator.svelte.ts b/packages/svelte-form/src/createFormCreator.svelte.ts index 0637168f9..af4c5fe41 100644 --- a/packages/svelte-form/src/createFormCreator.svelte.ts +++ b/packages/svelte-form/src/createFormCreator.svelte.ts @@ -13,7 +13,7 @@ import type { } from '@tanstack/form-core' import type { FieldComponent } from './types.js' import type { SvelteFormExtendedApi } from './createForm.svelte' -import type { Component, Snippet, SvelteComponent } from 'svelte' +import type { Component, Snippet } from 'svelte' /** * TypeScript inferencing is weird. diff --git a/packages/svelte-form/src/index.ts b/packages/svelte-form/src/index.ts index 5540f0b85..6001165f2 100644 --- a/packages/svelte-form/src/index.ts +++ b/packages/svelte-form/src/index.ts @@ -6,7 +6,7 @@ export { createForm, type SvelteFormApi } from './createForm.svelte.js' export { default as Field, createField } from './Field.svelte' -export type { CreateField, FieldComponent } from './types.js' +export type { FieldComponent } from './types.js' export { createFormCreator, diff --git a/packages/svelte-form/src/types.ts b/packages/svelte-form/src/types.ts index 853834d0a..c593926ac 100644 --- a/packages/svelte-form/src/types.ts +++ b/packages/svelte-form/src/types.ts @@ -80,36 +80,6 @@ export type WithoutFunction = { [K in keyof T as T[K] extends Function ? never : K]: T[K] } -export interface SvelteFieldApi< - TParentData, - TFormOnMount extends undefined | FormValidateOrFn, - TFormOnChange extends undefined | FormValidateOrFn, - TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, - TFormOnBlur extends undefined | FormValidateOrFn, - TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, - TFormOnSubmit extends undefined | FormValidateOrFn, - TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, - TFormOnDynamic extends undefined | FormValidateOrFn, - TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, - TFormOnServer extends undefined | FormAsyncValidateOrFn, - TParentSubmitMeta, -> { - Field: FieldComponent< - TParentData, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TParentSubmitMeta - > -} - export type FieldComponent< TParentData, TFormOnMount extends undefined | FormValidateOrFn, @@ -338,106 +308,3 @@ type FieldComponentProps< >, 'form' > - -export type CreateField< - TParentData, - TFormOnMount extends undefined | FormValidateOrFn, - TFormOnChange extends undefined | FormValidateOrFn, - TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, - TFormOnBlur extends undefined | FormValidateOrFn, - TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, - TFormOnSubmit extends undefined | FormValidateOrFn, - TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, - TFormOnDynamic extends undefined | FormValidateOrFn, - TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, - TFormOnServer extends undefined | FormAsyncValidateOrFn, - TParentSubmitMeta, -> = < - TName extends DeepKeys, - TData extends DeepValue, - TOnMount extends undefined | FieldValidateOrFn, - TOnChange extends undefined | FieldValidateOrFn, - TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, - TOnBlur extends undefined | FieldValidateOrFn, - TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, - TOnSubmit extends undefined | FieldValidateOrFn, - TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, - TOnDynamic extends undefined | FieldValidateOrFn, - TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, - TSubmitMeta, ->( - opts: () => { name: Narrow } & Omit< - CreateFieldOptions< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TOnDynamic, - TOnDynamicAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TSubmitMeta - >, - 'form' - >, -) => FieldApi< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TOnDynamic, - TOnDynamicAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TParentSubmitMeta -> & - SvelteFieldApi< - TParentData, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TParentSubmitMeta - > diff --git a/packages/vue-form/src/useField.tsx b/packages/vue-form/src/useField.tsx index c9e3b2492..630ae6214 100644 --- a/packages/vue-form/src/useField.tsx +++ b/packages/vue-form/src/useField.tsx @@ -15,7 +15,6 @@ import type { EmitsOptions, EmitsToProps, PublicProps, - Ref, SetupContext, SlotsType, } from 'vue' @@ -185,125 +184,6 @@ export interface VueFieldApi< > } -export type UseField< - TParentData, - TFormOnMount extends undefined | FormValidateOrFn, - TFormOnChange extends undefined | FormValidateOrFn, - TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, - TFormOnBlur extends undefined | FormValidateOrFn, - TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, - TFormOnSubmit extends undefined | FormValidateOrFn, - TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, - TFormOnDynamic extends undefined | FormValidateOrFn, - TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn, - TFormOnServer extends undefined | FormAsyncValidateOrFn, - TParentSubmitMeta, -> = < - TName extends DeepKeys, - TData extends DeepValue, - TOnMount extends undefined | FieldValidateOrFn, - TOnChange extends undefined | FieldValidateOrFn, - TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, - TOnBlur extends undefined | FieldValidateOrFn, - TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, - TOnSubmit extends undefined | FieldValidateOrFn, - TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, - TOnDynamic extends undefined | FieldValidateOrFn, - TOnDynamicAsync extends - | undefined - | FieldAsyncValidateOrFn, ->( - opts: UseFieldOptionsBound< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TOnDynamic, - TOnDynamicAsync - >, -) => { - api: FieldApi< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TOnDynamic, - TOnDynamicAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TParentSubmitMeta - > & - VueFieldApi< - TParentData, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TParentSubmitMeta - > - state: Readonly< - Ref< - FieldApi< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TOnDynamic, - TOnDynamicAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TParentSubmitMeta - >['state'] - > - > -} - export function useField< TParentData, TName extends DeepKeys, @@ -370,25 +250,7 @@ export function useField< name: opts.name, }) - const extendedApi: typeof api & - VueFieldApi< - TParentData, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TParentSubmitMeta - > = api as never - - extendedApi.Field = Field as never - - return extendedApi + return api })() const fieldState = useStore(fieldApi.store, (state) => state) diff --git a/packages/vue-form/src/useForm.tsx b/packages/vue-form/src/useForm.tsx index 74be6e56a..a4f8f8f49 100644 --- a/packages/vue-form/src/useForm.tsx +++ b/packages/vue-form/src/useForm.tsx @@ -1,7 +1,7 @@ import { FormApi } from '@tanstack/form-core' import { useStore } from '@tanstack/vue-store' import { defineComponent, h, onMounted } from 'vue' -import { Field, useField } from './useField' +import { Field } from './useField' import type { FormAsyncValidateOrFn, FormOptions, @@ -17,7 +17,7 @@ import type { Ref, SlotsType, } from 'vue' -import type { FieldComponent, UseField } from './useField' +import type { FieldComponent } from './useField' type SubscribeComponent< TParentData, @@ -149,20 +149,6 @@ export interface VueFormApi< TFormOnServer, TSubmitMeta > - useField: UseField< - TParentData, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnDynamic, - TFormOnDynamicAsync, - TFormOnServer, - TSubmitMeta - > useStore: < TSelected = NoInfer< FormState< @@ -287,10 +273,6 @@ export function useForm< inheritAttrs: false, }, ) as never - extendedApi.useField = (props) => { - const field = useField({ ...props, form: api }) - return field - } extendedApi.useStore = (selector) => { return useStore(api.store as never, selector as never) as never }