@tamagui/form 3.0.0-beta.807.1 → 3.0.0-beta.831.1
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/dist/cjs/Form.cjs +1 -1
- package/dist/cjs/Form.native.cjs +1 -1
- package/dist/cjs/Form.native.js +1 -1
- package/dist/cjs/Form.native.js.map +1 -1
- package/dist/esm/Form.mjs +1 -1
- package/dist/esm/Form.mjs.map +1 -1
- package/dist/esm/Form.native.js +1 -1
- package/dist/esm/Form.native.js.map +1 -1
- package/dist/jsx/Form.mjs +1 -1
- package/dist/jsx/Form.mjs.map +1 -1
- package/dist/jsx/Form.native.cjs +1 -1
- package/dist/jsx/Form.native.js +1 -1
- package/dist/jsx/Form.native.js.map +1 -1
- package/package.json +5 -5
- package/src/Form.tsx +1 -1
package/dist/cjs/Form.cjs
CHANGED
|
@@ -74,7 +74,7 @@ const FormTrigger = (0, import_core.createStyledHOC)(FormTriggerFrame, (props, f
|
|
|
74
74
|
});
|
|
75
75
|
});
|
|
76
76
|
function hasError(errors, name) {
|
|
77
|
-
if (!name || !
|
|
77
|
+
if (!name || !(name in errors)) {
|
|
78
78
|
return false;
|
|
79
79
|
}
|
|
80
80
|
const error = errors[name];
|
package/dist/cjs/Form.native.cjs
CHANGED
|
@@ -82,7 +82,7 @@ var FormTrigger = (0, import_core.createStyledHOC)(FormTriggerFrame, function(pr
|
|
|
82
82
|
});
|
|
83
83
|
});
|
|
84
84
|
function hasError(errors, name) {
|
|
85
|
-
if (!name || !
|
|
85
|
+
if (!name || !(name in errors)) {
|
|
86
86
|
return false;
|
|
87
87
|
}
|
|
88
88
|
var error = errors[name];
|
package/dist/cjs/Form.native.js
CHANGED
|
@@ -82,7 +82,7 @@ var FormTrigger = (0, import_core.createStyledHOC)(FormTriggerFrame, function(pr
|
|
|
82
82
|
});
|
|
83
83
|
});
|
|
84
84
|
function hasError(errors, name) {
|
|
85
|
-
if (!name || !
|
|
85
|
+
if (!name || !(name in errors)) {
|
|
86
86
|
return false;
|
|
87
87
|
}
|
|
88
88
|
var error = errors[name];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.native.js","names":[],"sources":["cjs/Form.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar Form_exports = {};\n__export(Form_exports, {\n Form: () => Form2,\n FormContext: () => FormContext,\n FormFrame: () => FormFrame,\n FormProvider: () => FormProvider,\n FormRegistryContext: () => FormRegistryContext,\n FormTrigger: () => FormTrigger,\n useFormContext: () => useFormContext,\n useFormRegistryContext: () => useFormRegistryContext\n});\nmodule.exports = __toCommonJS(Form_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_core = require(\"@tamagui/core\");\nvar import_focusable = require(\"@tamagui/focusable\");\nvar import_helpers = require(\"@tamagui/helpers\");\nvar React = __toESM(require(\"react\"), 1);\nvar FORM_NAME = \"Form\";\nvar EMPTY_ERRORS = {};\nvar defaultSubmitAttemptedRef = {\n current: false\n};\nvar defaultFormElementRef = {\n current: null\n};\nvar FormRegistryContext = /* @__PURE__ */ React.createContext({\n validationMode: \"onSubmit\",\n errors: EMPTY_ERRORS,\n formElementRef: defaultFormElementRef,\n submitAttemptedRef: defaultSubmitAttemptedRef,\n clearErrors: function() {\n },\n getValues: function() {\n return {};\n },\n registerField: function() {\n return function() {\n };\n }\n});\nvar useFormRegistryContext = function() {\n return React.useContext(FormRegistryContext);\n};\nvar FormContext = (0, import_core.createStyledContext)({\n onSubmit: void 0\n});\nvar { useStyledContext: useFormContext, Provider: FormProvider } = FormContext;\nvar FormFrame = (0, import_core.styled)(import_core.View, {\n displayName: FORM_NAME,\n render: \"form\"\n});\nvar FormTriggerFrame = (0, import_core.styled)(import_core.View, {\n displayName: \"FormTrigger\"\n});\nvar FormTrigger = (0, import_core.createStyledHOC)(FormTriggerFrame, function(props, forwardedRef) {\n var { scope, children, onPress, ...triggerProps } = props;\n var context = useFormContext(scope);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormTriggerFrame, {\n role: \"button\",\n ...triggerProps,\n ref: forwardedRef,\n onPress: (0, import_helpers.composeEventHandlers)(onPress, context.onSubmit),\n children\n });\n});\nfunction hasError(errors, name) {\n if (!name || !Object.hasOwn(errors, name)) {\n return false;\n }\n var error = errors[name];\n return Array.isArray(error) ? error.length > 0 : Boolean(error);\n}\nvar FormComponent = (0, import_core.createStyledHOC)(FormFrame, function Form(param, forwardedRef) {\n var { scope, validationMode = \"onSubmit\", errors: externalErrors, actionsRef, onSubmit, ...props } = param;\n var registryRef = React.useRef(/* @__PURE__ */ new Map());\n var formElementRef = React.useRef(null);\n var submittedRef = React.useRef(false);\n var submitAttemptedRef = React.useRef(false);\n var pendingSubmitDetailsRef = React.useRef(null);\n var onSubmitRef = React.useRef(onSubmit);\n onSubmitRef.current = onSubmit;\n var [errors, setErrors] = React.useState(externalErrors !== null && externalErrors !== void 0 ? externalErrors : EMPTY_ERRORS);\n var errorsRef = React.useRef(errors);\n errorsRef.current = errors;\n React.useEffect(function() {\n var next = externalErrors !== null && externalErrors !== void 0 ? externalErrors : EMPTY_ERRORS;\n errorsRef.current = next;\n setErrors(next);\n }, [\n externalErrors\n ]);\n var registerField = React.useCallback(function(id, registration) {\n registryRef.current.set(id, registration);\n return function() {\n if (registryRef.current.get(id) === registration) {\n registryRef.current.delete(id);\n }\n };\n }, []);\n var getValues = React.useCallback(function() {\n var values = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (field.name) {\n values[field.name] = field.getValue();\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return values;\n }, []);\n var clearErrors = React.useCallback(function(name) {\n if (!name || !hasError(errorsRef.current, name)) {\n return;\n }\n var next = {\n ...errorsRef.current\n };\n delete next[name];\n errorsRef.current = next;\n setErrors(next);\n }, []);\n var focusFirstInvalid = React.useCallback(function() {\n var hasInvalid = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (!hasError(errorsRef.current, field.name) && field.validityData.state.valid !== false) {\n continue;\n }\n hasInvalid = true;\n var control = field.controlRef.current;\n if (import_core.isWeb && (control === null || control === void 0 ? void 0 : control.focus)) {\n control.focus();\n if (control.tagName === \"INPUT\" || control.tagName === \"TEXTAREA\") {\n var _control_select;\n (_control_select = control.select) === null || _control_select === void 0 ? void 0 : _control_select.call(control);\n }\n return true;\n }\n if (!import_core.isWeb && field.controlId) {\n (0, import_focusable.focusFocusable)(field.controlId);\n return true;\n }\n if (control === null || control === void 0 ? void 0 : control.focus) {\n control.focus();\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return hasInvalid;\n }, []);\n var performSubmit = React.useCallback(function(details) {\n var _onSubmitRef_current;\n submitAttemptedRef.current = true;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n field.validate();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (focusFirstInvalid()) {\n return;\n }\n submittedRef.current = true;\n void ((_onSubmitRef_current = onSubmitRef.current) === null || _onSubmitRef_current === void 0 ? void 0 : _onSubmitRef_current.call(onSubmitRef, getValues(), details));\n }, [\n focusFirstInvalid,\n getValues\n ]);\n var requestSubmit = React.useCallback(function(event) {\n var _event_preventDefault, _formElementRef_current;\n event === null || event === void 0 ? void 0 : (_event_preventDefault = event.preventDefault) === null || _event_preventDefault === void 0 ? void 0 : _event_preventDefault.call(event);\n var _event_nativeEvent;\n var details = {\n reason: \"trigger-press\",\n event: (_event_nativeEvent = event === null || event === void 0 ? void 0 : event.nativeEvent) !== null && _event_nativeEvent !== void 0 ? _event_nativeEvent : event,\n trigger: event === null || event === void 0 ? void 0 : event.currentTarget\n };\n if (import_core.isWeb && ((_formElementRef_current = formElementRef.current) === null || _formElementRef_current === void 0 ? void 0 : _formElementRef_current.requestSubmit)) {\n pendingSubmitDetailsRef.current = details;\n formElementRef.current.requestSubmit();\n return;\n }\n performSubmit(details);\n }, [\n performSubmit\n ]);\n React.useEffect(function() {\n if (!submittedRef.current) {\n return;\n }\n submittedRef.current = false;\n focusFirstInvalid();\n }, [\n errors,\n focusFirstInvalid\n ]);\n React.useImperativeHandle(actionsRef, function() {\n return {\n validate(fieldName) {\n if (fieldName) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (field.name === fieldName) {\n field.validate();\n return;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return;\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = registryRef.current.values()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var field1 = _step1.value;\n field1.validate();\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n };\n }, []);\n var registryContext = React.useMemo(function() {\n return {\n validationMode,\n errors,\n formElementRef,\n submitAttemptedRef,\n clearErrors,\n getValues,\n registerField\n };\n }, [\n clearErrors,\n errors,\n getValues,\n registerField,\n validationMode\n ]);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormRegistryContext.Provider, {\n value: registryContext,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormProvider, {\n scope,\n onSubmit: requestSubmit,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormFrame, {\n ...props,\n ref: function(element) {\n formElementRef.current = element;\n if (typeof forwardedRef === \"function\") {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n noValidate: true,\n onSubmit: function(event) {\n var _event_nativeEvent;\n event.preventDefault();\n var pendingDetails = pendingSubmitDetailsRef.current;\n pendingSubmitDetailsRef.current = null;\n var _event_nativeEvent1;\n performSubmit(pendingDetails !== null && pendingDetails !== void 0 ? pendingDetails : {\n reason: \"submit\",\n event: (_event_nativeEvent1 = event.nativeEvent) !== null && _event_nativeEvent1 !== void 0 ? _event_nativeEvent1 : event,\n trigger: (_event_nativeEvent = event.nativeEvent) === null || _event_nativeEvent === void 0 ? void 0 : _event_nativeEvent.submitter\n });\n }\n })\n })\n });\n});\nvar Form2 = (0, import_helpers.withStaticProperties)(FormComponent, {\n Trigger: FormTrigger\n});\n//# sourceMappingURL=Form.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Form.native.js","names":[],"sources":["cjs/Form.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar Form_exports = {};\n__export(Form_exports, {\n Form: () => Form2,\n FormContext: () => FormContext,\n FormFrame: () => FormFrame,\n FormProvider: () => FormProvider,\n FormRegistryContext: () => FormRegistryContext,\n FormTrigger: () => FormTrigger,\n useFormContext: () => useFormContext,\n useFormRegistryContext: () => useFormRegistryContext\n});\nmodule.exports = __toCommonJS(Form_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_core = require(\"@tamagui/core\");\nvar import_focusable = require(\"@tamagui/focusable\");\nvar import_helpers = require(\"@tamagui/helpers\");\nvar React = __toESM(require(\"react\"), 1);\nvar FORM_NAME = \"Form\";\nvar EMPTY_ERRORS = {};\nvar defaultSubmitAttemptedRef = {\n current: false\n};\nvar defaultFormElementRef = {\n current: null\n};\nvar FormRegistryContext = /* @__PURE__ */ React.createContext({\n validationMode: \"onSubmit\",\n errors: EMPTY_ERRORS,\n formElementRef: defaultFormElementRef,\n submitAttemptedRef: defaultSubmitAttemptedRef,\n clearErrors: function() {\n },\n getValues: function() {\n return {};\n },\n registerField: function() {\n return function() {\n };\n }\n});\nvar useFormRegistryContext = function() {\n return React.useContext(FormRegistryContext);\n};\nvar FormContext = (0, import_core.createStyledContext)({\n onSubmit: void 0\n});\nvar { useStyledContext: useFormContext, Provider: FormProvider } = FormContext;\nvar FormFrame = (0, import_core.styled)(import_core.View, {\n displayName: FORM_NAME,\n render: \"form\"\n});\nvar FormTriggerFrame = (0, import_core.styled)(import_core.View, {\n displayName: \"FormTrigger\"\n});\nvar FormTrigger = (0, import_core.createStyledHOC)(FormTriggerFrame, function(props, forwardedRef) {\n var { scope, children, onPress, ...triggerProps } = props;\n var context = useFormContext(scope);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormTriggerFrame, {\n role: \"button\",\n ...triggerProps,\n ref: forwardedRef,\n onPress: (0, import_helpers.composeEventHandlers)(onPress, context.onSubmit),\n children\n });\n});\nfunction hasError(errors, name) {\n if (!name || !(name in errors)) {\n return false;\n }\n var error = errors[name];\n return Array.isArray(error) ? error.length > 0 : Boolean(error);\n}\nvar FormComponent = (0, import_core.createStyledHOC)(FormFrame, function Form(param, forwardedRef) {\n var { scope, validationMode = \"onSubmit\", errors: externalErrors, actionsRef, onSubmit, ...props } = param;\n var registryRef = React.useRef(/* @__PURE__ */ new Map());\n var formElementRef = React.useRef(null);\n var submittedRef = React.useRef(false);\n var submitAttemptedRef = React.useRef(false);\n var pendingSubmitDetailsRef = React.useRef(null);\n var onSubmitRef = React.useRef(onSubmit);\n onSubmitRef.current = onSubmit;\n var [errors, setErrors] = React.useState(externalErrors !== null && externalErrors !== void 0 ? externalErrors : EMPTY_ERRORS);\n var errorsRef = React.useRef(errors);\n errorsRef.current = errors;\n React.useEffect(function() {\n var next = externalErrors !== null && externalErrors !== void 0 ? externalErrors : EMPTY_ERRORS;\n errorsRef.current = next;\n setErrors(next);\n }, [\n externalErrors\n ]);\n var registerField = React.useCallback(function(id, registration) {\n registryRef.current.set(id, registration);\n return function() {\n if (registryRef.current.get(id) === registration) {\n registryRef.current.delete(id);\n }\n };\n }, []);\n var getValues = React.useCallback(function() {\n var values = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (field.name) {\n values[field.name] = field.getValue();\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return values;\n }, []);\n var clearErrors = React.useCallback(function(name) {\n if (!name || !hasError(errorsRef.current, name)) {\n return;\n }\n var next = {\n ...errorsRef.current\n };\n delete next[name];\n errorsRef.current = next;\n setErrors(next);\n }, []);\n var focusFirstInvalid = React.useCallback(function() {\n var hasInvalid = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (!hasError(errorsRef.current, field.name) && field.validityData.state.valid !== false) {\n continue;\n }\n hasInvalid = true;\n var control = field.controlRef.current;\n if (import_core.isWeb && (control === null || control === void 0 ? void 0 : control.focus)) {\n control.focus();\n if (control.tagName === \"INPUT\" || control.tagName === \"TEXTAREA\") {\n var _control_select;\n (_control_select = control.select) === null || _control_select === void 0 ? void 0 : _control_select.call(control);\n }\n return true;\n }\n if (!import_core.isWeb && field.controlId) {\n (0, import_focusable.focusFocusable)(field.controlId);\n return true;\n }\n if (control === null || control === void 0 ? void 0 : control.focus) {\n control.focus();\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return hasInvalid;\n }, []);\n var performSubmit = React.useCallback(function(details) {\n var _onSubmitRef_current;\n submitAttemptedRef.current = true;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n field.validate();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (focusFirstInvalid()) {\n return;\n }\n submittedRef.current = true;\n void ((_onSubmitRef_current = onSubmitRef.current) === null || _onSubmitRef_current === void 0 ? void 0 : _onSubmitRef_current.call(onSubmitRef, getValues(), details));\n }, [\n focusFirstInvalid,\n getValues\n ]);\n var requestSubmit = React.useCallback(function(event) {\n var _event_preventDefault, _formElementRef_current;\n event === null || event === void 0 ? void 0 : (_event_preventDefault = event.preventDefault) === null || _event_preventDefault === void 0 ? void 0 : _event_preventDefault.call(event);\n var _event_nativeEvent;\n var details = {\n reason: \"trigger-press\",\n event: (_event_nativeEvent = event === null || event === void 0 ? void 0 : event.nativeEvent) !== null && _event_nativeEvent !== void 0 ? _event_nativeEvent : event,\n trigger: event === null || event === void 0 ? void 0 : event.currentTarget\n };\n if (import_core.isWeb && ((_formElementRef_current = formElementRef.current) === null || _formElementRef_current === void 0 ? void 0 : _formElementRef_current.requestSubmit)) {\n pendingSubmitDetailsRef.current = details;\n formElementRef.current.requestSubmit();\n return;\n }\n performSubmit(details);\n }, [\n performSubmit\n ]);\n React.useEffect(function() {\n if (!submittedRef.current) {\n return;\n }\n submittedRef.current = false;\n focusFirstInvalid();\n }, [\n errors,\n focusFirstInvalid\n ]);\n React.useImperativeHandle(actionsRef, function() {\n return {\n validate(fieldName) {\n if (fieldName) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (field.name === fieldName) {\n field.validate();\n return;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return;\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = registryRef.current.values()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var field1 = _step1.value;\n field1.validate();\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n };\n }, []);\n var registryContext = React.useMemo(function() {\n return {\n validationMode,\n errors,\n formElementRef,\n submitAttemptedRef,\n clearErrors,\n getValues,\n registerField\n };\n }, [\n clearErrors,\n errors,\n getValues,\n registerField,\n validationMode\n ]);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormRegistryContext.Provider, {\n value: registryContext,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormProvider, {\n scope,\n onSubmit: requestSubmit,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormFrame, {\n ...props,\n ref: function(element) {\n formElementRef.current = element;\n if (typeof forwardedRef === \"function\") {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n noValidate: true,\n onSubmit: function(event) {\n var _event_nativeEvent;\n event.preventDefault();\n var pendingDetails = pendingSubmitDetailsRef.current;\n pendingSubmitDetailsRef.current = null;\n var _event_nativeEvent1;\n performSubmit(pendingDetails !== null && pendingDetails !== void 0 ? pendingDetails : {\n reason: \"submit\",\n event: (_event_nativeEvent1 = event.nativeEvent) !== null && _event_nativeEvent1 !== void 0 ? _event_nativeEvent1 : event,\n trigger: (_event_nativeEvent = event.nativeEvent) === null || _event_nativeEvent === void 0 ? void 0 : _event_nativeEvent.submitter\n });\n }\n })\n })\n });\n});\nvar Form2 = (0, import_helpers.withStaticProperties)(FormComponent, {\n Trigger: FormTrigger\n});\n//# sourceMappingURL=Form.js.map\n"],"mappings":"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"}
|
package/dist/esm/Form.mjs
CHANGED
|
@@ -37,7 +37,7 @@ const FormTrigger = createStyledHOC(FormTriggerFrame, (props, forwardedRef) => {
|
|
|
37
37
|
});
|
|
38
38
|
});
|
|
39
39
|
function hasError(errors, name) {
|
|
40
|
-
if (!name || !
|
|
40
|
+
if (!name || !(name in errors)) {
|
|
41
41
|
return false;
|
|
42
42
|
}
|
|
43
43
|
const error = errors[name];
|
package/dist/esm/Form.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.js","names":[],"sources":["esm/Form.js"],"sourcesContent":["import { createStyledContext, createStyledHOC, isWeb, styled, View } from \"@tamagui/core\";\nimport { focusFocusable } from \"@tamagui/focusable\";\nimport { composeEventHandlers, withStaticProperties } from \"@tamagui/helpers\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst FORM_NAME = \"Form\";\nconst EMPTY_ERRORS = {};\nconst defaultSubmitAttemptedRef = { current: false };\nconst defaultFormElementRef = { current: null };\nconst FormRegistryContext = React.createContext({\n validationMode: \"onSubmit\",\n errors: EMPTY_ERRORS,\n formElementRef: defaultFormElementRef,\n submitAttemptedRef: defaultSubmitAttemptedRef,\n clearErrors: () => {\n },\n getValues: () => ({}),\n registerField: () => () => {\n }\n});\nconst useFormRegistryContext = () => React.useContext(FormRegistryContext);\nconst FormContext = createStyledContext({\n onSubmit: void 0\n});\nconst { useStyledContext: useFormContext, Provider: FormProvider } = FormContext;\nconst FormFrame = styled(View, {\n displayName: FORM_NAME,\n render: \"form\"\n});\nconst FormTriggerFrame = styled(View, {\n displayName: \"FormTrigger\"\n});\nconst FormTrigger = createStyledHOC(\n FormTriggerFrame,\n (props, forwardedRef) => {\n const { scope, children, onPress, ...triggerProps } = props;\n const context = useFormContext(scope);\n return /* @__PURE__ */ jsx(\n FormTriggerFrame,\n {\n role: \"button\",\n ...triggerProps,\n ref: forwardedRef,\n onPress: composeEventHandlers(onPress, context.onSubmit),\n children\n }\n );\n }\n);\nfunction hasError(errors, name) {\n if (!name || !Object.hasOwn(errors, name)) {\n return false;\n }\n const error = errors[name];\n return Array.isArray(error) ? error.length > 0 : Boolean(error);\n}\nconst FormComponent = createStyledHOC(\n FormFrame,\n function Form({\n scope,\n validationMode = \"onSubmit\",\n errors: externalErrors,\n actionsRef,\n onSubmit,\n ...props\n }, forwardedRef) {\n const registryRef = React.useRef(/* @__PURE__ */ new Map());\n const formElementRef = React.useRef(null);\n const submittedRef = React.useRef(false);\n const submitAttemptedRef = React.useRef(false);\n const pendingSubmitDetailsRef = React.useRef(null);\n const onSubmitRef = React.useRef(onSubmit);\n onSubmitRef.current = onSubmit;\n const [errors, setErrors] = React.useState(externalErrors ?? EMPTY_ERRORS);\n const errorsRef = React.useRef(errors);\n errorsRef.current = errors;\n React.useEffect(() => {\n const next = externalErrors ?? EMPTY_ERRORS;\n errorsRef.current = next;\n setErrors(next);\n }, [externalErrors]);\n const registerField = React.useCallback(\n (id, registration) => {\n registryRef.current.set(id, registration);\n return () => {\n if (registryRef.current.get(id) === registration) {\n registryRef.current.delete(id);\n }\n };\n },\n []\n );\n const getValues = React.useCallback(() => {\n const values = {};\n for (const field of registryRef.current.values()) {\n if (field.name) {\n values[field.name] = field.getValue();\n }\n }\n return values;\n }, []);\n const clearErrors = React.useCallback((name) => {\n if (!name || !hasError(errorsRef.current, name)) {\n return;\n }\n const next = { ...errorsRef.current };\n delete next[name];\n errorsRef.current = next;\n setErrors(next);\n }, []);\n const focusFirstInvalid = React.useCallback(() => {\n let hasInvalid = false;\n for (const field of registryRef.current.values()) {\n if (!hasError(errorsRef.current, field.name) && field.validityData.state.valid !== false) {\n continue;\n }\n hasInvalid = true;\n const control = field.controlRef.current;\n if (isWeb && control?.focus) {\n control.focus();\n if (control.tagName === \"INPUT\" || control.tagName === \"TEXTAREA\") {\n control.select?.();\n }\n return true;\n }\n if (!isWeb && field.controlId) {\n focusFocusable(field.controlId);\n return true;\n }\n if (control?.focus) {\n control.focus();\n return true;\n }\n }\n return hasInvalid;\n }, []);\n const performSubmit = React.useCallback(\n (details) => {\n submitAttemptedRef.current = true;\n for (const field of registryRef.current.values()) {\n field.validate();\n }\n if (focusFirstInvalid()) {\n return;\n }\n submittedRef.current = true;\n void onSubmitRef.current?.(getValues(), details);\n },\n [focusFirstInvalid, getValues]\n );\n const requestSubmit = React.useCallback(\n (event) => {\n event?.preventDefault?.();\n const details = {\n reason: \"trigger-press\",\n event: event?.nativeEvent ?? event,\n trigger: event?.currentTarget\n };\n if (isWeb && formElementRef.current?.requestSubmit) {\n pendingSubmitDetailsRef.current = details;\n formElementRef.current.requestSubmit();\n return;\n }\n performSubmit(details);\n },\n [performSubmit]\n );\n React.useEffect(() => {\n if (!submittedRef.current) {\n return;\n }\n submittedRef.current = false;\n focusFirstInvalid();\n }, [errors, focusFirstInvalid]);\n React.useImperativeHandle(\n actionsRef,\n () => ({\n validate(fieldName) {\n if (fieldName) {\n for (const field of registryRef.current.values()) {\n if (field.name === fieldName) {\n field.validate();\n return;\n }\n }\n return;\n }\n for (const field of registryRef.current.values()) {\n field.validate();\n }\n }\n }),\n []\n );\n const registryContext = React.useMemo(\n () => ({\n validationMode,\n errors,\n formElementRef,\n submitAttemptedRef,\n clearErrors,\n getValues,\n registerField\n }),\n [clearErrors, errors, getValues, registerField, validationMode]\n );\n return /* @__PURE__ */ jsx(FormRegistryContext.Provider, { value: registryContext, children: /* @__PURE__ */ jsx(FormProvider, { scope, onSubmit: requestSubmit, children: /* @__PURE__ */ jsx(\n FormFrame,\n {\n ...props,\n ref: (element) => {\n formElementRef.current = element;\n if (typeof forwardedRef === \"function\") {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n noValidate: true,\n onSubmit: (event) => {\n event.preventDefault();\n const pendingDetails = pendingSubmitDetailsRef.current;\n pendingSubmitDetailsRef.current = null;\n performSubmit(\n pendingDetails ?? {\n reason: \"submit\",\n event: event.nativeEvent ?? event,\n trigger: event.nativeEvent?.submitter\n }\n );\n }\n }\n ) }) });\n }\n);\nconst Form2 = withStaticProperties(FormComponent, {\n Trigger: FormTrigger\n});\nexport {\n Form2 as Form,\n FormContext,\n FormFrame,\n FormProvider,\n FormRegistryContext,\n FormTrigger,\n useFormContext,\n useFormRegistryContext\n};\n//# sourceMappingURL=Form.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Form.js","names":[],"sources":["esm/Form.js"],"sourcesContent":["import { createStyledContext, createStyledHOC, isWeb, styled, View } from \"@tamagui/core\";\nimport { focusFocusable } from \"@tamagui/focusable\";\nimport { composeEventHandlers, withStaticProperties } from \"@tamagui/helpers\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst FORM_NAME = \"Form\";\nconst EMPTY_ERRORS = {};\nconst defaultSubmitAttemptedRef = { current: false };\nconst defaultFormElementRef = { current: null };\nconst FormRegistryContext = React.createContext({\n validationMode: \"onSubmit\",\n errors: EMPTY_ERRORS,\n formElementRef: defaultFormElementRef,\n submitAttemptedRef: defaultSubmitAttemptedRef,\n clearErrors: () => {\n },\n getValues: () => ({}),\n registerField: () => () => {\n }\n});\nconst useFormRegistryContext = () => React.useContext(FormRegistryContext);\nconst FormContext = createStyledContext({\n onSubmit: void 0\n});\nconst { useStyledContext: useFormContext, Provider: FormProvider } = FormContext;\nconst FormFrame = styled(View, {\n displayName: FORM_NAME,\n render: \"form\"\n});\nconst FormTriggerFrame = styled(View, {\n displayName: \"FormTrigger\"\n});\nconst FormTrigger = createStyledHOC(\n FormTriggerFrame,\n (props, forwardedRef) => {\n const { scope, children, onPress, ...triggerProps } = props;\n const context = useFormContext(scope);\n return /* @__PURE__ */ jsx(\n FormTriggerFrame,\n {\n role: \"button\",\n ...triggerProps,\n ref: forwardedRef,\n onPress: composeEventHandlers(onPress, context.onSubmit),\n children\n }\n );\n }\n);\nfunction hasError(errors, name) {\n if (!name || !(name in errors)) {\n return false;\n }\n const error = errors[name];\n return Array.isArray(error) ? error.length > 0 : Boolean(error);\n}\nconst FormComponent = createStyledHOC(\n FormFrame,\n function Form({\n scope,\n validationMode = \"onSubmit\",\n errors: externalErrors,\n actionsRef,\n onSubmit,\n ...props\n }, forwardedRef) {\n const registryRef = React.useRef(/* @__PURE__ */ new Map());\n const formElementRef = React.useRef(null);\n const submittedRef = React.useRef(false);\n const submitAttemptedRef = React.useRef(false);\n const pendingSubmitDetailsRef = React.useRef(null);\n const onSubmitRef = React.useRef(onSubmit);\n onSubmitRef.current = onSubmit;\n const [errors, setErrors] = React.useState(externalErrors ?? EMPTY_ERRORS);\n const errorsRef = React.useRef(errors);\n errorsRef.current = errors;\n React.useEffect(() => {\n const next = externalErrors ?? EMPTY_ERRORS;\n errorsRef.current = next;\n setErrors(next);\n }, [externalErrors]);\n const registerField = React.useCallback(\n (id, registration) => {\n registryRef.current.set(id, registration);\n return () => {\n if (registryRef.current.get(id) === registration) {\n registryRef.current.delete(id);\n }\n };\n },\n []\n );\n const getValues = React.useCallback(() => {\n const values = {};\n for (const field of registryRef.current.values()) {\n if (field.name) {\n values[field.name] = field.getValue();\n }\n }\n return values;\n }, []);\n const clearErrors = React.useCallback((name) => {\n if (!name || !hasError(errorsRef.current, name)) {\n return;\n }\n const next = { ...errorsRef.current };\n delete next[name];\n errorsRef.current = next;\n setErrors(next);\n }, []);\n const focusFirstInvalid = React.useCallback(() => {\n let hasInvalid = false;\n for (const field of registryRef.current.values()) {\n if (!hasError(errorsRef.current, field.name) && field.validityData.state.valid !== false) {\n continue;\n }\n hasInvalid = true;\n const control = field.controlRef.current;\n if (isWeb && control?.focus) {\n control.focus();\n if (control.tagName === \"INPUT\" || control.tagName === \"TEXTAREA\") {\n control.select?.();\n }\n return true;\n }\n if (!isWeb && field.controlId) {\n focusFocusable(field.controlId);\n return true;\n }\n if (control?.focus) {\n control.focus();\n return true;\n }\n }\n return hasInvalid;\n }, []);\n const performSubmit = React.useCallback(\n (details) => {\n submitAttemptedRef.current = true;\n for (const field of registryRef.current.values()) {\n field.validate();\n }\n if (focusFirstInvalid()) {\n return;\n }\n submittedRef.current = true;\n void onSubmitRef.current?.(getValues(), details);\n },\n [focusFirstInvalid, getValues]\n );\n const requestSubmit = React.useCallback(\n (event) => {\n event?.preventDefault?.();\n const details = {\n reason: \"trigger-press\",\n event: event?.nativeEvent ?? event,\n trigger: event?.currentTarget\n };\n if (isWeb && formElementRef.current?.requestSubmit) {\n pendingSubmitDetailsRef.current = details;\n formElementRef.current.requestSubmit();\n return;\n }\n performSubmit(details);\n },\n [performSubmit]\n );\n React.useEffect(() => {\n if (!submittedRef.current) {\n return;\n }\n submittedRef.current = false;\n focusFirstInvalid();\n }, [errors, focusFirstInvalid]);\n React.useImperativeHandle(\n actionsRef,\n () => ({\n validate(fieldName) {\n if (fieldName) {\n for (const field of registryRef.current.values()) {\n if (field.name === fieldName) {\n field.validate();\n return;\n }\n }\n return;\n }\n for (const field of registryRef.current.values()) {\n field.validate();\n }\n }\n }),\n []\n );\n const registryContext = React.useMemo(\n () => ({\n validationMode,\n errors,\n formElementRef,\n submitAttemptedRef,\n clearErrors,\n getValues,\n registerField\n }),\n [clearErrors, errors, getValues, registerField, validationMode]\n );\n return /* @__PURE__ */ jsx(FormRegistryContext.Provider, { value: registryContext, children: /* @__PURE__ */ jsx(FormProvider, { scope, onSubmit: requestSubmit, children: /* @__PURE__ */ jsx(\n FormFrame,\n {\n ...props,\n ref: (element) => {\n formElementRef.current = element;\n if (typeof forwardedRef === \"function\") {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n noValidate: true,\n onSubmit: (event) => {\n event.preventDefault();\n const pendingDetails = pendingSubmitDetailsRef.current;\n pendingSubmitDetailsRef.current = null;\n performSubmit(\n pendingDetails ?? {\n reason: \"submit\",\n event: event.nativeEvent ?? event,\n trigger: event.nativeEvent?.submitter\n }\n );\n }\n }\n ) }) });\n }\n);\nconst Form2 = withStaticProperties(FormComponent, {\n Trigger: FormTrigger\n});\nexport {\n Form2 as Form,\n FormContext,\n FormFrame,\n FormProvider,\n FormRegistryContext,\n FormTrigger,\n useFormContext,\n useFormRegistryContext\n};\n//# sourceMappingURL=Form.js.map\n"],"mappings":";;;;;;;AAKA,MAAM,YAAY;AAClB,MAAM,eAAe,CAAC;AACtB,MAAM,4BAA4B,EAAE,SAAS,MAAM;AACnD,MAAM,wBAAwB,EAAE,SAAS,KAAK;AAC9C,MAAM,sBAAsB,MAAM,cAAc;CAC9C,gBAAgB;CAChB,QAAQ;CACR,gBAAgB;CAChB,oBAAoB;CACpB,mBAAmB,CACnB;CACA,kBAAkB,CAAC;CACnB,2BAA2B,CAC3B;AACF,CAAC;AACD,MAAM,+BAA+B,MAAM,WAAW,mBAAmB;AACzE,MAAM,cAAc,oBAAoB,EACtC,UAAU,KAAK,EACjB,CAAC;AACD,MAAM,EAAE,kBAAkB,gBAAgB,UAAU,iBAAiB;AACrE,MAAM,YAAY,OAAO,MAAM;CAC7B,aAAa;CACb,QAAQ;AACV,CAAC;AACD,MAAM,mBAAmB,OAAO,MAAM,EACpC,aAAa,cACf,CAAC;AACD,MAAM,cAAc,gBAClB,mBACC,OAAO,iBAAiB;CACvB,MAAM,EAAE,OAAO,UAAU,SAAS,GAAG,iBAAiB;CACtD,MAAM,UAAU,eAAe,KAAK;CACpC,OAAuB,oBACrB,kBACA;EACE,MAAM;EACN,GAAG;EACH,KAAK;EACL,SAAS,qBAAqB,SAAS,QAAQ,QAAQ;EACvD;CACF,CACF;AACF,CACF;AACA,SAAS,SAAS,QAAQ,MAAM;CAC9B,IAAI,CAAC,QAAQ,EAAE,QAAQ,SAAS;EAC9B,OAAO;CACT;CACA,MAAM,QAAQ,OAAO;CACrB,OAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,SAAS,IAAI,QAAQ,KAAK;AAChE;AACA,MAAM,gBAAgB,gBACpB,WACA,SAAS,KAAK,EACZ,OACA,iBAAiB,YACjB,QAAQ,gBACR,YACA,UACA,GAAG,SACF,cAAc;CACf,MAAM,cAAc,MAAM,uBAAuB,IAAI,IAAI,CAAC;CAC1D,MAAM,iBAAiB,MAAM,OAAO,IAAI;CACxC,MAAM,eAAe,MAAM,OAAO,KAAK;CACvC,MAAM,qBAAqB,MAAM,OAAO,KAAK;CAC7C,MAAM,0BAA0B,MAAM,OAAO,IAAI;CACjD,MAAM,cAAc,MAAM,OAAO,QAAQ;CACzC,YAAY,UAAU;CACtB,MAAM,CAAC,QAAQ,aAAa,MAAM,SAAS,kBAAkB,YAAY;CACzE,MAAM,YAAY,MAAM,OAAO,MAAM;CACrC,UAAU,UAAU;CACpB,MAAM,gBAAgB;EACpB,MAAM,OAAO,kBAAkB;EAC/B,UAAU,UAAU;EACpB,UAAU,IAAI;CAChB,GAAG,CAAC,cAAc,CAAC;CACnB,MAAM,gBAAgB,MAAM,aACzB,IAAI,iBAAiB;EACpB,YAAY,QAAQ,IAAI,IAAI,YAAY;EACxC,aAAa;GACX,IAAI,YAAY,QAAQ,IAAI,EAAE,MAAM,cAAc;IAChD,YAAY,QAAQ,OAAO,EAAE;GAC/B;EACF;CACF,GACA,CAAC,CACH;CACA,MAAM,YAAY,MAAM,kBAAkB;EACxC,MAAM,SAAS,CAAC;EAChB,KAAK,MAAM,SAAS,YAAY,QAAQ,OAAO,GAAG;GAChD,IAAI,MAAM,MAAM;IACd,OAAO,MAAM,QAAQ,MAAM,SAAS;GACtC;EACF;EACA,OAAO;CACT,GAAG,CAAC,CAAC;CACL,MAAM,cAAc,MAAM,aAAa,SAAS;EAC9C,IAAI,CAAC,QAAQ,CAAC,SAAS,UAAU,SAAS,IAAI,GAAG;GAC/C;EACF;EACA,MAAM,OAAO,EAAE,GAAG,UAAU,QAAQ;EACpC,OAAO,KAAK;EACZ,UAAU,UAAU;EACpB,UAAU,IAAI;CAChB,GAAG,CAAC,CAAC;CACL,MAAM,oBAAoB,MAAM,kBAAkB;EAChD,IAAI,aAAa;EACjB,KAAK,MAAM,SAAS,YAAY,QAAQ,OAAO,GAAG;GAChD,IAAI,CAAC,SAAS,UAAU,SAAS,MAAM,IAAI,KAAK,MAAM,aAAa,MAAM,UAAU,OAAO;IACxF;GACF;GACA,aAAa;GACb,MAAM,UAAU,MAAM,WAAW;GACjC,IAAI,SAAS,SAAS,OAAO;IAC3B,QAAQ,MAAM;IACd,IAAI,QAAQ,YAAY,WAAW,QAAQ,YAAY,YAAY;KACjE,QAAQ,SAAS;IACnB;IACA,OAAO;GACT;GACA,IAAI,CAAC,SAAS,MAAM,WAAW;IAC7B,eAAe,MAAM,SAAS;IAC9B,OAAO;GACT;GACA,IAAI,SAAS,OAAO;IAClB,QAAQ,MAAM;IACd,OAAO;GACT;EACF;EACA,OAAO;CACT,GAAG,CAAC,CAAC;CACL,MAAM,gBAAgB,MAAM,aACzB,YAAY;EACX,mBAAmB,UAAU;EAC7B,KAAK,MAAM,SAAS,YAAY,QAAQ,OAAO,GAAG;GAChD,MAAM,SAAS;EACjB;EACA,IAAI,kBAAkB,GAAG;GACvB;EACF;EACA,aAAa,UAAU;EACvB,KAAK,YAAY,UAAU,UAAU,GAAG,OAAO;CACjD,GACA,CAAC,mBAAmB,SAAS,CAC/B;CACA,MAAM,gBAAgB,MAAM,aACzB,UAAU;EACT,OAAO,iBAAiB;EACxB,MAAM,UAAU;GACd,QAAQ;GACR,OAAO,OAAO,eAAe;GAC7B,SAAS,OAAO;EAClB;EACA,IAAI,SAAS,eAAe,SAAS,eAAe;GAClD,wBAAwB,UAAU;GAClC,eAAe,QAAQ,cAAc;GACrC;EACF;EACA,cAAc,OAAO;CACvB,GACA,CAAC,aAAa,CAChB;CACA,MAAM,gBAAgB;EACpB,IAAI,CAAC,aAAa,SAAS;GACzB;EACF;EACA,aAAa,UAAU;EACvB,kBAAkB;CACpB,GAAG,CAAC,QAAQ,iBAAiB,CAAC;CAC9B,MAAM,oBACJ,mBACO,EACL,SAAS,WAAW;EAClB,IAAI,WAAW;GACb,KAAK,MAAM,SAAS,YAAY,QAAQ,OAAO,GAAG;IAChD,IAAI,MAAM,SAAS,WAAW;KAC5B,MAAM,SAAS;KACf;IACF;GACF;GACA;EACF;EACA,KAAK,MAAM,SAAS,YAAY,QAAQ,OAAO,GAAG;GAChD,MAAM,SAAS;EACjB;CACF,EACF,IACA,CAAC,CACH;CACA,MAAM,kBAAkB,MAAM,eACrB;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IACA;EAAC;EAAa;EAAQ;EAAW;EAAe;CAAc,CAChE;CACA,OAAuB,oBAAI,oBAAoB,UAAU;EAAE,OAAO;EAAiB,UAA0B,oBAAI,cAAc;GAAE;GAAO,UAAU;GAAe,UAA0B,oBACzL,WACA;IACE,GAAG;IACH,MAAM,YAAY;KAChB,eAAe,UAAU;KACzB,IAAI,OAAO,iBAAiB,YAAY;MACtC,aAAa,OAAO;KACtB,OAAO,IAAI,cAAc;MACvB,aAAa,UAAU;KACzB;IACF;IACA,YAAY;IACZ,WAAW,UAAU;KACnB,MAAM,eAAe;KACrB,MAAM,iBAAiB,wBAAwB;KAC/C,wBAAwB,UAAU;KAClC,cACE,kBAAkB;MAChB,QAAQ;MACR,OAAO,MAAM,eAAe;MAC5B,SAAS,MAAM,aAAa;KAC9B,CACF;IACF;GACF,CACF;EAAE,CAAC;CAAE,CAAC;AACR,CACF;AACA,MAAM,QAAQ,qBAAqB,eAAe,EAChD,SAAS,YACX,CAAC"}
|
package/dist/esm/Form.native.js
CHANGED
|
@@ -43,7 +43,7 @@ var FormTrigger = createStyledHOC(FormTriggerFrame, function(props, forwardedRef
|
|
|
43
43
|
});
|
|
44
44
|
});
|
|
45
45
|
function hasError(errors, name) {
|
|
46
|
-
if (!name || !
|
|
46
|
+
if (!name || !(name in errors)) {
|
|
47
47
|
return false;
|
|
48
48
|
}
|
|
49
49
|
var error = errors[name];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.native.js","names":[],"sources":["esm/Form.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createStyledContext, createStyledHOC, isWeb, styled, View } from \"@tamagui/core\";\nimport { focusFocusable } from \"@tamagui/focusable\";\nimport { composeEventHandlers, withStaticProperties } from \"@tamagui/helpers\";\nimport * as React from \"react\";\nvar FORM_NAME = \"Form\";\nvar EMPTY_ERRORS = {};\nvar defaultSubmitAttemptedRef = {\n current: false\n};\nvar defaultFormElementRef = {\n current: null\n};\nvar FormRegistryContext = /* @__PURE__ */ React.createContext({\n validationMode: \"onSubmit\",\n errors: EMPTY_ERRORS,\n formElementRef: defaultFormElementRef,\n submitAttemptedRef: defaultSubmitAttemptedRef,\n clearErrors: function() {\n },\n getValues: function() {\n return {};\n },\n registerField: function() {\n return function() {\n };\n }\n});\nvar useFormRegistryContext = function() {\n return React.useContext(FormRegistryContext);\n};\nvar FormContext = createStyledContext({\n onSubmit: void 0\n});\nvar { useStyledContext: useFormContext, Provider: FormProvider } = FormContext;\nvar FormFrame = styled(View, {\n displayName: FORM_NAME,\n render: \"form\"\n});\nvar FormTriggerFrame = styled(View, {\n displayName: \"FormTrigger\"\n});\nvar FormTrigger = createStyledHOC(FormTriggerFrame, function(props, forwardedRef) {\n var { scope, children, onPress, ...triggerProps } = props;\n var context = useFormContext(scope);\n return /* @__PURE__ */ _jsx(FormTriggerFrame, {\n role: \"button\",\n ...triggerProps,\n ref: forwardedRef,\n onPress: composeEventHandlers(onPress, context.onSubmit),\n children\n });\n});\nfunction hasError(errors, name) {\n if (!name || !Object.hasOwn(errors, name)) {\n return false;\n }\n var error = errors[name];\n return Array.isArray(error) ? error.length > 0 : Boolean(error);\n}\nvar FormComponent = createStyledHOC(FormFrame, function Form(param, forwardedRef) {\n var { scope, validationMode = \"onSubmit\", errors: externalErrors, actionsRef, onSubmit, ...props } = param;\n var registryRef = React.useRef(/* @__PURE__ */ new Map());\n var formElementRef = React.useRef(null);\n var submittedRef = React.useRef(false);\n var submitAttemptedRef = React.useRef(false);\n var pendingSubmitDetailsRef = React.useRef(null);\n var onSubmitRef = React.useRef(onSubmit);\n onSubmitRef.current = onSubmit;\n var [errors, setErrors] = React.useState(externalErrors !== null && externalErrors !== void 0 ? externalErrors : EMPTY_ERRORS);\n var errorsRef = React.useRef(errors);\n errorsRef.current = errors;\n React.useEffect(function() {\n var next = externalErrors !== null && externalErrors !== void 0 ? externalErrors : EMPTY_ERRORS;\n errorsRef.current = next;\n setErrors(next);\n }, [\n externalErrors\n ]);\n var registerField = React.useCallback(function(id, registration) {\n registryRef.current.set(id, registration);\n return function() {\n if (registryRef.current.get(id) === registration) {\n registryRef.current.delete(id);\n }\n };\n }, []);\n var getValues = React.useCallback(function() {\n var values = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (field.name) {\n values[field.name] = field.getValue();\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return values;\n }, []);\n var clearErrors = React.useCallback(function(name) {\n if (!name || !hasError(errorsRef.current, name)) {\n return;\n }\n var next = {\n ...errorsRef.current\n };\n delete next[name];\n errorsRef.current = next;\n setErrors(next);\n }, []);\n var focusFirstInvalid = React.useCallback(function() {\n var hasInvalid = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (!hasError(errorsRef.current, field.name) && field.validityData.state.valid !== false) {\n continue;\n }\n hasInvalid = true;\n var control = field.controlRef.current;\n if (isWeb && (control === null || control === void 0 ? void 0 : control.focus)) {\n control.focus();\n if (control.tagName === \"INPUT\" || control.tagName === \"TEXTAREA\") {\n var _control_select;\n (_control_select = control.select) === null || _control_select === void 0 ? void 0 : _control_select.call(control);\n }\n return true;\n }\n if (!isWeb && field.controlId) {\n focusFocusable(field.controlId);\n return true;\n }\n if (control === null || control === void 0 ? void 0 : control.focus) {\n control.focus();\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return hasInvalid;\n }, []);\n var performSubmit = React.useCallback(function(details) {\n var _onSubmitRef_current;\n submitAttemptedRef.current = true;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n field.validate();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (focusFirstInvalid()) {\n return;\n }\n submittedRef.current = true;\n void ((_onSubmitRef_current = onSubmitRef.current) === null || _onSubmitRef_current === void 0 ? void 0 : _onSubmitRef_current.call(onSubmitRef, getValues(), details));\n }, [\n focusFirstInvalid,\n getValues\n ]);\n var requestSubmit = React.useCallback(function(event) {\n var _event_preventDefault, _formElementRef_current;\n event === null || event === void 0 ? void 0 : (_event_preventDefault = event.preventDefault) === null || _event_preventDefault === void 0 ? void 0 : _event_preventDefault.call(event);\n var _event_nativeEvent;\n var details = {\n reason: \"trigger-press\",\n event: (_event_nativeEvent = event === null || event === void 0 ? void 0 : event.nativeEvent) !== null && _event_nativeEvent !== void 0 ? _event_nativeEvent : event,\n trigger: event === null || event === void 0 ? void 0 : event.currentTarget\n };\n if (isWeb && ((_formElementRef_current = formElementRef.current) === null || _formElementRef_current === void 0 ? void 0 : _formElementRef_current.requestSubmit)) {\n pendingSubmitDetailsRef.current = details;\n formElementRef.current.requestSubmit();\n return;\n }\n performSubmit(details);\n }, [\n performSubmit\n ]);\n React.useEffect(function() {\n if (!submittedRef.current) {\n return;\n }\n submittedRef.current = false;\n focusFirstInvalid();\n }, [\n errors,\n focusFirstInvalid\n ]);\n React.useImperativeHandle(actionsRef, function() {\n return {\n validate(fieldName) {\n if (fieldName) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (field.name === fieldName) {\n field.validate();\n return;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return;\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = registryRef.current.values()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var field1 = _step1.value;\n field1.validate();\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n };\n }, []);\n var registryContext = React.useMemo(function() {\n return {\n validationMode,\n errors,\n formElementRef,\n submitAttemptedRef,\n clearErrors,\n getValues,\n registerField\n };\n }, [\n clearErrors,\n errors,\n getValues,\n registerField,\n validationMode\n ]);\n return /* @__PURE__ */ _jsx(FormRegistryContext.Provider, {\n value: registryContext,\n children: /* @__PURE__ */ _jsx(FormProvider, {\n scope,\n onSubmit: requestSubmit,\n children: /* @__PURE__ */ _jsx(FormFrame, {\n ...props,\n ref: function(element) {\n formElementRef.current = element;\n if (typeof forwardedRef === \"function\") {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n noValidate: true,\n onSubmit: function(event) {\n var _event_nativeEvent;\n event.preventDefault();\n var pendingDetails = pendingSubmitDetailsRef.current;\n pendingSubmitDetailsRef.current = null;\n var _event_nativeEvent1;\n performSubmit(pendingDetails !== null && pendingDetails !== void 0 ? pendingDetails : {\n reason: \"submit\",\n event: (_event_nativeEvent1 = event.nativeEvent) !== null && _event_nativeEvent1 !== void 0 ? _event_nativeEvent1 : event,\n trigger: (_event_nativeEvent = event.nativeEvent) === null || _event_nativeEvent === void 0 ? void 0 : _event_nativeEvent.submitter\n });\n }\n })\n })\n });\n});\nvar Form2 = withStaticProperties(FormComponent, {\n Trigger: FormTrigger\n});\nexport {\n Form2 as Form,\n FormContext,\n FormFrame,\n FormProvider,\n FormRegistryContext,\n FormTrigger,\n useFormContext,\n useFormRegistryContext\n};\n//# sourceMappingURL=Form.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Form.native.js","names":[],"sources":["esm/Form.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createStyledContext, createStyledHOC, isWeb, styled, View } from \"@tamagui/core\";\nimport { focusFocusable } from \"@tamagui/focusable\";\nimport { composeEventHandlers, withStaticProperties } from \"@tamagui/helpers\";\nimport * as React from \"react\";\nvar FORM_NAME = \"Form\";\nvar EMPTY_ERRORS = {};\nvar defaultSubmitAttemptedRef = {\n current: false\n};\nvar defaultFormElementRef = {\n current: null\n};\nvar FormRegistryContext = /* @__PURE__ */ React.createContext({\n validationMode: \"onSubmit\",\n errors: EMPTY_ERRORS,\n formElementRef: defaultFormElementRef,\n submitAttemptedRef: defaultSubmitAttemptedRef,\n clearErrors: function() {\n },\n getValues: function() {\n return {};\n },\n registerField: function() {\n return function() {\n };\n }\n});\nvar useFormRegistryContext = function() {\n return React.useContext(FormRegistryContext);\n};\nvar FormContext = createStyledContext({\n onSubmit: void 0\n});\nvar { useStyledContext: useFormContext, Provider: FormProvider } = FormContext;\nvar FormFrame = styled(View, {\n displayName: FORM_NAME,\n render: \"form\"\n});\nvar FormTriggerFrame = styled(View, {\n displayName: \"FormTrigger\"\n});\nvar FormTrigger = createStyledHOC(FormTriggerFrame, function(props, forwardedRef) {\n var { scope, children, onPress, ...triggerProps } = props;\n var context = useFormContext(scope);\n return /* @__PURE__ */ _jsx(FormTriggerFrame, {\n role: \"button\",\n ...triggerProps,\n ref: forwardedRef,\n onPress: composeEventHandlers(onPress, context.onSubmit),\n children\n });\n});\nfunction hasError(errors, name) {\n if (!name || !(name in errors)) {\n return false;\n }\n var error = errors[name];\n return Array.isArray(error) ? error.length > 0 : Boolean(error);\n}\nvar FormComponent = createStyledHOC(FormFrame, function Form(param, forwardedRef) {\n var { scope, validationMode = \"onSubmit\", errors: externalErrors, actionsRef, onSubmit, ...props } = param;\n var registryRef = React.useRef(/* @__PURE__ */ new Map());\n var formElementRef = React.useRef(null);\n var submittedRef = React.useRef(false);\n var submitAttemptedRef = React.useRef(false);\n var pendingSubmitDetailsRef = React.useRef(null);\n var onSubmitRef = React.useRef(onSubmit);\n onSubmitRef.current = onSubmit;\n var [errors, setErrors] = React.useState(externalErrors !== null && externalErrors !== void 0 ? externalErrors : EMPTY_ERRORS);\n var errorsRef = React.useRef(errors);\n errorsRef.current = errors;\n React.useEffect(function() {\n var next = externalErrors !== null && externalErrors !== void 0 ? externalErrors : EMPTY_ERRORS;\n errorsRef.current = next;\n setErrors(next);\n }, [\n externalErrors\n ]);\n var registerField = React.useCallback(function(id, registration) {\n registryRef.current.set(id, registration);\n return function() {\n if (registryRef.current.get(id) === registration) {\n registryRef.current.delete(id);\n }\n };\n }, []);\n var getValues = React.useCallback(function() {\n var values = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (field.name) {\n values[field.name] = field.getValue();\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return values;\n }, []);\n var clearErrors = React.useCallback(function(name) {\n if (!name || !hasError(errorsRef.current, name)) {\n return;\n }\n var next = {\n ...errorsRef.current\n };\n delete next[name];\n errorsRef.current = next;\n setErrors(next);\n }, []);\n var focusFirstInvalid = React.useCallback(function() {\n var hasInvalid = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (!hasError(errorsRef.current, field.name) && field.validityData.state.valid !== false) {\n continue;\n }\n hasInvalid = true;\n var control = field.controlRef.current;\n if (isWeb && (control === null || control === void 0 ? void 0 : control.focus)) {\n control.focus();\n if (control.tagName === \"INPUT\" || control.tagName === \"TEXTAREA\") {\n var _control_select;\n (_control_select = control.select) === null || _control_select === void 0 ? void 0 : _control_select.call(control);\n }\n return true;\n }\n if (!isWeb && field.controlId) {\n focusFocusable(field.controlId);\n return true;\n }\n if (control === null || control === void 0 ? void 0 : control.focus) {\n control.focus();\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return hasInvalid;\n }, []);\n var performSubmit = React.useCallback(function(details) {\n var _onSubmitRef_current;\n submitAttemptedRef.current = true;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n field.validate();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (focusFirstInvalid()) {\n return;\n }\n submittedRef.current = true;\n void ((_onSubmitRef_current = onSubmitRef.current) === null || _onSubmitRef_current === void 0 ? void 0 : _onSubmitRef_current.call(onSubmitRef, getValues(), details));\n }, [\n focusFirstInvalid,\n getValues\n ]);\n var requestSubmit = React.useCallback(function(event) {\n var _event_preventDefault, _formElementRef_current;\n event === null || event === void 0 ? void 0 : (_event_preventDefault = event.preventDefault) === null || _event_preventDefault === void 0 ? void 0 : _event_preventDefault.call(event);\n var _event_nativeEvent;\n var details = {\n reason: \"trigger-press\",\n event: (_event_nativeEvent = event === null || event === void 0 ? void 0 : event.nativeEvent) !== null && _event_nativeEvent !== void 0 ? _event_nativeEvent : event,\n trigger: event === null || event === void 0 ? void 0 : event.currentTarget\n };\n if (isWeb && ((_formElementRef_current = formElementRef.current) === null || _formElementRef_current === void 0 ? void 0 : _formElementRef_current.requestSubmit)) {\n pendingSubmitDetailsRef.current = details;\n formElementRef.current.requestSubmit();\n return;\n }\n performSubmit(details);\n }, [\n performSubmit\n ]);\n React.useEffect(function() {\n if (!submittedRef.current) {\n return;\n }\n submittedRef.current = false;\n focusFirstInvalid();\n }, [\n errors,\n focusFirstInvalid\n ]);\n React.useImperativeHandle(actionsRef, function() {\n return {\n validate(fieldName) {\n if (fieldName) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (field.name === fieldName) {\n field.validate();\n return;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return;\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = registryRef.current.values()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var field1 = _step1.value;\n field1.validate();\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n };\n }, []);\n var registryContext = React.useMemo(function() {\n return {\n validationMode,\n errors,\n formElementRef,\n submitAttemptedRef,\n clearErrors,\n getValues,\n registerField\n };\n }, [\n clearErrors,\n errors,\n getValues,\n registerField,\n validationMode\n ]);\n return /* @__PURE__ */ _jsx(FormRegistryContext.Provider, {\n value: registryContext,\n children: /* @__PURE__ */ _jsx(FormProvider, {\n scope,\n onSubmit: requestSubmit,\n children: /* @__PURE__ */ _jsx(FormFrame, {\n ...props,\n ref: function(element) {\n formElementRef.current = element;\n if (typeof forwardedRef === \"function\") {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n noValidate: true,\n onSubmit: function(event) {\n var _event_nativeEvent;\n event.preventDefault();\n var pendingDetails = pendingSubmitDetailsRef.current;\n pendingSubmitDetailsRef.current = null;\n var _event_nativeEvent1;\n performSubmit(pendingDetails !== null && pendingDetails !== void 0 ? pendingDetails : {\n reason: \"submit\",\n event: (_event_nativeEvent1 = event.nativeEvent) !== null && _event_nativeEvent1 !== void 0 ? _event_nativeEvent1 : event,\n trigger: (_event_nativeEvent = event.nativeEvent) === null || _event_nativeEvent === void 0 ? void 0 : _event_nativeEvent.submitter\n });\n }\n })\n })\n });\n});\nvar Form2 = withStaticProperties(FormComponent, {\n Trigger: FormTrigger\n});\nexport {\n Form2 as Form,\n FormContext,\n FormFrame,\n FormProvider,\n FormRegistryContext,\n FormTrigger,\n useFormContext,\n useFormRegistryContext\n};\n//# sourceMappingURL=Form.js.map\n"],"mappings":"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"}
|
package/dist/jsx/Form.mjs
CHANGED
|
@@ -37,7 +37,7 @@ const FormTrigger = createStyledHOC(FormTriggerFrame, (props, forwardedRef) => {
|
|
|
37
37
|
});
|
|
38
38
|
});
|
|
39
39
|
function hasError(errors, name) {
|
|
40
|
-
if (!name || !
|
|
40
|
+
if (!name || !(name in errors)) {
|
|
41
41
|
return false;
|
|
42
42
|
}
|
|
43
43
|
const error = errors[name];
|
package/dist/jsx/Form.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.js","names":[],"sources":["jsx/Form.js"],"sourcesContent":["import { createStyledContext, createStyledHOC, isWeb, styled, View } from \"@tamagui/core\";\nimport { focusFocusable } from \"@tamagui/focusable\";\nimport { composeEventHandlers, withStaticProperties } from \"@tamagui/helpers\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst FORM_NAME = \"Form\";\nconst EMPTY_ERRORS = {};\nconst defaultSubmitAttemptedRef = { current: false };\nconst defaultFormElementRef = { current: null };\nconst FormRegistryContext = React.createContext({\n validationMode: \"onSubmit\",\n errors: EMPTY_ERRORS,\n formElementRef: defaultFormElementRef,\n submitAttemptedRef: defaultSubmitAttemptedRef,\n clearErrors: () => {\n },\n getValues: () => ({}),\n registerField: () => () => {\n }\n});\nconst useFormRegistryContext = () => React.useContext(FormRegistryContext);\nconst FormContext = createStyledContext({\n onSubmit: void 0\n});\nconst { useStyledContext: useFormContext, Provider: FormProvider } = FormContext;\nconst FormFrame = styled(View, {\n displayName: FORM_NAME,\n render: \"form\"\n});\nconst FormTriggerFrame = styled(View, {\n displayName: \"FormTrigger\"\n});\nconst FormTrigger = createStyledHOC(\n FormTriggerFrame,\n (props, forwardedRef) => {\n const { scope, children, onPress, ...triggerProps } = props;\n const context = useFormContext(scope);\n return /* @__PURE__ */ jsx(\n FormTriggerFrame,\n {\n role: \"button\",\n ...triggerProps,\n ref: forwardedRef,\n onPress: composeEventHandlers(onPress, context.onSubmit),\n children\n }\n );\n }\n);\nfunction hasError(errors, name) {\n if (!name || !Object.hasOwn(errors, name)) {\n return false;\n }\n const error = errors[name];\n return Array.isArray(error) ? error.length > 0 : Boolean(error);\n}\nconst FormComponent = createStyledHOC(\n FormFrame,\n function Form({\n scope,\n validationMode = \"onSubmit\",\n errors: externalErrors,\n actionsRef,\n onSubmit,\n ...props\n }, forwardedRef) {\n const registryRef = React.useRef(/* @__PURE__ */ new Map());\n const formElementRef = React.useRef(null);\n const submittedRef = React.useRef(false);\n const submitAttemptedRef = React.useRef(false);\n const pendingSubmitDetailsRef = React.useRef(null);\n const onSubmitRef = React.useRef(onSubmit);\n onSubmitRef.current = onSubmit;\n const [errors, setErrors] = React.useState(externalErrors ?? EMPTY_ERRORS);\n const errorsRef = React.useRef(errors);\n errorsRef.current = errors;\n React.useEffect(() => {\n const next = externalErrors ?? EMPTY_ERRORS;\n errorsRef.current = next;\n setErrors(next);\n }, [externalErrors]);\n const registerField = React.useCallback(\n (id, registration) => {\n registryRef.current.set(id, registration);\n return () => {\n if (registryRef.current.get(id) === registration) {\n registryRef.current.delete(id);\n }\n };\n },\n []\n );\n const getValues = React.useCallback(() => {\n const values = {};\n for (const field of registryRef.current.values()) {\n if (field.name) {\n values[field.name] = field.getValue();\n }\n }\n return values;\n }, []);\n const clearErrors = React.useCallback((name) => {\n if (!name || !hasError(errorsRef.current, name)) {\n return;\n }\n const next = { ...errorsRef.current };\n delete next[name];\n errorsRef.current = next;\n setErrors(next);\n }, []);\n const focusFirstInvalid = React.useCallback(() => {\n let hasInvalid = false;\n for (const field of registryRef.current.values()) {\n if (!hasError(errorsRef.current, field.name) && field.validityData.state.valid !== false) {\n continue;\n }\n hasInvalid = true;\n const control = field.controlRef.current;\n if (isWeb && control?.focus) {\n control.focus();\n if (control.tagName === \"INPUT\" || control.tagName === \"TEXTAREA\") {\n control.select?.();\n }\n return true;\n }\n if (!isWeb && field.controlId) {\n focusFocusable(field.controlId);\n return true;\n }\n if (control?.focus) {\n control.focus();\n return true;\n }\n }\n return hasInvalid;\n }, []);\n const performSubmit = React.useCallback(\n (details) => {\n submitAttemptedRef.current = true;\n for (const field of registryRef.current.values()) {\n field.validate();\n }\n if (focusFirstInvalid()) {\n return;\n }\n submittedRef.current = true;\n void onSubmitRef.current?.(getValues(), details);\n },\n [focusFirstInvalid, getValues]\n );\n const requestSubmit = React.useCallback(\n (event) => {\n event?.preventDefault?.();\n const details = {\n reason: \"trigger-press\",\n event: event?.nativeEvent ?? event,\n trigger: event?.currentTarget\n };\n if (isWeb && formElementRef.current?.requestSubmit) {\n pendingSubmitDetailsRef.current = details;\n formElementRef.current.requestSubmit();\n return;\n }\n performSubmit(details);\n },\n [performSubmit]\n );\n React.useEffect(() => {\n if (!submittedRef.current) {\n return;\n }\n submittedRef.current = false;\n focusFirstInvalid();\n }, [errors, focusFirstInvalid]);\n React.useImperativeHandle(\n actionsRef,\n () => ({\n validate(fieldName) {\n if (fieldName) {\n for (const field of registryRef.current.values()) {\n if (field.name === fieldName) {\n field.validate();\n return;\n }\n }\n return;\n }\n for (const field of registryRef.current.values()) {\n field.validate();\n }\n }\n }),\n []\n );\n const registryContext = React.useMemo(\n () => ({\n validationMode,\n errors,\n formElementRef,\n submitAttemptedRef,\n clearErrors,\n getValues,\n registerField\n }),\n [clearErrors, errors, getValues, registerField, validationMode]\n );\n return /* @__PURE__ */ jsx(FormRegistryContext.Provider, { value: registryContext, children: /* @__PURE__ */ jsx(FormProvider, { scope, onSubmit: requestSubmit, children: /* @__PURE__ */ jsx(\n FormFrame,\n {\n ...props,\n ref: (element) => {\n formElementRef.current = element;\n if (typeof forwardedRef === \"function\") {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n noValidate: true,\n onSubmit: (event) => {\n event.preventDefault();\n const pendingDetails = pendingSubmitDetailsRef.current;\n pendingSubmitDetailsRef.current = null;\n performSubmit(\n pendingDetails ?? {\n reason: \"submit\",\n event: event.nativeEvent ?? event,\n trigger: event.nativeEvent?.submitter\n }\n );\n }\n }\n ) }) });\n }\n);\nconst Form2 = withStaticProperties(FormComponent, {\n Trigger: FormTrigger\n});\nexport {\n Form2 as Form,\n FormContext,\n FormFrame,\n FormProvider,\n FormRegistryContext,\n FormTrigger,\n useFormContext,\n useFormRegistryContext\n};\n//# sourceMappingURL=Form.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Form.js","names":[],"sources":["jsx/Form.js"],"sourcesContent":["import { createStyledContext, createStyledHOC, isWeb, styled, View } from \"@tamagui/core\";\nimport { focusFocusable } from \"@tamagui/focusable\";\nimport { composeEventHandlers, withStaticProperties } from \"@tamagui/helpers\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst FORM_NAME = \"Form\";\nconst EMPTY_ERRORS = {};\nconst defaultSubmitAttemptedRef = { current: false };\nconst defaultFormElementRef = { current: null };\nconst FormRegistryContext = React.createContext({\n validationMode: \"onSubmit\",\n errors: EMPTY_ERRORS,\n formElementRef: defaultFormElementRef,\n submitAttemptedRef: defaultSubmitAttemptedRef,\n clearErrors: () => {\n },\n getValues: () => ({}),\n registerField: () => () => {\n }\n});\nconst useFormRegistryContext = () => React.useContext(FormRegistryContext);\nconst FormContext = createStyledContext({\n onSubmit: void 0\n});\nconst { useStyledContext: useFormContext, Provider: FormProvider } = FormContext;\nconst FormFrame = styled(View, {\n displayName: FORM_NAME,\n render: \"form\"\n});\nconst FormTriggerFrame = styled(View, {\n displayName: \"FormTrigger\"\n});\nconst FormTrigger = createStyledHOC(\n FormTriggerFrame,\n (props, forwardedRef) => {\n const { scope, children, onPress, ...triggerProps } = props;\n const context = useFormContext(scope);\n return /* @__PURE__ */ jsx(\n FormTriggerFrame,\n {\n role: \"button\",\n ...triggerProps,\n ref: forwardedRef,\n onPress: composeEventHandlers(onPress, context.onSubmit),\n children\n }\n );\n }\n);\nfunction hasError(errors, name) {\n if (!name || !(name in errors)) {\n return false;\n }\n const error = errors[name];\n return Array.isArray(error) ? error.length > 0 : Boolean(error);\n}\nconst FormComponent = createStyledHOC(\n FormFrame,\n function Form({\n scope,\n validationMode = \"onSubmit\",\n errors: externalErrors,\n actionsRef,\n onSubmit,\n ...props\n }, forwardedRef) {\n const registryRef = React.useRef(/* @__PURE__ */ new Map());\n const formElementRef = React.useRef(null);\n const submittedRef = React.useRef(false);\n const submitAttemptedRef = React.useRef(false);\n const pendingSubmitDetailsRef = React.useRef(null);\n const onSubmitRef = React.useRef(onSubmit);\n onSubmitRef.current = onSubmit;\n const [errors, setErrors] = React.useState(externalErrors ?? EMPTY_ERRORS);\n const errorsRef = React.useRef(errors);\n errorsRef.current = errors;\n React.useEffect(() => {\n const next = externalErrors ?? EMPTY_ERRORS;\n errorsRef.current = next;\n setErrors(next);\n }, [externalErrors]);\n const registerField = React.useCallback(\n (id, registration) => {\n registryRef.current.set(id, registration);\n return () => {\n if (registryRef.current.get(id) === registration) {\n registryRef.current.delete(id);\n }\n };\n },\n []\n );\n const getValues = React.useCallback(() => {\n const values = {};\n for (const field of registryRef.current.values()) {\n if (field.name) {\n values[field.name] = field.getValue();\n }\n }\n return values;\n }, []);\n const clearErrors = React.useCallback((name) => {\n if (!name || !hasError(errorsRef.current, name)) {\n return;\n }\n const next = { ...errorsRef.current };\n delete next[name];\n errorsRef.current = next;\n setErrors(next);\n }, []);\n const focusFirstInvalid = React.useCallback(() => {\n let hasInvalid = false;\n for (const field of registryRef.current.values()) {\n if (!hasError(errorsRef.current, field.name) && field.validityData.state.valid !== false) {\n continue;\n }\n hasInvalid = true;\n const control = field.controlRef.current;\n if (isWeb && control?.focus) {\n control.focus();\n if (control.tagName === \"INPUT\" || control.tagName === \"TEXTAREA\") {\n control.select?.();\n }\n return true;\n }\n if (!isWeb && field.controlId) {\n focusFocusable(field.controlId);\n return true;\n }\n if (control?.focus) {\n control.focus();\n return true;\n }\n }\n return hasInvalid;\n }, []);\n const performSubmit = React.useCallback(\n (details) => {\n submitAttemptedRef.current = true;\n for (const field of registryRef.current.values()) {\n field.validate();\n }\n if (focusFirstInvalid()) {\n return;\n }\n submittedRef.current = true;\n void onSubmitRef.current?.(getValues(), details);\n },\n [focusFirstInvalid, getValues]\n );\n const requestSubmit = React.useCallback(\n (event) => {\n event?.preventDefault?.();\n const details = {\n reason: \"trigger-press\",\n event: event?.nativeEvent ?? event,\n trigger: event?.currentTarget\n };\n if (isWeb && formElementRef.current?.requestSubmit) {\n pendingSubmitDetailsRef.current = details;\n formElementRef.current.requestSubmit();\n return;\n }\n performSubmit(details);\n },\n [performSubmit]\n );\n React.useEffect(() => {\n if (!submittedRef.current) {\n return;\n }\n submittedRef.current = false;\n focusFirstInvalid();\n }, [errors, focusFirstInvalid]);\n React.useImperativeHandle(\n actionsRef,\n () => ({\n validate(fieldName) {\n if (fieldName) {\n for (const field of registryRef.current.values()) {\n if (field.name === fieldName) {\n field.validate();\n return;\n }\n }\n return;\n }\n for (const field of registryRef.current.values()) {\n field.validate();\n }\n }\n }),\n []\n );\n const registryContext = React.useMemo(\n () => ({\n validationMode,\n errors,\n formElementRef,\n submitAttemptedRef,\n clearErrors,\n getValues,\n registerField\n }),\n [clearErrors, errors, getValues, registerField, validationMode]\n );\n return /* @__PURE__ */ jsx(FormRegistryContext.Provider, { value: registryContext, children: /* @__PURE__ */ jsx(FormProvider, { scope, onSubmit: requestSubmit, children: /* @__PURE__ */ jsx(\n FormFrame,\n {\n ...props,\n ref: (element) => {\n formElementRef.current = element;\n if (typeof forwardedRef === \"function\") {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n noValidate: true,\n onSubmit: (event) => {\n event.preventDefault();\n const pendingDetails = pendingSubmitDetailsRef.current;\n pendingSubmitDetailsRef.current = null;\n performSubmit(\n pendingDetails ?? {\n reason: \"submit\",\n event: event.nativeEvent ?? event,\n trigger: event.nativeEvent?.submitter\n }\n );\n }\n }\n ) }) });\n }\n);\nconst Form2 = withStaticProperties(FormComponent, {\n Trigger: FormTrigger\n});\nexport {\n Form2 as Form,\n FormContext,\n FormFrame,\n FormProvider,\n FormRegistryContext,\n FormTrigger,\n useFormContext,\n useFormRegistryContext\n};\n//# sourceMappingURL=Form.js.map\n"],"mappings":";;;;;;;AAKA,MAAM,YAAY;AAClB,MAAM,eAAe,CAAC;AACtB,MAAM,4BAA4B,EAAE,SAAS,MAAM;AACnD,MAAM,wBAAwB,EAAE,SAAS,KAAK;AAC9C,MAAM,sBAAsB,MAAM,cAAc;CAC9C,gBAAgB;CAChB,QAAQ;CACR,gBAAgB;CAChB,oBAAoB;CACpB,mBAAmB,CACnB;CACA,kBAAkB,CAAC;CACnB,2BAA2B,CAC3B;AACF,CAAC;AACD,MAAM,+BAA+B,MAAM,WAAW,mBAAmB;AACzE,MAAM,cAAc,oBAAoB,EACtC,UAAU,KAAK,EACjB,CAAC;AACD,MAAM,EAAE,kBAAkB,gBAAgB,UAAU,iBAAiB;AACrE,MAAM,YAAY,OAAO,MAAM;CAC7B,aAAa;CACb,QAAQ;AACV,CAAC;AACD,MAAM,mBAAmB,OAAO,MAAM,EACpC,aAAa,cACf,CAAC;AACD,MAAM,cAAc,gBAClB,mBACC,OAAO,iBAAiB;CACvB,MAAM,EAAE,OAAO,UAAU,SAAS,GAAG,iBAAiB;CACtD,MAAM,UAAU,eAAe,KAAK;CACpC,OAAuB,oBACrB,kBACA;EACE,MAAM;EACN,GAAG;EACH,KAAK;EACL,SAAS,qBAAqB,SAAS,QAAQ,QAAQ;EACvD;CACF,CACF;AACF,CACF;AACA,SAAS,SAAS,QAAQ,MAAM;CAC9B,IAAI,CAAC,QAAQ,EAAE,QAAQ,SAAS;EAC9B,OAAO;CACT;CACA,MAAM,QAAQ,OAAO;CACrB,OAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,SAAS,IAAI,QAAQ,KAAK;AAChE;AACA,MAAM,gBAAgB,gBACpB,WACA,SAAS,KAAK,EACZ,OACA,iBAAiB,YACjB,QAAQ,gBACR,YACA,UACA,GAAG,SACF,cAAc;CACf,MAAM,cAAc,MAAM,uBAAuB,IAAI,IAAI,CAAC;CAC1D,MAAM,iBAAiB,MAAM,OAAO,IAAI;CACxC,MAAM,eAAe,MAAM,OAAO,KAAK;CACvC,MAAM,qBAAqB,MAAM,OAAO,KAAK;CAC7C,MAAM,0BAA0B,MAAM,OAAO,IAAI;CACjD,MAAM,cAAc,MAAM,OAAO,QAAQ;CACzC,YAAY,UAAU;CACtB,MAAM,CAAC,QAAQ,aAAa,MAAM,SAAS,kBAAkB,YAAY;CACzE,MAAM,YAAY,MAAM,OAAO,MAAM;CACrC,UAAU,UAAU;CACpB,MAAM,gBAAgB;EACpB,MAAM,OAAO,kBAAkB;EAC/B,UAAU,UAAU;EACpB,UAAU,IAAI;CAChB,GAAG,CAAC,cAAc,CAAC;CACnB,MAAM,gBAAgB,MAAM,aACzB,IAAI,iBAAiB;EACpB,YAAY,QAAQ,IAAI,IAAI,YAAY;EACxC,aAAa;GACX,IAAI,YAAY,QAAQ,IAAI,EAAE,MAAM,cAAc;IAChD,YAAY,QAAQ,OAAO,EAAE;GAC/B;EACF;CACF,GACA,CAAC,CACH;CACA,MAAM,YAAY,MAAM,kBAAkB;EACxC,MAAM,SAAS,CAAC;EAChB,KAAK,MAAM,SAAS,YAAY,QAAQ,OAAO,GAAG;GAChD,IAAI,MAAM,MAAM;IACd,OAAO,MAAM,QAAQ,MAAM,SAAS;GACtC;EACF;EACA,OAAO;CACT,GAAG,CAAC,CAAC;CACL,MAAM,cAAc,MAAM,aAAa,SAAS;EAC9C,IAAI,CAAC,QAAQ,CAAC,SAAS,UAAU,SAAS,IAAI,GAAG;GAC/C;EACF;EACA,MAAM,OAAO,EAAE,GAAG,UAAU,QAAQ;EACpC,OAAO,KAAK;EACZ,UAAU,UAAU;EACpB,UAAU,IAAI;CAChB,GAAG,CAAC,CAAC;CACL,MAAM,oBAAoB,MAAM,kBAAkB;EAChD,IAAI,aAAa;EACjB,KAAK,MAAM,SAAS,YAAY,QAAQ,OAAO,GAAG;GAChD,IAAI,CAAC,SAAS,UAAU,SAAS,MAAM,IAAI,KAAK,MAAM,aAAa,MAAM,UAAU,OAAO;IACxF;GACF;GACA,aAAa;GACb,MAAM,UAAU,MAAM,WAAW;GACjC,IAAI,SAAS,SAAS,OAAO;IAC3B,QAAQ,MAAM;IACd,IAAI,QAAQ,YAAY,WAAW,QAAQ,YAAY,YAAY;KACjE,QAAQ,SAAS;IACnB;IACA,OAAO;GACT;GACA,IAAI,CAAC,SAAS,MAAM,WAAW;IAC7B,eAAe,MAAM,SAAS;IAC9B,OAAO;GACT;GACA,IAAI,SAAS,OAAO;IAClB,QAAQ,MAAM;IACd,OAAO;GACT;EACF;EACA,OAAO;CACT,GAAG,CAAC,CAAC;CACL,MAAM,gBAAgB,MAAM,aACzB,YAAY;EACX,mBAAmB,UAAU;EAC7B,KAAK,MAAM,SAAS,YAAY,QAAQ,OAAO,GAAG;GAChD,MAAM,SAAS;EACjB;EACA,IAAI,kBAAkB,GAAG;GACvB;EACF;EACA,aAAa,UAAU;EACvB,KAAK,YAAY,UAAU,UAAU,GAAG,OAAO;CACjD,GACA,CAAC,mBAAmB,SAAS,CAC/B;CACA,MAAM,gBAAgB,MAAM,aACzB,UAAU;EACT,OAAO,iBAAiB;EACxB,MAAM,UAAU;GACd,QAAQ;GACR,OAAO,OAAO,eAAe;GAC7B,SAAS,OAAO;EAClB;EACA,IAAI,SAAS,eAAe,SAAS,eAAe;GAClD,wBAAwB,UAAU;GAClC,eAAe,QAAQ,cAAc;GACrC;EACF;EACA,cAAc,OAAO;CACvB,GACA,CAAC,aAAa,CAChB;CACA,MAAM,gBAAgB;EACpB,IAAI,CAAC,aAAa,SAAS;GACzB;EACF;EACA,aAAa,UAAU;EACvB,kBAAkB;CACpB,GAAG,CAAC,QAAQ,iBAAiB,CAAC;CAC9B,MAAM,oBACJ,mBACO,EACL,SAAS,WAAW;EAClB,IAAI,WAAW;GACb,KAAK,MAAM,SAAS,YAAY,QAAQ,OAAO,GAAG;IAChD,IAAI,MAAM,SAAS,WAAW;KAC5B,MAAM,SAAS;KACf;IACF;GACF;GACA;EACF;EACA,KAAK,MAAM,SAAS,YAAY,QAAQ,OAAO,GAAG;GAChD,MAAM,SAAS;EACjB;CACF,EACF,IACA,CAAC,CACH;CACA,MAAM,kBAAkB,MAAM,eACrB;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IACA;EAAC;EAAa;EAAQ;EAAW;EAAe;CAAc,CAChE;CACA,OAAuB,oBAAI,oBAAoB,UAAU;EAAE,OAAO;EAAiB,UAA0B,oBAAI,cAAc;GAAE;GAAO,UAAU;GAAe,UAA0B,oBACzL,WACA;IACE,GAAG;IACH,MAAM,YAAY;KAChB,eAAe,UAAU;KACzB,IAAI,OAAO,iBAAiB,YAAY;MACtC,aAAa,OAAO;KACtB,OAAO,IAAI,cAAc;MACvB,aAAa,UAAU;KACzB;IACF;IACA,YAAY;IACZ,WAAW,UAAU;KACnB,MAAM,eAAe;KACrB,MAAM,iBAAiB,wBAAwB;KAC/C,wBAAwB,UAAU;KAClC,cACE,kBAAkB;MAChB,QAAQ;MACR,OAAO,MAAM,eAAe;MAC5B,SAAS,MAAM,aAAa;KAC9B,CACF;IACF;GACF,CACF;EAAE,CAAC;CAAE,CAAC;AACR,CACF;AACA,MAAM,QAAQ,qBAAqB,eAAe,EAChD,SAAS,YACX,CAAC"}
|
package/dist/jsx/Form.native.cjs
CHANGED
|
@@ -82,7 +82,7 @@ var FormTrigger = (0, import_core.createStyledHOC)(FormTriggerFrame, function(pr
|
|
|
82
82
|
});
|
|
83
83
|
});
|
|
84
84
|
function hasError(errors, name) {
|
|
85
|
-
if (!name || !
|
|
85
|
+
if (!name || !(name in errors)) {
|
|
86
86
|
return false;
|
|
87
87
|
}
|
|
88
88
|
var error = errors[name];
|
package/dist/jsx/Form.native.js
CHANGED
|
@@ -82,7 +82,7 @@ var FormTrigger = (0, import_core.createStyledHOC)(FormTriggerFrame, function(pr
|
|
|
82
82
|
});
|
|
83
83
|
});
|
|
84
84
|
function hasError(errors, name) {
|
|
85
|
-
if (!name || !
|
|
85
|
+
if (!name || !(name in errors)) {
|
|
86
86
|
return false;
|
|
87
87
|
}
|
|
88
88
|
var error = errors[name];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.native.js","names":[],"sources":["jsx/Form.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar Form_exports = {};\n__export(Form_exports, {\n Form: () => Form2,\n FormContext: () => FormContext,\n FormFrame: () => FormFrame,\n FormProvider: () => FormProvider,\n FormRegistryContext: () => FormRegistryContext,\n FormTrigger: () => FormTrigger,\n useFormContext: () => useFormContext,\n useFormRegistryContext: () => useFormRegistryContext\n});\nmodule.exports = __toCommonJS(Form_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_core = require(\"@tamagui/core\");\nvar import_focusable = require(\"@tamagui/focusable\");\nvar import_helpers = require(\"@tamagui/helpers\");\nvar React = __toESM(require(\"react\"), 1);\nvar FORM_NAME = \"Form\";\nvar EMPTY_ERRORS = {};\nvar defaultSubmitAttemptedRef = {\n current: false\n};\nvar defaultFormElementRef = {\n current: null\n};\nvar FormRegistryContext = /* @__PURE__ */ React.createContext({\n validationMode: \"onSubmit\",\n errors: EMPTY_ERRORS,\n formElementRef: defaultFormElementRef,\n submitAttemptedRef: defaultSubmitAttemptedRef,\n clearErrors: function() {\n },\n getValues: function() {\n return {};\n },\n registerField: function() {\n return function() {\n };\n }\n});\nvar useFormRegistryContext = function() {\n return React.useContext(FormRegistryContext);\n};\nvar FormContext = (0, import_core.createStyledContext)({\n onSubmit: void 0\n});\nvar { useStyledContext: useFormContext, Provider: FormProvider } = FormContext;\nvar FormFrame = (0, import_core.styled)(import_core.View, {\n displayName: FORM_NAME,\n render: \"form\"\n});\nvar FormTriggerFrame = (0, import_core.styled)(import_core.View, {\n displayName: \"FormTrigger\"\n});\nvar FormTrigger = (0, import_core.createStyledHOC)(FormTriggerFrame, function(props, forwardedRef) {\n var { scope, children, onPress, ...triggerProps } = props;\n var context = useFormContext(scope);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormTriggerFrame, {\n role: \"button\",\n ...triggerProps,\n ref: forwardedRef,\n onPress: (0, import_helpers.composeEventHandlers)(onPress, context.onSubmit),\n children\n });\n});\nfunction hasError(errors, name) {\n if (!name || !Object.hasOwn(errors, name)) {\n return false;\n }\n var error = errors[name];\n return Array.isArray(error) ? error.length > 0 : Boolean(error);\n}\nvar FormComponent = (0, import_core.createStyledHOC)(FormFrame, function Form(param, forwardedRef) {\n var { scope, validationMode = \"onSubmit\", errors: externalErrors, actionsRef, onSubmit, ...props } = param;\n var registryRef = React.useRef(/* @__PURE__ */ new Map());\n var formElementRef = React.useRef(null);\n var submittedRef = React.useRef(false);\n var submitAttemptedRef = React.useRef(false);\n var pendingSubmitDetailsRef = React.useRef(null);\n var onSubmitRef = React.useRef(onSubmit);\n onSubmitRef.current = onSubmit;\n var [errors, setErrors] = React.useState(externalErrors !== null && externalErrors !== void 0 ? externalErrors : EMPTY_ERRORS);\n var errorsRef = React.useRef(errors);\n errorsRef.current = errors;\n React.useEffect(function() {\n var next = externalErrors !== null && externalErrors !== void 0 ? externalErrors : EMPTY_ERRORS;\n errorsRef.current = next;\n setErrors(next);\n }, [\n externalErrors\n ]);\n var registerField = React.useCallback(function(id, registration) {\n registryRef.current.set(id, registration);\n return function() {\n if (registryRef.current.get(id) === registration) {\n registryRef.current.delete(id);\n }\n };\n }, []);\n var getValues = React.useCallback(function() {\n var values = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (field.name) {\n values[field.name] = field.getValue();\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return values;\n }, []);\n var clearErrors = React.useCallback(function(name) {\n if (!name || !hasError(errorsRef.current, name)) {\n return;\n }\n var next = {\n ...errorsRef.current\n };\n delete next[name];\n errorsRef.current = next;\n setErrors(next);\n }, []);\n var focusFirstInvalid = React.useCallback(function() {\n var hasInvalid = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (!hasError(errorsRef.current, field.name) && field.validityData.state.valid !== false) {\n continue;\n }\n hasInvalid = true;\n var control = field.controlRef.current;\n if (import_core.isWeb && (control === null || control === void 0 ? void 0 : control.focus)) {\n control.focus();\n if (control.tagName === \"INPUT\" || control.tagName === \"TEXTAREA\") {\n var _control_select;\n (_control_select = control.select) === null || _control_select === void 0 ? void 0 : _control_select.call(control);\n }\n return true;\n }\n if (!import_core.isWeb && field.controlId) {\n (0, import_focusable.focusFocusable)(field.controlId);\n return true;\n }\n if (control === null || control === void 0 ? void 0 : control.focus) {\n control.focus();\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return hasInvalid;\n }, []);\n var performSubmit = React.useCallback(function(details) {\n var _onSubmitRef_current;\n submitAttemptedRef.current = true;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n field.validate();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (focusFirstInvalid()) {\n return;\n }\n submittedRef.current = true;\n void ((_onSubmitRef_current = onSubmitRef.current) === null || _onSubmitRef_current === void 0 ? void 0 : _onSubmitRef_current.call(onSubmitRef, getValues(), details));\n }, [\n focusFirstInvalid,\n getValues\n ]);\n var requestSubmit = React.useCallback(function(event) {\n var _event_preventDefault, _formElementRef_current;\n event === null || event === void 0 ? void 0 : (_event_preventDefault = event.preventDefault) === null || _event_preventDefault === void 0 ? void 0 : _event_preventDefault.call(event);\n var _event_nativeEvent;\n var details = {\n reason: \"trigger-press\",\n event: (_event_nativeEvent = event === null || event === void 0 ? void 0 : event.nativeEvent) !== null && _event_nativeEvent !== void 0 ? _event_nativeEvent : event,\n trigger: event === null || event === void 0 ? void 0 : event.currentTarget\n };\n if (import_core.isWeb && ((_formElementRef_current = formElementRef.current) === null || _formElementRef_current === void 0 ? void 0 : _formElementRef_current.requestSubmit)) {\n pendingSubmitDetailsRef.current = details;\n formElementRef.current.requestSubmit();\n return;\n }\n performSubmit(details);\n }, [\n performSubmit\n ]);\n React.useEffect(function() {\n if (!submittedRef.current) {\n return;\n }\n submittedRef.current = false;\n focusFirstInvalid();\n }, [\n errors,\n focusFirstInvalid\n ]);\n React.useImperativeHandle(actionsRef, function() {\n return {\n validate(fieldName) {\n if (fieldName) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (field.name === fieldName) {\n field.validate();\n return;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return;\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = registryRef.current.values()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var field1 = _step1.value;\n field1.validate();\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n };\n }, []);\n var registryContext = React.useMemo(function() {\n return {\n validationMode,\n errors,\n formElementRef,\n submitAttemptedRef,\n clearErrors,\n getValues,\n registerField\n };\n }, [\n clearErrors,\n errors,\n getValues,\n registerField,\n validationMode\n ]);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormRegistryContext.Provider, {\n value: registryContext,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormProvider, {\n scope,\n onSubmit: requestSubmit,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormFrame, {\n ...props,\n ref: function(element) {\n formElementRef.current = element;\n if (typeof forwardedRef === \"function\") {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n noValidate: true,\n onSubmit: function(event) {\n var _event_nativeEvent;\n event.preventDefault();\n var pendingDetails = pendingSubmitDetailsRef.current;\n pendingSubmitDetailsRef.current = null;\n var _event_nativeEvent1;\n performSubmit(pendingDetails !== null && pendingDetails !== void 0 ? pendingDetails : {\n reason: \"submit\",\n event: (_event_nativeEvent1 = event.nativeEvent) !== null && _event_nativeEvent1 !== void 0 ? _event_nativeEvent1 : event,\n trigger: (_event_nativeEvent = event.nativeEvent) === null || _event_nativeEvent === void 0 ? void 0 : _event_nativeEvent.submitter\n });\n }\n })\n })\n });\n});\nvar Form2 = (0, import_helpers.withStaticProperties)(FormComponent, {\n Trigger: FormTrigger\n});\n//# sourceMappingURL=Form.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Form.native.js","names":[],"sources":["jsx/Form.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar Form_exports = {};\n__export(Form_exports, {\n Form: () => Form2,\n FormContext: () => FormContext,\n FormFrame: () => FormFrame,\n FormProvider: () => FormProvider,\n FormRegistryContext: () => FormRegistryContext,\n FormTrigger: () => FormTrigger,\n useFormContext: () => useFormContext,\n useFormRegistryContext: () => useFormRegistryContext\n});\nmodule.exports = __toCommonJS(Form_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_core = require(\"@tamagui/core\");\nvar import_focusable = require(\"@tamagui/focusable\");\nvar import_helpers = require(\"@tamagui/helpers\");\nvar React = __toESM(require(\"react\"), 1);\nvar FORM_NAME = \"Form\";\nvar EMPTY_ERRORS = {};\nvar defaultSubmitAttemptedRef = {\n current: false\n};\nvar defaultFormElementRef = {\n current: null\n};\nvar FormRegistryContext = /* @__PURE__ */ React.createContext({\n validationMode: \"onSubmit\",\n errors: EMPTY_ERRORS,\n formElementRef: defaultFormElementRef,\n submitAttemptedRef: defaultSubmitAttemptedRef,\n clearErrors: function() {\n },\n getValues: function() {\n return {};\n },\n registerField: function() {\n return function() {\n };\n }\n});\nvar useFormRegistryContext = function() {\n return React.useContext(FormRegistryContext);\n};\nvar FormContext = (0, import_core.createStyledContext)({\n onSubmit: void 0\n});\nvar { useStyledContext: useFormContext, Provider: FormProvider } = FormContext;\nvar FormFrame = (0, import_core.styled)(import_core.View, {\n displayName: FORM_NAME,\n render: \"form\"\n});\nvar FormTriggerFrame = (0, import_core.styled)(import_core.View, {\n displayName: \"FormTrigger\"\n});\nvar FormTrigger = (0, import_core.createStyledHOC)(FormTriggerFrame, function(props, forwardedRef) {\n var { scope, children, onPress, ...triggerProps } = props;\n var context = useFormContext(scope);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormTriggerFrame, {\n role: \"button\",\n ...triggerProps,\n ref: forwardedRef,\n onPress: (0, import_helpers.composeEventHandlers)(onPress, context.onSubmit),\n children\n });\n});\nfunction hasError(errors, name) {\n if (!name || !(name in errors)) {\n return false;\n }\n var error = errors[name];\n return Array.isArray(error) ? error.length > 0 : Boolean(error);\n}\nvar FormComponent = (0, import_core.createStyledHOC)(FormFrame, function Form(param, forwardedRef) {\n var { scope, validationMode = \"onSubmit\", errors: externalErrors, actionsRef, onSubmit, ...props } = param;\n var registryRef = React.useRef(/* @__PURE__ */ new Map());\n var formElementRef = React.useRef(null);\n var submittedRef = React.useRef(false);\n var submitAttemptedRef = React.useRef(false);\n var pendingSubmitDetailsRef = React.useRef(null);\n var onSubmitRef = React.useRef(onSubmit);\n onSubmitRef.current = onSubmit;\n var [errors, setErrors] = React.useState(externalErrors !== null && externalErrors !== void 0 ? externalErrors : EMPTY_ERRORS);\n var errorsRef = React.useRef(errors);\n errorsRef.current = errors;\n React.useEffect(function() {\n var next = externalErrors !== null && externalErrors !== void 0 ? externalErrors : EMPTY_ERRORS;\n errorsRef.current = next;\n setErrors(next);\n }, [\n externalErrors\n ]);\n var registerField = React.useCallback(function(id, registration) {\n registryRef.current.set(id, registration);\n return function() {\n if (registryRef.current.get(id) === registration) {\n registryRef.current.delete(id);\n }\n };\n }, []);\n var getValues = React.useCallback(function() {\n var values = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (field.name) {\n values[field.name] = field.getValue();\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return values;\n }, []);\n var clearErrors = React.useCallback(function(name) {\n if (!name || !hasError(errorsRef.current, name)) {\n return;\n }\n var next = {\n ...errorsRef.current\n };\n delete next[name];\n errorsRef.current = next;\n setErrors(next);\n }, []);\n var focusFirstInvalid = React.useCallback(function() {\n var hasInvalid = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (!hasError(errorsRef.current, field.name) && field.validityData.state.valid !== false) {\n continue;\n }\n hasInvalid = true;\n var control = field.controlRef.current;\n if (import_core.isWeb && (control === null || control === void 0 ? void 0 : control.focus)) {\n control.focus();\n if (control.tagName === \"INPUT\" || control.tagName === \"TEXTAREA\") {\n var _control_select;\n (_control_select = control.select) === null || _control_select === void 0 ? void 0 : _control_select.call(control);\n }\n return true;\n }\n if (!import_core.isWeb && field.controlId) {\n (0, import_focusable.focusFocusable)(field.controlId);\n return true;\n }\n if (control === null || control === void 0 ? void 0 : control.focus) {\n control.focus();\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return hasInvalid;\n }, []);\n var performSubmit = React.useCallback(function(details) {\n var _onSubmitRef_current;\n submitAttemptedRef.current = true;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n field.validate();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (focusFirstInvalid()) {\n return;\n }\n submittedRef.current = true;\n void ((_onSubmitRef_current = onSubmitRef.current) === null || _onSubmitRef_current === void 0 ? void 0 : _onSubmitRef_current.call(onSubmitRef, getValues(), details));\n }, [\n focusFirstInvalid,\n getValues\n ]);\n var requestSubmit = React.useCallback(function(event) {\n var _event_preventDefault, _formElementRef_current;\n event === null || event === void 0 ? void 0 : (_event_preventDefault = event.preventDefault) === null || _event_preventDefault === void 0 ? void 0 : _event_preventDefault.call(event);\n var _event_nativeEvent;\n var details = {\n reason: \"trigger-press\",\n event: (_event_nativeEvent = event === null || event === void 0 ? void 0 : event.nativeEvent) !== null && _event_nativeEvent !== void 0 ? _event_nativeEvent : event,\n trigger: event === null || event === void 0 ? void 0 : event.currentTarget\n };\n if (import_core.isWeb && ((_formElementRef_current = formElementRef.current) === null || _formElementRef_current === void 0 ? void 0 : _formElementRef_current.requestSubmit)) {\n pendingSubmitDetailsRef.current = details;\n formElementRef.current.requestSubmit();\n return;\n }\n performSubmit(details);\n }, [\n performSubmit\n ]);\n React.useEffect(function() {\n if (!submittedRef.current) {\n return;\n }\n submittedRef.current = false;\n focusFirstInvalid();\n }, [\n errors,\n focusFirstInvalid\n ]);\n React.useImperativeHandle(actionsRef, function() {\n return {\n validate(fieldName) {\n if (fieldName) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = registryRef.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (field.name === fieldName) {\n field.validate();\n return;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return;\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = registryRef.current.values()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var field1 = _step1.value;\n field1.validate();\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n };\n }, []);\n var registryContext = React.useMemo(function() {\n return {\n validationMode,\n errors,\n formElementRef,\n submitAttemptedRef,\n clearErrors,\n getValues,\n registerField\n };\n }, [\n clearErrors,\n errors,\n getValues,\n registerField,\n validationMode\n ]);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormRegistryContext.Provider, {\n value: registryContext,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormProvider, {\n scope,\n onSubmit: requestSubmit,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormFrame, {\n ...props,\n ref: function(element) {\n formElementRef.current = element;\n if (typeof forwardedRef === \"function\") {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n noValidate: true,\n onSubmit: function(event) {\n var _event_nativeEvent;\n event.preventDefault();\n var pendingDetails = pendingSubmitDetailsRef.current;\n pendingSubmitDetailsRef.current = null;\n var _event_nativeEvent1;\n performSubmit(pendingDetails !== null && pendingDetails !== void 0 ? pendingDetails : {\n reason: \"submit\",\n event: (_event_nativeEvent1 = event.nativeEvent) !== null && _event_nativeEvent1 !== void 0 ? _event_nativeEvent1 : event,\n trigger: (_event_nativeEvent = event.nativeEvent) === null || _event_nativeEvent === void 0 ? void 0 : _event_nativeEvent.submitter\n });\n }\n })\n })\n });\n});\nvar Form2 = (0, import_helpers.withStaticProperties)(FormComponent, {\n Trigger: FormTrigger\n});\n//# sourceMappingURL=Form.js.map\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/form",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.831.1",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"files": [
|
|
6
6
|
"src",
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
"clean:build": "tamagui-build clean:build"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@tamagui/core": "3.0.0-beta.
|
|
38
|
-
"@tamagui/focusable": "3.0.0-beta.
|
|
39
|
-
"@tamagui/helpers": "3.0.0-beta.
|
|
37
|
+
"@tamagui/core": "3.0.0-beta.831.1",
|
|
38
|
+
"@tamagui/focusable": "3.0.0-beta.831.1",
|
|
39
|
+
"@tamagui/helpers": "3.0.0-beta.831.1"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@tamagui/build": "3.0.0-beta.
|
|
42
|
+
"@tamagui/build": "3.0.0-beta.831.1",
|
|
43
43
|
"react": "19.2.3"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
package/src/Form.tsx
CHANGED
|
@@ -115,7 +115,7 @@ export type FormProps<FormValue extends FormValues = FormValues> = Omit<
|
|
|
115
115
|
FormExtraProps<FormValue>
|
|
116
116
|
|
|
117
117
|
function hasError(errors: FormErrors, name?: string) {
|
|
118
|
-
if (!name || !
|
|
118
|
+
if (!name || !(name in errors)) {
|
|
119
119
|
return false
|
|
120
120
|
}
|
|
121
121
|
const error = errors[name]
|