diff --git a/src/pages/gallery/index.tsx b/src/pages/gallery/index.tsx index 63e1e4973..3310476d5 100644 --- a/src/pages/gallery/index.tsx +++ b/src/pages/gallery/index.tsx @@ -27,7 +27,7 @@ import { checkSubscriptionPurchase } from 'utils/billing'; import FullScreenDropZone from 'components/FullScreenDropZone'; import Sidebar from 'components/Sidebar'; -import { checkConnectivity, preloadImage } from 'utils/common'; +import { preloadImage } from 'utils/common'; import { isFirstLogin, justSignedUp, @@ -99,6 +99,7 @@ import useFileInput from 'hooks/useFileInput'; import { User } from 'types/user'; import { getData, LS_KEYS } from 'utils/storage/localStorage'; import { CenteredFlex } from 'components/Container'; +import { checkConnectivity } from 'utils/error/ui'; export const DeadCenter = styled('div')` flex: 1; diff --git a/src/utils/common/index.ts b/src/utils/common/index.ts index fcba88b05..e47081c25 100644 --- a/src/utils/common/index.ts +++ b/src/utils/common/index.ts @@ -1,15 +1,7 @@ -import constants from 'utils/strings/constants'; import { CustomError } from 'utils/error'; export const APP_DOWNLOAD_URL = 'https://ente.io/download/desktop'; -export function checkConnectivity() { - if (navigator.onLine) { - return true; - } - throw new Error(constants.NO_INTERNET_CONNECTION); -} - export function runningInBrowser() { return typeof window !== 'undefined'; } diff --git a/src/utils/error/index.ts b/src/utils/error/index.ts index 6da8d1c9d..4aa6a3c48 100644 --- a/src/utils/error/index.ts +++ b/src/utils/error/index.ts @@ -1,5 +1,3 @@ -import constants from 'utils/strings/constants'; - export const ServerErrorCodes = { SESSION_EXPIRED: '401', NO_ACTIVE_SUBSCRIPTION: '402', @@ -14,7 +12,6 @@ export const ServerErrorCodes = { }; export enum CustomError { - UNKNOWN_ERROR = 'unknown error', SUBSCRIPTION_VERIFICATION_ERROR = 'Subscription verification failed', THUMBNAIL_GENERATION_FAILED = 'thumbnail generation failed', VIDEO_PLAYBACK_FAILED = 'video playback failed', @@ -48,6 +45,7 @@ export enum CustomError { UPLOAD_CANCELLED = 'upload cancelled', REQUEST_TIMEOUT = 'request taking too long', HIDDEN_COLLECTION_SYNC_FILE_ATTEMPTED = 'hidden collection sync file attempted', + UNKNOWN_ERROR = 'Something went wrong, please try again', } function parseUploadErrorCodes(error) { @@ -68,7 +66,7 @@ function parseUploadErrorCodes(error) { parsedMessage = CustomError.FILE_TOO_LARGE; break; default: - parsedMessage = `${constants.UNKNOWN_ERROR} statusCode:${errorCode}`; + parsedMessage = `${CustomError.UNKNOWN_ERROR} statusCode:${errorCode}`; } } else { parsedMessage = error.message; @@ -121,29 +119,10 @@ export const parseSharingErrorCodes = (error) => { parsedMessage = CustomError.TOO_MANY_REQUESTS; break; default: - parsedMessage = `${constants.UNKNOWN_ERROR} statusCode:${errorCode}`; + parsedMessage = `${CustomError.UNKNOWN_ERROR} statusCode:${errorCode}`; } } else { parsedMessage = error.message; } return new Error(parsedMessage); }; - -export const handleSharingErrors = (error) => { - const parsedError = parseSharingErrorCodes(error); - let errorMessage = ''; - switch (parsedError.message) { - case CustomError.BAD_REQUEST: - errorMessage = constants.SHARING_BAD_REQUEST_ERROR; - break; - case CustomError.SUBSCRIPTION_NEEDED: - errorMessage = constants.SHARING_DISABLED_FOR_FREE_ACCOUNTS; - break; - case CustomError.NOT_FOUND: - errorMessage = constants.USER_DOES_NOT_EXIST; - break; - default: - errorMessage = parsedError.message; - } - return errorMessage; -}; diff --git a/src/utils/error/ui.ts b/src/utils/error/ui.ts new file mode 100644 index 000000000..fdf695dff --- /dev/null +++ b/src/utils/error/ui.ts @@ -0,0 +1,28 @@ +import constants from 'utils/strings/constants'; +import { parseSharingErrorCodes, CustomError } from '.'; + +export const handleSharingErrors = (error) => { + const parsedError = parseSharingErrorCodes(error); + let errorMessage = ''; + switch (parsedError.message) { + case CustomError.BAD_REQUEST: + errorMessage = constants.SHARING_BAD_REQUEST_ERROR; + break; + case CustomError.SUBSCRIPTION_NEEDED: + errorMessage = constants.SHARING_DISABLED_FOR_FREE_ACCOUNTS; + break; + case CustomError.NOT_FOUND: + errorMessage = constants.USER_DOES_NOT_EXIST; + break; + default: + errorMessage = parsedError.message; + } + return errorMessage; +}; + +export function checkConnectivity() { + if (navigator.onLine) { + return true; + } + throw new Error(constants.NO_INTERNET_CONNECTION); +}