about summary refs log tree commit diff
path: root/src/view/com/composer/videos/state.ts
diff options
context:
space:
mode:
authorHailey <me@haileyok.com>2024-07-30 08:25:31 -0700
committerGitHub <noreply@github.com>2024-07-30 08:25:31 -0700
commit8ddb28d3c54b63fb81ca361e741e5a6a46c1d25f (patch)
treeb62aa2dbfb2b9b8d84efbe9ff2a4ef6124dc1bed /src/view/com/composer/videos/state.ts
parent43ba0f21f6796ebbdd0156c9fa89ebc7d56376e7 (diff)
downloadvoidsky-8ddb28d3c54b63fb81ca361e741e5a6a46c1d25f.tar.zst
[Video] Uploads (#4754)
* state for video uploads

* get upload working

* add a debug log

* add post progress

* progress

* fetch data

* add some progress info, web uploads

* post on finished uploading (wip)

* add a note

* add some todos

* clear video

* merge some stuff

* convert to `createUploadTask`

* patch expo modules core

* working native upload progress

* platform fork

* upload progress for web

* cleanup

* cleanup

* more tweaks

* simplify

* fix type errors

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
Diffstat (limited to 'src/view/com/composer/videos/state.ts')
-rw-r--r--src/view/com/composer/videos/state.ts51
1 files changed, 0 insertions, 51 deletions
diff --git a/src/view/com/composer/videos/state.ts b/src/view/com/composer/videos/state.ts
deleted file mode 100644
index 3670f3d1f..000000000
--- a/src/view/com/composer/videos/state.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import {useState} from 'react'
-import {ImagePickerAsset} from 'expo-image-picker'
-import {msg} from '@lingui/macro'
-import {useLingui} from '@lingui/react'
-import {useMutation} from '@tanstack/react-query'
-
-import {compressVideo} from '#/lib/media/video/compress'
-import {logger} from '#/logger'
-import {VideoTooLargeError} from 'lib/media/video/errors'
-import * as Toast from 'view/com/util/Toast'
-
-export function useVideoState({setError}: {setError: (error: string) => void}) {
-  const {_} = useLingui()
-  const [progress, setProgress] = useState(0)
-
-  const {mutate, data, isPending, isError, reset, variables} = useMutation({
-    mutationFn: async (asset: ImagePickerAsset) => {
-      const compressed = await compressVideo(asset.uri, {
-        onProgress: num => setProgress(trunc2dp(num)),
-      })
-
-      return compressed
-    },
-    onError: (e: any) => {
-      // Don't log these errors in sentry, just let the user know
-      if (e instanceof VideoTooLargeError) {
-        Toast.show(_(msg`Videos cannot be larger than 100MB`), 'xmark')
-        return
-      }
-      logger.error('Failed to compress video', {safeError: e})
-      setError(_(msg`Could not compress video`))
-    },
-    onMutate: () => {
-      setProgress(0)
-    },
-  })
-
-  return {
-    video: data,
-    onSelectVideo: mutate,
-    videoPending: isPending,
-    videoProcessingData: variables,
-    videoError: isError,
-    clearVideo: reset,
-    videoProcessingProgress: progress,
-  }
-}
-
-function trunc2dp(num: number) {
-  return Math.trunc(num * 100) / 100
-}