@itcase/forms 1.0.11 → 1.0.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.
@@ -30,3 +30,12 @@
30
30
  }
31
31
  }
32
32
  }
33
+ .form-field {
34
+ &_state {
35
+ &_hidden {
36
+ visibility: hidden;
37
+ position: absolute;
38
+ z-index: -1;
39
+ }
40
+ }
41
+ }
@@ -548,6 +548,7 @@ function FieldWrapperBase(props) {
548
548
  metaValid = props.metaValid,
549
549
  set = props.set,
550
550
  type = props.type,
551
+ isHidden = props.isHidden,
551
552
  Tag = props.tag,
552
553
  dataTour = props.dataTour,
553
554
  showErrorsOnSubmit = props.showErrorsOnSubmit;
@@ -601,7 +602,7 @@ function FieldWrapperBase(props) {
601
602
  var _useStyles = useStyles.useStyles(props),
602
603
  formFieldStyles = _useStyles.styles;
603
604
  return /*#__PURE__*/React__default.default.createElement(Tag, {
604
- className: clsx__default.default(formFieldClass, 'form__item', 'form-field', type && "form-field_type_" + type, set && "form-field_set_" + set, sizeClass, fillClass, shapeClass, directionClass, widthClass),
605
+ className: clsx__default.default(formFieldClass, 'form__item', 'form-field', type && "form-field_type_" + type, set && "form-field_set_" + set, sizeClass, fillClass, shapeClass, isHidden && "form-field_state_hidden", directionClass, widthClass),
605
606
  "data-tour": dataTour,
606
607
  style: formFieldStyles
607
608
  }, before, label && /*#__PURE__*/React__default.default.createElement("div", {
@@ -1876,7 +1877,8 @@ RadioGroup.propTypes = {
1876
1877
  onChange: PropTypes__default.default.func
1877
1878
  };
1878
1879
 
1879
- var SegmentedField = /*#__PURE__*/React__default.default.memo(function SegmentedField(props) {
1880
+ // const SegmentedField = React.memo(
1881
+ function SegmentedField(props) {
1880
1882
  var options = props.options,
1881
1883
  isRequired = props.isRequired,
1882
1884
  name = props.name,
@@ -1884,21 +1886,27 @@ var SegmentedField = /*#__PURE__*/React__default.default.memo(function Segmented
1884
1886
  inputProps = props.inputProps;
1885
1887
  var _useForm = reactFinalForm.useForm(),
1886
1888
  change = _useForm.change;
1887
- var _useState = React.useState({
1888
- value: null,
1889
- label: null
1890
- }),
1891
- activeOption = _useState[0],
1892
- setActiveOption = _useState[1];
1893
- var setActiveSegment = React.useCallback(function (option) {
1894
- setActiveOption(option);
1895
- change(name, option.value);
1896
- }, [change]);
1897
1889
  return /*#__PURE__*/React__default.default.createElement(reactFinalForm.Field, {
1898
1890
  name: name
1899
1891
  }, function (_ref) {
1900
1892
  var input = _ref.input,
1901
1893
  meta = _ref.meta;
1894
+ var activeOption = React.useMemo(function () {
1895
+ var emptyOption = {
1896
+ value: null,
1897
+ label: null
1898
+ };
1899
+ if (input.value) {
1900
+ var currentOption = options.find(function (option) {
1901
+ return option.value === input.value;
1902
+ });
1903
+ return currentOption || emptyOption;
1904
+ }
1905
+ return emptyOption;
1906
+ }, [input.value]);
1907
+ var setActiveSegment = React.useCallback(function (option) {
1908
+ change(name, option.value);
1909
+ }, [change]);
1902
1910
  return /*#__PURE__*/React__default.default.createElement(FieldWrapper, Object.assign({
1903
1911
  className: clsx__default.default('form-field_type_segmented', 'form__item_type_segmented'),
1904
1912
  fieldClassName: "form-segmented",
@@ -1918,7 +1926,9 @@ var SegmentedField = /*#__PURE__*/React__default.default.memo(function Segmented
1918
1926
  activeSegment: activeOption
1919
1927
  }, inputProps)));
1920
1928
  });
1921
- });
1929
+ }
1930
+ // )
1931
+
1922
1932
  SegmentedField.propTypes = {
1923
1933
  options: PropTypes__default.default.array.isRequired,
1924
1934
  name: PropTypes__default.default.string.isRequired,
@@ -538,6 +538,7 @@ function FieldWrapperBase(props) {
538
538
  metaValid = props.metaValid,
539
539
  set = props.set,
540
540
  type = props.type,
541
+ isHidden = props.isHidden,
541
542
  Tag = props.tag,
542
543
  dataTour = props.dataTour,
543
544
  showErrorsOnSubmit = props.showErrorsOnSubmit;
@@ -591,7 +592,7 @@ function FieldWrapperBase(props) {
591
592
  var _useStyles = useStyles(props),
592
593
  formFieldStyles = _useStyles.styles;
593
594
  return /*#__PURE__*/React.createElement(Tag, {
594
- className: clsx(formFieldClass, 'form__item', 'form-field', type && "form-field_type_" + type, set && "form-field_set_" + set, sizeClass, fillClass, shapeClass, directionClass, widthClass),
595
+ className: clsx(formFieldClass, 'form__item', 'form-field', type && "form-field_type_" + type, set && "form-field_set_" + set, sizeClass, fillClass, shapeClass, isHidden && "form-field_state_hidden", directionClass, widthClass),
595
596
  "data-tour": dataTour,
596
597
  style: formFieldStyles
597
598
  }, before, label && /*#__PURE__*/React.createElement("div", {
@@ -1866,7 +1867,8 @@ RadioGroup.propTypes = {
1866
1867
  onChange: PropTypes.func
1867
1868
  };
1868
1869
 
1869
- var SegmentedField = /*#__PURE__*/React.memo(function SegmentedField(props) {
1870
+ // const SegmentedField = React.memo(
1871
+ function SegmentedField(props) {
1870
1872
  var options = props.options,
1871
1873
  isRequired = props.isRequired,
1872
1874
  name = props.name,
@@ -1874,21 +1876,27 @@ var SegmentedField = /*#__PURE__*/React.memo(function SegmentedField(props) {
1874
1876
  inputProps = props.inputProps;
1875
1877
  var _useForm = useForm(),
1876
1878
  change = _useForm.change;
1877
- var _useState = useState({
1878
- value: null,
1879
- label: null
1880
- }),
1881
- activeOption = _useState[0],
1882
- setActiveOption = _useState[1];
1883
- var setActiveSegment = useCallback(function (option) {
1884
- setActiveOption(option);
1885
- change(name, option.value);
1886
- }, [change]);
1887
1879
  return /*#__PURE__*/React.createElement(Field, {
1888
1880
  name: name
1889
1881
  }, function (_ref) {
1890
1882
  var input = _ref.input,
1891
1883
  meta = _ref.meta;
1884
+ var activeOption = useMemo(function () {
1885
+ var emptyOption = {
1886
+ value: null,
1887
+ label: null
1888
+ };
1889
+ if (input.value) {
1890
+ var currentOption = options.find(function (option) {
1891
+ return option.value === input.value;
1892
+ });
1893
+ return currentOption || emptyOption;
1894
+ }
1895
+ return emptyOption;
1896
+ }, [input.value]);
1897
+ var setActiveSegment = useCallback(function (option) {
1898
+ change(name, option.value);
1899
+ }, [change]);
1892
1900
  return /*#__PURE__*/React.createElement(FieldWrapper, Object.assign({
1893
1901
  className: clsx('form-field_type_segmented', 'form__item_type_segmented'),
1894
1902
  fieldClassName: "form-segmented",
@@ -1908,7 +1916,9 @@ var SegmentedField = /*#__PURE__*/React.memo(function SegmentedField(props) {
1908
1916
  activeSegment: activeOption
1909
1917
  }, inputProps)));
1910
1918
  });
1911
- });
1919
+ }
1920
+ // )
1921
+
1912
1922
  SegmentedField.propTypes = {
1913
1923
  options: PropTypes.array.isRequired,
1914
1924
  name: PropTypes.string.isRequired,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itcase/forms",
3
- "version": "1.0.11",
3
+ "version": "1.0.12",
4
4
  "description": "Forms fields, inputs, etc.",
5
5
  "keywords": [
6
6
  "forms",