1import { CommonActions, useNavigation } from "@react-navigation/native";
2import { useCallback } from "react";
3import { Keyboard } from "react-native";
4import {
5 androidWorkspaceNavigationState,
6 type AndroidWorkspaceDestination,
7} from "../../lib/android-workspace-navigation";
8import { useWorkspaceTabs } from "./WorkspaceTabsContext";
9
10export function useAndroidWorkspaceSelection() {
11 const navigation = useNavigation();
12 const dispatch = useWorkspaceTabs()?.dispatch;
13 return useCallback(
14 (
15 destination: AndroidWorkspaceDestination,
16 reviewers?: ReactNavigation.RootParamList["PullRequestReviewers"],
17 ) => {
18 Keyboard.dismiss();
19 dispatch?.({
20 type: "select",
21 tab: destination.name === "Thread" ? "threads" : "pullRequests",
22 });
23 navigation.dispatch((state) =>
24 CommonActions.reset(androidWorkspaceNavigationState(state, destination, reviewers)),
25 );
26 },
27 [navigation, dispatch],
28 );
29}