@@ -8,12 +8,14 @@ import {
88} from "@phosphor-icons/react" ;
99import { repoMatchesGitHubRepos } from "@posthog/core/onboarding/repoProvider" ;
1010import { cn } from "@posthog/quill" ;
11+ import { useHostCapabilities } from "@posthog/ui/shell/useHostCapabilities" ;
1112import { Box , Button , Flex , Text } from "@radix-ui/themes" ;
1213import { AnimatePresence , motion } from "framer-motion" ;
1314import { useMemo } from "react" ;
1415import { builderHog } from "../../../assets/hedgehogs" ;
1516import { OnboardingHogTip } from "../../../primitives/OnboardingHogTip" ;
1617import { FolderPicker } from "../../folder-picker/FolderPicker" ;
18+ import { GitHubRepoPicker } from "../../folder-picker/GitHubRepoPicker" ;
1719import { useUserRepositoryIntegration } from "../../integrations/useIntegrations" ;
1820import type { DetectedRepo } from "../types" ;
1921import { OptionalBadge } from "./OptionalBadge" ;
@@ -37,7 +39,13 @@ export function SelectRepoStep({
3739 isDetectingRepo,
3840 onDirectoryChange,
3941} : SelectRepoStepProps ) {
40- const { repositories } = useUserRepositoryIntegration ( ) ;
42+ const { localWorkspaces } = useHostCapabilities ( ) ;
43+ const {
44+ repositories,
45+ isLoadingRepos,
46+ isRefreshingRepos,
47+ refreshRepositories,
48+ } = useUserRepositoryIntegration ( ) ;
4149
4250 const repoMatchesGitHub = useMemo (
4351 ( ) => repoMatchesGitHubRepos ( detectedRepo , repositories ) ,
@@ -96,18 +104,31 @@ export function SelectRepoStep({
96104 </ Text >
97105 </ Flex >
98106 < Text className = "text-(--gray-11) text-sm" >
99- Select a single repository folder, not a parent folder
100- that contains multiple repos.
107+ { localWorkspaces
108+ ? "Select a single repository folder, not a parent folder that contains multiple repos."
109+ : "Pick a repository from your connected GitHub organizations." }
101110 </ Text >
102111 </ Flex >
103- < FolderPicker
104- variant = "field"
105- value = { selectedDirectory }
106- onChange = { onDirectoryChange }
107- placeholder = "Select repository..."
108- />
112+ { localWorkspaces ? (
113+ < FolderPicker
114+ variant = "field"
115+ value = { selectedDirectory }
116+ onChange = { onDirectoryChange }
117+ placeholder = "Select repository..."
118+ />
119+ ) : (
120+ < GitHubRepoPicker
121+ value = { selectedDirectory || null }
122+ onChange = { ( repo ) => onDirectoryChange ( repo ?? "" ) }
123+ repositories = { repositories }
124+ isLoading = { isLoadingRepos }
125+ onRefresh = { refreshRepositories }
126+ isRefreshing = { isRefreshingRepos }
127+ placeholder = "Select repository..."
128+ />
129+ ) }
109130 < AnimatePresence mode = "wait" >
110- { isDetectingRepo && (
131+ { localWorkspaces && isDetectingRepo && (
111132 < motion . div
112133 key = "detecting"
113134 initial = { { opacity : 0 } }
@@ -126,7 +147,8 @@ export function SelectRepoStep({
126147 </ Flex >
127148 </ motion . div >
128149 ) }
129- { ! isDetectingRepo &&
150+ { localWorkspaces &&
151+ ! isDetectingRepo &&
130152 selectedDirectory &&
131153 detectedRepo && (
132154 < motion . div
@@ -161,7 +183,8 @@ export function SelectRepoStep({
161183 </ Flex >
162184 </ motion . div >
163185 ) }
164- { ! isDetectingRepo &&
186+ { localWorkspaces &&
187+ ! isDetectingRepo &&
165188 selectedDirectory &&
166189 ! detectedRepo && (
167190 < motion . div
0 commit comments