@bigbinary/neetoui 8.2.31 → 8.2.32
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/formik/Form.js +11 -29
- package/dist/cjs/formik/Form.js.map +1 -1
- package/dist/formik/Form.js +11 -29
- package/dist/formik/Form.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/formik/Form.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var _extends = require('@babel/runtime/helpers/extends');
|
|
4
|
-
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
5
|
-
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
6
4
|
var React = require('react');
|
|
7
5
|
var formik = require('formik');
|
|
8
6
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
|
+
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
9
8
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
9
|
+
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
10
10
|
var ramda = require('ramda');
|
|
11
11
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
12
12
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
@@ -171,33 +171,15 @@ var Form = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
171
171
|
_ref$scrollToErrorFie = _ref.scrollToErrorField,
|
|
172
172
|
scrollToErrorField = _ref$scrollToErrorFie === void 0 ? false : _ref$scrollToErrorFie;
|
|
173
173
|
var formikRef = React.useRef();
|
|
174
|
-
var handleSubmit =
|
|
175
|
-
var
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
_context.next = 4;
|
|
184
|
-
break;
|
|
185
|
-
}
|
|
186
|
-
actions.setSubmitting(false);
|
|
187
|
-
return _context.abrupt("return");
|
|
188
|
-
case 4:
|
|
189
|
-
_context.next = 6;
|
|
190
|
-
return formikProps.onSubmit(values, actions);
|
|
191
|
-
case 6:
|
|
192
|
-
case "end":
|
|
193
|
-
return _context.stop();
|
|
194
|
-
}
|
|
195
|
-
}, _callee);
|
|
196
|
-
}));
|
|
197
|
-
return function handleSubmit(_x, _x2) {
|
|
198
|
-
return _ref2.apply(this, arguments);
|
|
199
|
-
};
|
|
200
|
-
}();
|
|
174
|
+
var handleSubmit = function handleSubmit(values, actions) {
|
|
175
|
+
var _formikRef$current;
|
|
176
|
+
var fieldsWithServerError = getFieldsWithServerError((_formikRef$current = formikRef.current) === null || _formikRef$current === void 0 ? void 0 : _formikRef$current.status);
|
|
177
|
+
if (fieldsWithServerError.length > 0) {
|
|
178
|
+
actions.setSubmitting(false);
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
return formikProps.onSubmit(values, actions);
|
|
182
|
+
};
|
|
201
183
|
return /*#__PURE__*/React.createElement(formik.Formik, _extends({
|
|
202
184
|
innerRef: formikRef
|
|
203
185
|
}, formikProps, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.js","sources":["../../../src/formik/Form/ScrollToErrorField/utils.js","../../../src/formik/Form/ScrollToErrorField/index.js","../../../src/formik/Form/FormWrapper.jsx","../../../src/formik/Form/index.jsx"],"sourcesContent":["import { isPresent } from \"neetocist\";\nimport { is } from \"ramda\";\n\nconst transformObjectToDotNotation = (object, prefix = \"\") => {\n const result = [];\n\n Object.entries(object).forEach(([key, value]) => {\n if (!value) return;\n const nextKey = prefix ? `${prefix}.${key}` : key;\n if (is(Object, value)) {\n result.push(...transformObjectToDotNotation(value, nextKey));\n } else {\n result.push(nextKey);\n }\n });\n\n return result;\n};\n\nconst getErrorFieldName = formikErrors =>\n transformObjectToDotNotation(formikErrors)?.[0];\n\nexport const getFieldsWithServerError = (status = {}) =>\n Object.keys(status).filter(fieldName => isPresent(status[fieldName]));\n\nexport const scrollToError = (formRef, errors, status) => {\n const fieldErrorName = getErrorFieldName(errors);\n const [fieldWithServerError] = getFieldsWithServerError(status);\n\n if (!fieldErrorName && !fieldWithServerError) return;\n\n const errorFieldName = fieldErrorName || fieldWithServerError;\n const errorFormElement = formRef.current.querySelector(\n `[name=\"${errorFieldName}\"]`\n );\n\n errorFormElement?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n};\n","import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isEmpty } from \"ramda\";\n\nimport { getFieldsWithServerError, scrollToError } from \"./utils\";\n\nconst ScrollToErrorField = ({ formRef }) => {\n const { submitCount, isValid, errors, status } = useFormikContext();\n\n useEffect(() => {\n const fieldsWithServerError = getFieldsWithServerError(status);\n if (!formRef.current || (isValid && isEmpty(fieldsWithServerError))) {\n return;\n }\n\n scrollToError(formRef, errors, status);\n }, [submitCount]);\n\n return null;\n};\n\nexport default ScrollToErrorField;\n","import React, { useCallback, forwardRef, useRef } from \"react\";\n\nimport { Form as FormikForm, useFormikContext } from \"formik\";\nimport PropTypes from \"prop-types\";\n\nimport ScrollToErrorField from \"./ScrollToErrorField\";\nimport {\n getFieldsWithServerError,\n scrollToError,\n} from \"./ScrollToErrorField/utils\";\n\nconst FormWrapper = forwardRef(\n ({ className, formProps, children, scrollToErrorField }, ref) => {\n const { validateForm, setErrors, setTouched, submitForm, ...formikBag } =\n useFormikContext();\n\n const { dirty: isFormDirty, isSubmitting, status } = formikBag;\n\n const formRefForScrollToErrorField = useRef();\n\n const formRef = ref || formRefForScrollToErrorField;\n\n const handleKeyDown = useCallback(\n async event => {\n const isEventFromEditorOrTextarea =\n event.target.tagName === \"TEXTAREA\" || event.target.editor;\n\n if (event.key !== \"Enter\") return;\n\n if (isEventFromEditorOrTextarea && !event.metaKey) return;\n\n event.preventDefault();\n\n if (event.shiftKey) return;\n\n if (!isFormDirty || isSubmitting) return;\n\n try {\n const errors = await validateForm();\n const fieldStatuses = getFieldsWithServerError(status);\n\n if (\n Object.keys(errors).length > 0 ||\n Object.keys(fieldStatuses).length > 0\n ) {\n setErrors(errors);\n setTouched({ ...errors, ...status });\n scrollToErrorField && scrollToError(formRef, errors, status);\n } else {\n submitForm();\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n \"An unhandled error was caught from validateForm()\",\n error\n );\n }\n },\n [\n validateForm,\n setErrors,\n setTouched,\n isFormDirty,\n isSubmitting,\n submitForm,\n status,\n ]\n );\n\n return (\n <FormikForm\n {...{ className }}\n noValidate\n data-testid=\"neeto-ui-form-wrapper\"\n ref={formRef}\n onKeyDown={handleKeyDown}\n {...formProps}\n >\n {scrollToErrorField && <ScrollToErrorField {...{ formRef }} />}\n {children}\n </FormikForm>\n );\n }\n);\n\nFormWrapper.displayName = \"FormWrapper\";\n\nFormWrapper.propTypes = {\n children: PropTypes.node,\n formProps: PropTypes.object,\n scrollToErrorField: PropTypes.bool,\n};\n\nexport default FormWrapper;\n","import React, { forwardRef, useRef } from \"react\";\n\nimport { Formik } from \"formik\";\nimport PropTypes from \"prop-types\";\n\nimport FormWrapper from \"./FormWrapper\";\nimport { getFieldsWithServerError } from \"./ScrollToErrorField/utils\";\n\nconst Form = forwardRef(\n (\n { className, children, formikProps, formProps, scrollToErrorField = false },\n ref\n ) => {\n const formikRef = useRef();\n\n const handleSubmit = async (values, actions) => {\n const fieldsWithServerError = getFieldsWithServerError(\n formikRef.current?.status\n );\n\n if (fieldsWithServerError.length > 0) {\n actions.setSubmitting(false);\n\n return;\n }\n\n await formikProps.onSubmit(values, actions);\n };\n\n return (\n <Formik innerRef={formikRef} {...formikProps} onSubmit={handleSubmit}>\n {props => (\n <FormWrapper {...{ className, formProps, ref, scrollToErrorField }}>\n {typeof children === \"function\" ? children(props) : children}\n </FormWrapper>\n )}\n </Formik>\n );\n }\n);\n\nForm.displayName = \"Form\";\n\nForm.propTypes = {\n /**\n * Pass a function to render children or pass the children directly\n **/\n children: PropTypes.node,\n /**\n * Additional classnames to be passed to the form wrapper\n **/\n className: PropTypes.string,\n /**\n * Props to be passed to the Formik component like `initialValues`, `validationSchema`, `onSubmit`\n * Refer to the Formik docs for more details\n * https://formik.org/docs/api/formik\n **/\n formikProps: PropTypes.object,\n /**\n * Props to be passed to the form element like `className`.\n * Refer to the Formik docs for more details\n * https://formik.org/docs/api/form\n **/\n formProps: PropTypes.object,\n /**\n * Props to be passed for scrolling to error field on submit button click.\n **/\n scrollToErrorField: PropTypes.bool,\n};\n\nexport default Form;\n"],"names":["transformObjectToDotNotation","object","prefix","arguments","length","undefined","result","Object","entries","forEach","_ref","_ref2","_slicedToArray","key","value","nextKey","concat","is","push","apply","_toConsumableArray","getErrorFieldName","formikErrors","_transformObjectToDot","getFieldsWithServerError","status","keys","filter","fieldName","isPresent","scrollToError","formRef","errors","fieldErrorName","_getFieldsWithServerE","_getFieldsWithServerE2","fieldWithServerError","errorFieldName","errorFormElement","current","querySelector","scrollIntoView","behavior","block","ScrollToErrorField","_useFormikContext","useFormikContext","submitCount","isValid","useEffect","fieldsWithServerError","isEmpty","FormWrapper","forwardRef","ref","className","formProps","children","scrollToErrorField","validateForm","setErrors","setTouched","submitForm","formikBag","_objectWithoutProperties","_excluded","isFormDirty","dirty","isSubmitting","formRefForScrollToErrorField","useRef","handleKeyDown","useCallback","_asyncToGenerator","_regeneratorRuntime","mark","_callee","event","isEventFromEditorOrTextarea","fieldStatuses","wrap","_callee$","_context","prev","next","target","tagName","editor","abrupt","metaKey","preventDefault","shiftKey","sent","_objectSpread","t0","console","error","stop","_x","React","createElement","FormikForm","_extends","noValidate","onKeyDown","displayName","Form","formikProps","_ref$scrollToErrorFie","formikRef","handleSubmit","values","actions","_formikRef$current","setSubmitting","onSubmit","_x2","Formik","innerRef","props"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Form.js","sources":["../../../src/formik/Form/ScrollToErrorField/utils.js","../../../src/formik/Form/ScrollToErrorField/index.js","../../../src/formik/Form/FormWrapper.jsx","../../../src/formik/Form/index.jsx"],"sourcesContent":["import { isPresent } from \"neetocist\";\nimport { is } from \"ramda\";\n\nconst transformObjectToDotNotation = (object, prefix = \"\") => {\n const result = [];\n\n Object.entries(object).forEach(([key, value]) => {\n if (!value) return;\n const nextKey = prefix ? `${prefix}.${key}` : key;\n if (is(Object, value)) {\n result.push(...transformObjectToDotNotation(value, nextKey));\n } else {\n result.push(nextKey);\n }\n });\n\n return result;\n};\n\nconst getErrorFieldName = formikErrors =>\n transformObjectToDotNotation(formikErrors)?.[0];\n\nexport const getFieldsWithServerError = (status = {}) =>\n Object.keys(status).filter(fieldName => isPresent(status[fieldName]));\n\nexport const scrollToError = (formRef, errors, status) => {\n const fieldErrorName = getErrorFieldName(errors);\n const [fieldWithServerError] = getFieldsWithServerError(status);\n\n if (!fieldErrorName && !fieldWithServerError) return;\n\n const errorFieldName = fieldErrorName || fieldWithServerError;\n const errorFormElement = formRef.current.querySelector(\n `[name=\"${errorFieldName}\"]`\n );\n\n errorFormElement?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n};\n","import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isEmpty } from \"ramda\";\n\nimport { getFieldsWithServerError, scrollToError } from \"./utils\";\n\nconst ScrollToErrorField = ({ formRef }) => {\n const { submitCount, isValid, errors, status } = useFormikContext();\n\n useEffect(() => {\n const fieldsWithServerError = getFieldsWithServerError(status);\n if (!formRef.current || (isValid && isEmpty(fieldsWithServerError))) {\n return;\n }\n\n scrollToError(formRef, errors, status);\n }, [submitCount]);\n\n return null;\n};\n\nexport default ScrollToErrorField;\n","import React, { useCallback, forwardRef, useRef } from \"react\";\n\nimport { Form as FormikForm, useFormikContext } from \"formik\";\nimport PropTypes from \"prop-types\";\n\nimport ScrollToErrorField from \"./ScrollToErrorField\";\nimport {\n getFieldsWithServerError,\n scrollToError,\n} from \"./ScrollToErrorField/utils\";\n\nconst FormWrapper = forwardRef(\n ({ className, formProps, children, scrollToErrorField }, ref) => {\n const { validateForm, setErrors, setTouched, submitForm, ...formikBag } =\n useFormikContext();\n\n const { dirty: isFormDirty, isSubmitting, status } = formikBag;\n\n const formRefForScrollToErrorField = useRef();\n\n const formRef = ref || formRefForScrollToErrorField;\n\n const handleKeyDown = useCallback(\n async event => {\n const isEventFromEditorOrTextarea =\n event.target.tagName === \"TEXTAREA\" || event.target.editor;\n\n if (event.key !== \"Enter\") return;\n\n if (isEventFromEditorOrTextarea && !event.metaKey) return;\n\n event.preventDefault();\n\n if (event.shiftKey) return;\n\n if (!isFormDirty || isSubmitting) return;\n\n try {\n const errors = await validateForm();\n const fieldStatuses = getFieldsWithServerError(status);\n\n if (\n Object.keys(errors).length > 0 ||\n Object.keys(fieldStatuses).length > 0\n ) {\n setErrors(errors);\n setTouched({ ...errors, ...status });\n scrollToErrorField && scrollToError(formRef, errors, status);\n } else {\n submitForm();\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n \"An unhandled error was caught from validateForm()\",\n error\n );\n }\n },\n [\n validateForm,\n setErrors,\n setTouched,\n isFormDirty,\n isSubmitting,\n submitForm,\n status,\n ]\n );\n\n return (\n <FormikForm\n {...{ className }}\n noValidate\n data-testid=\"neeto-ui-form-wrapper\"\n ref={formRef}\n onKeyDown={handleKeyDown}\n {...formProps}\n >\n {scrollToErrorField && <ScrollToErrorField {...{ formRef }} />}\n {children}\n </FormikForm>\n );\n }\n);\n\nFormWrapper.displayName = \"FormWrapper\";\n\nFormWrapper.propTypes = {\n children: PropTypes.node,\n formProps: PropTypes.object,\n scrollToErrorField: PropTypes.bool,\n};\n\nexport default FormWrapper;\n","import React, { forwardRef, useRef } from \"react\";\n\nimport { Formik } from \"formik\";\nimport PropTypes from \"prop-types\";\n\nimport FormWrapper from \"./FormWrapper\";\nimport { getFieldsWithServerError } from \"./ScrollToErrorField/utils\";\n\nconst Form = forwardRef(\n (\n { className, children, formikProps, formProps, scrollToErrorField = false },\n ref\n ) => {\n const formikRef = useRef();\n\n const handleSubmit = (values, actions) => {\n const fieldsWithServerError = getFieldsWithServerError(\n formikRef.current?.status\n );\n\n if (fieldsWithServerError.length > 0) {\n actions.setSubmitting(false);\n\n return undefined;\n }\n\n return formikProps.onSubmit(values, actions);\n };\n\n return (\n <Formik innerRef={formikRef} {...formikProps} onSubmit={handleSubmit}>\n {props => (\n <FormWrapper {...{ className, formProps, ref, scrollToErrorField }}>\n {typeof children === \"function\" ? children(props) : children}\n </FormWrapper>\n )}\n </Formik>\n );\n }\n);\n\nForm.displayName = \"Form\";\n\nForm.propTypes = {\n /**\n * Pass a function to render children or pass the children directly\n **/\n children: PropTypes.node,\n /**\n * Additional classnames to be passed to the form wrapper\n **/\n className: PropTypes.string,\n /**\n * Props to be passed to the Formik component like `initialValues`, `validationSchema`, `onSubmit`\n * Refer to the Formik docs for more details\n * https://formik.org/docs/api/formik\n **/\n formikProps: PropTypes.object,\n /**\n * Props to be passed to the form element like `className`.\n * Refer to the Formik docs for more details\n * https://formik.org/docs/api/form\n **/\n formProps: PropTypes.object,\n /**\n * Props to be passed for scrolling to error field on submit button click.\n **/\n scrollToErrorField: PropTypes.bool,\n};\n\nexport default Form;\n"],"names":["transformObjectToDotNotation","object","prefix","arguments","length","undefined","result","Object","entries","forEach","_ref","_ref2","_slicedToArray","key","value","nextKey","concat","is","push","apply","_toConsumableArray","getErrorFieldName","formikErrors","_transformObjectToDot","getFieldsWithServerError","status","keys","filter","fieldName","isPresent","scrollToError","formRef","errors","fieldErrorName","_getFieldsWithServerE","_getFieldsWithServerE2","fieldWithServerError","errorFieldName","errorFormElement","current","querySelector","scrollIntoView","behavior","block","ScrollToErrorField","_useFormikContext","useFormikContext","submitCount","isValid","useEffect","fieldsWithServerError","isEmpty","FormWrapper","forwardRef","ref","className","formProps","children","scrollToErrorField","validateForm","setErrors","setTouched","submitForm","formikBag","_objectWithoutProperties","_excluded","isFormDirty","dirty","isSubmitting","formRefForScrollToErrorField","useRef","handleKeyDown","useCallback","_asyncToGenerator","_regeneratorRuntime","mark","_callee","event","isEventFromEditorOrTextarea","fieldStatuses","wrap","_callee$","_context","prev","next","target","tagName","editor","abrupt","metaKey","preventDefault","shiftKey","sent","_objectSpread","t0","console","error","stop","_x","React","createElement","FormikForm","_extends","noValidate","onKeyDown","displayName","Form","formikProps","_ref$scrollToErrorFie","formikRef","handleSubmit","values","actions","_formikRef$current","setSubmitting","onSubmit","Formik","innerRef","props"],"mappings":"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"}
|
package/dist/formik/Form.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/extends';
|
|
2
|
-
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
|
|
3
|
-
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
4
2
|
import React__default, { useEffect, forwardRef, useRef, useCallback } from 'react';
|
|
5
3
|
import { useFormikContext, Form as Form$1, Formik } from 'formik';
|
|
6
4
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
5
|
+
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
|
|
7
6
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
7
|
+
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
8
8
|
import { is, isEmpty } from 'ramda';
|
|
9
9
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
10
10
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
@@ -169,33 +169,15 @@ var Form = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
169
169
|
_ref$scrollToErrorFie = _ref.scrollToErrorField,
|
|
170
170
|
scrollToErrorField = _ref$scrollToErrorFie === void 0 ? false : _ref$scrollToErrorFie;
|
|
171
171
|
var formikRef = useRef();
|
|
172
|
-
var handleSubmit =
|
|
173
|
-
var
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
_context.next = 4;
|
|
182
|
-
break;
|
|
183
|
-
}
|
|
184
|
-
actions.setSubmitting(false);
|
|
185
|
-
return _context.abrupt("return");
|
|
186
|
-
case 4:
|
|
187
|
-
_context.next = 6;
|
|
188
|
-
return formikProps.onSubmit(values, actions);
|
|
189
|
-
case 6:
|
|
190
|
-
case "end":
|
|
191
|
-
return _context.stop();
|
|
192
|
-
}
|
|
193
|
-
}, _callee);
|
|
194
|
-
}));
|
|
195
|
-
return function handleSubmit(_x, _x2) {
|
|
196
|
-
return _ref2.apply(this, arguments);
|
|
197
|
-
};
|
|
198
|
-
}();
|
|
172
|
+
var handleSubmit = function handleSubmit(values, actions) {
|
|
173
|
+
var _formikRef$current;
|
|
174
|
+
var fieldsWithServerError = getFieldsWithServerError((_formikRef$current = formikRef.current) === null || _formikRef$current === void 0 ? void 0 : _formikRef$current.status);
|
|
175
|
+
if (fieldsWithServerError.length > 0) {
|
|
176
|
+
actions.setSubmitting(false);
|
|
177
|
+
return undefined;
|
|
178
|
+
}
|
|
179
|
+
return formikProps.onSubmit(values, actions);
|
|
180
|
+
};
|
|
199
181
|
return /*#__PURE__*/React__default.createElement(Formik, _extends({
|
|
200
182
|
innerRef: formikRef
|
|
201
183
|
}, formikProps, {
|
package/dist/formik/Form.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.js","sources":["../../src/formik/Form/ScrollToErrorField/utils.js","../../src/formik/Form/ScrollToErrorField/index.js","../../src/formik/Form/FormWrapper.jsx","../../src/formik/Form/index.jsx"],"sourcesContent":["import { isPresent } from \"neetocist\";\nimport { is } from \"ramda\";\n\nconst transformObjectToDotNotation = (object, prefix = \"\") => {\n const result = [];\n\n Object.entries(object).forEach(([key, value]) => {\n if (!value) return;\n const nextKey = prefix ? `${prefix}.${key}` : key;\n if (is(Object, value)) {\n result.push(...transformObjectToDotNotation(value, nextKey));\n } else {\n result.push(nextKey);\n }\n });\n\n return result;\n};\n\nconst getErrorFieldName = formikErrors =>\n transformObjectToDotNotation(formikErrors)?.[0];\n\nexport const getFieldsWithServerError = (status = {}) =>\n Object.keys(status).filter(fieldName => isPresent(status[fieldName]));\n\nexport const scrollToError = (formRef, errors, status) => {\n const fieldErrorName = getErrorFieldName(errors);\n const [fieldWithServerError] = getFieldsWithServerError(status);\n\n if (!fieldErrorName && !fieldWithServerError) return;\n\n const errorFieldName = fieldErrorName || fieldWithServerError;\n const errorFormElement = formRef.current.querySelector(\n `[name=\"${errorFieldName}\"]`\n );\n\n errorFormElement?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n};\n","import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isEmpty } from \"ramda\";\n\nimport { getFieldsWithServerError, scrollToError } from \"./utils\";\n\nconst ScrollToErrorField = ({ formRef }) => {\n const { submitCount, isValid, errors, status } = useFormikContext();\n\n useEffect(() => {\n const fieldsWithServerError = getFieldsWithServerError(status);\n if (!formRef.current || (isValid && isEmpty(fieldsWithServerError))) {\n return;\n }\n\n scrollToError(formRef, errors, status);\n }, [submitCount]);\n\n return null;\n};\n\nexport default ScrollToErrorField;\n","import React, { useCallback, forwardRef, useRef } from \"react\";\n\nimport { Form as FormikForm, useFormikContext } from \"formik\";\nimport PropTypes from \"prop-types\";\n\nimport ScrollToErrorField from \"./ScrollToErrorField\";\nimport {\n getFieldsWithServerError,\n scrollToError,\n} from \"./ScrollToErrorField/utils\";\n\nconst FormWrapper = forwardRef(\n ({ className, formProps, children, scrollToErrorField }, ref) => {\n const { validateForm, setErrors, setTouched, submitForm, ...formikBag } =\n useFormikContext();\n\n const { dirty: isFormDirty, isSubmitting, status } = formikBag;\n\n const formRefForScrollToErrorField = useRef();\n\n const formRef = ref || formRefForScrollToErrorField;\n\n const handleKeyDown = useCallback(\n async event => {\n const isEventFromEditorOrTextarea =\n event.target.tagName === \"TEXTAREA\" || event.target.editor;\n\n if (event.key !== \"Enter\") return;\n\n if (isEventFromEditorOrTextarea && !event.metaKey) return;\n\n event.preventDefault();\n\n if (event.shiftKey) return;\n\n if (!isFormDirty || isSubmitting) return;\n\n try {\n const errors = await validateForm();\n const fieldStatuses = getFieldsWithServerError(status);\n\n if (\n Object.keys(errors).length > 0 ||\n Object.keys(fieldStatuses).length > 0\n ) {\n setErrors(errors);\n setTouched({ ...errors, ...status });\n scrollToErrorField && scrollToError(formRef, errors, status);\n } else {\n submitForm();\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n \"An unhandled error was caught from validateForm()\",\n error\n );\n }\n },\n [\n validateForm,\n setErrors,\n setTouched,\n isFormDirty,\n isSubmitting,\n submitForm,\n status,\n ]\n );\n\n return (\n <FormikForm\n {...{ className }}\n noValidate\n data-testid=\"neeto-ui-form-wrapper\"\n ref={formRef}\n onKeyDown={handleKeyDown}\n {...formProps}\n >\n {scrollToErrorField && <ScrollToErrorField {...{ formRef }} />}\n {children}\n </FormikForm>\n );\n }\n);\n\nFormWrapper.displayName = \"FormWrapper\";\n\nFormWrapper.propTypes = {\n children: PropTypes.node,\n formProps: PropTypes.object,\n scrollToErrorField: PropTypes.bool,\n};\n\nexport default FormWrapper;\n","import React, { forwardRef, useRef } from \"react\";\n\nimport { Formik } from \"formik\";\nimport PropTypes from \"prop-types\";\n\nimport FormWrapper from \"./FormWrapper\";\nimport { getFieldsWithServerError } from \"./ScrollToErrorField/utils\";\n\nconst Form = forwardRef(\n (\n { className, children, formikProps, formProps, scrollToErrorField = false },\n ref\n ) => {\n const formikRef = useRef();\n\n const handleSubmit = async (values, actions) => {\n const fieldsWithServerError = getFieldsWithServerError(\n formikRef.current?.status\n );\n\n if (fieldsWithServerError.length > 0) {\n actions.setSubmitting(false);\n\n return;\n }\n\n await formikProps.onSubmit(values, actions);\n };\n\n return (\n <Formik innerRef={formikRef} {...formikProps} onSubmit={handleSubmit}>\n {props => (\n <FormWrapper {...{ className, formProps, ref, scrollToErrorField }}>\n {typeof children === \"function\" ? children(props) : children}\n </FormWrapper>\n )}\n </Formik>\n );\n }\n);\n\nForm.displayName = \"Form\";\n\nForm.propTypes = {\n /**\n * Pass a function to render children or pass the children directly\n **/\n children: PropTypes.node,\n /**\n * Additional classnames to be passed to the form wrapper\n **/\n className: PropTypes.string,\n /**\n * Props to be passed to the Formik component like `initialValues`, `validationSchema`, `onSubmit`\n * Refer to the Formik docs for more details\n * https://formik.org/docs/api/formik\n **/\n formikProps: PropTypes.object,\n /**\n * Props to be passed to the form element like `className`.\n * Refer to the Formik docs for more details\n * https://formik.org/docs/api/form\n **/\n formProps: PropTypes.object,\n /**\n * Props to be passed for scrolling to error field on submit button click.\n **/\n scrollToErrorField: PropTypes.bool,\n};\n\nexport default Form;\n"],"names":["transformObjectToDotNotation","object","prefix","arguments","length","undefined","result","Object","entries","forEach","_ref","_ref2","_slicedToArray","key","value","nextKey","concat","is","push","apply","_toConsumableArray","getErrorFieldName","formikErrors","_transformObjectToDot","getFieldsWithServerError","status","keys","filter","fieldName","isPresent","scrollToError","formRef","errors","fieldErrorName","_getFieldsWithServerE","_getFieldsWithServerE2","fieldWithServerError","errorFieldName","errorFormElement","current","querySelector","scrollIntoView","behavior","block","ScrollToErrorField","_useFormikContext","useFormikContext","submitCount","isValid","useEffect","fieldsWithServerError","isEmpty","FormWrapper","forwardRef","ref","className","formProps","children","scrollToErrorField","validateForm","setErrors","setTouched","submitForm","formikBag","_objectWithoutProperties","_excluded","isFormDirty","dirty","isSubmitting","formRefForScrollToErrorField","useRef","handleKeyDown","useCallback","_asyncToGenerator","_regeneratorRuntime","mark","_callee","event","isEventFromEditorOrTextarea","fieldStatuses","wrap","_callee$","_context","prev","next","target","tagName","editor","abrupt","metaKey","preventDefault","shiftKey","sent","_objectSpread","t0","console","error","stop","_x","React","createElement","FormikForm","_extends","noValidate","onKeyDown","displayName","Form","formikProps","_ref$scrollToErrorFie","formikRef","handleSubmit","values","actions","_formikRef$current","setSubmitting","onSubmit","_x2","Formik","innerRef","props"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Form.js","sources":["../../src/formik/Form/ScrollToErrorField/utils.js","../../src/formik/Form/ScrollToErrorField/index.js","../../src/formik/Form/FormWrapper.jsx","../../src/formik/Form/index.jsx"],"sourcesContent":["import { isPresent } from \"neetocist\";\nimport { is } from \"ramda\";\n\nconst transformObjectToDotNotation = (object, prefix = \"\") => {\n const result = [];\n\n Object.entries(object).forEach(([key, value]) => {\n if (!value) return;\n const nextKey = prefix ? `${prefix}.${key}` : key;\n if (is(Object, value)) {\n result.push(...transformObjectToDotNotation(value, nextKey));\n } else {\n result.push(nextKey);\n }\n });\n\n return result;\n};\n\nconst getErrorFieldName = formikErrors =>\n transformObjectToDotNotation(formikErrors)?.[0];\n\nexport const getFieldsWithServerError = (status = {}) =>\n Object.keys(status).filter(fieldName => isPresent(status[fieldName]));\n\nexport const scrollToError = (formRef, errors, status) => {\n const fieldErrorName = getErrorFieldName(errors);\n const [fieldWithServerError] = getFieldsWithServerError(status);\n\n if (!fieldErrorName && !fieldWithServerError) return;\n\n const errorFieldName = fieldErrorName || fieldWithServerError;\n const errorFormElement = formRef.current.querySelector(\n `[name=\"${errorFieldName}\"]`\n );\n\n errorFormElement?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n};\n","import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isEmpty } from \"ramda\";\n\nimport { getFieldsWithServerError, scrollToError } from \"./utils\";\n\nconst ScrollToErrorField = ({ formRef }) => {\n const { submitCount, isValid, errors, status } = useFormikContext();\n\n useEffect(() => {\n const fieldsWithServerError = getFieldsWithServerError(status);\n if (!formRef.current || (isValid && isEmpty(fieldsWithServerError))) {\n return;\n }\n\n scrollToError(formRef, errors, status);\n }, [submitCount]);\n\n return null;\n};\n\nexport default ScrollToErrorField;\n","import React, { useCallback, forwardRef, useRef } from \"react\";\n\nimport { Form as FormikForm, useFormikContext } from \"formik\";\nimport PropTypes from \"prop-types\";\n\nimport ScrollToErrorField from \"./ScrollToErrorField\";\nimport {\n getFieldsWithServerError,\n scrollToError,\n} from \"./ScrollToErrorField/utils\";\n\nconst FormWrapper = forwardRef(\n ({ className, formProps, children, scrollToErrorField }, ref) => {\n const { validateForm, setErrors, setTouched, submitForm, ...formikBag } =\n useFormikContext();\n\n const { dirty: isFormDirty, isSubmitting, status } = formikBag;\n\n const formRefForScrollToErrorField = useRef();\n\n const formRef = ref || formRefForScrollToErrorField;\n\n const handleKeyDown = useCallback(\n async event => {\n const isEventFromEditorOrTextarea =\n event.target.tagName === \"TEXTAREA\" || event.target.editor;\n\n if (event.key !== \"Enter\") return;\n\n if (isEventFromEditorOrTextarea && !event.metaKey) return;\n\n event.preventDefault();\n\n if (event.shiftKey) return;\n\n if (!isFormDirty || isSubmitting) return;\n\n try {\n const errors = await validateForm();\n const fieldStatuses = getFieldsWithServerError(status);\n\n if (\n Object.keys(errors).length > 0 ||\n Object.keys(fieldStatuses).length > 0\n ) {\n setErrors(errors);\n setTouched({ ...errors, ...status });\n scrollToErrorField && scrollToError(formRef, errors, status);\n } else {\n submitForm();\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n \"An unhandled error was caught from validateForm()\",\n error\n );\n }\n },\n [\n validateForm,\n setErrors,\n setTouched,\n isFormDirty,\n isSubmitting,\n submitForm,\n status,\n ]\n );\n\n return (\n <FormikForm\n {...{ className }}\n noValidate\n data-testid=\"neeto-ui-form-wrapper\"\n ref={formRef}\n onKeyDown={handleKeyDown}\n {...formProps}\n >\n {scrollToErrorField && <ScrollToErrorField {...{ formRef }} />}\n {children}\n </FormikForm>\n );\n }\n);\n\nFormWrapper.displayName = \"FormWrapper\";\n\nFormWrapper.propTypes = {\n children: PropTypes.node,\n formProps: PropTypes.object,\n scrollToErrorField: PropTypes.bool,\n};\n\nexport default FormWrapper;\n","import React, { forwardRef, useRef } from \"react\";\n\nimport { Formik } from \"formik\";\nimport PropTypes from \"prop-types\";\n\nimport FormWrapper from \"./FormWrapper\";\nimport { getFieldsWithServerError } from \"./ScrollToErrorField/utils\";\n\nconst Form = forwardRef(\n (\n { className, children, formikProps, formProps, scrollToErrorField = false },\n ref\n ) => {\n const formikRef = useRef();\n\n const handleSubmit = (values, actions) => {\n const fieldsWithServerError = getFieldsWithServerError(\n formikRef.current?.status\n );\n\n if (fieldsWithServerError.length > 0) {\n actions.setSubmitting(false);\n\n return undefined;\n }\n\n return formikProps.onSubmit(values, actions);\n };\n\n return (\n <Formik innerRef={formikRef} {...formikProps} onSubmit={handleSubmit}>\n {props => (\n <FormWrapper {...{ className, formProps, ref, scrollToErrorField }}>\n {typeof children === \"function\" ? children(props) : children}\n </FormWrapper>\n )}\n </Formik>\n );\n }\n);\n\nForm.displayName = \"Form\";\n\nForm.propTypes = {\n /**\n * Pass a function to render children or pass the children directly\n **/\n children: PropTypes.node,\n /**\n * Additional classnames to be passed to the form wrapper\n **/\n className: PropTypes.string,\n /**\n * Props to be passed to the Formik component like `initialValues`, `validationSchema`, `onSubmit`\n * Refer to the Formik docs for more details\n * https://formik.org/docs/api/formik\n **/\n formikProps: PropTypes.object,\n /**\n * Props to be passed to the form element like `className`.\n * Refer to the Formik docs for more details\n * https://formik.org/docs/api/form\n **/\n formProps: PropTypes.object,\n /**\n * Props to be passed for scrolling to error field on submit button click.\n **/\n scrollToErrorField: PropTypes.bool,\n};\n\nexport default Form;\n"],"names":["transformObjectToDotNotation","object","prefix","arguments","length","undefined","result","Object","entries","forEach","_ref","_ref2","_slicedToArray","key","value","nextKey","concat","is","push","apply","_toConsumableArray","getErrorFieldName","formikErrors","_transformObjectToDot","getFieldsWithServerError","status","keys","filter","fieldName","isPresent","scrollToError","formRef","errors","fieldErrorName","_getFieldsWithServerE","_getFieldsWithServerE2","fieldWithServerError","errorFieldName","errorFormElement","current","querySelector","scrollIntoView","behavior","block","ScrollToErrorField","_useFormikContext","useFormikContext","submitCount","isValid","useEffect","fieldsWithServerError","isEmpty","FormWrapper","forwardRef","ref","className","formProps","children","scrollToErrorField","validateForm","setErrors","setTouched","submitForm","formikBag","_objectWithoutProperties","_excluded","isFormDirty","dirty","isSubmitting","formRefForScrollToErrorField","useRef","handleKeyDown","useCallback","_asyncToGenerator","_regeneratorRuntime","mark","_callee","event","isEventFromEditorOrTextarea","fieldStatuses","wrap","_callee$","_context","prev","next","target","tagName","editor","abrupt","metaKey","preventDefault","shiftKey","sent","_objectSpread","t0","console","error","stop","_x","React","createElement","FormikForm","_extends","noValidate","onKeyDown","displayName","Form","formikProps","_ref$scrollToErrorFie","formikRef","handleSubmit","values","actions","_formikRef$current","setSubmitting","onSubmit","Formik","innerRef","props"],"mappings":"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"}
|