|
1 | 1 | /// Defines named constants for route paths and names used throughout the application. |
2 | 2 | /// |
3 | | -/// Using constants helps prevent typos and makes route management easier. |
| 3 | +/// Using constants helps prevent typos and makes route management more robust. |
4 | 4 | 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 --- |
6 | 18 | static const feed = '/feed'; |
7 | 19 | 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'; |
8 | 35 |
|
9 | | - // --- Filter Sub-Routes (relative to /feed) --- |
| 36 | + // --- Feed Filter Sub-Routes --- |
10 | 37 | static const feedFilter = 'filter'; |
11 | 38 | static const feedFilterName = 'feedFilter'; |
12 | | - |
| 39 | + static const manageSavedFilters = 'manage-saved-filters'; |
| 40 | + static const manageSavedFiltersName = 'manageSavedFilters'; |
13 | 41 | static const feedFilterTopics = 'topics'; |
14 | 42 | static const feedFilterTopicsName = 'feedFilterTopics'; |
15 | | - |
16 | 43 | static const feedFilterSources = 'sources'; |
17 | 44 | 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'; |
24 | 46 | static const feedFilterEventCountries = 'event-countries'; |
25 | 47 | static const feedFilterEventCountriesName = 'feedFilterEventCountries'; |
26 | 48 |
|
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 --- |
36 | 50 | 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'; |
43 | 51 |
|
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'; |
65 | 57 |
|
66 | | - // --- Settings Sub-Routes (relative to /account/settings) --- |
| 58 | + // --- Settings Routes (nested under Account) --- |
| 59 | + static const settings = 'settings'; |
| 60 | + static const settingsName = 'settings'; |
67 | 61 | static const settingsAppearance = 'appearance'; |
68 | 62 | static const settingsAppearanceName = 'settingsAppearance'; |
69 | | - |
70 | | - // --- Appearance Sub-Routes (relative to /account/settings/appearance) --- |
71 | 63 | static const settingsAppearanceTheme = 'theme'; |
72 | 64 | static const settingsAppearanceThemeName = 'settingsAppearanceTheme'; |
73 | 65 | static const settingsAppearanceFont = 'font'; |
74 | 66 | static const settingsAppearanceFontName = 'settingsAppearanceFont'; |
75 | | - |
76 | 67 | static const settingsFeed = 'feed'; |
77 | 68 | static const settingsFeedName = 'settingsFeed'; |
78 | 69 | static const settingsArticle = 'article'; |
79 | 70 | static const settingsArticleName = 'settingsArticle'; |
80 | 71 | static const settingsNotifications = 'notifications'; |
81 | 72 | static const settingsNotificationsName = 'settingsNotifications'; |
82 | | - |
83 | | - // --- Language Settings Sub-Route (relative to /account/settings) --- |
84 | 73 | static const settingsLanguage = 'language'; |
85 | 74 | static const settingsLanguageName = 'settingsLanguage'; |
86 | 75 |
|
87 | | - // --- Account Sub-Routes (relative to /account) --- |
| 76 | + // --- Manage Followed Items Routes (nested under Account) --- |
88 | 77 | static const manageFollowedItems = 'manage-followed-items'; |
89 | 78 | 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) --- |
103 | 79 | static const followedTopicsList = 'topics'; |
104 | 80 | static const followedTopicsListName = 'followedTopicsList'; |
105 | 81 | static const addTopicToFollow = 'add-topic'; |
106 | 82 | static const addTopicToFollowName = 'addTopicToFollow'; |
107 | | - |
108 | 83 | static const followedSourcesList = 'sources'; |
109 | 84 | static const followedSourcesListName = 'followedSourcesList'; |
110 | 85 | static const addSourceToFollow = 'add-source'; |
111 | 86 | static const addSourceToFollowName = 'addSourceToFollow'; |
112 | | - |
113 | 87 | static const followedCountriesList = 'countries'; |
114 | 88 | static const followedCountriesListName = 'followedCountriesList'; |
115 | 89 | static const addCountryToFollow = 'add-country'; |
|
0 commit comments