From 62233d5892dcca88601bb774d5411a6d5836b338 Mon Sep 17 00:00:00 2001 From: Patrick Britton Date: Tue, 17 Feb 2026 10:27:31 -0600 Subject: [PATCH] feat: Add FeedFilter model and begin feed filtering integration --- sojorn_app/lib/models/feed_filter.dart | 13 +++++++++++++ .../lib/screens/home/feed_personal_screen.dart | 2 ++ 2 files changed, 15 insertions(+) create mode 100644 sojorn_app/lib/models/feed_filter.dart diff --git a/sojorn_app/lib/models/feed_filter.dart b/sojorn_app/lib/models/feed_filter.dart new file mode 100644 index 0000000..8d2fce7 --- /dev/null +++ b/sojorn_app/lib/models/feed_filter.dart @@ -0,0 +1,13 @@ +/// Filter options for the home feed +enum FeedFilter { + all('All Posts', null), + posts('Posts Only', 'post'), + quips('Quips Only', 'quip'), + chains('Chains Only', 'chain'), + beacons('Beacons Only', 'beacon'); + + final String label; + final String? typeValue; + + const FeedFilter(this.label, this.typeValue); +} diff --git a/sojorn_app/lib/screens/home/feed_personal_screen.dart b/sojorn_app/lib/screens/home/feed_personal_screen.dart index 2b2f550..014266c 100644 --- a/sojorn_app/lib/screens/home/feed_personal_screen.dart +++ b/sojorn_app/lib/screens/home/feed_personal_screen.dart @@ -3,6 +3,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../providers/api_provider.dart'; import '../../providers/feed_refresh_provider.dart'; import '../../models/post.dart'; +import '../../models/feed_filter.dart'; import '../../theme/app_theme.dart'; import '../../widgets/sojorn_post_card.dart'; import '../../widgets/app_scaffold.dart'; @@ -23,6 +24,7 @@ class _FeedPersonalScreenState extends ConsumerState { bool _isLoading = false; bool _hasMore = true; String? _error; + FeedFilter _currentFilter = FeedFilter.all; @override void initState() {