function resultMatchesColumnFilter()

in src/hooks/useTableFilters.ts [131:156]


function resultMatchesColumnFilter(
  columnsConfiguration: CompareResultsTableConfig,
  result: CompareResultsItem,
  columnId: string,
  checkedValues: Set<string>,
): boolean {
  const columnConfiguration = columnsConfiguration.find(
    (column) => column.key === columnId,
  );
  if (!columnConfiguration || !('filter' in columnConfiguration)) {
    return true;
  }

  if (checkedValues.size === columnConfiguration.possibleValues.length) {
    // Return all values if all the checkboxes are set. This makes it possible
    // to return values that are different.
    return true;
  }

  for (const filterValueKey of checkedValues) {
    if (columnConfiguration.matchesFunction(result, filterValueKey)) {
      return true;
    }
  }
  return false;
}