| 1 | import { useMemo, type ReactNode } from "react"; |
| 2 | import { View } from "react-native"; |
| 3 | import { MaterialScreenContent } from "../../components/MaterialScreenContent"; |
| 4 | import { PullRequestsScreen } from "../pull-requests/PullRequestsScreen"; |
| 5 | import { MaterialPullRequestToolbar } from "../pull-requests/MaterialPullRequestToolbar.android"; |
| 6 | import { WorkspaceTabsContext, useWorkspaceTabs } from "./WorkspaceTabsContext"; |
| 7 | |
| 8 | export 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 | } |