diff options
Diffstat (limited to 'src/state/queries/video/compress-video.ts')
-rw-r--r-- | src/state/queries/video/compress-video.ts | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/state/queries/video/compress-video.ts b/src/state/queries/video/compress-video.ts index a2c739cfd..a4c17eace 100644 --- a/src/state/queries/video/compress-video.ts +++ b/src/state/queries/video/compress-video.ts @@ -1,23 +1,30 @@ import {ImagePickerAsset} from 'expo-image-picker' import {useMutation} from '@tanstack/react-query' +import {cancelable} from '#/lib/async/cancelable' import {CompressedVideo, compressVideo} from 'lib/media/video/compress' export function useCompressVideoMutation({ onProgress, onSuccess, onError, + signal, }: { onProgress: (progress: number) => void onError: (e: any) => void onSuccess: (video: CompressedVideo) => void + signal: AbortSignal }) { return useMutation({ - mutationFn: async (asset: ImagePickerAsset) => { - return await compressVideo(asset.uri, { - onProgress: num => onProgress(trunc2dp(num)), - }) - }, + mutationKey: ['video', 'compress'], + mutationFn: cancelable( + (asset: ImagePickerAsset) => + compressVideo(asset.uri, { + onProgress: num => onProgress(trunc2dp(num)), + signal, + }), + signal, + ), onError, onSuccess, onMutate: () => { |