aport-tools 4.4.23 → 4.4.24

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/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! aport-tools v4.4.23 | ISC */
1
+ /*! aport-tools v4.4.24 | ISC */
2
2
  'use strict';
3
3
 
4
4
  var React = require('react');
@@ -539,17 +539,19 @@ var Input = function Input(_a) {
539
539
  label = _a.label,
540
540
  inputType = _a.inputType,
541
541
  firstValue = _a.firstValue,
542
+ _b = _a.editable,
543
+ editable = _b === void 0 ? true : _b,
542
544
  style = _a.style,
543
- rest = __rest(_a, ["name", "label", "inputType", "firstValue", "style"]);
544
- var _b = useFormContext(),
545
- formValues = _b.formValues,
546
- setFormValue = _b.setFormValue,
547
- formErrors = _b.errors;
545
+ rest = __rest(_a, ["name", "label", "inputType", "firstValue", "editable", "style"]);
546
+ var _c = useFormContext(),
547
+ formValues = _c.formValues,
548
+ setFormValue = _c.setFormValue,
549
+ formErrors = _c.errors;
548
550
  var theme = React.useContext(aportThemes.ThemeContext).theme;
549
551
  var colors = theme.colors;
550
- var _c = React.useState(""),
551
- internalValue = _c[0],
552
- setInternalValue = _c[1];
552
+ var _d = React.useState(""),
553
+ internalValue = _d[0],
554
+ setInternalValue = _d[1];
553
555
  var isFirstRender = React.useRef(true); // Track the first render
554
556
  // Initialize the internal value when `firstValue` changes or on first render
555
557
  React.useEffect(function () {
@@ -610,6 +612,7 @@ var Input = function Input(_a) {
610
612
  value: internalValue,
611
613
  onChangeText: handleChange,
612
614
  placeholder: label,
615
+ editable: editable,
613
616
  placeholderTextColor: colors.placeHolder.hex
614
617
  }, rest)), formErrors[name] && formErrors[name].length > 0 && (/*#__PURE__*/React.createElement(ErrorList, {
615
618
  errors: formErrors[name]
@@ -637,26 +640,32 @@ var TextArea = function TextArea(_a) {
637
640
  label = _a.label;
638
641
  _a.errors;
639
642
  var firstValue = _a.firstValue,
643
+ _b = _a.editable,
644
+ editable = _b === void 0 ? true : _b,
640
645
  style = _a.style,
641
- rest = __rest(_a, ["name", "label", "errors", "firstValue", "style"]);
642
- var _b = useFormContext(),
643
- formValues = _b.formValues,
644
- setFormValue = _b.setFormValue,
645
- formErrors = _b.errors;
646
+ rest = __rest(_a, ["name", "label", "errors", "firstValue", "editable", "style"]);
647
+ var _c = useFormContext(),
648
+ formValues = _c.formValues,
649
+ setFormValue = _c.setFormValue,
650
+ formErrors = _c.errors;
646
651
  var theme = React.useContext(aportThemes.ThemeContext).theme;
647
652
  var colors = theme.colors;
648
- var _c = React.useState(""),
649
- internalValue = _c[0],
650
- setInternalValue = _c[1];
651
- // Initialize the internal value based on `firstValue` or `formValues`
653
+ var _d = React.useState(""),
654
+ internalValue = _d[0],
655
+ setInternalValue = _d[1];
656
+ var isFirstRender = React.useRef(true); // Track the first render
657
+ // Initialize the internal value when `firstValue` changes or on first render
652
658
  React.useEffect(function () {
653
- if (firstValue) {
654
- setInternalValue(firstValue);
655
- setFormValue(name, firstValue);
656
- } else {
657
- setInternalValue(formValues[name] || "");
659
+ if (isFirstRender.current) {
660
+ isFirstRender.current = false;
661
+ if (firstValue !== undefined) {
662
+ setInternalValue(firstValue);
663
+ setFormValue(name, firstValue);
664
+ } else {
665
+ setInternalValue(formValues[name] || "");
666
+ }
658
667
  }
659
- }, [firstValue, formValues[name]]);
668
+ }, [firstValue]);
660
669
  var handleChange = function handleChange(text) {
661
670
  setInternalValue(text);
662
671
  setFormValue(name, text);
@@ -678,6 +687,7 @@ var TextArea = function TextArea(_a) {
678
687
  placeholder: label,
679
688
  placeholderTextColor: colors.placeHolder.hex,
680
689
  multiline: true,
690
+ editable: editable,
681
691
  numberOfLines: 4,
682
692
  textAlignVertical: "top"
683
693
  }, rest)), formErrors[name] && formErrors[name].length > 0 && (/*#__PURE__*/React.createElement(ErrorList, {
@@ -781,16 +791,21 @@ var InputList = function InputList(_a) {
781
791
  var _l = React.useState(multi ? initialSelections : initialSelections[0] || null),
782
792
  selectedOptions = _l[0],
783
793
  setSelectedOptions = _l[1];
784
- // Update form value on mount if firstValue is provided
794
+ // Update form value when firstValue changes
785
795
  React.useEffect(function () {
786
- if (firstValue && selectedOptions !== firstValue) {
787
- setSelectedOptions(firstValue); // Only update if necessary
796
+ if (multi) {
797
+ setSelectedOptions(initialSelections);
798
+ setFormValue(name, initialSelections);
799
+ } else {
800
+ var singleValue = initialSelections[0] || null;
801
+ setSelectedOptions(singleValue);
802
+ setFormValue(name, singleValue);
788
803
  }
789
- }, [firstValue, selectedOptions]);
804
+ }, [firstValue, multi, initialSelections]);
805
+ // Handle option selection
790
806
  var handleSelectOption = function handleSelectOption(option) {
791
807
  var updatedSelections;
792
808
  if (multi) {
793
- // Ensure selectedOptions is treated as an array
794
809
  var selectedArray = Array.isArray(selectedOptions) ? selectedOptions : [];
795
810
  var alreadySelected = selectedArray.some(function (opt) {
796
811
  return opt.id === option.id;
@@ -803,15 +818,12 @@ var InputList = function InputList(_a) {
803
818
  }
804
819
  setFormValue(name, updatedSelections);
805
820
  } else {
806
- // Handle single-selection case
807
821
  updatedSelections = option;
808
822
  setFormValue(name, option);
809
823
  if (closeOnSelect) setIsDropdownVisible(false);
810
824
  }
811
- // Trigger onChange callback with the updated selection
812
- if (onChange) {
813
- onChange(updatedSelections);
814
- }
825
+ setSelectedOptions(updatedSelections);
826
+ if (onChange) onChange(updatedSelections);
815
827
  };
816
828
  var isItemDisabled = function isItemDisabled(option) {
817
829
  if (!multi) return false; // Disable check only applies for multi-select