export function filterResults()

in src/hooks/useTableFilters.ts [160:194]


export function filterResults(
  columnsConfiguration: CompareResultsTableConfig,
  results: CompareResultsItem[],
  searchTerm: string,
  tableFilters: Map<string, Set<string>>,
  resultMatchesSearchTerm: (
    result: CompareResultsItem,
    searchTerm: string,
  ) => boolean,
) {
  if (!searchTerm && !tableFilters.size) {
    return results;
  }

  return results.filter((result) => {
    if (!resultMatchesSearchTerm(result, searchTerm)) {
      return false;
    }

    for (const [columnId, checkedValues] of tableFilters) {
      if (
        !resultMatchesColumnFilter(
          columnsConfiguration,
          result,
          columnId,
          checkedValues,
        )
      ) {
        return false;
      }
    }

    return true;
  });
}