@momentum-ui/react-collaboration
Version:
Cisco Momentum UI Framework for React Collaboration Applications
48 lines (43 loc) • 1.36 kB
text/typescript
import { IComboBoxGroup, IComboBoxItem } from './ComboBox.types';
export const handleFilter = (
comboBoxGroup: IComboBoxGroup[],
inputValue: string
): IComboBoxGroup[] => {
const queryLowerCase = inputValue.toLowerCase().trim();
const filterItem = Array.prototype.map
.call(comboBoxGroup, (group: IComboBoxGroup) => {
return {
...group,
items: group.items.filter((item) => item.label?.toLowerCase()?.includes(queryLowerCase)),
};
})
.filter((group: IComboBoxGroup) => group.items?.length > 0);
return filterItem;
};
export const searchItem = (
key: string,
originComboBoxGroups: IComboBoxGroup[]
): IComboBoxItem | undefined => {
let target: IComboBoxItem | undefined;
key &&
Array.prototype.some.call(originComboBoxGroups, (group: IComboBoxGroup) => {
const foundItem = group.items.find((item: IComboBoxItem) => item.key === key);
if (foundItem) {
target = foundItem;
return true;
}
return false;
});
return target ?? { key: undefined, label: undefined };
};
export const getSumScrollTop = (element: Element): number => {
let sum = 0;
while (element) {
element = element.parentElement;
if (element) {
const scrollTop = Number.isNaN(element.scrollTop) ? 0 : element.scrollTop;
sum += scrollTop;
}
}
return sum;
};