44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import { RouteProp, useNavigation, useRoute } from '@react-navigation/native';
|
|
import { StackNavigationProp } from '@react-navigation/stack';
|
|
|
|
import { TNavigation } from '../../stacks/stackType';
|
|
import {
|
|
AdminPanelStackParamList,
|
|
ChatsStackParamList,
|
|
DisplayPrefStackParamList,
|
|
DrawerParamList,
|
|
E2EEnterYourPasswordStackParamList,
|
|
E2ESaveYourPasswordStackParamList,
|
|
InsideStackParamList,
|
|
NewMessageStackParamList,
|
|
OutsideModalParamList,
|
|
OutsideParamList,
|
|
ProfileStackParamList,
|
|
SettingsStackParamList
|
|
} from '../../stacks/types';
|
|
|
|
type TRoutes =
|
|
| ChatsStackParamList
|
|
| ProfileStackParamList
|
|
| SettingsStackParamList
|
|
| AdminPanelStackParamList
|
|
| DisplayPrefStackParamList
|
|
| DrawerParamList
|
|
| NewMessageStackParamList
|
|
| E2ESaveYourPasswordStackParamList
|
|
| E2EEnterYourPasswordStackParamList
|
|
| InsideStackParamList
|
|
| OutsideParamList
|
|
| OutsideModalParamList
|
|
| TNavigation;
|
|
|
|
export function useAppNavigation<ParamList extends TRoutes, RouteName extends keyof ParamList = keyof ParamList>() {
|
|
const navigation = useNavigation<StackNavigationProp<ParamList, RouteName>>();
|
|
return navigation;
|
|
}
|
|
|
|
export function useAppRoute<ParamList extends TRoutes, RouteName extends keyof ParamList = keyof ParamList>() {
|
|
const route = useRoute<RouteProp<ParamList, RouteName>>();
|
|
return route;
|
|
}
|