Skip to content

feat: Configurable filter bar#478

Merged
paulgessinger merged 7 commits intomainfrom
feat/configurable-filter-bar
Feb 21, 2026
Merged

feat: Configurable filter bar#478
paulgessinger merged 7 commits intomainfrom
feat/configurable-filter-bar

Conversation

@paulgessinger
Copy link
Owner

Key Changes

  • Added a configurable UI for the filter bar with full localization support.
  • Replaced the filterBarConfiguration struct with a new FilterBarConfiguration enum to simplify component handling and provide helper methods.
  • Updated FilterBarConfigView to use the new enum, removing direct dependency on AppSettings.
  • Simplified view hierarchy: introduced a configuredComponents array, extracted component rendering into componentView(_:), and replaced hard‑coded element lists with a single ForEach.
  • Removed legacy iOS 18‑specific view (barContentiOS18) and unified to barContent.
  • Added RouteManager.shared to the view environment for navigation support.
  • Adjusted padding in the filter bar for better spacing.
  • Moved FilterBarComponent and FilterBarConfiguration definitions to the core Model module.

…nent handling

Introduce `FilterBarConfiguration` enum to represent default or custom configurations, providing helper methods for component access and conversion.  
Update `FilterBarConfigView` to use the new enum, removing direct dependency on `AppSettings`.  
Adjust state initialization, reset logic, and bindings to work with the enum.  
Update animations and change handlers to reference `AppSettings.shared.filterBarConfiguration`.  
Modify `AppSettings` to store the new enum type, defaulting to `.default`.
* Introduce `configuredComponents` array to expose the filter bar
  components that should be displayed.
* Extract component rendering into `componentView(_:)` for each
  `FilterBarComponent`.
* Replace the long hard‑coded list of elements with a single
  `ForEach` over `configuredComponents`.
* Remove legacy iOS 18‑specific view (`barContentiOS18`) and use the
  unified `barContent` instead.
* Add `RouteManager.shared` to the view environment for navigation
  support.
* Clean up duplicated code and keep transitions, haptics, and
  animations consistent across all components.
Move `FilterBarComponent` and `FilterBarConfiguration`
definitions from the Settings view into the core Model
folder.
Synchronize UserDefaults immediately after updating the filter bar
configuration to ensure changes persist across app launches.
@paulgessinger paulgessinger force-pushed the feat/configurable-filter-bar branch from 0064230 to b7ee7fd Compare February 21, 2026 21:50
@paulgessinger paulgessinger merged commit 38a6494 into main Feb 21, 2026
8 checks passed
@paulgessinger paulgessinger deleted the feat/configurable-filter-bar branch February 21, 2026 22:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant