diff options
Diffstat (limited to 'src/state/queries/video/video-upload.web.ts')
-rw-r--r-- | src/state/queries/video/video-upload.web.ts | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/state/queries/video/video-upload.web.ts b/src/state/queries/video/video-upload.web.ts index 09d107423..85e07c4e1 100644 --- a/src/state/queries/video/video-upload.web.ts +++ b/src/state/queries/video/video-upload.web.ts @@ -2,6 +2,7 @@ import {AppBskyVideoDefs} from '@atproto/api' import {useMutation} from '@tanstack/react-query' import {nanoid} from 'nanoid/non-secure' +import {cancelable} from '#/lib/async/cancelable' import {CompressedVideo} from '#/lib/media/video/compress' import {createVideoEndpointUrl} from '#/state/queries/video/util' import {useAgent, useSession} from '#/state/session' @@ -10,16 +11,19 @@ export const useUploadVideoMutation = ({ onSuccess, onError, setProgress, + signal, }: { onSuccess: (response: AppBskyVideoDefs.JobStatus) => void onError: (e: any) => void setProgress: (progress: number) => void + signal: AbortSignal }) => { const {currentAccount} = useSession() const agent = useAgent() return useMutation({ - mutationFn: async (video: CompressedVideo) => { + mutationKey: ['video', 'upload'], + mutationFn: cancelable(async (video: CompressedVideo) => { const uri = createVideoEndpointUrl('/xrpc/app.bsky.video.uploadVideo', { did: currentAccount!.did, name: `${nanoid(12)}.mp4`, // @TODO: make sure it's always mp4' @@ -70,7 +74,7 @@ export const useUploadVideoMutation = ({ ) return res - }, + }, signal), onError, onSuccess, }) |