@tanstack/react-form 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/legacy/createFormFactory.cjs +42 -0
- package/build/legacy/createFormFactory.cjs.map +1 -0
- package/build/legacy/createFormFactory.d.cts +12 -0
- package/build/legacy/createFormFactory.d.ts +12 -0
- package/build/legacy/createFormFactory.js +17 -0
- package/build/legacy/createFormFactory.js.map +1 -0
- package/build/legacy/formContext.cjs +51 -0
- package/build/legacy/formContext.cjs.map +1 -0
- package/build/legacy/formContext.d.cts +13 -0
- package/build/legacy/formContext.d.ts +13 -0
- package/build/legacy/formContext.js +15 -0
- package/build/legacy/formContext.js.map +1 -0
- package/build/legacy/index.cjs +46 -0
- package/build/legacy/index.cjs.map +1 -0
- package/build/legacy/index.d.cts +7 -0
- package/build/legacy/index.d.ts +7 -0
- package/build/legacy/index.js +15 -0
- package/build/legacy/index.js.map +1 -0
- package/build/legacy/types.cjs +19 -0
- package/build/legacy/types.cjs.map +1 -0
- package/build/legacy/types.d.cts +7 -0
- package/build/legacy/types.d.ts +7 -0
- package/build/legacy/types.js +1 -0
- package/build/legacy/types.js.map +1 -0
- package/build/legacy/useField.cjs +80 -0
- package/build/legacy/useField.cjs.map +1 -0
- package/build/legacy/useField.d.cts +27 -0
- package/build/{lib → legacy}/useField.d.ts +10 -9
- package/build/legacy/useField.js +44 -0
- package/build/legacy/useField.js.map +1 -0
- package/build/legacy/useForm.cjs +70 -0
- package/build/legacy/useForm.cjs.map +1 -0
- package/build/legacy/useForm.d.cts +23 -0
- package/build/{lib → legacy}/useForm.d.ts +9 -7
- package/build/legacy/useForm.js +35 -0
- package/build/legacy/useForm.js.map +1 -0
- package/build/modern/createFormFactory.cjs +42 -0
- package/build/modern/createFormFactory.cjs.map +1 -0
- package/build/modern/createFormFactory.d.cts +12 -0
- package/build/modern/createFormFactory.d.ts +12 -0
- package/build/modern/createFormFactory.js +17 -0
- package/build/modern/createFormFactory.js.map +1 -0
- package/build/modern/formContext.cjs +51 -0
- package/build/modern/formContext.cjs.map +1 -0
- package/build/modern/formContext.d.cts +13 -0
- package/build/modern/formContext.d.ts +13 -0
- package/build/modern/formContext.js +15 -0
- package/build/modern/formContext.js.map +1 -0
- package/build/modern/index.cjs +46 -0
- package/build/modern/index.cjs.map +1 -0
- package/build/modern/index.d.cts +7 -0
- package/build/modern/index.d.ts +7 -0
- package/build/modern/index.js +15 -0
- package/build/modern/index.js.map +1 -0
- package/build/modern/types.cjs +19 -0
- package/build/modern/types.cjs.map +1 -0
- package/build/modern/types.d.cts +7 -0
- package/build/modern/types.d.ts +7 -0
- package/build/modern/types.js +1 -0
- package/build/modern/types.js.map +1 -0
- package/build/modern/useField.cjs +80 -0
- package/build/modern/useField.cjs.map +1 -0
- package/build/modern/useField.d.cts +27 -0
- package/build/modern/useField.d.ts +27 -0
- package/build/modern/useField.js +44 -0
- package/build/modern/useField.js.map +1 -0
- package/build/modern/useForm.cjs +70 -0
- package/build/modern/useForm.cjs.map +1 -0
- package/build/modern/useForm.d.cts +23 -0
- package/build/modern/useForm.d.ts +23 -0
- package/build/modern/useForm.js +35 -0
- package/build/modern/useForm.js.map +1 -0
- package/package.json +28 -22
- package/build/lib/_virtual/_rollupPluginBabelHelpers.cjs +0 -19
- package/build/lib/_virtual/_rollupPluginBabelHelpers.cjs.map +0 -1
- package/build/lib/_virtual/_rollupPluginBabelHelpers.js +0 -17
- package/build/lib/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.cjs +0 -19
- package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.cjs.map +0 -1
- package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.js +0 -17
- package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.js.map +0 -1
- package/build/lib/createFormFactory.cjs +0 -18
- package/build/lib/createFormFactory.cjs.map +0 -1
- package/build/lib/createFormFactory.d.ts +0 -9
- package/build/lib/createFormFactory.d.ts.map +0 -1
- package/build/lib/createFormFactory.js +0 -16
- package/build/lib/createFormFactory.js.map +0 -1
- package/build/lib/createFormFactory.legacy.cjs +0 -18
- package/build/lib/createFormFactory.legacy.cjs.map +0 -1
- package/build/lib/createFormFactory.legacy.js +0 -16
- package/build/lib/createFormFactory.legacy.js.map +0 -1
- package/build/lib/formContext.cjs +0 -35
- package/build/lib/formContext.cjs.map +0 -1
- package/build/lib/formContext.d.ts +0 -11
- package/build/lib/formContext.d.ts.map +0 -1
- package/build/lib/formContext.js +0 -13
- package/build/lib/formContext.js.map +0 -1
- package/build/lib/formContext.legacy.cjs +0 -35
- package/build/lib/formContext.legacy.cjs.map +0 -1
- package/build/lib/formContext.legacy.js +0 -13
- package/build/lib/formContext.legacy.js.map +0 -1
- package/build/lib/index.cjs +0 -26
- package/build/lib/index.cjs.map +0 -1
- package/build/lib/index.d.ts +0 -8
- package/build/lib/index.d.ts.map +0 -1
- package/build/lib/index.js +0 -5
- package/build/lib/index.js.map +0 -1
- package/build/lib/index.legacy.cjs +0 -26
- package/build/lib/index.legacy.cjs.map +0 -1
- package/build/lib/index.legacy.js +0 -5
- package/build/lib/index.legacy.js.map +0 -1
- package/build/lib/tests/createFormFactory.test.d.ts +0 -3
- package/build/lib/tests/createFormFactory.test.d.ts.map +0 -1
- package/build/lib/tests/useField.test.d.ts +0 -3
- package/build/lib/tests/useField.test.d.ts.map +0 -1
- package/build/lib/tests/useForm.test.d.ts +0 -3
- package/build/lib/tests/useForm.test.d.ts.map +0 -1
- package/build/lib/tests/utils.d.ts +0 -2
- package/build/lib/tests/utils.d.ts.map +0 -1
- package/build/lib/types.d.ts +0 -5
- package/build/lib/types.d.ts.map +0 -1
- package/build/lib/useField.cjs +0 -83
- package/build/lib/useField.cjs.map +0 -1
- package/build/lib/useField.d.ts.map +0 -1
- package/build/lib/useField.js +0 -80
- package/build/lib/useField.js.map +0 -1
- package/build/lib/useField.legacy.cjs +0 -83
- package/build/lib/useField.legacy.cjs.map +0 -1
- package/build/lib/useField.legacy.js +0 -80
- package/build/lib/useField.legacy.js.map +0 -1
- package/build/lib/useForm.cjs +0 -52
- package/build/lib/useForm.cjs.map +0 -1
- package/build/lib/useForm.d.ts.map +0 -1
- package/build/lib/useForm.js +0 -50
- package/build/lib/useForm.js.map +0 -1
- package/build/lib/useForm.legacy.cjs +0 -52
- package/build/lib/useForm.legacy.cjs.map +0 -1
- package/build/lib/useForm.legacy.js +0 -50
- package/build/lib/useForm.legacy.js.map +0 -1
- package/build/lib/utils/isBrowser.cjs +0 -8
- package/build/lib/utils/isBrowser.cjs.map +0 -1
- package/build/lib/utils/isBrowser.d.ts +0 -2
- package/build/lib/utils/isBrowser.d.ts.map +0 -1
- package/build/lib/utils/isBrowser.js +0 -6
- package/build/lib/utils/isBrowser.js.map +0 -1
- package/build/lib/utils/isBrowser.legacy.cjs +0 -8
- package/build/lib/utils/isBrowser.legacy.cjs.map +0 -1
- package/build/lib/utils/isBrowser.legacy.js +0 -6
- package/build/lib/utils/isBrowser.legacy.js.map +0 -1
- package/build/lib/utils/useIsomorphicLayoutEffect.cjs +0 -11
- package/build/lib/utils/useIsomorphicLayoutEffect.cjs.map +0 -1
- package/build/lib/utils/useIsomorphicLayoutEffect.d.ts +0 -3
- package/build/lib/utils/useIsomorphicLayoutEffect.d.ts.map +0 -1
- package/build/lib/utils/useIsomorphicLayoutEffect.js +0 -9
- package/build/lib/utils/useIsomorphicLayoutEffect.js.map +0 -1
- package/build/lib/utils/useIsomorphicLayoutEffect.legacy.cjs +0 -11
- package/build/lib/utils/useIsomorphicLayoutEffect.legacy.cjs.map +0 -1
- package/build/lib/utils/useIsomorphicLayoutEffect.legacy.js +0 -9
- package/build/lib/utils/useIsomorphicLayoutEffect.legacy.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../src/useForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,OAAO,EAAoB,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAc,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAA;AACvD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAmB,MAAM,YAAY,CAAA;AAIhF,OAAO,QAAQ,qBAAqB,CAAC;IAEnC,UAAU,OAAO,CAAC,SAAS;QACzB,QAAQ,EAAE,CAAC,KAAK,EAAE;YAAE,QAAQ,EAAE,GAAG,CAAA;SAAE,KAAK,GAAG,CAAA;QAC3C,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAC3C,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC7B,QAAQ,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAClD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,SAAS,KAC3D,SAAS,CAAA;QACd,SAAS,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE;YAC5D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,SAAS,CAAA;YAC9D,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,GAAG,SAAS,CAAA;SACjE,KAAK,GAAG,CAAA;KACV;CACF;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CA2CxE"}
|
package/build/lib/useForm.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import { FormApi, functionalUpdate } from '@tanstack/form-core';
|
|
3
|
-
import { useStore } from '@tanstack/react-store';
|
|
4
|
-
import React__default, { useState } from 'react';
|
|
5
|
-
import { Field, useField } from './useField.js';
|
|
6
|
-
import { formContext } from './formContext.js';
|
|
7
|
-
import { useIsomorphicLayoutEffect } from './utils/useIsomorphicLayoutEffect.js';
|
|
8
|
-
|
|
9
|
-
function useForm(opts) {
|
|
10
|
-
const [formApi] = useState(() => {
|
|
11
|
-
// @ts-ignore
|
|
12
|
-
const api = new FormApi(opts);
|
|
13
|
-
|
|
14
|
-
// eslint-disable-next-line react/display-name
|
|
15
|
-
api.Provider = props => /*#__PURE__*/React__default.createElement(formContext.Provider, _extends({}, props, {
|
|
16
|
-
value: {
|
|
17
|
-
formApi: api
|
|
18
|
-
}
|
|
19
|
-
}));
|
|
20
|
-
api.Field = Field;
|
|
21
|
-
api.useField = useField;
|
|
22
|
-
api.useStore = (
|
|
23
|
-
// @ts-ignore
|
|
24
|
-
selector) => {
|
|
25
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
26
|
-
return useStore(api.store, selector);
|
|
27
|
-
};
|
|
28
|
-
api.Subscribe = (
|
|
29
|
-
// @ts-ignore
|
|
30
|
-
props) => {
|
|
31
|
-
return functionalUpdate(props.children,
|
|
32
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
33
|
-
useStore(api.store, props.selector));
|
|
34
|
-
};
|
|
35
|
-
return api;
|
|
36
|
-
});
|
|
37
|
-
formApi.useStore(state => state.isSubmitting);
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* formApi.update should not have any side effects. Think of it like a `useRef`
|
|
41
|
-
* that we need to keep updated every render with the most up-to-date information.
|
|
42
|
-
*/
|
|
43
|
-
useIsomorphicLayoutEffect(() => {
|
|
44
|
-
formApi.update(opts);
|
|
45
|
-
});
|
|
46
|
-
return formApi;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export { useForm };
|
|
50
|
-
//# sourceMappingURL=useForm.js.map
|
package/build/lib/useForm.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useForm.js","sources":["../../src/useForm.tsx"],"sourcesContent":["import type { FormState, FormOptions } from '@tanstack/form-core'\nimport { FormApi, functionalUpdate } from '@tanstack/form-core'\nimport type { NoInfer } from '@tanstack/react-store'\nimport { useStore } from '@tanstack/react-store'\nimport React, { type ReactNode, useState } from 'react'\nimport { type UseField, type FieldComponent, Field, useField } from './useField'\nimport { formContext } from './formContext'\nimport { useIsomorphicLayoutEffect } from './utils/useIsomorphicLayoutEffect'\n\ndeclare module '@tanstack/form-core' {\n // eslint-disable-next-line no-shadow\n interface FormApi<TFormData> {\n Provider: (props: { children: any }) => any\n Field: FieldComponent<TFormData, TFormData>\n useField: UseField<TFormData>\n useStore: <TSelected = NoInfer<FormState<TFormData>>>(\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected,\n ) => TSelected\n Subscribe: <TSelected = NoInfer<FormState<TFormData>>>(props: {\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected\n children: ((state: NoInfer<TSelected>) => ReactNode) | ReactNode\n }) => any\n }\n}\n\nexport function useForm<TData>(opts?: FormOptions<TData>): FormApi<TData> {\n const [formApi] = useState(() => {\n // @ts-ignore\n const api = new FormApi<TData>(opts)\n\n // eslint-disable-next-line react/display-name\n api.Provider = (props) => (\n <formContext.Provider {...props} value={{ formApi: api }} />\n )\n api.Field = Field as any\n api.useField = useField as any\n api.useStore = (\n // @ts-ignore\n selector,\n ) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useStore(api.store as any, selector as any) as any\n }\n api.Subscribe = (\n // @ts-ignore\n props,\n ) => {\n return functionalUpdate(\n props.children,\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useStore(api.store as any, props.selector as any),\n ) as any\n }\n\n return api\n })\n\n formApi.useStore((state) => state.isSubmitting)\n\n /**\n * formApi.update should not have any side effects. Think of it like a `useRef`\n * that we need to keep updated every render with the most up-to-date information.\n */\n useIsomorphicLayoutEffect(() => {\n formApi.update(opts)\n })\n\n return formApi as any\n}\n"],"names":["useForm","opts","formApi","useState","api","FormApi","Provider","props","React","createElement","formContext","_extends","value","Field","useField","useStore","selector","store","Subscribe","functionalUpdate","children","state","isSubmitting","useIsomorphicLayoutEffect","update"],"mappings":";;;;;;;;AAyBO,SAASA,OAAOA,CAAQC,IAAyB,EAAkB;AACxE,EAAA,MAAM,CAACC,OAAO,CAAC,GAAGC,QAAQ,CAAC,MAAM;AAC/B;AACA,IAAA,MAAMC,GAAG,GAAG,IAAIC,OAAO,CAAQJ,IAAI,CAAC,CAAA;;AAEpC;AACAG,IAAAA,GAAG,CAACE,QAAQ,GAAIC,KAAK,iBACnBC,cAAA,CAAAC,aAAA,CAACC,WAAW,CAACJ,QAAQ,EAAAK,QAAA,KAAKJ,KAAK,EAAA;AAAEK,MAAAA,KAAK,EAAE;AAAEV,QAAAA,OAAO,EAAEE,GAAAA;AAAI,OAAA;AAAE,KAAA,CAAE,CAC5D,CAAA;IACDA,GAAG,CAACS,KAAK,GAAGA,KAAY,CAAA;IACxBT,GAAG,CAACU,QAAQ,GAAGA,QAAe,CAAA;IAC9BV,GAAG,CAACW,QAAQ,GAAG;AACb;AACAC,IAAAA,QAAQ,KACL;AACH;AACA,MAAA,OAAOD,QAAQ,CAACX,GAAG,CAACa,KAAK,EAASD,QAAe,CAAC,CAAA;KACnD,CAAA;IACDZ,GAAG,CAACc,SAAS,GAAG;AACd;AACAX,IAAAA,KAAK,KACF;AACH,MAAA,OAAOY,gBAAgB,CACrBZ,KAAK,CAACa,QAAQ;AACd;MACAL,QAAQ,CAACX,GAAG,CAACa,KAAK,EAASV,KAAK,CAACS,QAAe,CAClD,CAAC,CAAA;KACF,CAAA;AAED,IAAA,OAAOZ,GAAG,CAAA;AACZ,GAAC,CAAC,CAAA;EAEFF,OAAO,CAACa,QAAQ,CAAEM,KAAK,IAAKA,KAAK,CAACC,YAAY,CAAC,CAAA;;AAE/C;AACF;AACA;AACA;AACEC,EAAAA,yBAAyB,CAAC,MAAM;AAC9BrB,IAAAA,OAAO,CAACsB,MAAM,CAACvB,IAAI,CAAC,CAAA;AACtB,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOC,OAAO,CAAA;AAChB;;;;"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.legacy.cjs');
|
|
4
|
-
var formCore = require('@tanstack/form-core');
|
|
5
|
-
var reactStore = require('@tanstack/react-store');
|
|
6
|
-
var React = require('react');
|
|
7
|
-
var useField = require('./useField.legacy.cjs');
|
|
8
|
-
var formContext = require('./formContext.legacy.cjs');
|
|
9
|
-
var useIsomorphicLayoutEffect = require('./utils/useIsomorphicLayoutEffect.legacy.cjs');
|
|
10
|
-
|
|
11
|
-
function useForm(opts) {
|
|
12
|
-
const [formApi] = React.useState(() => {
|
|
13
|
-
// @ts-ignore
|
|
14
|
-
const api = new formCore.FormApi(opts);
|
|
15
|
-
|
|
16
|
-
// eslint-disable-next-line react/display-name
|
|
17
|
-
api.Provider = props => /*#__PURE__*/React.createElement(formContext.formContext.Provider, _rollupPluginBabelHelpers.extends({}, props, {
|
|
18
|
-
value: {
|
|
19
|
-
formApi: api
|
|
20
|
-
}
|
|
21
|
-
}));
|
|
22
|
-
api.Field = useField.Field;
|
|
23
|
-
api.useField = useField.useField;
|
|
24
|
-
api.useStore = (
|
|
25
|
-
// @ts-ignore
|
|
26
|
-
selector) => {
|
|
27
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
28
|
-
return reactStore.useStore(api.store, selector);
|
|
29
|
-
};
|
|
30
|
-
api.Subscribe = (
|
|
31
|
-
// @ts-ignore
|
|
32
|
-
props) => {
|
|
33
|
-
return formCore.functionalUpdate(props.children,
|
|
34
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
35
|
-
reactStore.useStore(api.store, props.selector));
|
|
36
|
-
};
|
|
37
|
-
return api;
|
|
38
|
-
});
|
|
39
|
-
formApi.useStore(state => state.isSubmitting);
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* formApi.update should not have any side effects. Think of it like a `useRef`
|
|
43
|
-
* that we need to keep updated every render with the most up-to-date information.
|
|
44
|
-
*/
|
|
45
|
-
useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
|
|
46
|
-
formApi.update(opts);
|
|
47
|
-
});
|
|
48
|
-
return formApi;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
exports.useForm = useForm;
|
|
52
|
-
//# sourceMappingURL=useForm.legacy.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useForm.legacy.cjs","sources":["../../src/useForm.tsx"],"sourcesContent":["import type { FormState, FormOptions } from '@tanstack/form-core'\nimport { FormApi, functionalUpdate } from '@tanstack/form-core'\nimport type { NoInfer } from '@tanstack/react-store'\nimport { useStore } from '@tanstack/react-store'\nimport React, { type ReactNode, useState } from 'react'\nimport { type UseField, type FieldComponent, Field, useField } from './useField'\nimport { formContext } from './formContext'\nimport { useIsomorphicLayoutEffect } from './utils/useIsomorphicLayoutEffect'\n\ndeclare module '@tanstack/form-core' {\n // eslint-disable-next-line no-shadow\n interface FormApi<TFormData> {\n Provider: (props: { children: any }) => any\n Field: FieldComponent<TFormData, TFormData>\n useField: UseField<TFormData>\n useStore: <TSelected = NoInfer<FormState<TFormData>>>(\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected,\n ) => TSelected\n Subscribe: <TSelected = NoInfer<FormState<TFormData>>>(props: {\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected\n children: ((state: NoInfer<TSelected>) => ReactNode) | ReactNode\n }) => any\n }\n}\n\nexport function useForm<TData>(opts?: FormOptions<TData>): FormApi<TData> {\n const [formApi] = useState(() => {\n // @ts-ignore\n const api = new FormApi<TData>(opts)\n\n // eslint-disable-next-line react/display-name\n api.Provider = (props) => (\n <formContext.Provider {...props} value={{ formApi: api }} />\n )\n api.Field = Field as any\n api.useField = useField as any\n api.useStore = (\n // @ts-ignore\n selector,\n ) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useStore(api.store as any, selector as any) as any\n }\n api.Subscribe = (\n // @ts-ignore\n props,\n ) => {\n return functionalUpdate(\n props.children,\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useStore(api.store as any, props.selector as any),\n ) as any\n }\n\n return api\n })\n\n formApi.useStore((state) => state.isSubmitting)\n\n /**\n * formApi.update should not have any side effects. Think of it like a `useRef`\n * that we need to keep updated every render with the most up-to-date information.\n */\n useIsomorphicLayoutEffect(() => {\n formApi.update(opts)\n })\n\n return formApi as any\n}\n"],"names":["useForm","opts","formApi","useState","api","FormApi","Provider","props","React","createElement","formContext","_extends","value","Field","useField","useStore","selector","store","Subscribe","functionalUpdate","children","state","isSubmitting","useIsomorphicLayoutEffect","update"],"mappings":";;;;;;;;;;AAyBO,SAASA,OAAOA,CAAQC,IAAyB,EAAkB;AACxE,EAAA,MAAM,CAACC,OAAO,CAAC,GAAGC,cAAQ,CAAC,MAAM;AAC/B;AACA,IAAA,MAAMC,GAAG,GAAG,IAAIC,gBAAO,CAAQJ,IAAI,CAAC,CAAA;;AAEpC;AACAG,IAAAA,GAAG,CAACE,QAAQ,GAAIC,KAAK,iBACnBC,KAAA,CAAAC,aAAA,CAACC,uBAAW,CAACJ,QAAQ,EAAAK,iCAAA,KAAKJ,KAAK,EAAA;AAAEK,MAAAA,KAAK,EAAE;AAAEV,QAAAA,OAAO,EAAEE,GAAAA;AAAI,OAAA;AAAE,KAAA,CAAE,CAC5D,CAAA;IACDA,GAAG,CAACS,KAAK,GAAGA,cAAY,CAAA;IACxBT,GAAG,CAACU,QAAQ,GAAGA,iBAAe,CAAA;IAC9BV,GAAG,CAACW,QAAQ,GAAG;AACb;AACAC,IAAAA,QAAQ,KACL;AACH;AACA,MAAA,OAAOD,mBAAQ,CAACX,GAAG,CAACa,KAAK,EAASD,QAAe,CAAC,CAAA;KACnD,CAAA;IACDZ,GAAG,CAACc,SAAS,GAAG;AACd;AACAX,IAAAA,KAAK,KACF;AACH,MAAA,OAAOY,yBAAgB,CACrBZ,KAAK,CAACa,QAAQ;AACd;MACAL,mBAAQ,CAACX,GAAG,CAACa,KAAK,EAASV,KAAK,CAACS,QAAe,CAClD,CAAC,CAAA;KACF,CAAA;AAED,IAAA,OAAOZ,GAAG,CAAA;AACZ,GAAC,CAAC,CAAA;EAEFF,OAAO,CAACa,QAAQ,CAAEM,KAAK,IAAKA,KAAK,CAACC,YAAY,CAAC,CAAA;;AAE/C;AACF;AACA;AACA;AACEC,EAAAA,mDAAyB,CAAC,MAAM;AAC9BrB,IAAAA,OAAO,CAACsB,MAAM,CAACvB,IAAI,CAAC,CAAA;AACtB,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOC,OAAO,CAAA;AAChB;;;;"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.legacy.js';
|
|
2
|
-
import { FormApi, functionalUpdate } from '@tanstack/form-core';
|
|
3
|
-
import { useStore } from '@tanstack/react-store';
|
|
4
|
-
import React__default, { useState } from 'react';
|
|
5
|
-
import { Field, useField } from './useField.legacy.js';
|
|
6
|
-
import { formContext } from './formContext.legacy.js';
|
|
7
|
-
import { useIsomorphicLayoutEffect } from './utils/useIsomorphicLayoutEffect.legacy.js';
|
|
8
|
-
|
|
9
|
-
function useForm(opts) {
|
|
10
|
-
const [formApi] = useState(() => {
|
|
11
|
-
// @ts-ignore
|
|
12
|
-
const api = new FormApi(opts);
|
|
13
|
-
|
|
14
|
-
// eslint-disable-next-line react/display-name
|
|
15
|
-
api.Provider = props => /*#__PURE__*/React__default.createElement(formContext.Provider, _extends({}, props, {
|
|
16
|
-
value: {
|
|
17
|
-
formApi: api
|
|
18
|
-
}
|
|
19
|
-
}));
|
|
20
|
-
api.Field = Field;
|
|
21
|
-
api.useField = useField;
|
|
22
|
-
api.useStore = (
|
|
23
|
-
// @ts-ignore
|
|
24
|
-
selector) => {
|
|
25
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
26
|
-
return useStore(api.store, selector);
|
|
27
|
-
};
|
|
28
|
-
api.Subscribe = (
|
|
29
|
-
// @ts-ignore
|
|
30
|
-
props) => {
|
|
31
|
-
return functionalUpdate(props.children,
|
|
32
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
33
|
-
useStore(api.store, props.selector));
|
|
34
|
-
};
|
|
35
|
-
return api;
|
|
36
|
-
});
|
|
37
|
-
formApi.useStore(state => state.isSubmitting);
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* formApi.update should not have any side effects. Think of it like a `useRef`
|
|
41
|
-
* that we need to keep updated every render with the most up-to-date information.
|
|
42
|
-
*/
|
|
43
|
-
useIsomorphicLayoutEffect(() => {
|
|
44
|
-
formApi.update(opts);
|
|
45
|
-
});
|
|
46
|
-
return formApi;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export { useForm };
|
|
50
|
-
//# sourceMappingURL=useForm.legacy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useForm.legacy.js","sources":["../../src/useForm.tsx"],"sourcesContent":["import type { FormState, FormOptions } from '@tanstack/form-core'\nimport { FormApi, functionalUpdate } from '@tanstack/form-core'\nimport type { NoInfer } from '@tanstack/react-store'\nimport { useStore } from '@tanstack/react-store'\nimport React, { type ReactNode, useState } from 'react'\nimport { type UseField, type FieldComponent, Field, useField } from './useField'\nimport { formContext } from './formContext'\nimport { useIsomorphicLayoutEffect } from './utils/useIsomorphicLayoutEffect'\n\ndeclare module '@tanstack/form-core' {\n // eslint-disable-next-line no-shadow\n interface FormApi<TFormData> {\n Provider: (props: { children: any }) => any\n Field: FieldComponent<TFormData, TFormData>\n useField: UseField<TFormData>\n useStore: <TSelected = NoInfer<FormState<TFormData>>>(\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected,\n ) => TSelected\n Subscribe: <TSelected = NoInfer<FormState<TFormData>>>(props: {\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected\n children: ((state: NoInfer<TSelected>) => ReactNode) | ReactNode\n }) => any\n }\n}\n\nexport function useForm<TData>(opts?: FormOptions<TData>): FormApi<TData> {\n const [formApi] = useState(() => {\n // @ts-ignore\n const api = new FormApi<TData>(opts)\n\n // eslint-disable-next-line react/display-name\n api.Provider = (props) => (\n <formContext.Provider {...props} value={{ formApi: api }} />\n )\n api.Field = Field as any\n api.useField = useField as any\n api.useStore = (\n // @ts-ignore\n selector,\n ) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useStore(api.store as any, selector as any) as any\n }\n api.Subscribe = (\n // @ts-ignore\n props,\n ) => {\n return functionalUpdate(\n props.children,\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useStore(api.store as any, props.selector as any),\n ) as any\n }\n\n return api\n })\n\n formApi.useStore((state) => state.isSubmitting)\n\n /**\n * formApi.update should not have any side effects. Think of it like a `useRef`\n * that we need to keep updated every render with the most up-to-date information.\n */\n useIsomorphicLayoutEffect(() => {\n formApi.update(opts)\n })\n\n return formApi as any\n}\n"],"names":["useForm","opts","formApi","useState","api","FormApi","Provider","props","React","createElement","formContext","_extends","value","Field","useField","useStore","selector","store","Subscribe","functionalUpdate","children","state","isSubmitting","useIsomorphicLayoutEffect","update"],"mappings":";;;;;;;;AAyBO,SAASA,OAAOA,CAAQC,IAAyB,EAAkB;AACxE,EAAA,MAAM,CAACC,OAAO,CAAC,GAAGC,QAAQ,CAAC,MAAM;AAC/B;AACA,IAAA,MAAMC,GAAG,GAAG,IAAIC,OAAO,CAAQJ,IAAI,CAAC,CAAA;;AAEpC;AACAG,IAAAA,GAAG,CAACE,QAAQ,GAAIC,KAAK,iBACnBC,cAAA,CAAAC,aAAA,CAACC,WAAW,CAACJ,QAAQ,EAAAK,QAAA,KAAKJ,KAAK,EAAA;AAAEK,MAAAA,KAAK,EAAE;AAAEV,QAAAA,OAAO,EAAEE,GAAAA;AAAI,OAAA;AAAE,KAAA,CAAE,CAC5D,CAAA;IACDA,GAAG,CAACS,KAAK,GAAGA,KAAY,CAAA;IACxBT,GAAG,CAACU,QAAQ,GAAGA,QAAe,CAAA;IAC9BV,GAAG,CAACW,QAAQ,GAAG;AACb;AACAC,IAAAA,QAAQ,KACL;AACH;AACA,MAAA,OAAOD,QAAQ,CAACX,GAAG,CAACa,KAAK,EAASD,QAAe,CAAC,CAAA;KACnD,CAAA;IACDZ,GAAG,CAACc,SAAS,GAAG;AACd;AACAX,IAAAA,KAAK,KACF;AACH,MAAA,OAAOY,gBAAgB,CACrBZ,KAAK,CAACa,QAAQ;AACd;MACAL,QAAQ,CAACX,GAAG,CAACa,KAAK,EAASV,KAAK,CAACS,QAAe,CAClD,CAAC,CAAA;KACF,CAAA;AAED,IAAA,OAAOZ,GAAG,CAAA;AACZ,GAAC,CAAC,CAAA;EAEFF,OAAO,CAACa,QAAQ,CAAEM,KAAK,IAAKA,KAAK,CAACC,YAAY,CAAC,CAAA;;AAE/C;AACF;AACA;AACA;AACEC,EAAAA,yBAAyB,CAAC,MAAM;AAC9BrB,IAAAA,OAAO,CAACsB,MAAM,CAACvB,IAAI,CAAC,CAAA;AACtB,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOC,OAAO,CAAA;AAChB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isBrowser.cjs","sources":["../../../src/utils/isBrowser.ts"],"sourcesContent":["/* c8 ignore start */\nexport const isBrowser = typeof window !== 'undefined'\n/* c8 ignore end */\n"],"names":["isBrowser","window"],"mappings":";;AAAA;MACaA,SAAS,GAAG,OAAOC,MAAM,KAAK,YAAW;AACtD;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isBrowser.d.ts","sourceRoot":"","sources":["../../../src/utils/isBrowser.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,SAAgC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isBrowser.js","sources":["../../../src/utils/isBrowser.ts"],"sourcesContent":["/* c8 ignore start */\nexport const isBrowser = typeof window !== 'undefined'\n/* c8 ignore end */\n"],"names":["isBrowser","window"],"mappings":"AAAA;MACaA,SAAS,GAAG,OAAOC,MAAM,KAAK,YAAW;AACtD;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isBrowser.legacy.cjs","sources":["../../../src/utils/isBrowser.ts"],"sourcesContent":["/* c8 ignore start */\nexport const isBrowser = typeof window !== 'undefined'\n/* c8 ignore end */\n"],"names":["isBrowser","window"],"mappings":";;AAAA;MACaA,SAAS,GAAG,OAAOC,MAAM,KAAK,YAAW;AACtD;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isBrowser.legacy.js","sources":["../../../src/utils/isBrowser.ts"],"sourcesContent":["/* c8 ignore start */\nexport const isBrowser = typeof window !== 'undefined'\n/* c8 ignore end */\n"],"names":["isBrowser","window"],"mappings":"AAAA;MACaA,SAAS,GAAG,OAAOC,MAAM,KAAK,YAAW;AACtD;;;;"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var React = require('react');
|
|
4
|
-
var isBrowser = require('./isBrowser.cjs');
|
|
5
|
-
|
|
6
|
-
/* c8 ignore start */
|
|
7
|
-
const useIsomorphicLayoutEffect = isBrowser.isBrowser ? React.useLayoutEffect : React.useEffect;
|
|
8
|
-
/* c8 ignore end */
|
|
9
|
-
|
|
10
|
-
exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;
|
|
11
|
-
//# sourceMappingURL=useIsomorphicLayoutEffect.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsomorphicLayoutEffect.cjs","sources":["../../../src/utils/useIsomorphicLayoutEffect.ts"],"sourcesContent":["/* c8 ignore start */\nimport { useEffect, useLayoutEffect } from 'react'\nimport { isBrowser } from './isBrowser'\n\nexport const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect\n/* c8 ignore end */\n"],"names":["useIsomorphicLayoutEffect","isBrowser","useLayoutEffect","useEffect"],"mappings":";;;;;AAAA;MAIaA,yBAAyB,GAAGC,mBAAS,GAAGC,qBAAe,GAAGC,gBAAS;AAChF;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsomorphicLayoutEffect.d.ts","sourceRoot":"","sources":["../../../src/utils/useIsomorphicLayoutEffect.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,eAAe,EAAE,MAAM,OAAO,CAAA;AAGlD,eAAO,MAAM,yBAAyB,wBAA0C,CAAA"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { useLayoutEffect, useEffect } from 'react';
|
|
2
|
-
import { isBrowser } from './isBrowser.js';
|
|
3
|
-
|
|
4
|
-
/* c8 ignore start */
|
|
5
|
-
const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;
|
|
6
|
-
/* c8 ignore end */
|
|
7
|
-
|
|
8
|
-
export { useIsomorphicLayoutEffect };
|
|
9
|
-
//# sourceMappingURL=useIsomorphicLayoutEffect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsomorphicLayoutEffect.js","sources":["../../../src/utils/useIsomorphicLayoutEffect.ts"],"sourcesContent":["/* c8 ignore start */\nimport { useEffect, useLayoutEffect } from 'react'\nimport { isBrowser } from './isBrowser'\n\nexport const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect\n/* c8 ignore end */\n"],"names":["useIsomorphicLayoutEffect","isBrowser","useLayoutEffect","useEffect"],"mappings":";;;AAAA;MAIaA,yBAAyB,GAAGC,SAAS,GAAGC,eAAe,GAAGC,UAAS;AAChF;;;;"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var React = require('react');
|
|
4
|
-
var isBrowser = require('./isBrowser.legacy.cjs');
|
|
5
|
-
|
|
6
|
-
/* c8 ignore start */
|
|
7
|
-
const useIsomorphicLayoutEffect = isBrowser.isBrowser ? React.useLayoutEffect : React.useEffect;
|
|
8
|
-
/* c8 ignore end */
|
|
9
|
-
|
|
10
|
-
exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;
|
|
11
|
-
//# sourceMappingURL=useIsomorphicLayoutEffect.legacy.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsomorphicLayoutEffect.legacy.cjs","sources":["../../../src/utils/useIsomorphicLayoutEffect.ts"],"sourcesContent":["/* c8 ignore start */\nimport { useEffect, useLayoutEffect } from 'react'\nimport { isBrowser } from './isBrowser'\n\nexport const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect\n/* c8 ignore end */\n"],"names":["useIsomorphicLayoutEffect","isBrowser","useLayoutEffect","useEffect"],"mappings":";;;;;AAAA;MAIaA,yBAAyB,GAAGC,mBAAS,GAAGC,qBAAe,GAAGC,gBAAS;AAChF;;;;"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { useLayoutEffect, useEffect } from 'react';
|
|
2
|
-
import { isBrowser } from './isBrowser.legacy.js';
|
|
3
|
-
|
|
4
|
-
/* c8 ignore start */
|
|
5
|
-
const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;
|
|
6
|
-
/* c8 ignore end */
|
|
7
|
-
|
|
8
|
-
export { useIsomorphicLayoutEffect };
|
|
9
|
-
//# sourceMappingURL=useIsomorphicLayoutEffect.legacy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsomorphicLayoutEffect.legacy.js","sources":["../../../src/utils/useIsomorphicLayoutEffect.ts"],"sourcesContent":["/* c8 ignore start */\nimport { useEffect, useLayoutEffect } from 'react'\nimport { isBrowser } from './isBrowser'\n\nexport const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect\n/* c8 ignore end */\n"],"names":["useIsomorphicLayoutEffect","isBrowser","useLayoutEffect","useEffect"],"mappings":";;;AAAA;MAIaA,yBAAyB,GAAGC,SAAS,GAAGC,eAAe,GAAGC,UAAS;AAChF;;;;"}
|