diff --git a/packages/react-form/src/ReactForm/fieldSubscriptions.lib.ts b/packages/react-form/src/ReactForm/fieldSubscriptions.lib.ts index 760b3575e..8c9f120da 100644 --- a/packages/react-form/src/ReactForm/fieldSubscriptions.lib.ts +++ b/packages/react-form/src/ReactForm/fieldSubscriptions.lib.ts @@ -5,14 +5,12 @@ import type { AnyInternalFieldApi } from '@tanstack/form-core/internals' export function useValueFieldSubscription( fieldApi: AnyInternalFieldApi, ): AnyInternalFieldApi { - const value = useSelector(fieldApi.atom, (state) => state.value) - const meta = useSelector(fieldApi.atom, (state) => state.meta) + const state = useSelector(fieldApi.atom) return useMemo(() => { - void meta - void value + void state return Object.create(fieldApi) - }, [fieldApi, meta, value]) + }, [fieldApi, state]) } export function useArrayFieldSubscription( diff --git a/packages/react-form/tests/FormGroup.spec.tsx b/packages/react-form/tests/FormGroup.spec.tsx index c040db8d9..62dd054c2 100644 --- a/packages/react-form/tests/FormGroup.spec.tsx +++ b/packages/react-form/tests/FormGroup.spec.tsx @@ -118,7 +118,7 @@ describe('FormGroup', () => { expect(getByTestId('app-field-name')).toHaveTextContent('guestDetails.name') }) - it('uses the AppForm field provider subscription for field context', async () => { + it('uses one AppForm field provider subscription for field context', async () => { const subscribe = vi.fn() const unsubscribe = vi.fn() const instrumentedAtoms = new WeakSet() @@ -169,7 +169,7 @@ describe('FormGroup', () => { await vi.waitFor(() => { expect(subscribe.mock.calls.length - unsubscribe.mock.calls.length).toBe( - 2, + 1, ) })