Filter / Sort / Category / Location Bottom Sheets
widgets/bottom_sheets/*
Overview
Four bottom sheets driving filter and sort interactions. Filter sheet renders the FilterSection list, Sort sheet picks the sort key, Category sheet is a quick category picker, Location sheet (currently mocked) picks the delivery region.
User Flow
- FilterBottomSheet builds from state.availableFilters and emits selected IDs.
- SortByBottomSheet lists 4-5 sort options with the current one highlighted.
- CategoryBottomSheet is a vertical category list used outside the filter sheet.
- LocationBottomSheet is currently a placeholder; tied to a future region-aware fetch.
Cases & Edge Cases
- Filter sheet reads available filters from the controller — sheet-only state is local until 'Apply' is tapped.
- Sort sheet calls setSortOrder which forks between client- and server-side sorting.
- Location sheet does not yet wire into MarketplaceService — backend doesn't accept a region filter in this endpoint yet.
Code References
- lib/src/features/shared/marketplace/views/widgets/bottom_sheets/filter_bottom_sheet.dart
- lib/src/features/shared/marketplace/views/widgets/bottom_sheets/sort_by_bottom_sheet.dart
- lib/src/features/shared/marketplace/views/widgets/bottom_sheets/category_bottom_sheet.dart
- lib/src/features/shared/marketplace/views/widgets/bottom_sheets/location_bottom_sheet.dart
API Calls
Empty — fill this in later. Open the manifest and add content here.
Notes
Sheet 'Reset' buttons map onto controller.clearAllFilters — they should NOT manually rebuild state.