diff --git a/apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubIntegrationConnectionForm.tsx b/apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubIntegrationConnectionForm.tsx index 5c69fa0dc38d0..152da94ad04af 100644 --- a/apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubIntegrationConnectionForm.tsx +++ b/apps/studio/components/interfaces/Settings/Integrations/GithubIntegration/GitHubIntegrationConnectionForm.tsx @@ -47,6 +47,7 @@ import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout' const GITHUB_ICON = ( + GitHub icon ({ + const { + data: githubReposData, + isLoading: isLoadingGitHubRepos, + refetch: refetchGitHubRepositories, + } = useGitHubRepositoriesQuery({ enabled: Boolean(gitHubAuthorization), }) + const refetchGitHubAuthorizationAndRepositories = () => { + setTimeout(() => { + refetchGitHubAuthorization() + refetchGitHubRepositories() + }, 2000) // 2 second to delay to let github authorization and repositories to be updated + } + const { mutate: updateBranch } = useBranchUpdateMutation({ onSuccess: () => { toast.success('Production branch settings successfully updated') @@ -130,7 +141,7 @@ const GitHubIntegrationConnectionForm = ({ const githubRepos = useMemo( () => - githubReposData?.map((repo: any) => ({ + githubReposData?.map((repo) => ({ id: repo.id.toString(), name: repo.name, installation_id: repo.installation_id, @@ -161,7 +172,7 @@ const GitHubIntegrationConnectionForm = ({ repositoryId: Number(repositoryId), branchName: val.branchName, }) - } catch (error) { + } catch { const selectedRepo = githubRepos.find((repo) => repo.id === repositoryId) const repoName = selectedRepo?.name || connection?.repository.name || 'selected repository' @@ -337,11 +348,11 @@ const GitHubIntegrationConnectionForm = ({ const data = githubSettingsForm.getValues() const selectedRepo = githubRepos.find((repo) => repo.id === data.repositoryId) - if (!selectedRepo || !connection) return + if (!selectedRepo || !connection || !selectedOrganization?.id) return try { await deleteConnection({ - organizationId: selectedOrganization!.id, + organizationId: selectedOrganization.id, connectionId: connection.id, }) @@ -390,7 +401,10 @@ const GitHubIntegrationConnectionForm = ({