Skip to content

Commit 8f7438c

Browse files
committed
feat: Create manage followed items page
- Added navigation to lists - Supports category, source, country
1 parent ff6fdf9 commit 8f7438c

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:go_router/go_router.dart';
3+
import 'package:ht_main/l10n/l10n.dart';
4+
import 'package:ht_main/router/routes.dart'; // Assuming new routes will be added here
5+
import 'package:ht_main/shared/constants/app_spacing.dart';
6+
7+
/// {@template manage_followed_items_page}
8+
/// Page for navigating to lists of followed content types like
9+
/// categories, sources, and countries.
10+
/// {@endtemplate}
11+
class ManageFollowedItemsPage extends StatelessWidget {
12+
/// {@macro manage_followed_items_page}
13+
const ManageFollowedItemsPage({super.key});
14+
15+
@override
16+
Widget build(BuildContext context) {
17+
final l10n = context.l10n;
18+
19+
return Scaffold(
20+
appBar: AppBar(
21+
title: Text(l10n.accountContentPreferencesTile), // "Content Preferences"
22+
),
23+
body: ListView(
24+
padding: const EdgeInsets.symmetric(vertical: AppSpacing.md),
25+
children: [
26+
ListTile(
27+
leading: const Icon(Icons.category_outlined),
28+
title: Text(l10n.headlinesFeedFilterCategoryLabel), // "Categories"
29+
trailing: const Icon(Icons.chevron_right),
30+
onTap: () {
31+
// TODO(cline): Replace with actual route name once defined
32+
// context.goNamed(Routes.followedCategoriesListName);
33+
print('Navigate to Followed Categories List Page');
34+
},
35+
),
36+
const Divider(indent: AppSpacing.lg, endIndent: AppSpacing.lg),
37+
ListTile(
38+
leading: const Icon(Icons.source_outlined),
39+
title: Text(l10n.headlinesFeedFilterSourceLabel), // "Sources"
40+
trailing: const Icon(Icons.chevron_right),
41+
onTap: () {
42+
// TODO(cline): Replace with actual route name once defined
43+
// context.goNamed(Routes.followedSourcesListName);
44+
print('Navigate to Followed Sources List Page');
45+
},
46+
),
47+
const Divider(indent: AppSpacing.lg, endIndent: AppSpacing.lg),
48+
ListTile(
49+
leading: const Icon(Icons.public_outlined),
50+
title: Text(l10n.headlinesFeedFilterEventCountryLabel), // "Countries"
51+
trailing: const Icon(Icons.chevron_right),
52+
onTap: () {
53+
// TODO(cline): Replace with actual route name once defined
54+
// context.goNamed(Routes.followedCountriesListName);
55+
print('Navigate to Followed Countries List Page');
56+
},
57+
),
58+
const Divider(indent: AppSpacing.lg, endIndent: AppSpacing.lg),
59+
],
60+
),
61+
);
62+
}
63+
}

0 commit comments

Comments
 (0)