fixed error message shown to user
This commit is contained in:
parent
1f62d7ba53
commit
f145328c38
|
@ -22,6 +22,7 @@ import UploadManager, {
|
|||
} from 'services/upload/uploadManager';
|
||||
import uploadManager from 'services/upload/uploadManager';
|
||||
import { METADATA_FOLDER_NAME } from 'services/exportService';
|
||||
import { getUserFacingErrorMessage } from 'utils/common/errorUtil';
|
||||
|
||||
const FIRST_ALBUM_NAME = 'My First Album';
|
||||
|
||||
|
@ -280,7 +281,8 @@ export default function Upload(props: Props) {
|
|||
collections
|
||||
);
|
||||
} catch (err) {
|
||||
props.setBannerMessage(err.message);
|
||||
const message = getUserFacingErrorMessage(err.message);
|
||||
props.setBannerMessage(message);
|
||||
setProgressView(false);
|
||||
throw err;
|
||||
} finally {
|
||||
|
@ -296,8 +298,9 @@ export default function Upload(props: Props) {
|
|||
await props.syncWithRemote(true, true);
|
||||
await uploadManager.retryFailedFiles();
|
||||
} catch (err) {
|
||||
const message = getUserFacingErrorMessage(err.message);
|
||||
appContext.resetSharedFiles();
|
||||
props.setBannerMessage(err.message);
|
||||
props.setBannerMessage(message);
|
||||
setProgressView(false);
|
||||
} finally {
|
||||
props.setUploadInProgress(false);
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import { AxiosResponse } from 'axios';
|
||||
import constants from 'utils/strings/constants';
|
||||
|
||||
export const ServerErrorCodes = {
|
||||
SESSION_EXPIRED: '401',
|
||||
|
@ -8,21 +9,21 @@ export const ServerErrorCodes = {
|
|||
FILE_TOO_LARGE: '413',
|
||||
};
|
||||
|
||||
export const CustomError = {
|
||||
UNKNOWN_ERROR: 'unknown error',
|
||||
SUBSCRIPTION_VERIFICATION_ERROR: 'Subscription verification failed',
|
||||
THUMBNAIL_GENERATION_FAILED: 'thumbnail generation failed',
|
||||
VIDEO_PLAYBACK_FAILED: 'video playback failed',
|
||||
ETAG_MISSING: 'no header/etag present in response body',
|
||||
KEY_MISSING: 'encrypted key missing from localStorage',
|
||||
FAILED_TO_LOAD_WEB_WORKER: 'failed to load web worker',
|
||||
CHUNK_MORE_THAN_EXPECTED: 'chunks more than expected',
|
||||
UNSUPPORTED_FILE_FORMAT: 'unsupported file formats',
|
||||
FILE_TOO_LARGE: 'file too large',
|
||||
SUBSCRIPTION_EXPIRED: 'subscription expired',
|
||||
STORAGE_QUOTA_EXCEEDED: 'storage quota exceeded',
|
||||
SESSION_EXPIRED_MESSAGE: 'session expired',
|
||||
};
|
||||
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',
|
||||
ETAG_MISSING = 'no header/etag present in response body',
|
||||
KEY_MISSING = 'encrypted key missing from localStorage',
|
||||
FAILED_TO_LOAD_WEB_WORKER = 'failed to load web worker',
|
||||
CHUNK_MORE_THAN_EXPECTED = 'chunks more than expected',
|
||||
UNSUPPORTED_FILE_FORMAT = 'unsupported file formats',
|
||||
FILE_TOO_LARGE = 'file too large',
|
||||
SUBSCRIPTION_EXPIRED = 'subscription expired',
|
||||
STORAGE_QUOTA_EXCEEDED = 'storage quota exceeded',
|
||||
SESSION_EXPIRED_MESSAGE = 'session expired',
|
||||
}
|
||||
|
||||
function parseUploadError(error: AxiosResponse) {
|
||||
let parsedMessage = null;
|
||||
|
@ -70,3 +71,16 @@ export function handleUploadError(error: AxiosResponse | Error): Error {
|
|||
}
|
||||
return parsedError;
|
||||
}
|
||||
|
||||
export function getUserFacingErrorMessage(err: CustomError) {
|
||||
switch (err) {
|
||||
case CustomError.SESSION_EXPIRED_MESSAGE:
|
||||
return constants.SESSION_EXPIRED_MESSAGE;
|
||||
case CustomError.SUBSCRIPTION_EXPIRED:
|
||||
return constants.SUBSCRIPTION_EXPIRED;
|
||||
case CustomError.STORAGE_QUOTA_EXCEEDED:
|
||||
return constants.STORAGE_QUOTA_EXCEEDED;
|
||||
default:
|
||||
return constants.UNKNOWN_ERROR;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue