diff --git a/src/Explorer/Controls/GitHub/AddRepoComponent.tsx b/src/Explorer/Controls/GitHub/AddRepoComponent.tsx index a8d29efe0..07974372d 100644 --- a/src/Explorer/Controls/GitHub/AddRepoComponent.tsx +++ b/src/Explorer/Controls/GitHub/AddRepoComponent.tsx @@ -1,14 +1,14 @@ import { DefaultButton, IButtonProps, ITextFieldProps, TextField } from "@fluentui/react"; import * as React from "react"; import * as Constants from "../../../Common/Constants"; +import * as UrlUtility from "../../../Common/UrlUtility"; +import { IGitHubRepo } from "../../../GitHub/GitHubClient"; import { Action } from "../../../Shared/Telemetry/TelemetryConstants"; +import * as TelemetryProcessor from "../../../Shared/Telemetry/TelemetryProcessor"; +import * as GitHubUtils from "../../../Utils/GitHubUtils"; +import Explorer from "../../Explorer"; import { RepoListItem } from "./GitHubReposComponent"; import { ChildrenMargin } from "./GitHubStyleConstants"; -import * as GitHubUtils from "../../../Utils/GitHubUtils"; -import { IGitHubRepo } from "../../../GitHub/GitHubClient"; -import * as TelemetryProcessor from "../../../Shared/Telemetry/TelemetryProcessor"; -import * as UrlUtility from "../../../Common/UrlUtility"; -import Explorer from "../../Explorer"; export interface AddRepoComponentProps { container: Explorer; @@ -27,7 +27,6 @@ export class AddRepoComponent extends React.Component void; } @@ -64,7 +65,7 @@ export class ReposListComponent extends React.Component private static readonly BranchesColumnName = "Branches"; private static readonly LoadingText = "Loading..."; private static readonly LoadMoreText = "Load more"; - private static readonly DefaultBranchName = "master"; + private static readonly DefaultBranchNames = "master/main"; private static readonly FooterIndex = -1; public render(): JSX.Element { @@ -155,6 +156,10 @@ export class ReposListComponent extends React.Component } const branchesProps = this.props.branchesProps[GitHubUtils.toRepoFullName(item.repo.owner, item.repo.name)]; + if (item.branches.length === 0 && branchesProps.defaultBranchName) { + item.branches = [{ name: branchesProps.defaultBranchName }]; + } + const options: IDropdownOption[] = branchesProps.branches.map((branch) => ({ key: branch.name, text: branch.name, @@ -198,7 +203,7 @@ export class ReposListComponent extends React.Component const dropdownProps: IDropdownProps = { styles: BranchesDropdownStyles, options: [], - placeholder: ReposListComponent.DefaultBranchName, + placeholder: ReposListComponent.DefaultBranchNames, disabled: true, }; @@ -272,7 +277,7 @@ export class ReposListComponent extends React.Component styles: ReposListCheckboxStyles, onChange: () => { const repoListItem = { ...item }; - repoListItem.branches = [{ name: ReposListComponent.DefaultBranchName }]; + repoListItem.branches = []; this.props.pinRepo(repoListItem); }, }; diff --git a/src/Explorer/Panes/GitHubReposPanel/GitHubReposPanel.tsx b/src/Explorer/Panes/GitHubReposPanel/GitHubReposPanel.tsx index dfa8667db..f807eeb19 100644 --- a/src/Explorer/Panes/GitHubReposPanel/GitHubReposPanel.tsx +++ b/src/Explorer/Panes/GitHubReposPanel/GitHubReposPanel.tsx @@ -35,6 +35,9 @@ interface IGitHubReposPanelState { } export class GitHubReposPanel extends React.Component { private static readonly PageSize = 30; + private static readonly MasterBranchName = "master"; + private static readonly MainBranchName = "main"; + private isAddedRepo = false; private gitHubClient: GitHubClient; private junoClient: JunoClient; @@ -116,6 +119,8 @@ export class GitHubReposPanel extends React.Component + branch.name === GitHubReposPanel.MasterBranchName || branch.name === GitHubReposPanel.MainBranchName + )?.name; + if (defaultbranchName) { + branchesProps.defaultBranchName = defaultbranchName; + } } } catch (error) { handleError(error, "GitHubReposPane/loadMoreBranches", "Failed to fetch branches"); @@ -298,6 +311,17 @@ export class GitHubReposPanel extends React.Component repo.key === item.key); if (existingRepo) { existingRepo.branches = item.branches; + this.setState({ + gitHubReposState: { + ...this.state.gitHubReposState, + reposListProps: { + ...this.state.gitHubReposState.reposListProps, + pinnedReposProps: { + repos: this.pinnedReposProps.repos, + }, + }, + }, + }); } else { this.pinnedReposProps.repos = [...this.pinnedReposProps.repos, item]; } @@ -374,6 +398,7 @@ export class GitHubReposPanel extends React.Component => this.loadMoreBranches(item.repo), }; this.loadMoreBranches(item.repo);