Skip to content

Commit 4df5d76

Browse files
committed
refactor(router): organize route constants and add sourceListFilterName
Refactors the `lib/router/routes.dart` file for better logical grouping and clarity. - Adds the new `sourceListFilterName` constant for the dedicated source filter page. - Reorganizes all route constants into logical groups (Authentication, Core App Shell, Global, Feed Sub-Routes, etc.) to improve readability and maintainability. - Cleans up comments to remove outdated references, ensuring the file is easier to understand.
1 parent 17f9b6d commit 4df5d76

File tree

1 file changed

+43
-69
lines changed

1 file changed

+43
-69
lines changed

lib/router/routes.dart

Lines changed: 43 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,115 +1,89 @@
11
/// Defines named constants for route paths and names used throughout the application.
22
///
3-
/// Using constants helps prevent typos and makes route management easier.
3+
/// Using constants helps prevent typos and makes route management more robust.
44
abstract final class Routes {
5-
// --- Core App Routes (Bottom Navigation) ---
5+
// --- Authentication Routes ---
6+
static const authentication = '/authentication';
7+
static const authenticationName = 'authentication';
8+
static const accountLinking = '/account-linking';
9+
static const accountLinkingName = 'accountLinking';
10+
static const requestCode = 'request-code';
11+
static const requestCodeName = 'requestCode';
12+
static const verifyCode = 'verify-code';
13+
static const verifyCodeName = 'verifyCode';
14+
static const accountLinkingRequestCodeName = 'accountLinkingRequestCode';
15+
static const accountLinkingVerifyCodeName = 'accountLinkingVerifyCode';
16+
17+
// --- Core App Shell Routes ---
618
static const feed = '/feed';
719
static const feedName = 'feed';
20+
static const search = '/search';
21+
static const searchName = 'search';
22+
static const account = '/account';
23+
static const accountName = 'account';
24+
25+
// --- Global, Top-Level Routes ---
26+
static const entityDetails = '/entity-details/:type/:id';
27+
static const entityDetailsName = 'entityDetails';
28+
static const globalArticleDetails = '/article/:id';
29+
static const globalArticleDetailsName = 'globalArticleDetails';
30+
31+
// --- Feed Sub-Routes ---
32+
static const articleDetailsName = 'articleDetails';
33+
static const notifications = 'notifications';
34+
static const notificationsName = 'notifications';
835

9-
// --- Filter Sub-Routes (relative to /feed) ---
36+
// --- Feed Filter Sub-Routes ---
1037
static const feedFilter = 'filter';
1138
static const feedFilterName = 'feedFilter';
12-
39+
static const manageSavedFilters = 'manage-saved-filters';
40+
static const manageSavedFiltersName = 'manageSavedFilters';
1341
static const feedFilterTopics = 'topics';
1442
static const feedFilterTopicsName = 'feedFilterTopics';
15-
1643
static const feedFilterSources = 'sources';
1744
static const feedFilterSourcesName = 'feedFilterSources';
18-
19-
// New route for managing saved filters
20-
static const manageSavedFilters = 'manage-saved-filters';
21-
static const manageSavedFiltersName = 'manageSavedFilters';
22-
23-
// New routes for country filtering
45+
static const sourceListFilterName = 'sourceListFilter';
2446
static const feedFilterEventCountries = 'event-countries';
2547
static const feedFilterEventCountriesName = 'feedFilterEventCountries';
2648

27-
static const search = '/search';
28-
static const searchName = 'search';
29-
static const account = '/account';
30-
static const accountName = 'account';
31-
32-
// --- Sub Routes ---
33-
// Article details is now relative to feed
34-
static const articleDetailsName = 'articleDetails';
35-
// Add a new name for article details when accessed from search
49+
// --- Search Sub-Routes ---
3650
static const searchArticleDetailsName = 'searchArticleDetails';
37-
// Settings is now relative to account
38-
static const settings = 'settings';
39-
static const settingsName = 'settings';
40-
// Notifications is now relative to account
41-
static const notifications = 'notifications';
42-
static const notificationsName = 'notifications';
4351

44-
// --- Entity Details Routes (can be accessed from multiple places) ---
45-
static const entityDetails = '/entity-details/:type/:id';
46-
static const entityDetailsName = 'entityDetails';
47-
48-
// --- Authentication Routes ---
49-
static const authentication = '/authentication';
50-
static const authenticationName = 'authentication';
51-
52-
// Top-level account linking route
53-
static const accountLinking = '/account-linking';
54-
static const accountLinkingName = 'accountLinking';
55-
56-
// routes for email code verification flow
57-
static const requestCode = 'request-code';
58-
static const requestCodeName = 'requestCode';
59-
static const verifyCode = 'verify-code';
60-
static const verifyCodeName = 'verifyCode';
61-
62-
// Linking-specific authentication routes (now nested under accountLinking)
63-
static const accountLinkingRequestCodeName = 'accountLinkingRequestCode';
64-
static const accountLinkingVerifyCodeName = 'accountLinkingVerifyCode';
52+
// --- Account Sub-Routes ---
53+
static const accountSavedHeadlines = 'saved-headlines';
54+
static const accountSavedHeadlinesName = 'accountSavedHeadlines';
55+
static const accountArticleDetails = 'article/:id';
56+
static const accountArticleDetailsName = 'accountArticleDetails';
6557

66-
// --- Settings Sub-Routes (relative to /account/settings) ---
58+
// --- Settings Routes (nested under Account) ---
59+
static const settings = 'settings';
60+
static const settingsName = 'settings';
6761
static const settingsAppearance = 'appearance';
6862
static const settingsAppearanceName = 'settingsAppearance';
69-
70-
// --- Appearance Sub-Routes (relative to /account/settings/appearance) ---
7163
static const settingsAppearanceTheme = 'theme';
7264
static const settingsAppearanceThemeName = 'settingsAppearanceTheme';
7365
static const settingsAppearanceFont = 'font';
7466
static const settingsAppearanceFontName = 'settingsAppearanceFont';
75-
7667
static const settingsFeed = 'feed';
7768
static const settingsFeedName = 'settingsFeed';
7869
static const settingsArticle = 'article';
7970
static const settingsArticleName = 'settingsArticle';
8071
static const settingsNotifications = 'notifications';
8172
static const settingsNotificationsName = 'settingsNotifications';
82-
83-
// --- Language Settings Sub-Route (relative to /account/settings) ---
8473
static const settingsLanguage = 'language';
8574
static const settingsLanguageName = 'settingsLanguage';
8675

87-
// --- Account Sub-Routes (relative to /account) ---
76+
// --- Manage Followed Items Routes (nested under Account) ---
8877
static const manageFollowedItems = 'manage-followed-items';
8978
static const manageFollowedItemsName = 'manageFollowedItems';
90-
static const accountSavedHeadlines = 'saved-headlines';
91-
static const accountSavedHeadlinesName = 'accountSavedHeadlines';
92-
// New route for article details from saved headlines
93-
static const String accountArticleDetails = 'article/:id';
94-
static const String accountArticleDetailsName = 'accountArticleDetails';
95-
96-
// --- Global Article Details ---
97-
// This route is intended for accessing article details from contexts
98-
// outside the main bottom navigation shell (e.g., from entity detail pages).
99-
static const globalArticleDetails = '/article/:id';
100-
static const globalArticleDetailsName = 'globalArticleDetails';
101-
102-
// --- Manage Followed Items Sub-Routes (relative to /account/manage-followed-items) ---
10379
static const followedTopicsList = 'topics';
10480
static const followedTopicsListName = 'followedTopicsList';
10581
static const addTopicToFollow = 'add-topic';
10682
static const addTopicToFollowName = 'addTopicToFollow';
107-
10883
static const followedSourcesList = 'sources';
10984
static const followedSourcesListName = 'followedSourcesList';
11085
static const addSourceToFollow = 'add-source';
11186
static const addSourceToFollowName = 'addSourceToFollow';
112-
11387
static const followedCountriesList = 'countries';
11488
static const followedCountriesListName = 'followedCountriesList';
11589
static const addCountryToFollow = 'add-country';

0 commit comments

Comments
 (0)