Skip to main content

About this widget

Filter Toggle is a filtering view that displays any filter and lets users refine their search results by toggling the view on or off.

Examples

Dart
class SearchToggleFilter extends StatelessWidget {
  const SearchToggleFilter(
      this.filterState, this.groupID, this.filter, this.label,
      {super.key});

  final FilterState filterState;
  final FilterGroupID groupID;
  final Filter filter;
  final String label;

  @override
  Widget build(BuildContext context) {
    return StreamBuilder(
        stream: filterState.filters,
        builder: (context, snapshot) {
          final filters = snapshot.hasData ? snapshot.data! : StatelessFilters();
          final filterGroups = filters.toFilterGroups().expand((group) => group);
          return FilterChip(
            label: Text(label),
            onSelected: (selected) => selected
                ? filterState.add(groupID, {filter})
                : filterState.remove(groupID, {filter}),
            selected: filterGroups.contains(filter),
          );
        });
  }
}
I