Skip to content

Commit 84985bd

Browse files
committed
🎨 (refactor) Replace if else to switch in route.
1 parent 7631821 commit 84985bd

File tree

1 file changed

+41
-105
lines changed

1 file changed

+41
-105
lines changed

lib/helper/routes.dart

Lines changed: 41 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -50,112 +50,48 @@ class Routes{
5050
if (pathElements[0] != '' || pathElements.length == 1) {
5151
return null;
5252
}
53-
if(pathElements[1].contains('SignIn')){
54-
return CustomRoute<bool>(
55-
builder:(BuildContext context)=> SignIn(),
56-
settings: RouteSettings(name:'SignIn')
57-
);
58-
}
59-
else if(pathElements[1].contains('WelcomePage')){
60-
return CustomRoute<bool>(builder:(BuildContext context)=> WelcomePage(),settings: RouteSettings(name:'WelcomePage'));
61-
}
62-
else if(pathElements[1].contains('SignUp')){
63-
return CustomRoute<bool>(builder:(BuildContext context)=> Signup(),settings: RouteSettings(name:'Signup'));
64-
}
65-
else if(pathElements[1].contains('SearchPage')){
66-
return CustomRoute<bool>(builder:(BuildContext context)=> SearchPage(),settings: RouteSettings(name:'SearchPage'));
67-
}
68-
else if(pathElements[1].contains('CreateFeedPage')){
69-
return CustomRoute<bool>(builder:(BuildContext context)=> CreateFeedPage(),settings: RouteSettings(name:'CreateFeedPage'));
70-
}
71-
else if(pathElements[1].contains('ComposeTweetPage')){
72-
// var postId = pathElements[2];
73-
bool isRetweet = false;
74-
bool isTweet = false;
75-
if(pathElements.length == 3 && pathElements[2].contains('retweet')){
76-
isRetweet = true;
77-
}
78-
else if(pathElements.length == 3 && pathElements[2].contains('tweet')){
79-
isTweet = true;
80-
}
81-
return CustomRoute<bool>(builder:(BuildContext context)=> ComposeTweetPage(isRetweet:isRetweet, isTweet: isTweet),settings: RouteSettings(name:'ComposeTweetPage'));
82-
}
83-
else if(pathElements[1].contains('FeedPostDetail')){
84-
var postId = pathElements[2];
53+
switch (pathElements[1]) {
54+
case "ComposeTweetPage":
55+
bool isRetweet = false;
56+
bool isTweet = false;
57+
if(pathElements.length == 3 && pathElements[2].contains('retweet')){
58+
isRetweet = true;
59+
}
60+
else if(pathElements.length == 3 && pathElements[2].contains('tweet')){
61+
isTweet = true;
62+
}
63+
return CustomRoute<bool>(builder:(BuildContext context)=> ComposeTweetPage(isRetweet:isRetweet, isTweet: isTweet));
64+
case "FeedPostDetail":var postId = pathElements[2];
8565
return SlideLeftRoute<bool>(builder:(BuildContext context)=> FeedPostDetail(postId: postId,),settings: RouteSettings(name:'FeedPostDetail'));
86-
}
87-
else if(pathElements[1].contains('ForgetPasswordPage')){
88-
return CustomRoute<bool>(builder:(BuildContext context)=> ForgetPasswordPage(),settings: RouteSettings(name:'ForgetPasswordPage'));
89-
}
90-
else if(pathElements[1].contains('ImageViewPge')){
91-
return CustomRoute<bool>(builder:(BuildContext context)=> ImageViewPge(),settings: RouteSettings(name:'ImageViewPge'));
92-
}
93-
else if(pathElements[1].contains('ProfilePage')){
94-
String profileId;
95-
if(pathElements.length > 2){
96-
profileId = pathElements[2];
97-
}
98-
return CustomRoute<bool>(builder:(BuildContext context)=> ProfilePage(profileId: profileId,),settings: RouteSettings(name:'ProfilePage'));
99-
}
100-
else if(pathElements[1].contains('EditProfile')){
101-
return CustomRoute<bool>(builder:(BuildContext context)=> EditProfilePage(),settings: RouteSettings(name:'EditProfile'));
102-
}
103-
else if(pathElements[1].contains('ChatScreenPage')){
104-
return CustomRoute<bool>(builder:(BuildContext context)=> ChatScreenPage(),settings: RouteSettings(name:'ChatScreenPage'));
105-
}
106-
else if(pathElements[1].contains('NewMessagePage')){
107-
return CustomRoute<bool>(builder:(BuildContext context)=> NewMessagePage(),settings: RouteSettings(name:'NewMessagePage'));
108-
}
109-
else if(pathElements[1].contains('SettingsAndPrivacyPage')){
110-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> SettingsAndPrivacyPage(),settings: RouteSettings(name:'SettingsAndPrivacyPage'));
111-
}
112-
else if(pathElements[1].contains('AccountSettingsPage')){
113-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> AccountSettingsPage(),settings: RouteSettings(name:'AccountSettingsPage'));
114-
}
115-
else if(pathElements[1].contains('PrivacyAndSaftyPage')){
116-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> PrivacyAndSaftyPage(),settings: RouteSettings(name:'PrivacyAndSaftyPage'));
117-
}
118-
else if(pathElements[1].contains('NotificationPage')){
119-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> NotificationPage(),settings: RouteSettings(name:'NotificationPage'));
120-
}
121-
else if(pathElements[1].contains('ContentPrefrencePage')){
122-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> ContentPrefrencePage(),settings: RouteSettings(name:'ContentPrefrencePage'));
123-
}
124-
else if(pathElements[1].contains('DisplayAndSoundPage')){
125-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> DisplayAndSoundPage(),settings: RouteSettings(name:'DisplayAndSoundPage'));
126-
}
127-
else if(pathElements[1].contains('DirectMessagesPage')){
128-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> DirectMessagesPage(),settings: RouteSettings(name:'DirectMessagesPage'));
129-
}
130-
else if(pathElements[1].contains('TrendsPage')){
131-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> TrendsPage(),settings: RouteSettings(name:'TrendsPage'));
132-
}
133-
else if(pathElements[1].contains('DataUsagePage')){
134-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> DataUsagePage(),settings: RouteSettings(name:'DataUsagePage'));
135-
}
136-
else if(pathElements[1].contains('AccessibilityPage')){
137-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> AccessibilityPage(),settings: RouteSettings(name:'AccessibilityPage'));
138-
}
139-
else if(pathElements[1].contains('ProxyPage')){
140-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> ProxyPage(),settings: RouteSettings(name:'ProxyPage'));
141-
}
142-
else if(pathElements[1].contains('AboutPage')){
143-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> AboutPage(),settings: RouteSettings(name:'AboutPage'));
144-
}
145-
else if(pathElements[1].contains('ConversationInformation')){
146-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> ConversationInformation(),settings: RouteSettings(name:'ConversationInformation'));
147-
}
148-
else if(pathElements[1].contains('FollowingListPage')){
149-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> FollowingListPage(),settings: RouteSettings(name:'FollowingListPage'));
150-
}
151-
else if(pathElements[1].contains('FollowerListPage')){
152-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> FollowerListPage(),settings: RouteSettings(name:'FollowerListPage'));
153-
}
154-
else if(pathElements[1].contains('VerifyEmailPage')){
155-
return SlideLeftRoute<bool>(builder:(BuildContext context)=> VerifyEmailPage(),settings: RouteSettings(name:'VerifyEmailPage'));
156-
}
157-
else{
158-
return onUnknownRoute(RouteSettings(name: '/Feature'));
66+
case "WelcomePage":return CustomRoute<bool>(builder:(BuildContext context)=> WelcomePage());
67+
case "SignIn":return CustomRoute<bool>(builder:(BuildContext context)=> SignIn());
68+
case "SignUp":return CustomRoute<bool>(builder:(BuildContext context)=> Signup());
69+
case "ForgetPasswordPage":return CustomRoute<bool>(builder:(BuildContext context)=> ForgetPasswordPage());
70+
case "CreateFeedPage":return CustomRoute<bool>(builder:(BuildContext context)=> CreateFeedPage(),);
71+
case "SearchPage":return CustomRoute<bool>(builder:(BuildContext context)=> SearchPage());
72+
case "ProfilePage":return CustomRoute<bool>(builder:(BuildContext context)=> ProfilePage());
73+
case "ImageViewPge":return CustomRoute<bool>(builder:(BuildContext context)=> ImageViewPge());
74+
case "EditProfile":return CustomRoute<bool>(builder:(BuildContext context)=> EditProfilePage());
75+
case "ChatScreenPage":return CustomRoute<bool>(builder:(BuildContext context)=> ChatScreenPage());
76+
case "NewMessagePage":return CustomRoute<bool>(builder:(BuildContext context)=> NewMessagePage(),);
77+
case "SettingsAndPrivacyPage":return CustomRoute<bool>(builder:(BuildContext context)=> SettingsAndPrivacyPage(),);
78+
case "AccountSettingsPage":return CustomRoute<bool>(builder:(BuildContext context)=> AccountSettingsPage(),);
79+
case "AccountSettingsPage":return CustomRoute<bool>(builder:(BuildContext context)=> AccountSettingsPage(),);
80+
case "PrivacyAndSaftyPage":return CustomRoute<bool>(builder:(BuildContext context)=> PrivacyAndSaftyPage(),);
81+
case "NotificationPage":return CustomRoute<bool>(builder:(BuildContext context)=> NotificationPage(),);
82+
case "ContentPrefrencePage":return CustomRoute<bool>(builder:(BuildContext context)=> ContentPrefrencePage(),);
83+
case "DisplayAndSoundPage":return CustomRoute<bool>(builder:(BuildContext context)=> DisplayAndSoundPage(),);
84+
case "DirectMessagesPage":return CustomRoute<bool>(builder:(BuildContext context)=> DirectMessagesPage(),);
85+
case "TrendsPage":return CustomRoute<bool>(builder:(BuildContext context)=> TrendsPage(),);
86+
case "DataUsagePage":return CustomRoute<bool>(builder:(BuildContext context)=> DataUsagePage(),);
87+
case "AccessibilityPage":return CustomRoute<bool>(builder:(BuildContext context)=> AccessibilityPage(),);
88+
case "ProxyPage":return CustomRoute<bool>(builder:(BuildContext context)=> ProxyPage(),);
89+
case "AboutPage":return CustomRoute<bool>(builder:(BuildContext context)=> AboutPage(),);
90+
case "ConversationInformation":return CustomRoute<bool>(builder:(BuildContext context)=> ConversationInformation(),);
91+
case "FollowingListPage":return CustomRoute<bool>(builder:(BuildContext context)=> FollowingListPage(),);
92+
case "FollowerListPage":return CustomRoute<bool>(builder:(BuildContext context)=> FollowerListPage(),);
93+
case "VerifyEmailPage":return CustomRoute<bool>(builder:(BuildContext context)=> VerifyEmailPage(),);
94+
default:return onUnknownRoute(RouteSettings(name: '/Feature'));
15995
}
16096
}
16197

0 commit comments

Comments
 (0)