diff options
author | Samuel Newman <mozzius@protonmail.com> | 2024-07-06 01:50:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-05 17:50:03 -0700 |
commit | 8f06ba70bb02a9dc3f09285719bd1585cc43aaeb (patch) | |
tree | eacc2a658522826a99d1ca3055fbd54a63ff65de /src/lib/hooks/usePermissions.ts | |
parent | 56b688744ef3492a1e93d8a6ee04a116ceb7253a (diff) | |
download | voidsky-8f06ba70bb02a9dc3f09285719bd1585cc43aaeb.tar.zst |
Video compression in composer (#4638)
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com> Co-authored-by: Hailey <me@haileyok.com>
Diffstat (limited to 'src/lib/hooks/usePermissions.ts')
-rw-r--r-- | src/lib/hooks/usePermissions.ts | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/lib/hooks/usePermissions.ts b/src/lib/hooks/usePermissions.ts index 9f1f8fb6f..d248e1975 100644 --- a/src/lib/hooks/usePermissions.ts +++ b/src/lib/hooks/usePermissions.ts @@ -48,6 +48,35 @@ export function usePhotoLibraryPermission() { return {requestPhotoAccessIfNeeded} } +export function useVideoLibraryPermission() { + const [res, requestPermission] = MediaLibrary.usePermissions({ + granularPermissions: ['video'], + }) + const requestVideoAccessIfNeeded = async () => { + // On the, we use <input type="file"> to produce a filepicker + // This does not need any permission granting. + if (isWeb) { + return true + } + + if (res?.granted) { + return true + } else if (!res || res.status === 'undetermined' || res?.canAskAgain) { + const {canAskAgain, granted, status} = await requestPermission() + + if (!canAskAgain && status === 'undetermined') { + openPermissionAlert('video library') + } + + return granted + } else { + openPermissionAlert('video library') + return false + } + } + return {requestVideoAccessIfNeeded} +} + export function useCameraPermission() { const [res, requestPermission] = Camera.useCameraPermissions() |