aport-tools 4.4.22 → 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.esm.js +58 -42
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +57 -41
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
/*! aport-tools v4.4.
|
2
|
-
import React, { useContext, useState, createContext, useEffect, useMemo, useCallback } from 'react';
|
1
|
+
/*! aport-tools v4.4.24 | ISC */
|
2
|
+
import React, { useContext, useState, createContext, useRef, useEffect, useMemo, useCallback } from 'react';
|
3
3
|
import { StyleSheet, Text as Text$1, Animated, View, TouchableOpacity, Image, TextInput, Modal, Pressable, FlatList, Keyboard, Platform, Alert, ActivityIndicator } from 'react-native';
|
4
4
|
import { ThemeContext } from 'aport-themes';
|
5
5
|
import * as ImagePicker from 'expo-image-picker';
|
@@ -518,26 +518,32 @@ var Input = function Input(_a) {
|
|
518
518
|
label = _a.label,
|
519
519
|
inputType = _a.inputType,
|
520
520
|
firstValue = _a.firstValue,
|
521
|
+
_b = _a.editable,
|
522
|
+
editable = _b === void 0 ? true : _b,
|
521
523
|
style = _a.style,
|
522
|
-
rest = __rest(_a, ["name", "label", "inputType", "firstValue", "style"]);
|
523
|
-
var
|
524
|
-
formValues =
|
525
|
-
setFormValue =
|
526
|
-
formErrors =
|
524
|
+
rest = __rest(_a, ["name", "label", "inputType", "firstValue", "editable", "style"]);
|
525
|
+
var _c = useFormContext(),
|
526
|
+
formValues = _c.formValues,
|
527
|
+
setFormValue = _c.setFormValue,
|
528
|
+
formErrors = _c.errors;
|
527
529
|
var theme = useContext(ThemeContext).theme;
|
528
530
|
var colors = theme.colors;
|
529
|
-
var
|
530
|
-
internalValue =
|
531
|
-
setInternalValue =
|
532
|
-
|
531
|
+
var _d = useState(""),
|
532
|
+
internalValue = _d[0],
|
533
|
+
setInternalValue = _d[1];
|
534
|
+
var isFirstRender = useRef(true); // Track the first render
|
535
|
+
// Initialize the internal value when `firstValue` changes or on first render
|
533
536
|
useEffect(function () {
|
534
|
-
if (
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
537
|
+
if (isFirstRender.current) {
|
538
|
+
isFirstRender.current = false;
|
539
|
+
if (firstValue !== undefined) {
|
540
|
+
setInternalValue(firstValue);
|
541
|
+
setFormValue(name, firstValue);
|
542
|
+
} else {
|
543
|
+
setInternalValue(formValues[name] || "");
|
544
|
+
}
|
539
545
|
}
|
540
|
-
}, [firstValue
|
546
|
+
}, [firstValue]); // Only re-run if `firstValue` changes
|
541
547
|
/**
|
542
548
|
* Handles text changes in the input field, applying formatting based on the inputType.
|
543
549
|
*
|
@@ -585,6 +591,7 @@ var Input = function Input(_a) {
|
|
585
591
|
value: internalValue,
|
586
592
|
onChangeText: handleChange,
|
587
593
|
placeholder: label,
|
594
|
+
editable: editable,
|
588
595
|
placeholderTextColor: colors.placeHolder.hex
|
589
596
|
}, rest)), formErrors[name] && formErrors[name].length > 0 && (/*#__PURE__*/React.createElement(ErrorList, {
|
590
597
|
errors: formErrors[name]
|
@@ -612,26 +619,32 @@ var TextArea = function TextArea(_a) {
|
|
612
619
|
label = _a.label;
|
613
620
|
_a.errors;
|
614
621
|
var firstValue = _a.firstValue,
|
622
|
+
_b = _a.editable,
|
623
|
+
editable = _b === void 0 ? true : _b,
|
615
624
|
style = _a.style,
|
616
|
-
rest = __rest(_a, ["name", "label", "errors", "firstValue", "style"]);
|
617
|
-
var
|
618
|
-
formValues =
|
619
|
-
setFormValue =
|
620
|
-
formErrors =
|
625
|
+
rest = __rest(_a, ["name", "label", "errors", "firstValue", "editable", "style"]);
|
626
|
+
var _c = useFormContext(),
|
627
|
+
formValues = _c.formValues,
|
628
|
+
setFormValue = _c.setFormValue,
|
629
|
+
formErrors = _c.errors;
|
621
630
|
var theme = useContext(ThemeContext).theme;
|
622
631
|
var colors = theme.colors;
|
623
|
-
var
|
624
|
-
internalValue =
|
625
|
-
setInternalValue =
|
626
|
-
|
632
|
+
var _d = useState(""),
|
633
|
+
internalValue = _d[0],
|
634
|
+
setInternalValue = _d[1];
|
635
|
+
var isFirstRender = useRef(true); // Track the first render
|
636
|
+
// Initialize the internal value when `firstValue` changes or on first render
|
627
637
|
useEffect(function () {
|
628
|
-
if (
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
638
|
+
if (isFirstRender.current) {
|
639
|
+
isFirstRender.current = false;
|
640
|
+
if (firstValue !== undefined) {
|
641
|
+
setInternalValue(firstValue);
|
642
|
+
setFormValue(name, firstValue);
|
643
|
+
} else {
|
644
|
+
setInternalValue(formValues[name] || "");
|
645
|
+
}
|
633
646
|
}
|
634
|
-
}, [firstValue
|
647
|
+
}, [firstValue]);
|
635
648
|
var handleChange = function handleChange(text) {
|
636
649
|
setInternalValue(text);
|
637
650
|
setFormValue(name, text);
|
@@ -653,6 +666,7 @@ var TextArea = function TextArea(_a) {
|
|
653
666
|
placeholder: label,
|
654
667
|
placeholderTextColor: colors.placeHolder.hex,
|
655
668
|
multiline: true,
|
669
|
+
editable: editable,
|
656
670
|
numberOfLines: 4,
|
657
671
|
textAlignVertical: "top"
|
658
672
|
}, rest)), formErrors[name] && formErrors[name].length > 0 && (/*#__PURE__*/React.createElement(ErrorList, {
|
@@ -756,16 +770,21 @@ var InputList = function InputList(_a) {
|
|
756
770
|
var _l = useState(multi ? initialSelections : initialSelections[0] || null),
|
757
771
|
selectedOptions = _l[0],
|
758
772
|
setSelectedOptions = _l[1];
|
759
|
-
// Update form value
|
773
|
+
// Update form value when firstValue changes
|
760
774
|
useEffect(function () {
|
761
|
-
if (
|
762
|
-
setSelectedOptions(
|
775
|
+
if (multi) {
|
776
|
+
setSelectedOptions(initialSelections);
|
777
|
+
setFormValue(name, initialSelections);
|
778
|
+
} else {
|
779
|
+
var singleValue = initialSelections[0] || null;
|
780
|
+
setSelectedOptions(singleValue);
|
781
|
+
setFormValue(name, singleValue);
|
763
782
|
}
|
764
|
-
}, [firstValue,
|
783
|
+
}, [firstValue, multi, initialSelections]);
|
784
|
+
// Handle option selection
|
765
785
|
var handleSelectOption = function handleSelectOption(option) {
|
766
786
|
var updatedSelections;
|
767
787
|
if (multi) {
|
768
|
-
// Ensure selectedOptions is treated as an array
|
769
788
|
var selectedArray = Array.isArray(selectedOptions) ? selectedOptions : [];
|
770
789
|
var alreadySelected = selectedArray.some(function (opt) {
|
771
790
|
return opt.id === option.id;
|
@@ -778,15 +797,12 @@ var InputList = function InputList(_a) {
|
|
778
797
|
}
|
779
798
|
setFormValue(name, updatedSelections);
|
780
799
|
} else {
|
781
|
-
// Handle single-selection case
|
782
800
|
updatedSelections = option;
|
783
801
|
setFormValue(name, option);
|
784
802
|
if (closeOnSelect) setIsDropdownVisible(false);
|
785
803
|
}
|
786
|
-
|
787
|
-
if (onChange)
|
788
|
-
onChange(updatedSelections);
|
789
|
-
}
|
804
|
+
setSelectedOptions(updatedSelections);
|
805
|
+
if (onChange) onChange(updatedSelections);
|
790
806
|
};
|
791
807
|
var isItemDisabled = function isItemDisabled(option) {
|
792
808
|
if (!multi) return false; // Disable check only applies for multi-select
|