fix: resolve default branch when not found in DOM

This commit is contained in:
EnixCoda 2020-04-30 22:14:37 +08:00
parent cb4b83102c
commit 18cf30b7ab
No known key found for this signature in database
GPG key ID: 0C1A07377913A1DD
4 changed files with 18 additions and 23 deletions

View file

@ -50,7 +50,6 @@ export const init: BoundMethodCreator = dispatch => async () => {
dispatch.set({ disabled: true })
return
}
const detectedBranchName = metaData.branchName
DOMHelper.markGitakoReadyState(true)
dispatch.set({
errorDueToAuth: false,
@ -62,10 +61,11 @@ export const init: BoundMethodCreator = dispatch => async () => {
const [, { configContext }] = dispatch.get()
const { access_token: accessToken } = configContext.val
if (!metaData.branchName || !metaData.userName || !metaData.repoName) return
if (!metaData.userName || !metaData.repoName) return
const guessDefaultBranch = 'master'
const getTreeDataAggressively = platform.getTreeData(
{
branchName: metaData.branchName,
branchName: metaData.branchName || guessDefaultBranch,
userName: metaData.userName,
repoName: metaData.repoName,
},
@ -81,13 +81,13 @@ export const init: BoundMethodCreator = dispatch => async () => {
let getTreeData = getTreeDataAggressively
const metaDataFromAPI = await platform.getMetaData(
{
branchName: metaData.branchName,
userName: metaData.userName,
repoName: metaData.repoName,
},
accessToken,
)
const projectDefaultBranchName = metaDataFromAPI?.defaultBranchName
const detectedBranchName = metaData.branchName
if (
!detectedBranchName &&
projectDefaultBranchName &&

View file

@ -92,22 +92,18 @@ export const GitHub: Platform = {
const metaData = {
...URLHelper.parse(),
branchName: detectedBranchName || 'master',
branchName: detectedBranchName,
} as MetaData
return metaData
},
async getMetaData(rawMetaData, accessToken) {
const { userName, repoName, branchName } = rawMetaData
async getMetaData(partialMetaData, accessToken) {
const { userName, repoName } = partialMetaData
const data = await API.getRepoMeta(userName, repoName, accessToken)
const metaData: MetaData = {
userName: data.owner.login,
repoName: data.name,
branchName,
return {
userUrl: data?.owner?.html_url,
repoUrl: data?.html_url,
defaultBranchName: data.default_branch,
}
return metaData
},
async getTreeData(metaData, accessToken) {
const { userName, repoName, branchName } = metaData

View file

@ -92,22 +92,18 @@ export const Gitee: Platform = {
const metaData = {
...URLHelper.parse(),
branchName: detectedBranchName || 'master',
branchName: detectedBranchName,
} as MetaData
return metaData
},
async getMetaData(rawMetaData, accessToken) {
const { userName, repoName, branchName } = rawMetaData
async getMetaData(partialMetaData, accessToken) {
const { userName, repoName } = partialMetaData
const data = await API.getRepoMeta(userName, repoName, accessToken)
const metaData: MetaData = {
userName,
repoName,
branchName,
return {
userUrl: data?.html_url?.replace(/(.*)\/.*?$/, '$1'),
repoUrl: data?.html_url,
defaultBranchName: data.default_branch,
}
return metaData
},
async getTreeData(metaData, accessToken) {
const { userName, repoName, branchName } = metaData

View file

@ -1,6 +1,9 @@
type Platform = {
resolveMeta(): MetaData | null
getMetaData(metaData: MetaData, accessToken?: string): Promise<MetaData>
getMetaData(
metaData: Pick<MetaData, 'userName' | 'repoName'>,
accessToken?: string,
): Promise<Pick<MetaData, 'userUrl' | 'repoUrl' | 'defaultBranchName'>>
getTreeData(metaData: MetaData, accessToken?: string): Promise<TreeNode>
shouldShow(metaData?: Partial<MetaData>): boolean
getCurrentPath(branchName: string): string[] | null