diff options
Diffstat (limited to 'src/state/queries/video/video.ts')
-rw-r--r-- | src/state/queries/video/video.ts | 40 |
1 files changed, 37 insertions, 3 deletions
diff --git a/src/state/queries/video/video.ts b/src/state/queries/video/video.ts index 06331c886..95fc0b68b 100644 --- a/src/state/queries/video/video.ts +++ b/src/state/queries/video/video.ts @@ -9,7 +9,11 @@ import {AbortError} from '#/lib/async/cancelable' import {SUPPORTED_MIME_TYPES, SupportedMimeTypes} from '#/lib/constants' import {logger} from '#/logger' import {isWeb} from '#/platform/detection' -import {ServerError, VideoTooLargeError} from 'lib/media/video/errors' +import { + ServerError, + UploadLimitError, + VideoTooLargeError, +} from 'lib/media/video/errors' import {CompressedVideo} from 'lib/media/video/types' import {useCompressVideoMutation} from 'state/queries/video/compress-video' import {useVideoAgent} from 'state/queries/video/util' @@ -149,10 +153,40 @@ export function useUploadVideo({ onError: e => { if (e instanceof AbortError) { return - } else if (e instanceof ServerError) { + } else if (e instanceof ServerError || e instanceof UploadLimitError) { + let message + // https://github.com/bluesky-social/tango/blob/lumi/lumi/worker/permissions.go#L77 + switch (e.message) { + case 'User is not allowed to upload videos': + message = _(msg`You are not allowed to upload videos.`) + break + case 'Uploading is disabled at the moment': + message = _( + msg`Hold up! We’re gradually giving access to video, and you’re still waiting in line. Check back soon!`, + ) + break + case "Failed to get user's upload stats": + message = _( + msg`We were unable to determine if you are allowed to upload videos. Please try again.`, + ) + break + case 'User has exceeded daily upload bytes limit': + message = _( + msg`You've reached your daily limit for video uploads (too many bytes)`, + ) + break + case 'User has exceeded daily upload videos limit': + message = _( + msg`You've reached your daily limit for video uploads (too many videos)`, + ) + break + default: + message = e.message + break + } dispatch({ type: 'SetError', - error: e.message, + error: message, }) } else { dispatch({ |