diff --git a/src/account-info/ProfileCard.js b/src/account-info/ProfileScreen.js similarity index 96% rename from src/account-info/ProfileCard.js rename to src/account-info/ProfileScreen.js index 0c845403a53..d66e89ed065 100644 --- a/src/account-info/ProfileCard.js +++ b/src/account-info/ProfileScreen.js @@ -2,7 +2,7 @@ import React from 'react'; import { ScrollView, View } from 'react-native'; -import type { MainTabsNavigationProp, MainTabsRouteProp } from '../main/MainTabs'; +import type { MainTabsNavigationProp, MainTabsRouteProp } from '../main/MainTabsScreen'; import * as NavigationService from '../nav/NavigationService'; import { createStyleSheet } from '../styles'; import { useDispatch, useSelector } from '../react-redux'; @@ -80,7 +80,7 @@ type Props = $ReadOnly<{| * * The user can still open `AccountDetails` on themselves via the (i) icon in a chat screen. */ -export default function ProfileCard(props: Props) { +export default function ProfileScreen(props: Props) { const ownUser = useSelector(getOwnUser); return ( diff --git a/src/account/AccountPickScreen.js b/src/account/AccountPickScreen.js index 8e606030e78..b0a755f19ac 100644 --- a/src/account/AccountPickScreen.js +++ b/src/account/AccountPickScreen.js @@ -10,11 +10,11 @@ import { hasAuth, getAccountStatuses } from '../selectors'; import type { AccountStatus } from './accountsSelectors'; import { Centerer, ZulipButton, Logo, Screen, ViewPlaceholder } from '../common'; import AccountList from './AccountList'; -import { navigateToRealmScreen, accountSwitch, removeAccount } from '../actions'; +import { navigateToRealmInputScreen, accountSwitch, removeAccount } from '../actions'; type Props = $ReadOnly<{| - navigation: AppNavigationProp<'account'>, - route: AppNavigationRouteProp<'account'>, + navigation: AppNavigationProp<'account-pick'>, + route: AppNavigationRouteProp<'account-pick'>, accounts: $ReadOnlyArray, dispatch: Dispatch, @@ -30,7 +30,7 @@ class AccountPickScreen extends PureComponent { dispatch(accountSwitch(index)); }); } else { - NavigationService.dispatch(navigateToRealmScreen({ realm })); + NavigationService.dispatch(navigateToRealmInputScreen({ realm })); } }; @@ -72,7 +72,7 @@ class AccountPickScreen extends PureComponent { { - NavigationService.dispatch(navigateToRealmScreen()); + NavigationService.dispatch(navigateToRealmInputScreen()); }} /> diff --git a/src/main/HomeTab.js b/src/main/HomeScreen.js similarity index 94% rename from src/main/HomeTab.js rename to src/main/HomeScreen.js index 416ef1a9f13..16aaf21d933 100644 --- a/src/main/HomeTab.js +++ b/src/main/HomeScreen.js @@ -3,7 +3,7 @@ import React, { PureComponent } from 'react'; import { View } from 'react-native'; -import type { MainTabsNavigationProp, MainTabsRouteProp } from './MainTabs'; +import type { MainTabsNavigationProp, MainTabsRouteProp } from './MainTabsScreen'; import * as NavigationService from '../nav/NavigationService'; import type { Dispatch } from '../types'; import { connect } from '../react-redux'; @@ -34,7 +34,7 @@ type Props = $ReadOnly<{| dispatch: Dispatch, |}>; -class HomeTab extends PureComponent { +class HomeScreen extends PureComponent { render() { const { dispatch } = this.props; @@ -74,4 +74,4 @@ class HomeTab extends PureComponent { } } -export default connect<{||}, _, _>()(HomeTab); +export default connect<{||}, _, _>()(HomeScreen); diff --git a/src/main/MainScreenWithTabs.js b/src/main/MainScreenWithTabs.js deleted file mode 100644 index ed4ea1442b9..00000000000 --- a/src/main/MainScreenWithTabs.js +++ /dev/null @@ -1,50 +0,0 @@ -/* @flow strict-local */ -import React, { PureComponent } from 'react'; -import { View } from 'react-native'; - -import type { AppNavigationProp, AppNavigationRouteProp } from '../nav/AppNavigator'; -import type { Dispatch } from '../types'; -import { connect } from '../react-redux'; -import { getHaveServerData } from '../selectors'; -import type { ThemeData } from '../styles'; -import styles, { ThemeContext } from '../styles'; -import { OfflineNotice, ZulipStatusBar } from '../common'; -import MainTabs from './MainTabs'; - -type Props = $ReadOnly<{| - navigation: AppNavigationProp<'main'>, - route: AppNavigationRouteProp<'main'>, - - dispatch: Dispatch, - haveServerData: boolean, -|}>; - -class MainScreenWithTabs extends PureComponent { - static contextType = ThemeContext; - context: ThemeData; - - render() { - if (!this.props.haveServerData) { - // This can happen if the user has just logged out; this screen - // is still visible for the duration of the nav transition, and - // it's legitimate for its `render` to get called again. - // See our #4275. - // - // Avoid rendering any of our main UI in this case, to maintain - // the guarantee that it can all rely on server data existing. - return null; - } - - return ( - - - - - - ); - } -} - -export default connect(state => ({ - haveServerData: getHaveServerData(state), -}))(MainScreenWithTabs); diff --git a/src/main/MainTabs.js b/src/main/MainTabs.js deleted file mode 100644 index d4c2ff60412..00000000000 --- a/src/main/MainTabs.js +++ /dev/null @@ -1,94 +0,0 @@ -/* @flow strict-local */ -import React from 'react'; -import { Platform } from 'react-native'; -import { - createBottomTabNavigator, - type BottomTabNavigationProp, -} from '@react-navigation/bottom-tabs'; -import type { RouteProp } from '@react-navigation/native'; - -import type { GlobalParamList } from '../nav/globalTypes'; -import { bottomTabNavigatorConfig } from '../styles/tabs'; -import HomeTab from './HomeTab'; -import StreamTabs from './StreamTabs'; -import PmConversationsCard from '../pm-conversations/PmConversationsCard'; -import SettingsCard from '../settings/SettingsCard'; -import { IconInbox, IconSettings, IconStream } from '../common/Icons'; -import { OwnAvatar } from '../common'; -import IconUnreadConversations from '../nav/IconUnreadConversations'; -import ProfileCard from '../account-info/ProfileCard'; - -export type MainTabsNavigatorParamList = {| - home: void, - streams: void, - conversations: void, - settings: void, - profile: void, -|}; - -export type MainTabsNavigationProp< - +RouteName: $Keys = $Keys, -> = BottomTabNavigationProp; - -export type MainTabsRouteProp< - RouteName: $Keys = $Keys, -> = RouteProp; - -const Tab = createBottomTabNavigator< - GlobalParamList, - MainTabsNavigatorParamList, - MainTabsNavigationProp<>, ->(); - -export default function MainTabs() { - return ( - - , - }} - /> - , - }} - /> - , - }} - /> - , - }} - /> - , - }} - /> - - ); -} diff --git a/src/main/MainTabsScreen.js b/src/main/MainTabsScreen.js new file mode 100644 index 00000000000..63fd4a2cb48 --- /dev/null +++ b/src/main/MainTabsScreen.js @@ -0,0 +1,121 @@ +/* @flow strict-local */ +import React, { useContext } from 'react'; +import { Platform, View } from 'react-native'; +import { + createBottomTabNavigator, + type BottomTabNavigationProp, +} from '@react-navigation/bottom-tabs'; +import type { RouteProp } from '@react-navigation/native'; + +import type { AppNavigationProp, AppNavigationRouteProp } from '../nav/AppNavigator'; +import type { GlobalParamList } from '../nav/globalTypes'; +import { bottomTabNavigatorConfig } from '../styles/tabs'; +import HomeScreen from './HomeScreen'; +import StreamTabsScreen from './StreamTabsScreen'; +import PmConversationsScreen from '../pm-conversations/PmConversationsScreen'; +import SettingsScreen from '../settings/SettingsScreen'; +import { IconInbox, IconSettings, IconStream } from '../common/Icons'; +import { OwnAvatar, OfflineNotice, ZulipStatusBar } from '../common'; +import IconUnreadConversations from '../nav/IconUnreadConversations'; +import ProfileScreen from '../account-info/ProfileScreen'; +import { useSelector } from '../react-redux'; +import { getHaveServerData } from '../selectors'; +import styles, { ThemeContext } from '../styles'; + +export type MainTabsNavigatorParamList = {| + home: void, + 'stream-tabs': void, + 'pm-conversations': void, + settings: void, + profile: void, +|}; + +export type MainTabsNavigationProp< + +RouteName: $Keys = $Keys, +> = BottomTabNavigationProp; + +export type MainTabsRouteProp< + RouteName: $Keys = $Keys, +> = RouteProp; + +const Tab = createBottomTabNavigator< + GlobalParamList, + MainTabsNavigatorParamList, + MainTabsNavigationProp<>, +>(); + +type Props = $ReadOnly<{| + navigation: AppNavigationProp<'main-tabs'>, + route: AppNavigationRouteProp<'main-tabs'>, +|}>; + +export default function MainTabsScreen(props: Props) { + const { backgroundColor } = useContext(ThemeContext); + const haveServerData = useSelector(getHaveServerData); + + if (!haveServerData) { + // This can happen if the user has just logged out; this screen + // is still visible for the duration of the nav transition, and + // it's legitimate for its `render` to get called again. + // See our #4275. + // + // Avoid rendering any of our main UI in this case, to maintain + // the guarantee that it can all rely on server data existing. + return null; + } + + return ( + + + + + , + }} + /> + , + }} + /> + , + }} + /> + , + }} + /> + , + }} + /> + + + ); +} diff --git a/src/main/StreamTabs.js b/src/main/StreamTabsScreen.js similarity index 92% rename from src/main/StreamTabs.js rename to src/main/StreamTabsScreen.js index 6c4218b05f4..8a170c9e7b5 100644 --- a/src/main/StreamTabs.js +++ b/src/main/StreamTabsScreen.js @@ -9,7 +9,7 @@ import { import type { RouteProp } from '@react-navigation/native'; import { createStyleSheet } from '../styles'; -import type { MainTabsNavigationProp, MainTabsRouteProp } from './MainTabs'; +import type { MainTabsNavigationProp, MainTabsRouteProp } from './MainTabsScreen'; import type { GlobalParamList } from '../nav/globalTypes'; import { materialTopTabNavigatorConfig } from '../styles/tabs'; import SubscriptionsCard from '../streams/SubscriptionsCard'; @@ -42,11 +42,11 @@ const styles = createStyleSheet({ }); type Props = $ReadOnly<{| - navigation: MainTabsNavigationProp<'streams'>, - route: MainTabsRouteProp<'streams'>, + navigation: MainTabsNavigationProp<'stream-tabs'>, + route: MainTabsRouteProp<'stream-tabs'>, |}>; -export default function StreamTabs(props: Props) { +export default function StreamTabsScreen(props: Props) { return ( |}, auth: {| serverSettings: ApiResponseServerSettings |}, chat: {| narrow: Narrow |}, - dev: void, + 'dev-auth': void, 'emoji-picker': {| messageId: number |}, loading: void, - main: void, + 'main-tabs': void, 'message-reactions': {| reactionName?: string, messageId: number |}, - password: {| requireEmailFormat: boolean |}, - realm: {| realm: URL | void, initial: boolean | void |}, - search: void, + 'password-auth': {| requireEmailFormat: boolean |}, + 'realm-input': {| realm: URL | void, initial: boolean | void |}, + 'search-messages': void, users: void, language: void, lightbox: {| src: string, message: Message |}, - group: void, + 'create-group': void, 'invite-users': {| streamId: number |}, diagnostics: void, variables: void, timing: void, storage: void, debug: void, - stream: {| streamId: number |}, - 'stream-edit': {| streamId: number |}, - 'stream-create': void, - topics: {| streamId: number |}, + 'stream-settings': {| streamId: number |}, + 'edit-stream': {| streamId: number |}, + 'create-stream': void, + 'topic-list': {| streamId: number |}, notifications: void, legal: void, 'user-status': void, @@ -114,45 +114,45 @@ export default function AppNavigator(props: Props) { }), }} > - + - + - - + + - + - + - - - - + + + + diff --git a/src/nav/getInitialRouteInfo.js b/src/nav/getInitialRouteInfo.js index 45f1314768e..2349a721cc4 100644 --- a/src/nav/getInitialRouteInfo.js +++ b/src/nav/getInitialRouteInfo.js @@ -17,22 +17,25 @@ export default (args: {| if (accounts.length > 1) { // We can't guess which account, of multiple, the user wants // to use. Let them pick one. - return { initialRouteName: 'account' }; + return { initialRouteName: 'account-pick' }; } else if (accounts.length === 1) { // We already know the realm, so give that to the realm // screen. If that screen finds that the realm is valid, it'll // send the user along to AuthScreen for that realm right // away. If this means you're on the AuthScreen when you don't // want to be (i.e., you want to choose a different realm), - // you can always go back to RealmScreen. + // you can always go back to RealmInputScreen. return { - initialRouteName: 'realm', + initialRouteName: 'realm-input', initialRouteParams: { initial: true, realm: accounts[0].realm }, }; } else { // Just go to the realm screen and have the user type out the // realm. - return { initialRouteName: 'realm', initialRouteParams: { initial: true, realm: undefined } }; + return { + initialRouteName: 'realm-input', + initialRouteParams: { initial: true, realm: undefined }, + }; } } @@ -45,5 +48,5 @@ export default (args: {| // Great: we have an active, logged-in account, and server data for it. // Show the main UI. - return { initialRouteName: 'main' }; + return { initialRouteName: 'main-tabs' }; }; diff --git a/src/nav/globalTypes.js b/src/nav/globalTypes.js index e2704734ac7..756a2029d8f 100644 --- a/src/nav/globalTypes.js +++ b/src/nav/globalTypes.js @@ -2,8 +2,8 @@ import type { AppNavigatorParamList } from './AppNavigator'; import type { SharingNavigatorParamList } from '../sharing/SharingScreen'; -import type { StreamTabsNavigatorParamList } from '../main/StreamTabs'; -import type { MainTabsNavigatorParamList } from '../main/MainTabs'; +import type { StreamTabsNavigatorParamList } from '../main/StreamTabsScreen'; +import type { MainTabsNavigatorParamList } from '../main/MainTabsScreen'; export type GlobalParamList = {| ...AppNavigatorParamList, diff --git a/src/nav/navActions.js b/src/nav/navActions.js index 015fcfc35f6..a7f6157e9a5 100644 --- a/src/nav/navActions.js +++ b/src/nav/navActions.js @@ -22,10 +22,10 @@ export const resetToLoading = (): GenericNavigationAction => }); export const resetToAccountPicker = (): GenericNavigationAction => - CommonActions.reset({ index: 0, routes: [{ name: 'account' }] }); + CommonActions.reset({ index: 0, routes: [{ name: 'account-pick' }] }); export const resetToMainTabs = (): GenericNavigationAction => - CommonActions.reset({ index: 0, routes: [{ name: 'main' }] }); + CommonActions.reset({ index: 0, routes: [{ name: 'main-tabs' }] }); /* * Ordinary "push" actions that will push to the stack. @@ -37,7 +37,7 @@ export const navigateToChat = (narrow: Narrow): GenericNavigationAction => export const navigateToUsersScreen = (): GenericNavigationAction => StackActions.push('users'); -export const navigateToSearch = (): GenericNavigationAction => StackActions.push('search'); +export const navigateToSearch = (): GenericNavigationAction => StackActions.push('search-messages'); export const navigateToEmojiPicker = (messageId: number): GenericNavigationAction => StackActions.push('emoji-picker', { messageId }); @@ -46,12 +46,13 @@ export const navigateToAuth = ( serverSettings: ApiResponseServerSettings, ): GenericNavigationAction => StackActions.push('auth', { serverSettings }); -export const navigateToDev = (): GenericNavigationAction => StackActions.push('dev'); +export const navigateToDevAuth = (): GenericNavigationAction => StackActions.push('dev-auth'); -export const navigateToPassword = (requireEmailFormat: boolean): GenericNavigationAction => - StackActions.push('password', { requireEmailFormat }); +export const navigateToPasswordAuth = (requireEmailFormat: boolean): GenericNavigationAction => + StackActions.push('password-auth', { requireEmailFormat }); -export const navigateToAccountPicker = (): GenericNavigationAction => StackActions.push('account'); +export const navigateToAccountPicker = (): GenericNavigationAction => + StackActions.push('account-pick'); export const navigateToAccountDetails = (userId: UserId): GenericNavigationAction => StackActions.push('account-details', { userId }); @@ -60,17 +61,18 @@ export const navigateToGroupDetails = ( recipients: $ReadOnlyArray, ): GenericNavigationAction => StackActions.push('group-details', { recipients }); -export const navigateToRealmScreen = ( +export const navigateToRealmInputScreen = ( args: { realm?: URL, initial?: boolean } = {}, ): GenericNavigationAction => - StackActions.push('realm', { realm: args.realm, initial: args.initial }); + StackActions.push('realm-input', { realm: args.realm, initial: args.initial }); export const navigateToLightbox = (src: string, message: Message): GenericNavigationAction => StackActions.push('lightbox', { src, message }); export const navigateToLanguage = (): GenericNavigationAction => StackActions.push('language'); -export const navigateToCreateGroup = (): GenericNavigationAction => StackActions.push('group'); +export const navigateToCreateGroup = (): GenericNavigationAction => + StackActions.push('create-group'); export const navigateToDiagnostics = (): GenericNavigationAction => StackActions.push('diagnostics'); @@ -84,16 +86,16 @@ export const navigateToStorage = (): GenericNavigationAction => StackActions.pus export const navigateToDebug = (): GenericNavigationAction => StackActions.push('debug'); export const navigateToStream = (streamId: number): GenericNavigationAction => - StackActions.push('stream', { streamId }); + StackActions.push('stream-settings', { streamId }); export const navigateToTopicList = (streamId: number): GenericNavigationAction => - StackActions.push('topics', { streamId }); + StackActions.push('topic-list', { streamId }); export const navigateToCreateStream = (): GenericNavigationAction => - StackActions.push('stream-create'); + StackActions.push('create-stream'); export const navigateToEditStream = (streamId: number): GenericNavigationAction => - StackActions.push('stream-edit', { streamId }); + StackActions.push('edit-stream', { streamId }); export const navigateToStreamSubscribers = (streamId: number): GenericNavigationAction => StackActions.push('invite-users', { streamId }); diff --git a/src/pm-conversations/PmConversationsCard.js b/src/pm-conversations/PmConversationsScreen.js similarity index 91% rename from src/pm-conversations/PmConversationsCard.js rename to src/pm-conversations/PmConversationsScreen.js index 85513a1594d..63f8f33dbfa 100644 --- a/src/pm-conversations/PmConversationsCard.js +++ b/src/pm-conversations/PmConversationsScreen.js @@ -3,7 +3,7 @@ import React, { useContext } from 'react'; import { View } from 'react-native'; -import type { MainTabsNavigationProp, MainTabsRouteProp } from '../main/MainTabs'; +import type { MainTabsNavigationProp, MainTabsRouteProp } from '../main/MainTabsScreen'; import * as NavigationService from '../nav/NavigationService'; import { ThemeContext, createStyleSheet } from '../styles'; import { useSelector, useDispatch } from '../react-redux'; @@ -33,14 +33,14 @@ const styles = createStyleSheet({ }); type Props = $ReadOnly<{| - navigation: MainTabsNavigationProp<'conversations'>, - route: MainTabsRouteProp<'conversations'>, + navigation: MainTabsNavigationProp<'pm-conversations'>, + route: MainTabsRouteProp<'pm-conversations'>, |}>; /** * The "PMs" page in the main tabs navigation. * */ -export default function PmConversationsCard(props: Props) { +export default function PmConversationsScreen(props: Props) { const conversations = useSelector(getRecentConversations); const dispatch = useDispatch(); const context = useContext(ThemeContext); diff --git a/src/reactions/MessageReactionList.js b/src/reactions/MessageReactionsScreen.js similarity index 96% rename from src/reactions/MessageReactionList.js rename to src/reactions/MessageReactionsScreen.js index b49c00df819..30f867fb954 100644 --- a/src/reactions/MessageReactionList.js +++ b/src/reactions/MessageReactionsScreen.js @@ -45,12 +45,12 @@ type Props = $ReadOnly<{| * The `reactionName` nav-prop controls what reaction is focused when the * screen first appears. */ -class MessageReactionList extends PureComponent { +class MessageReactionsScreen extends PureComponent { componentDidMount() { if (this.props.message === undefined) { const { messageId } = this.props.route.params; logging.warn( - 'MessageReactionList unexpectedly created without props.message; ' + 'MessageReactionsScreen unexpectedly created without props.message; ' + 'message with messageId is missing in state.messages', { messageId }, ); @@ -140,4 +140,4 @@ export default connect((state, props) => ({ // message *can* be undefined; see componentDidUpdate for explanation and handling. message: state.messages.get(props.route.params.messageId), ownUserId: getOwnUserId(state), -}))(MessageReactionList); +}))(MessageReactionsScreen); diff --git a/src/reactions/ReactionUserList.js b/src/reactions/ReactionUserList.js index f493b135016..cf413b2d858 100644 --- a/src/reactions/ReactionUserList.js +++ b/src/reactions/ReactionUserList.js @@ -14,7 +14,7 @@ type Props = $ReadOnly<{| /** * Component showing who made a given reaction on a given message. * - * Used within `MessageReactionList`. + * Used within `MessageReactionsScreen`. */ export default function ReactionUserList(props: Props) { const { reactedUserIds } = props; diff --git a/src/search/SearchMessagesScreen.js b/src/search/SearchMessagesScreen.js index 8880b360099..201db7499f2 100644 --- a/src/search/SearchMessagesScreen.js +++ b/src/search/SearchMessagesScreen.js @@ -13,8 +13,8 @@ import { getAuth } from '../account/accountsSelectors'; import { fetchMessages } from '../message/fetchActions'; type Props = $ReadOnly<{| - navigation: AppNavigationProp<'search'>, - route: AppNavigationRouteProp<'search'>, + navigation: AppNavigationProp<'search-messages'>, + route: AppNavigationRouteProp<'search-messages'>, auth: Auth, dispatch: Dispatch, diff --git a/src/settings/SettingsCard.js b/src/settings/SettingsScreen.js similarity index 96% rename from src/settings/SettingsCard.js rename to src/settings/SettingsScreen.js index 71fa466c4bf..b5558682242 100644 --- a/src/settings/SettingsCard.js +++ b/src/settings/SettingsScreen.js @@ -3,7 +3,7 @@ import React, { PureComponent } from 'react'; import { ScrollView } from 'react-native'; -import type { MainTabsNavigationProp, MainTabsRouteProp } from '../main/MainTabs'; +import type { MainTabsNavigationProp, MainTabsRouteProp } from '../main/MainTabsScreen'; import * as NavigationService from '../nav/NavigationService'; import type { Dispatch } from '../types'; import { createStyleSheet } from '../styles'; @@ -40,7 +40,7 @@ type Props = $ReadOnly<{| dispatch: Dispatch, |}>; -class SettingsCard extends PureComponent { +class SettingsScreen extends PureComponent { handleThemeChange = () => { const { dispatch, theme } = this.props; dispatch(settingsChange({ theme: theme === 'default' ? 'night' : 'default' })); @@ -93,4 +93,4 @@ class SettingsCard extends PureComponent { export default connect(state => ({ theme: getSettings(state).theme, -}))(SettingsCard); +}))(SettingsScreen); diff --git a/src/start/AuthScreen.js b/src/start/AuthScreen.js index 30bab8569e3..013b1468779 100644 --- a/src/start/AuthScreen.js +++ b/src/start/AuthScreen.js @@ -29,7 +29,7 @@ import { getCurrentRealm } from '../selectors'; import RealmInfo from './RealmInfo'; import { encodeParamsForUrl } from '../utils/url'; import * as webAuth from './webAuth'; -import { loginSuccess, navigateToDev, navigateToPassword } from '../actions'; +import { loginSuccess, navigateToDevAuth, navigateToPasswordAuth } from '../actions'; import IosCompliantAppleAuthButton from './IosCompliantAppleAuthButton'; import openLink from '../utils/openLink'; @@ -233,12 +233,14 @@ class AuthScreen extends PureComponent { }; handleDevAuth = () => { - NavigationService.dispatch(navigateToDev()); + NavigationService.dispatch(navigateToDevAuth()); }; handlePassword = () => { const { serverSettings } = this.props.route.params; - NavigationService.dispatch(navigateToPassword(serverSettings.require_email_format_usernames)); + NavigationService.dispatch( + navigateToPasswordAuth(serverSettings.require_email_format_usernames), + ); }; handleNativeAppleAuth = async () => { diff --git a/src/start/DevAuthScreen.js b/src/start/DevAuthScreen.js index d35f3934709..6386f2b650b 100644 --- a/src/start/DevAuthScreen.js +++ b/src/start/DevAuthScreen.js @@ -28,8 +28,8 @@ const componentStyles = createStyleSheet({ }); type Props = $ReadOnly<{| - navigation: AppNavigationProp<'dev'>, - route: AppNavigationRouteProp<'dev'>, + navigation: AppNavigationProp<'dev-auth'>, + route: AppNavigationRouteProp<'dev-auth'>, partialAuth: Auth, dispatch: Dispatch, diff --git a/src/start/PasswordAuthScreen.js b/src/start/PasswordAuthScreen.js index bed3e33e24d..ac215832eeb 100644 --- a/src/start/PasswordAuthScreen.js +++ b/src/start/PasswordAuthScreen.js @@ -27,8 +27,8 @@ const styles = createStyleSheet({ }); type Props = $ReadOnly<{| - navigation: AppNavigationProp<'password'>, - route: AppNavigationRouteProp<'password'>, + navigation: AppNavigationProp<'password-auth'>, + route: AppNavigationRouteProp<'password-auth'>, partialAuth: Auth, dispatch: Dispatch, diff --git a/src/start/RealmScreen.js b/src/start/RealmInputScreen.js similarity index 93% rename from src/start/RealmScreen.js rename to src/start/RealmInputScreen.js index 61973d52358..c4c1431cedf 100644 --- a/src/start/RealmScreen.js +++ b/src/start/RealmInputScreen.js @@ -18,8 +18,8 @@ type SelectorProps = {| |}; type Props = $ReadOnly<{| - navigation: AppNavigationProp<'realm'>, - route: AppNavigationRouteProp<'realm'>, + navigation: AppNavigationProp<'realm-input'>, + route: AppNavigationRouteProp<'realm-input'>, dispatch: Dispatch, ...SelectorProps, @@ -31,7 +31,7 @@ type State = {| progress: boolean, |}; -class RealmScreen extends PureComponent { +class RealmInputScreen extends PureComponent { state = { progress: false, realmInputValue: this.props.initialRealmInputValue, @@ -70,7 +70,7 @@ class RealmScreen extends PureComponent { } catch (err) { this.setState({ error: 'Cannot connect to server' }); /* eslint-disable no-console */ - console.warn('RealmScreen: failed to connect to server:', err); + console.warn('RealmInputScreen: failed to connect to server:', err); console.warn(err.stack); } finally { this.setState({ progress: false }); @@ -136,4 +136,4 @@ class RealmScreen extends PureComponent { export default connect((state, props) => ({ initialRealmInputValue: props.route.params.realm?.toString() ?? '', -}))(RealmScreen); +}))(RealmInputScreen); diff --git a/src/streams/CreateStreamScreen.js b/src/streams/CreateStreamScreen.js index 5d75fd8b3ea..b61e3e61f30 100644 --- a/src/streams/CreateStreamScreen.js +++ b/src/streams/CreateStreamScreen.js @@ -11,8 +11,8 @@ import { Screen } from '../common'; import EditStreamCard from './EditStreamCard'; type Props = $ReadOnly<{| - navigation: AppNavigationProp<'stream-create'>, - route: AppNavigationRouteProp<'stream-create'>, + navigation: AppNavigationProp<'create-stream'>, + route: AppNavigationRouteProp<'create-stream'>, dispatch: Dispatch, ownEmail: string, diff --git a/src/streams/EditStreamScreen.js b/src/streams/EditStreamScreen.js index 06b426634a1..5d048b5d17b 100644 --- a/src/streams/EditStreamScreen.js +++ b/src/streams/EditStreamScreen.js @@ -15,8 +15,8 @@ type SelectorProps = $ReadOnly<{| |}>; type Props = $ReadOnly<{| - navigation: AppNavigationProp<'stream-edit'>, - route: AppNavigationRouteProp<'stream-edit'>, + navigation: AppNavigationProp<'edit-stream'>, + route: AppNavigationRouteProp<'edit-stream'>, dispatch: Dispatch, ...SelectorProps, diff --git a/src/streams/StreamScreen.js b/src/streams/StreamSettingsScreen.js similarity index 95% rename from src/streams/StreamScreen.js rename to src/streams/StreamSettingsScreen.js index 4d909553384..57abfbf31f4 100644 --- a/src/streams/StreamScreen.js +++ b/src/streams/StreamSettingsScreen.js @@ -31,14 +31,14 @@ type SelectorProps = $ReadOnly<{| |}>; type Props = $ReadOnly<{| - navigation: AppNavigationProp<'stream'>, - route: AppNavigationRouteProp<'stream'>, + navigation: AppNavigationProp<'stream-settings'>, + route: AppNavigationRouteProp<'stream-settings'>, dispatch: Dispatch, ...SelectorProps, |}>; -class StreamScreen extends PureComponent { +class StreamSettingsScreen extends PureComponent { handleTogglePinStream = (newValue: boolean) => { const { dispatch, stream } = this.props; dispatch(togglePinStream(stream.stream_id, newValue)); @@ -117,4 +117,4 @@ export default connect((state, props) => ({ stream: getStreamForId(state, props.route.params.streamId), subscription: getSubscriptionsById(state).get(props.route.params.streamId) || NULL_SUBSCRIPTION, userSettingStreamNotification: getSettings(state).streamNotification, -}))(StreamScreen); +}))(StreamSettingsScreen); diff --git a/src/streams/SubscriptionsCard.js b/src/streams/SubscriptionsCard.js index 63de38536db..f35009bb88d 100644 --- a/src/streams/SubscriptionsCard.js +++ b/src/streams/SubscriptionsCard.js @@ -3,7 +3,7 @@ import React, { PureComponent } from 'react'; import { View } from 'react-native'; -import type { StreamTabsNavigationProp, StreamTabsRouteProp } from '../main/StreamTabs'; +import type { StreamTabsNavigationProp, StreamTabsRouteProp } from '../main/StreamTabsScreen'; import type { Dispatch, Subscription } from '../types'; import { createStyleSheet } from '../styles'; import { connect } from '../react-redux'; diff --git a/src/subscriptions/StreamListCard.js b/src/subscriptions/StreamListCard.js index 8d89fcefa8b..a21f59d7d74 100644 --- a/src/subscriptions/StreamListCard.js +++ b/src/subscriptions/StreamListCard.js @@ -3,7 +3,7 @@ import React, { PureComponent } from 'react'; import { View } from 'react-native'; -import type { StreamTabsNavigationProp, StreamTabsRouteProp } from '../main/StreamTabs'; +import type { StreamTabsNavigationProp, StreamTabsRouteProp } from '../main/StreamTabsScreen'; import * as NavigationService from '../nav/NavigationService'; import type { Auth, Dispatch, Stream, Subscription } from '../types'; import { createStyleSheet } from '../styles'; diff --git a/src/topics/TopicListScreen.js b/src/topics/TopicListScreen.js index 9d1005bcf5a..42bbfbcddd5 100644 --- a/src/topics/TopicListScreen.js +++ b/src/topics/TopicListScreen.js @@ -18,8 +18,8 @@ type SelectorProps = $ReadOnly<{| |}>; type Props = $ReadOnly<{| - navigation: AppNavigationProp<'topics'>, - route: AppNavigationRouteProp<'topics'>, + navigation: AppNavigationProp<'topic-list'>, + route: AppNavigationRouteProp<'topic-list'>, dispatch: Dispatch, ...SelectorProps, diff --git a/src/user-groups/CreateGroupScreen.js b/src/user-groups/CreateGroupScreen.js index cf016382206..c9ee877623f 100644 --- a/src/user-groups/CreateGroupScreen.js +++ b/src/user-groups/CreateGroupScreen.js @@ -17,8 +17,8 @@ type SelectorProps = {| |}; type Props = $ReadOnly<{| - navigation: AppNavigationProp<'group'>, - route: AppNavigationRouteProp<'group'>, + navigation: AppNavigationProp<'create-group'>, + route: AppNavigationRouteProp<'create-group'>, dispatch: Dispatch, ...SelectorProps,