mirror of
https://github.com/EnixCoda/Gitako.git
synced 2026-03-11 08:54:44 +00:00
feat: add platform error parser
This commit is contained in:
parent
cb57e95e79
commit
4982b9a1ca
3 changed files with 15 additions and 9 deletions
|
|
@ -1,6 +1,6 @@
|
|||
import { GITEE_OAUTH } from 'env'
|
||||
import { Base64 } from 'js-base64'
|
||||
import { platform } from 'platforms'
|
||||
import { errors, platform } from 'platforms'
|
||||
import * as React from 'react'
|
||||
import { resolveGitModules } from 'utils/gitSubmodule'
|
||||
import { useAfterRedirect } from 'utils/hooks/useFastRedirect'
|
||||
|
|
@ -180,6 +180,10 @@ export const Gitee: Platform = {
|
|||
usePlatformHooks() {
|
||||
useProgressBar()
|
||||
},
|
||||
mapErrorMessage: (error: Error) =>
|
||||
({
|
||||
['Only signed in user is allowed to call APIs.']: errors.BAD_CREDENTIALS,
|
||||
}[error.message]),
|
||||
}
|
||||
|
||||
export function useGiteeAttachCopySnippetButton(copySnippetButton: boolean) {
|
||||
|
|
|
|||
1
src/platforms/platform.d.ts
vendored
1
src/platforms/platform.d.ts
vendored
|
|
@ -29,4 +29,5 @@ type Platform = {
|
|||
| void
|
||||
loadWithFastRedirect?(url: string, element: HTMLElement): boolean | void
|
||||
usePlatformHooks?(): void
|
||||
mapErrorMessage?: (error: Error) => string | void
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { useConfigs } from 'containers/ConfigsContext'
|
||||
import { errors, platformName } from 'platforms'
|
||||
import { errors, platform, platformName } from 'platforms'
|
||||
import { useCallback } from 'react'
|
||||
import { useLoadedContext } from 'utils/hooks/useLoadedContext'
|
||||
import { SideBarErrorContext } from '../../containers/ErrorContext'
|
||||
|
|
@ -12,33 +12,34 @@ export function useHandleNetworkError() {
|
|||
|
||||
return useCallback(
|
||||
function handleNetworkError(err: Error) {
|
||||
if (err.message === errors.EMPTY_PROJECT) {
|
||||
const message = platform.mapErrorMessage?.(err) || err.message
|
||||
if (message === errors.EMPTY_PROJECT) {
|
||||
changeErrorContext('This project seems to be empty.')
|
||||
return
|
||||
}
|
||||
|
||||
if (err.message === errors.BLOCKED_PROJECT) {
|
||||
if (message === errors.BLOCKED_PROJECT) {
|
||||
changeErrorContext('Access to the project is blocked.')
|
||||
return
|
||||
}
|
||||
|
||||
if (
|
||||
err.message === errors.NOT_FOUND ||
|
||||
err.message === errors.BAD_CREDENTIALS ||
|
||||
err.message === errors.API_RATE_LIMIT
|
||||
message === errors.NOT_FOUND ||
|
||||
message === errors.BAD_CREDENTIALS ||
|
||||
message === errors.API_RATE_LIMIT
|
||||
) {
|
||||
changeStateContext('error-due-to-auth')
|
||||
return
|
||||
}
|
||||
|
||||
if (err.message === errors.CONNECTION_BLOCKED) {
|
||||
if (message === errors.CONNECTION_BLOCKED) {
|
||||
if (accessToken) changeErrorContext(`Cannot connect to ${platformName}.`)
|
||||
else changeStateContext('error-due-to-auth')
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
if (err.message === errors.SERVER_FAULT) {
|
||||
if (message === errors.SERVER_FAULT) {
|
||||
changeErrorContext(`${platformName} server went down.`)
|
||||
return
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue