@vellira-ui/react-native 2.30.0 → 2.31.0
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/README.md +1 -1
- package/dist/index.js +30 -11
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -1548,8 +1548,11 @@ function Select({
|
|
|
1548
1548
|
description,
|
|
1549
1549
|
value,
|
|
1550
1550
|
defaultValue,
|
|
1551
|
-
|
|
1552
|
-
options,
|
|
1551
|
+
onValueChange,
|
|
1552
|
+
options: optionsProp,
|
|
1553
|
+
multiple = false,
|
|
1554
|
+
maxSelected,
|
|
1555
|
+
closeOnSelect,
|
|
1553
1556
|
placeholder = "Select...",
|
|
1554
1557
|
size = "md",
|
|
1555
1558
|
required = false,
|
|
@@ -1564,24 +1567,39 @@ function Select({
|
|
|
1564
1567
|
}) {
|
|
1565
1568
|
const { theme } = useTheme();
|
|
1566
1569
|
const styles = useThemeStyles(createStyles15);
|
|
1567
|
-
const
|
|
1570
|
+
const options = optionsProp ?? [];
|
|
1571
|
+
const {
|
|
1572
|
+
selectedValue,
|
|
1573
|
+
selectedValues,
|
|
1574
|
+
selectedOption,
|
|
1575
|
+
selectedOptions,
|
|
1576
|
+
isOpen,
|
|
1577
|
+
setIsOpen,
|
|
1578
|
+
selectValue
|
|
1579
|
+
} = useSelect({
|
|
1568
1580
|
value,
|
|
1569
1581
|
defaultValue,
|
|
1570
|
-
|
|
1582
|
+
onValueChange,
|
|
1571
1583
|
options,
|
|
1584
|
+
multiple,
|
|
1585
|
+
maxSelected,
|
|
1586
|
+
closeOnSelect,
|
|
1572
1587
|
disabled
|
|
1573
1588
|
});
|
|
1574
|
-
const
|
|
1589
|
+
const resolvedSelectedValues = selectedValues ?? [];
|
|
1590
|
+
const resolvedSelectedOptions = selectedOptions ?? [];
|
|
1591
|
+
const selectedValueText = Array.isArray(selectedValue) ? selectedValue[0] ?? "" : selectedValue ?? "";
|
|
1592
|
+
const [draftValue, setDraftValue] = useState2(selectedValueText);
|
|
1575
1593
|
const hasError = !!error;
|
|
1576
1594
|
useEffect2(() => {
|
|
1577
1595
|
if (isOpen) {
|
|
1578
|
-
setDraftValue(
|
|
1596
|
+
setDraftValue(selectedValueText);
|
|
1579
1597
|
}
|
|
1580
|
-
}, [isOpen,
|
|
1598
|
+
}, [isOpen, selectedValueText]);
|
|
1581
1599
|
const resolvedLabel = accessibilityLabel ?? label ?? selectedOption?.label ?? placeholder ?? "Select";
|
|
1582
1600
|
const openPicker = () => {
|
|
1583
1601
|
if (disabled) return;
|
|
1584
|
-
setDraftValue(
|
|
1602
|
+
setDraftValue(selectedValueText);
|
|
1585
1603
|
setIsOpen(true);
|
|
1586
1604
|
};
|
|
1587
1605
|
const closePicker = () => {
|
|
@@ -1600,9 +1618,10 @@ function Select({
|
|
|
1600
1618
|
setIsOpen(false);
|
|
1601
1619
|
return;
|
|
1602
1620
|
}
|
|
1603
|
-
|
|
1621
|
+
selectValue(draftValue);
|
|
1604
1622
|
setIsOpen(false);
|
|
1605
1623
|
};
|
|
1624
|
+
const displayText = multiple && resolvedSelectedOptions.length ? resolvedSelectedOptions.map((option) => option.label).join(", ") : selectedOption?.label ?? placeholder;
|
|
1606
1625
|
return /* @__PURE__ */ jsxs9(
|
|
1607
1626
|
FormField,
|
|
1608
1627
|
{
|
|
@@ -1616,8 +1635,8 @@ function Select({
|
|
|
1616
1635
|
/* @__PURE__ */ jsx17(
|
|
1617
1636
|
SelectTrigger,
|
|
1618
1637
|
{
|
|
1619
|
-
displayText
|
|
1620
|
-
isPlaceholder:
|
|
1638
|
+
displayText,
|
|
1639
|
+
isPlaceholder: resolvedSelectedValues.length === 0,
|
|
1621
1640
|
isOpen,
|
|
1622
1641
|
size,
|
|
1623
1642
|
disabled,
|