@trackunit/react-form-components 0.1.10 → 0.1.12
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/index.cjs.js +10 -4
- package/index.esm.js +10 -4
- package/package.json +1 -1
package/index.cjs.js
CHANGED
|
@@ -973,11 +973,11 @@ const validateNumber = (number, required = false, min, max) => {
|
|
|
973
973
|
return "INVALID_NUMBER";
|
|
974
974
|
}
|
|
975
975
|
// if the value is empty and not required
|
|
976
|
-
if (!
|
|
976
|
+
if (!parsedNumber && !required && !min && !max && !!number) {
|
|
977
977
|
return undefined;
|
|
978
978
|
}
|
|
979
979
|
// if the value is empty and required
|
|
980
|
-
if (
|
|
980
|
+
if (required && !!number === false) {
|
|
981
981
|
return "REQUIRED";
|
|
982
982
|
}
|
|
983
983
|
// if the value is not in between min and max
|
|
@@ -1016,7 +1016,7 @@ NumberInput.displayName = "NumberInput";
|
|
|
1016
1016
|
*
|
|
1017
1017
|
* _**Do not use**_ this fields for non-serialized numbers. Use TextField instead.
|
|
1018
1018
|
*/
|
|
1019
|
-
const NumberField = React.forwardRef(({ label, id, tip, helpText, errorMessage, helpAddon, isInvalid, maxLength, className, value, dataTestId, defaultValue, onBlur, ...rest }, ref) => {
|
|
1019
|
+
const NumberField = React.forwardRef(({ label, id, tip, helpText, errorMessage, helpAddon, isInvalid, maxLength, className, value, dataTestId, defaultValue, onBlur, onChange, ...rest }, ref) => {
|
|
1020
1020
|
const htmlForId = id ? id : "numberField-" + uuid.v4();
|
|
1021
1021
|
const [t] = useTranslation();
|
|
1022
1022
|
const [innerValue, setInnerValue] = React.useState(() => {
|
|
@@ -1048,7 +1048,13 @@ const NumberField = React.forwardRef(({ label, id, tip, helpText, errorMessage,
|
|
|
1048
1048
|
}
|
|
1049
1049
|
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
1050
1050
|
}, [errorMessage, onBlur, rest.max, rest.min, rest.required]);
|
|
1051
|
-
|
|
1051
|
+
const handleChange = React.useCallback((event) => {
|
|
1052
|
+
setInnerValue(event.target.value);
|
|
1053
|
+
if (onChange) {
|
|
1054
|
+
onChange(event);
|
|
1055
|
+
}
|
|
1056
|
+
}, [onChange]);
|
|
1057
|
+
return (jsxRuntime.jsx(FormGroup, { dataTestId: dataTestId ? `${dataTestId}-FormGroup` : undefined, helpAddon: helpAddon, helpText: (renderAsInvalid && error) || helpText, htmlFor: htmlForId, isInvalid: renderAsInvalid, label: label, required: rest.required, tip: tip, children: jsxRuntime.jsx(NumberInput, { "aria-labelledby": htmlForId + "-label", id: htmlForId, isInvalid: renderAsInvalid, maxLength: maxLength, onBlur: handleBlur, onChange: handleChange, ref: ref, value: value, ...rest, className: className, dataTestId: dataTestId }) }));
|
|
1052
1058
|
});
|
|
1053
1059
|
NumberField.displayName = "NumberField";
|
|
1054
1060
|
|
package/index.esm.js
CHANGED
|
@@ -954,11 +954,11 @@ const validateNumber = (number, required = false, min, max) => {
|
|
|
954
954
|
return "INVALID_NUMBER";
|
|
955
955
|
}
|
|
956
956
|
// if the value is empty and not required
|
|
957
|
-
if (!
|
|
957
|
+
if (!parsedNumber && !required && !min && !max && !!number) {
|
|
958
958
|
return undefined;
|
|
959
959
|
}
|
|
960
960
|
// if the value is empty and required
|
|
961
|
-
if (
|
|
961
|
+
if (required && !!number === false) {
|
|
962
962
|
return "REQUIRED";
|
|
963
963
|
}
|
|
964
964
|
// if the value is not in between min and max
|
|
@@ -997,7 +997,7 @@ NumberInput.displayName = "NumberInput";
|
|
|
997
997
|
*
|
|
998
998
|
* _**Do not use**_ this fields for non-serialized numbers. Use TextField instead.
|
|
999
999
|
*/
|
|
1000
|
-
const NumberField = forwardRef(({ label, id, tip, helpText, errorMessage, helpAddon, isInvalid, maxLength, className, value, dataTestId, defaultValue, onBlur, ...rest }, ref) => {
|
|
1000
|
+
const NumberField = forwardRef(({ label, id, tip, helpText, errorMessage, helpAddon, isInvalid, maxLength, className, value, dataTestId, defaultValue, onBlur, onChange, ...rest }, ref) => {
|
|
1001
1001
|
const htmlForId = id ? id : "numberField-" + v4();
|
|
1002
1002
|
const [t] = useTranslation();
|
|
1003
1003
|
const [innerValue, setInnerValue] = useState(() => {
|
|
@@ -1029,7 +1029,13 @@ const NumberField = forwardRef(({ label, id, tip, helpText, errorMessage, helpAd
|
|
|
1029
1029
|
}
|
|
1030
1030
|
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
1031
1031
|
}, [errorMessage, onBlur, rest.max, rest.min, rest.required]);
|
|
1032
|
-
|
|
1032
|
+
const handleChange = useCallback((event) => {
|
|
1033
|
+
setInnerValue(event.target.value);
|
|
1034
|
+
if (onChange) {
|
|
1035
|
+
onChange(event);
|
|
1036
|
+
}
|
|
1037
|
+
}, [onChange]);
|
|
1038
|
+
return (jsx(FormGroup, { dataTestId: dataTestId ? `${dataTestId}-FormGroup` : undefined, helpAddon: helpAddon, helpText: (renderAsInvalid && error) || helpText, htmlFor: htmlForId, isInvalid: renderAsInvalid, label: label, required: rest.required, tip: tip, children: jsx(NumberInput, { "aria-labelledby": htmlForId + "-label", id: htmlForId, isInvalid: renderAsInvalid, maxLength: maxLength, onBlur: handleBlur, onChange: handleChange, ref: ref, value: value, ...rest, className: className, dataTestId: dataTestId }) }));
|
|
1033
1039
|
});
|
|
1034
1040
|
NumberField.displayName = "NumberField";
|
|
1035
1041
|
|