Skip to content

Commit de29b5a

Browse files
committed
flow: Fix NavigateAction type
The type `NavigationNavigateAction` we use is too specific and not the correct one. We want the `NavigationAction` type instead. Also, to make it simpler and consistent, we rename our own type `NavigateAction` to `NavigationAction`.
1 parent b600c2f commit de29b5a

File tree

3 files changed

+41
-43
lines changed

3 files changed

+41
-43
lines changed

src/actionTypes.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
/* @flow strict-local */
2-
import type { NavigationNavigateAction } from 'react-navigation';
3-
42
import {
53
REHYDRATE,
64
APP_ONLINE,
@@ -90,6 +88,8 @@ import type {
9088
UserStatusEvent,
9189
} from './types';
9290

91+
export type { NavigationAction } from 'react-navigation';
92+
9393
/**
9494
* Dispatched by redux-persist when the stored state is loaded.
9595
*
@@ -152,8 +152,6 @@ type DebugFlagToggleAction = {|
152152
value: boolean,
153153
|};
154154

155-
export type NavigateAction = NavigationNavigateAction;
156-
157155
type AccountSwitchAction = {|
158156
type: typeof ACCOUNT_SWITCH,
159157
index: number,

src/nav/navActions.js

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { NavigationActions, StackActions } from 'react-navigation';
33

44
import type {
55
Dispatch,
6-
NavigateAction,
6+
NavigationAction,
77
GetState,
88
Message,
99
Narrow,
@@ -12,101 +12,101 @@ import type {
1212
} from '../types';
1313
import { getSameRoutesCount } from '../selectors';
1414

15-
export const navigateBack = () => (dispatch: Dispatch, getState: GetState): NavigateAction =>
16-
// $FlowFixMe
15+
export const navigateBack = () => (dispatch: Dispatch, getState: GetState): NavigationAction =>
1716
dispatch(StackActions.pop({ n: getSameRoutesCount(getState()) }));
1817

19-
export const navigateToChat = (narrow: Narrow): NavigateAction =>
18+
export const navigateToChat = (narrow: Narrow): NavigationAction =>
2019
NavigationActions.navigate({ routeName: 'chat', params: { narrow } });
2120

22-
export const navigateToAllStreams = (): NavigateAction =>
21+
export const navigateToAllStreams = (): NavigationAction =>
2322
NavigationActions.navigate({ routeName: 'subscriptions' });
2423

25-
export const navigateToUsersScreen = (): NavigateAction =>
24+
export const navigateToUsersScreen = (): NavigationAction =>
2625
NavigationActions.navigate({ routeName: 'users' });
2726

28-
export const navigateToSearch = (): NavigateAction =>
27+
export const navigateToSearch = (): NavigationAction =>
2928
NavigationActions.navigate({ routeName: 'search' });
3029

31-
export const navigateToSettings = (): NavigateAction =>
30+
export const navigateToSettings = (): NavigationAction =>
3231
NavigationActions.navigate({ routeName: 'settings' });
3332

34-
export const navigateToEmojiPicker = (messageId: number): NavigateAction =>
33+
export const navigateToEmojiPicker = (messageId: number): NavigationAction =>
3534
NavigationActions.navigate({ routeName: 'emoji-picker', params: { messageId } });
3635

37-
export const navigateToAuth = (serverSettings: ApiResponseServerSettings): NavigateAction =>
36+
export const navigateToAuth = (serverSettings: ApiResponseServerSettings): NavigationAction =>
3837
NavigationActions.navigate({ routeName: 'auth', params: { serverSettings } });
3938

40-
export const navigateToDev = (): NavigateAction => NavigationActions.navigate({ routeName: 'dev' });
39+
export const navigateToDev = (): NavigationAction =>
40+
NavigationActions.navigate({ routeName: 'dev' });
4141

42-
export const navigateToPassword = (requireEmailFormat: boolean): NavigateAction =>
42+
export const navigateToPassword = (requireEmailFormat: boolean): NavigationAction =>
4343
NavigationActions.navigate({ routeName: 'password', params: { requireEmailFormat } });
4444

45-
export const navigateToAccountPicker = (): NavigateAction =>
45+
export const navigateToAccountPicker = (): NavigationAction =>
4646
NavigationActions.navigate({ routeName: 'account' });
4747

48-
export const navigateToAccountDetails = (email: string): NavigateAction =>
48+
export const navigateToAccountDetails = (email: string): NavigationAction =>
4949
NavigationActions.navigate({ routeName: 'account-details', params: { email } });
5050

51-
export const navigateToGroupDetails = (recipients: UserOrBot[]): NavigateAction =>
51+
export const navigateToGroupDetails = (recipients: UserOrBot[]): NavigationAction =>
5252
NavigationActions.navigate({ routeName: 'group-details', params: { recipients } });
5353

54-
export const navigateToRealmScreen = (realm?: string): NavigateAction =>
54+
export const navigateToRealmScreen = (realm?: string): NavigationAction =>
5555
NavigationActions.navigate({ routeName: 'realm', params: { realm } });
5656

57-
export const navigateToLightbox = (src: string, message: Message): NavigateAction =>
57+
export const navigateToLightbox = (src: string, message: Message): NavigationAction =>
5858
NavigationActions.navigate({ routeName: 'lightbox', params: { src, message } });
5959

60-
export const navigateToLoading = (): NavigateAction =>
60+
export const navigateToLoading = (): NavigationAction =>
6161
NavigationActions.navigate({ routeName: 'loading' });
6262

63-
export const navigateToLanguage = (): NavigateAction =>
63+
export const navigateToLanguage = (): NavigationAction =>
6464
NavigationActions.navigate({ routeName: 'language' });
6565

66-
export const navigateToCreateGroup = (): NavigateAction =>
66+
export const navigateToCreateGroup = (): NavigationAction =>
6767
NavigationActions.navigate({ routeName: 'group' });
6868

69-
export const navigateToDiagnostics = (): NavigateAction =>
69+
export const navigateToDiagnostics = (): NavigationAction =>
7070
NavigationActions.navigate({ routeName: 'diagnostics' });
7171

72-
export const navigateToWelcomeHelp = (): NavigateAction =>
72+
export const navigateToWelcomeHelp = (): NavigationAction =>
7373
NavigationActions.navigate({ routeName: 'welcome-help' });
7474

75-
export const navigateToWelcomeScreen = (): NavigateAction =>
75+
export const navigateToWelcomeScreen = (): NavigationAction =>
7676
NavigationActions.navigate({ routeName: 'welcome' });
7777

78-
export const navigateToVariables = (): NavigateAction =>
78+
export const navigateToVariables = (): NavigationAction =>
7979
NavigationActions.navigate({ routeName: 'variables' });
8080

81-
export const navigateToTiming = (): NavigateAction =>
81+
export const navigateToTiming = (): NavigationAction =>
8282
NavigationActions.navigate({ routeName: 'timing' });
8383

84-
export const navigateToStorage = (): NavigateAction =>
84+
export const navigateToStorage = (): NavigationAction =>
8585
NavigationActions.navigate({ routeName: 'storage' });
8686

87-
export const navigateToDebug = (): NavigateAction =>
87+
export const navigateToDebug = (): NavigationAction =>
8888
NavigationActions.navigate({ routeName: 'debug' });
8989

90-
export const navigateToStream = (streamId: number): NavigateAction =>
90+
export const navigateToStream = (streamId: number): NavigationAction =>
9191
NavigationActions.navigate({ routeName: 'stream', params: { streamId } });
9292

93-
export const navigateToTopicList = (streamId: number): NavigateAction =>
93+
export const navigateToTopicList = (streamId: number): NavigationAction =>
9494
NavigationActions.navigate({ routeName: 'topics', params: { streamId } });
9595

96-
export const navigateToCreateStream = (): NavigateAction =>
96+
export const navigateToCreateStream = (): NavigationAction =>
9797
NavigationActions.navigate({ routeName: 'stream-create' });
9898

99-
export const navigateToEditStream = (streamId: number): NavigateAction =>
99+
export const navigateToEditStream = (streamId: number): NavigationAction =>
100100
NavigationActions.navigate({ routeName: 'stream-edit', params: { streamId } });
101101

102-
export const navigateToStreamSubscribers = (streamId: number): NavigateAction =>
102+
export const navigateToStreamSubscribers = (streamId: number): NavigationAction =>
103103
NavigationActions.navigate({ routeName: 'invite-users', params: { streamId } });
104104

105-
export const navigateToNotifications = (): NavigateAction =>
105+
export const navigateToNotifications = (): NavigationAction =>
106106
NavigationActions.navigate({ routeName: 'notifications' });
107107

108-
export const navigateToLegal = (): NavigateAction =>
108+
export const navigateToLegal = (): NavigationAction =>
109109
NavigationActions.navigate({ routeName: 'legal' });
110110

111-
export const navigateToUserStatus = (): NavigateAction =>
111+
export const navigateToUserStatus = (): NavigationAction =>
112112
NavigationActions.navigate({ routeName: 'user-status' });

src/reduxTypes.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
*
88
* @flow strict-local
99
*/
10-
10+
import type { NavigationAction } from 'react-navigation';
1111
import type { InputSelector } from 'reselect';
1212

1313
import type { Account, Outbox } from './types';
14-
import type { Action, NavigateAction } from './actionTypes';
14+
import type { Action } from './actionTypes';
1515
import type {
1616
Topic,
1717
HuddlesUnreadItem,
@@ -266,9 +266,9 @@ export type Selector<TResult, TParam = void> = InputSelector<GlobalState, TParam
266266

267267
export type GetState = () => GlobalState;
268268

269-
export type PlainDispatch = <A: Action | NavigateAction>(action: A) => A;
269+
export type PlainDispatch = <A: Action | NavigationAction>(action: A) => A;
270270

271271
export interface Dispatch {
272-
<A: Action | NavigateAction>(action: A): A;
272+
<A: Action | NavigationAction>(action: A): A;
273273
<T>((Dispatch, GetState) => T): T;
274274
}

0 commit comments

Comments
 (0)