infinity-ui-elements 1.8.23 → 1.8.25
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchableDropdown.d.ts","sourceRoot":"","sources":["../../../src/components/SearchableDropdown/SearchableDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE/E,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,uBACf,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC;IAClD;;OAEG;IACH,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACjC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACzC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtD;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1E;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAaD,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"SearchableDropdown.d.ts","sourceRoot":"","sources":["../../../src/components/SearchableDropdown/SearchableDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE/E,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,uBACf,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC;IAClD;;OAEG;IACH,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACjC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACzC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtD;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1E;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAaD,eAAO,MAAM,kBAAkB,kGAoU9B,CAAC"}
|
package/dist/index.esm.js
CHANGED
|
@@ -3198,8 +3198,8 @@ TextField.displayName = "TextField";
|
|
|
3198
3198
|
|
|
3199
3199
|
const defaultFilter = (item, query) => {
|
|
3200
3200
|
const searchQuery = query.toLowerCase();
|
|
3201
|
-
return (item.label
|
|
3202
|
-
(item.description?.toLowerCase()
|
|
3201
|
+
return (item.label?.toLowerCase()?.includes(searchQuery) ||
|
|
3202
|
+
(item.description?.toLowerCase()?.includes(searchQuery) ?? false));
|
|
3203
3203
|
};
|
|
3204
3204
|
const SearchableDropdown = React.forwardRef(({ className, items = [], sectionHeading, isLoading = false, emptyTitle = "No Search Results Found", emptyDescription = "Add description of what the user can search for here.", emptyLinkText = "Link to support site", onEmptyLinkClick, primaryButtonText, secondaryButtonText, onPrimaryClick, onSecondaryClick, dropdownWidth = "full", showChevron = false, emptyIcon, disableFooter = false, footerLayout = "horizontal", onSearchChange, onItemSelect, filterFunction = defaultFilter, searchValue: controlledSearchValue, defaultSearchValue = "", dropdownClassName, minSearchLength = 0, showOnFocus = true, showAddNew = false, showAddNewIfDoesNotMatch = true, onAddNew, containerClassName, ...textFieldProps }, ref) => {
|
|
3205
3205
|
const [uncontrolledSearchValue, setUncontrolledSearchValue] = React.useState(defaultSearchValue);
|
|
@@ -3224,7 +3224,7 @@ const SearchableDropdown = React.forwardRef(({ className, items = [], sectionHea
|
|
|
3224
3224
|
const styles = window.getComputedStyle(element);
|
|
3225
3225
|
const zIndex = parseInt(styles.zIndex, 10);
|
|
3226
3226
|
// Check if element has modal z-index (10000) or is a modal container
|
|
3227
|
-
if (zIndex === 10000 || element.getAttribute(
|
|
3227
|
+
if (zIndex === 10000 || element.getAttribute("role") === "dialog") {
|
|
3228
3228
|
foundModal = true;
|
|
3229
3229
|
setIsInsideModal(true);
|
|
3230
3230
|
break;
|
|
@@ -3295,19 +3295,19 @@ const SearchableDropdown = React.forwardRef(({ className, items = [], sectionHea
|
|
|
3295
3295
|
onClick: () => {
|
|
3296
3296
|
if (onAddNew) {
|
|
3297
3297
|
onAddNew(searchValue);
|
|
3298
|
+
// Don't update search value here - let parent handle it via onAddNew
|
|
3299
|
+
setIsOpen(false);
|
|
3300
|
+
inputRef.current?.focus();
|
|
3298
3301
|
}
|
|
3299
3302
|
else {
|
|
3303
|
+
// When onAddNew is not provided, create a new item and select it
|
|
3300
3304
|
const newItem = {
|
|
3301
3305
|
value: searchValue,
|
|
3302
3306
|
label: searchValue,
|
|
3303
3307
|
};
|
|
3304
|
-
|
|
3305
|
-
|
|
3306
|
-
setUncontrolledSearchValue(searchValue);
|
|
3307
|
-
}
|
|
3308
|
+
// Use handleItemSelect to ensure proper behavior
|
|
3309
|
+
handleItemSelect(newItem);
|
|
3308
3310
|
}
|
|
3309
|
-
setIsOpen(false);
|
|
3310
|
-
inputRef.current?.focus();
|
|
3311
3311
|
},
|
|
3312
3312
|
};
|
|
3313
3313
|
// If showAddNewIfDoesNotMatch is true, only show "Add New" when no items match
|
|
@@ -3384,11 +3384,23 @@ const SearchableDropdown = React.forwardRef(({ className, items = [], sectionHea
|
|
|
3384
3384
|
}
|
|
3385
3385
|
};
|
|
3386
3386
|
// Update items with onClick handlers that call handleItemSelect
|
|
3387
|
-
//
|
|
3388
|
-
const itemsWithHandlers = itemsWithAddNew.map((item) =>
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3387
|
+
// Always wrap onClick to ensure search value is updated with label
|
|
3388
|
+
const itemsWithHandlers = itemsWithAddNew.map((item) => {
|
|
3389
|
+
// Check if this is the "Add New" item (its onClick already handles selection properly)
|
|
3390
|
+
const isAddNewItem = showAddNew && item.label?.startsWith("+ Add");
|
|
3391
|
+
return {
|
|
3392
|
+
...item,
|
|
3393
|
+
onClick: () => {
|
|
3394
|
+
// Call the custom onClick if it exists (for Add New items, etc.)
|
|
3395
|
+
item.onClick?.();
|
|
3396
|
+
// Call handleItemSelect to update search value with label and close dropdown
|
|
3397
|
+
// Skip for "Add New" items since their onClick already handles everything
|
|
3398
|
+
if (!isAddNewItem) {
|
|
3399
|
+
handleItemSelect(item);
|
|
3400
|
+
}
|
|
3401
|
+
},
|
|
3402
|
+
};
|
|
3403
|
+
});
|
|
3392
3404
|
const showDropdown = isOpen && searchValue.length >= minSearchLength;
|
|
3393
3405
|
const dropdownMenu = showDropdown && (jsx("div", { ref: menuRef, style: {
|
|
3394
3406
|
position: "absolute",
|