export default function removeFilter()

in packages/search-ui/src/actions/removeFilter.ts [14:50]


export default function removeFilter(
  name: string,
  value?: FilterValue,
  type?: FilterType
) {
  if (this.debug)
    // eslint-disable-next-line no-console
    console.log("Search UI: Action", "removeFilter", ...arguments);

  const { filters } = this.state as RequestState;

  let updatedFilters = filters;

  if (!value && type) {
    updatedFilters = filters.filter(
      (filter) => !(filter.field === name && filter.type === type)
    );
  } else if (value) {
    updatedFilters = removeSingleFilterValue(filters, name, value, type);
  } else {
    updatedFilters = filters.filter((filter) => filter.field !== name);
  }

  this._updateSearchResults({
    current: 1,
    filters: updatedFilters
  });

  const events: Events = this.events;

  events.emit({
    type: "FacetFilterRemoved",
    field: name,
    value: value && serialiseFilter([value]),
    query: this.state.searchTerm
  });
}