1import { useMemo, type ReactNode } from "react";
2import { View } from "react-native";
3import { MaterialScreenContent } from "../../components/MaterialScreenContent";
4import { PullRequestsScreen } from "../pull-requests/PullRequestsScreen";
5import { MaterialPullRequestToolbar } from "../pull-requests/MaterialPullRequestToolbar.android";
6import { WorkspaceTabsContext, useWorkspaceTabs } from "./WorkspaceTabsContext";
7
8export function AndroidWorkspaceSidebar(props: {
9 readonly children: ReactNode;
10 readonly onRequestVisibility: () => void;
11 readonly selectedPullRequestKey: string | null;
12}) {
13 const workspace = useWorkspaceTabs()!;
14 const context = useMemo(() => ({ ...workspace, bottomClearance: 16 }), [workspace]);
15 return workspace.state.selectedTab === "threads" ? (
16 props.children
17 ) : (
18 <WorkspaceTabsContext value={context}>
19 <View className="flex-1 bg-header">
20 <MaterialPullRequestToolbar onRequestVisibility={props.onRequestVisibility} />
21 <MaterialScreenContent insetHorizontal>
22 <PullRequestsScreen sidebar selectedPullRequestKey={props.selectedPullRequestKey} />
23 </MaterialScreenContent>
24 </View>
25 </WorkspaceTabsContext>
26 );
27}