mirror of
https://github.com/EnixCoda/Gitako.git
synced 2026-03-11 08:54:44 +00:00
feat: aggressive load tree data
This commit is contained in:
parent
5713489656
commit
4b92b9cfd0
1 changed files with 26 additions and 15 deletions
|
|
@ -10,28 +10,38 @@ const init = dispatch => async () => {
|
|||
dispatch(setMetaData, metaData)
|
||||
const { access_token: accessToken, shortcut, compressSingletonFolder } = await configHelper.get()
|
||||
dispatch({ accessToken, toggleShowSideBarShortcut: shortcut, compressSingletonFolder })
|
||||
const aggressivelyGotTreeData = GitHubHelper.getTreeData({ branchName: 'master', ...metaData, accessToken }).catch(() => {})
|
||||
const metaDataFromAPI = await GitHubHelper.getRepoMeta({ ...metaData, accessToken })
|
||||
const branchName = metaData.branchName || metaDataFromAPI['default_branch']
|
||||
Object.assign(metaData, { branchName, api: metaDataFromAPI })
|
||||
dispatch(setMetaData, metaData)
|
||||
const shouldShow = URLHelper.isInCodePage(metaData)
|
||||
dispatch(setShouldShow, shouldShow)
|
||||
const treeData = await GitHubHelper.getTreeData({ ...metaData, accessToken })
|
||||
dispatch({ logoContainerElement: DOMHelper.insertLogoMountPoint() })
|
||||
dispatch({ treeData })
|
||||
} catch (err) {
|
||||
// TODO: detect request time exceeds limit
|
||||
if (err.message === NOT_FOUND || err.message === BAD_CREDENTIALS) {
|
||||
const repoPageType = await DOMHelper.getRepoPageType()
|
||||
const errorDueToAuth = repoPageType === REPO_TYPE_PRIVATE || err.message === BAD_CREDENTIALS
|
||||
dispatch({
|
||||
showSettings: repoPageType !== null,
|
||||
errorDueToAuth,
|
||||
aggressivelyGotTreeData
|
||||
.then(treeData => {
|
||||
dispatch({ logoContainerElement: DOMHelper.insertLogoMountPoint() })
|
||||
dispatch({ treeData })
|
||||
})
|
||||
dispatch(setShouldShow, errorDueToAuth)
|
||||
} else {
|
||||
dispatch(setShouldShow, false)
|
||||
}
|
||||
.catch(err => {
|
||||
dispatch(handleError, err)
|
||||
})
|
||||
} catch (err) {
|
||||
dispatch(handleError, err)
|
||||
}
|
||||
}
|
||||
|
||||
const handleError = dispatch => async (err) => {
|
||||
// TODO: detect request time exceeds limit
|
||||
if (err.message === NOT_FOUND || err.message === BAD_CREDENTIALS) {
|
||||
const repoPageType = await DOMHelper.getRepoPageType()
|
||||
const errorDueToAuth = repoPageType === REPO_TYPE_PRIVATE || err.message === BAD_CREDENTIALS
|
||||
dispatch({
|
||||
showSettings: repoPageType !== null,
|
||||
errorDueToAuth,
|
||||
})
|
||||
dispatch(setShouldShow, errorDueToAuth)
|
||||
} else {
|
||||
dispatch(setShouldShow, false)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -85,4 +95,5 @@ export default {
|
|||
onShortcutChange,
|
||||
setMetaData,
|
||||
setCompressSingleton,
|
||||
handleError,
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue