Skip to content

Commit 47fbde5

Browse files
authored
chore: migrate AttachmentView to hooks (#5003)
* migrate AttachmentView to hooks * fix types * fix types * fix lint
1 parent 01577d9 commit 47fbde5

File tree

9 files changed

+189
-150
lines changed

9 files changed

+189
-150
lines changed

app/lib/hooks/navigation.ts

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { RouteProp, useNavigation, useRoute } from '@react-navigation/native';
2+
import { StackNavigationProp } from '@react-navigation/stack';
3+
4+
import { TNavigation } from '../../stacks/stackType';
5+
import {
6+
AdminPanelStackParamList,
7+
ChatsStackParamList,
8+
DisplayPrefStackParamList,
9+
DrawerParamList,
10+
E2EEnterYourPasswordStackParamList,
11+
E2ESaveYourPasswordStackParamList,
12+
InsideStackParamList,
13+
NewMessageStackParamList,
14+
OutsideModalParamList,
15+
OutsideParamList,
16+
ProfileStackParamList,
17+
SettingsStackParamList
18+
} from '../../stacks/types';
19+
20+
type TRoutes =
21+
| ChatsStackParamList
22+
| ProfileStackParamList
23+
| SettingsStackParamList
24+
| AdminPanelStackParamList
25+
| DisplayPrefStackParamList
26+
| DrawerParamList
27+
| NewMessageStackParamList
28+
| E2ESaveYourPasswordStackParamList
29+
| E2EEnterYourPasswordStackParamList
30+
| InsideStackParamList
31+
| OutsideParamList
32+
| OutsideModalParamList
33+
| TNavigation;
34+
35+
export function useAppNavigation<ParamList extends TRoutes, RouteName extends keyof ParamList = keyof ParamList>() {
36+
const navigation = useNavigation<StackNavigationProp<ParamList, RouteName>>();
37+
return navigation;
38+
}
39+
40+
export function useAppRoute<ParamList extends TRoutes, RouteName extends keyof ParamList = keyof ParamList>() {
41+
const route = useRoute<RouteProp<ParamList, RouteName>>();
42+
return route;
43+
}

app/stacks/InsideStack.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ import {
8282
SettingsStackParamList
8383
} from './types';
8484
import { isIOS } from '../lib/methods/helpers';
85+
import { TNavigation } from './stackType';
8586

8687
// ChatsStackNavigator
8788
const ChatsStack = createStackNavigator<ChatsStackParamList>();
@@ -306,7 +307,7 @@ const E2EEnterYourPasswordStackNavigator = () => {
306307
};
307308

308309
// InsideStackNavigator
309-
const InsideStack = createStackNavigator<InsideStackParamList>();
310+
const InsideStack = createStackNavigator<InsideStackParamList & TNavigation>();
310311
const InsideStackNavigator = () => {
311312
const { theme } = React.useContext(ThemeContext);
312313

app/stacks/MasterDetailStack/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ import {
7373
ModalStackParamList
7474
} from './types';
7575
import { isIOS } from '../../lib/methods/helpers';
76+
import { TNavigation } from '../stackType';
7677

7778
// ChatsStackNavigator
7879
const ChatsStack = createStackNavigator<MasterDetailChatsStackParamList>();
@@ -206,7 +207,7 @@ const ModalStackNavigator = React.memo(({ navigation }: INavigation) => {
206207
});
207208

208209
// InsideStackNavigator
209-
const InsideStack = createStackNavigator<MasterDetailInsideStackParamList>();
210+
const InsideStack = createStackNavigator<MasterDetailInsideStackParamList & TNavigation>();
210211
const InsideStackNavigator = React.memo(() => {
211212
const { theme } = React.useContext(ThemeContext);
212213
return (

app/stacks/MasterDetailStack/types.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -207,9 +207,6 @@ export type ModalStackParamList = {
207207
export type MasterDetailInsideStackParamList = {
208208
DrawerNavigator: NavigatorScreenParams<Partial<MasterDetailDrawerParamList>>; // TODO: Change
209209
ModalStackNavigator: NavigatorScreenParams<ModalStackParamList>;
210-
AttachmentView: {
211-
attachment: IAttachment;
212-
};
213210
ModalBlockView: {
214211
data: any; // TODO: Change
215212
};

app/stacks/stackType.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { IAttachment } from '../definitions';
2+
import { IOptionsField } from '../views/NotificationPreferencesView/options';
3+
4+
export type TNavigation = {
5+
PickerView: {
6+
title: string;
7+
data: IOptionsField[];
8+
value?: string;
9+
onSearch: (text?: string, offset?: number) => Promise<any>;
10+
onEndReached?: (text?: string, offset?: number) => Promise<any>;
11+
total?: number;
12+
onChangeValue: Function;
13+
};
14+
ForwardLivechatView: {
15+
rid: string;
16+
};
17+
AttachmentView: {
18+
attachment: IAttachment;
19+
};
20+
};

app/stacks/types.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -288,9 +288,6 @@ export type InsideStackParamList = {
288288
NewMessageStackNavigator: NavigatorScreenParams<NewMessageStackParamList>;
289289
E2ESaveYourPasswordStackNavigator: NavigatorScreenParams<E2ESaveYourPasswordStackParamList>;
290290
E2EEnterYourPasswordStackNavigator: NavigatorScreenParams<E2EEnterYourPasswordStackParamList>;
291-
AttachmentView: {
292-
attachment: IAttachment;
293-
};
294291
StatusView: undefined;
295292
ShareView: {
296293
attachments: IAttachment[];

0 commit comments

Comments
 (0)