Skip to content

Commit

Permalink
AppNavigator: Use withHaveServerDataGate for most screen components.
Browse files Browse the repository at this point in the history
The user could have any of these screens mounted when they receive a
force-logout. If that happens, we want them all to handle it
gracefully.

Putting the calls here, instead of alongside each component's
definition, will make it easier to scan through and spot any that
should use the HOC and don't.
  • Loading branch information
chrisbobbe authored and gnprice committed Apr 14, 2021
1 parent a80b4e8 commit f53d4f6
Showing 1 changed file with 35 additions and 23 deletions.
58 changes: 35 additions & 23 deletions src/nav/AppNavigator.js
Original file line number Diff line number Diff line change
Expand Up @@ -106,30 +106,42 @@ export default function AppNavigator(props: Props) {
}}
>
{/* These screens expect server data in order to function normally. */}
<Stack.Screen name="account-details" component={AccountDetailsScreen} />
<Stack.Screen name="group-details" component={GroupDetailsScreen} />
<Stack.Screen name="chat" component={ChatScreen} />
<Stack.Screen name="emoji-picker" component={EmojiPickerScreen} />
<Stack.Screen
name="account-details"
component={withHaveServerDataGate(AccountDetailsScreen)}
/>
<Stack.Screen name="group-details" component={withHaveServerDataGate(GroupDetailsScreen)} />
<Stack.Screen name="chat" component={withHaveServerDataGate(ChatScreen)} />
<Stack.Screen name="emoji-picker" component={withHaveServerDataGate(EmojiPickerScreen)} />
<Stack.Screen name="main-tabs" component={withHaveServerDataGate(MainTabsScreen)} />
<Stack.Screen name="message-reactions" component={MessageReactionsScreen} />
<Stack.Screen name="search-messages" component={SearchMessagesScreen} />
<Stack.Screen name="users" component={UsersScreen} />
<Stack.Screen name="language" component={LanguageScreen} />
<Stack.Screen name="lightbox" component={LightboxScreen} />
<Stack.Screen name="create-group" component={CreateGroupScreen} />
<Stack.Screen name="invite-users" component={InviteUsersScreen} />
<Stack.Screen name="diagnostics" component={DiagnosticsScreen} />
<Stack.Screen name="variables" component={VariablesScreen} />
<Stack.Screen name="timing" component={TimingScreen} />
<Stack.Screen name="storage" component={StorageScreen} />
<Stack.Screen name="debug" component={DebugScreen} />
<Stack.Screen name="stream-settings" component={StreamSettingsScreen} />
<Stack.Screen name="edit-stream" component={EditStreamScreen} />
<Stack.Screen name="create-stream" component={CreateStreamScreen} />
<Stack.Screen name="topic-list" component={TopicListScreen} />
<Stack.Screen name="notifications" component={NotificationsScreen} />
<Stack.Screen name="legal" component={LegalScreen} />
<Stack.Screen name="user-status" component={UserStatusScreen} />
<Stack.Screen
name="message-reactions"
component={withHaveServerDataGate(MessageReactionsScreen)}
/>
<Stack.Screen
name="search-messages"
component={withHaveServerDataGate(SearchMessagesScreen)}
/>
<Stack.Screen name="users" component={withHaveServerDataGate(UsersScreen)} />
<Stack.Screen name="language" component={withHaveServerDataGate(LanguageScreen)} />
<Stack.Screen name="lightbox" component={withHaveServerDataGate(LightboxScreen)} />
<Stack.Screen name="create-group" component={withHaveServerDataGate(CreateGroupScreen)} />
<Stack.Screen name="invite-users" component={withHaveServerDataGate(InviteUsersScreen)} />
<Stack.Screen name="diagnostics" component={withHaveServerDataGate(DiagnosticsScreen)} />
<Stack.Screen name="variables" component={withHaveServerDataGate(VariablesScreen)} />
<Stack.Screen name="timing" component={withHaveServerDataGate(TimingScreen)} />
<Stack.Screen name="storage" component={withHaveServerDataGate(StorageScreen)} />
<Stack.Screen name="debug" component={withHaveServerDataGate(DebugScreen)} />
<Stack.Screen
name="stream-settings"
component={withHaveServerDataGate(StreamSettingsScreen)}
/>
<Stack.Screen name="edit-stream" component={withHaveServerDataGate(EditStreamScreen)} />
<Stack.Screen name="create-stream" component={withHaveServerDataGate(CreateStreamScreen)} />
<Stack.Screen name="topic-list" component={withHaveServerDataGate(TopicListScreen)} />
<Stack.Screen name="notifications" component={withHaveServerDataGate(NotificationsScreen)} />
<Stack.Screen name="legal" component={withHaveServerDataGate(LegalScreen)} />
<Stack.Screen name="user-status" component={withHaveServerDataGate(UserStatusScreen)} />

{/* These screens do not expect server data in order to function
normally. */}
Expand Down

0 comments on commit f53d4f6

Please sign in to comment.