@sproutsocial/seeds-react-menu 1.6.2 → 1.6.4
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/.turbo/turbo-build.log +8 -8
- package/CHANGELOG.md +12 -0
- package/dist/esm/index.js +17 -21
- package/dist/esm/index.js.map +1 -1
- package/dist/index.js +17 -21
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/Autocomplete/Autocomplete.stories.tsx +60 -3
- package/src/Autocomplete/MultiAutocomplete.tsx +13 -20
package/dist/index.js
CHANGED
|
@@ -3812,6 +3812,7 @@ var MultiAutocomplete = ({
|
|
|
3812
3812
|
onMultiSelectStateChange,
|
|
3813
3813
|
multiSelectStateReducer,
|
|
3814
3814
|
autoCloseOnEmpty = true,
|
|
3815
|
+
selectedItems: selectedItemsProp,
|
|
3815
3816
|
...useComboboxProps
|
|
3816
3817
|
}) => {
|
|
3817
3818
|
const { allMenuItems, children } = useMenuChildren({
|
|
@@ -3819,11 +3820,18 @@ var MultiAutocomplete = ({
|
|
|
3819
3820
|
menuItems,
|
|
3820
3821
|
MenuItemComponent
|
|
3821
3822
|
});
|
|
3822
|
-
const [
|
|
3823
|
-
const
|
|
3823
|
+
const [selectedItemsState, setSelectedItemsState] = import_react22.default.useState(initialSelectedItems);
|
|
3824
|
+
const selectedItems = import_react22.default.useMemo(
|
|
3825
|
+
() => selectedItemsProp || selectedItemsState,
|
|
3826
|
+
[selectedItemsProp, selectedItemsState]
|
|
3827
|
+
);
|
|
3828
|
+
const selectedItemIds = import_react22.default.useMemo(
|
|
3829
|
+
() => getSelectedItemIds(selectedItems),
|
|
3830
|
+
[selectedItems]
|
|
3831
|
+
);
|
|
3824
3832
|
const getIsItemVisibleMulti = import_react22.default.useCallback(
|
|
3825
|
-
(item,
|
|
3826
|
-
return (showSelectedItemsInDropdown || !selectedItemIds[item.id]) && getIsItemVisible(item,
|
|
3833
|
+
(item, inputValue) => {
|
|
3834
|
+
return (showSelectedItemsInDropdown || !selectedItemIds[item.id]) && getIsItemVisible(item, inputValue);
|
|
3827
3835
|
},
|
|
3828
3836
|
[selectedItemIds, showSelectedItemsInDropdown, getIsItemVisible]
|
|
3829
3837
|
);
|
|
@@ -3858,10 +3866,9 @@ var MultiAutocomplete = ({
|
|
|
3858
3866
|
const useMultipleSelectionReturnProps = (0, import_downshift7.useMultipleSelection)({
|
|
3859
3867
|
...defaultDownshiftProps.multi,
|
|
3860
3868
|
itemToKey: itemToKey3,
|
|
3861
|
-
selectedItems,
|
|
3869
|
+
selectedItems: selectedItemsProp || selectedItems,
|
|
3862
3870
|
onSelectedItemsChange: ({ selectedItems: selectedItems2, ...changes }) => {
|
|
3863
|
-
|
|
3864
|
-
setSelectedItemIds(getSelectedItemIds(selectedItems2));
|
|
3871
|
+
setSelectedItemsState(selectedItems2);
|
|
3865
3872
|
onSelectedItemsChange && onSelectedItemsChange({ selectedItems: selectedItems2, ...changes });
|
|
3866
3873
|
}
|
|
3867
3874
|
});
|
|
@@ -3875,18 +3882,14 @@ var MultiAutocomplete = ({
|
|
|
3875
3882
|
externalStateReducer
|
|
3876
3883
|
),
|
|
3877
3884
|
onStateChange(changes) {
|
|
3878
|
-
const { type, selectedItem: newSelectedItem, inputValue
|
|
3885
|
+
const { type, selectedItem: newSelectedItem, inputValue } = changes;
|
|
3879
3886
|
switch (type) {
|
|
3880
3887
|
// Add the selected item to the selected items list
|
|
3881
3888
|
case import_downshift7.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
3882
3889
|
case import_downshift7.useCombobox.stateChangeTypes.ItemClick:
|
|
3883
3890
|
if (newSelectedItem) {
|
|
3884
3891
|
const newSelectedItems = [...selectedItems, newSelectedItem];
|
|
3885
|
-
|
|
3886
|
-
setSelectedItemIds({
|
|
3887
|
-
...selectedItemIds,
|
|
3888
|
-
[newSelectedItem.id]: true
|
|
3889
|
-
});
|
|
3892
|
+
setSelectedItemsState(newSelectedItems);
|
|
3890
3893
|
onSelectedItemsChange && onSelectedItemsChange({
|
|
3891
3894
|
selectedItems: newSelectedItems,
|
|
3892
3895
|
type: import_downshift7.useMultipleSelection.stateChangeTypes.FunctionSetSelectedItems
|
|
@@ -3896,19 +3899,12 @@ var MultiAutocomplete = ({
|
|
|
3896
3899
|
default:
|
|
3897
3900
|
break;
|
|
3898
3901
|
}
|
|
3899
|
-
if (
|
|
3902
|
+
if (inputValue !== void 0) updateFilteredItems({ inputValue });
|
|
3900
3903
|
onStateChange && onStateChange(changes);
|
|
3901
3904
|
},
|
|
3902
3905
|
...useComboboxProps
|
|
3903
3906
|
});
|
|
3904
|
-
const { isOpen, closeMenu, inputValue } = useComboboxReturnProps;
|
|
3905
3907
|
const { popoutProps: userPopoutProps } = useComboboxProps;
|
|
3906
|
-
import_react22.default.useEffect(() => {
|
|
3907
|
-
if (!inputValue) return;
|
|
3908
|
-
if (allMenuItems && hiddenItemsCount >= allMenuItems.length && isOpen) {
|
|
3909
|
-
closeMenu?.();
|
|
3910
|
-
}
|
|
3911
|
-
}, [hiddenItemsCount, allMenuItems?.length, isOpen, inputValue]);
|
|
3912
3908
|
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3913
3909
|
MenuRootComponent,
|
|
3914
3910
|
{
|