azure-devops-ui
Version:
React components for building web UI in Azure DevOps
26 lines (25 loc) • 1.13 kB
JavaScript
import { arrayEquals } from '../Util';
export function updateFilterToSelection(values, items, filter, filterItemKey) {
const selectedValues = [];
for (let rangeIndex = 0; rangeIndex < values.length; rangeIndex++) {
for (let i = values[rangeIndex].beginIndex; i <= values[rangeIndex].endIndex; i++) {
selectedValues.push(items[i].data !== undefined ? items[i].data : items[i].id);
}
}
const currentState = filter.getFilterItemState(filterItemKey);
let changesToSet = false;
if (currentState) {
changesToSet = !arrayEquals(currentState.value, selectedValues) && (selectedValues.length || currentState.value);
}
else {
changesToSet = !!selectedValues.length;
}
if (changesToSet) {
if (filterItemKey === "keyword") {
filter.setFilterItemState(filterItemKey, { value: selectedValues[0] });
}
else {
filter.setFilterItemState(filterItemKey, { value: selectedValues, operator: currentState === null || currentState === void 0 ? void 0 : currentState.operator });
}
}
}