diff options
author | hailey <me@haileyok.com> | 2025-05-06 10:54:08 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-06 10:54:08 -0700 |
commit | 521ec8e044e58633530e1864e7abc6e22554d7d3 (patch) | |
tree | e57139a4cfcb9f8859f5e1af008740fc3e8306e3 /src/view/com/modals | |
parent | 973538d246a3f76550611e438152f1a6cad75f49 (diff) | |
download | voidsky-521ec8e044e58633530e1864e7abc6e22554d7d3.tar.zst |
swap out cropper library (#8327)
* mostly implement * type errors * unused import * rm comment * stop accidentally deleting the image while compressing * upgrade * type fixes * upgrade, remove timeout * bump * rm mock * bump --------- Co-authored-by: Samuel Newman <mozzius@protonmail.com>
Diffstat (limited to 'src/view/com/modals')
-rw-r--r-- | src/view/com/modals/CreateOrEditList.tsx | 6 | ||||
-rw-r--r-- | src/view/com/modals/CropImage.web.tsx | 6 | ||||
-rw-r--r-- | src/view/com/modals/EditProfile.tsx | 10 |
3 files changed, 11 insertions, 11 deletions
diff --git a/src/view/com/modals/CreateOrEditList.tsx b/src/view/com/modals/CreateOrEditList.tsx index 0e4e23b97..a7eae15dd 100644 --- a/src/view/com/modals/CreateOrEditList.tsx +++ b/src/view/com/modals/CreateOrEditList.tsx @@ -8,7 +8,6 @@ import { TouchableOpacity, View, } from 'react-native' -import {type Image as RNImage} from 'react-native-image-crop-picker' import {LinearGradient} from 'expo-linear-gradient' import {type AppBskyGraphDefs, RichText as RichTextAPI} from '@atproto/api' import {msg, Trans} from '@lingui/macro' @@ -17,6 +16,7 @@ import {useLingui} from '@lingui/react' import {usePalette} from '#/lib/hooks/usePalette' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {compressIfNeeded} from '#/lib/media/manip' +import {type PickerImage} from '#/lib/media/picker.shared' import {cleanError, isNetworkError} from '#/lib/strings/errors' import {enforceLen} from '#/lib/strings/helpers' import {richTextToString} from '#/lib/strings/rich-text-helpers' @@ -95,7 +95,7 @@ export function Component({ const isDescriptionOver = graphemeLength > MAX_DESCRIPTION const [avatar, setAvatar] = useState<string | undefined>(list?.avatar) - const [newAvatar, setNewAvatar] = useState<RNImage | undefined | null>() + const [newAvatar, setNewAvatar] = useState<PickerImage | undefined | null>() const onDescriptionChange = useCallback( (newText: string) => { @@ -112,7 +112,7 @@ export function Component({ }, [closeModal]) const onSelectNewAvatar = useCallback( - async (img: RNImage | null) => { + async (img: PickerImage | null) => { if (!img) { setNewAvatar(null) setAvatar(undefined) diff --git a/src/view/com/modals/CropImage.web.tsx b/src/view/com/modals/CropImage.web.tsx index 41ca30657..78c0466f0 100644 --- a/src/view/com/modals/CropImage.web.tsx +++ b/src/view/com/modals/CropImage.web.tsx @@ -1,14 +1,14 @@ import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' -import {Image as RNImage} from 'react-native-image-crop-picker' import {manipulateAsync, SaveFormat} from 'expo-image-manipulator' import {LinearGradient} from 'expo-linear-gradient' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import ReactCrop, {PercentCrop} from 'react-image-crop' +import ReactCrop, {type PercentCrop} from 'react-image-crop' import {usePalette} from '#/lib/hooks/usePalette' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {type PickerImage} from '#/lib/media/picker.shared' import {getDataUriSize} from '#/lib/media/util' import {gradients, s} from '#/lib/styles' import {useModalControls} from '#/state/modals' @@ -25,7 +25,7 @@ export function Component({ uri: string aspect?: number circular?: boolean - onSelect: (img?: RNImage) => void + onSelect: (img?: PickerImage) => void }) { const pal = usePalette('default') const {_} = useLingui() diff --git a/src/view/com/modals/EditProfile.tsx b/src/view/com/modals/EditProfile.tsx index ebc1281a3..cb1552fe5 100644 --- a/src/view/com/modals/EditProfile.tsx +++ b/src/view/com/modals/EditProfile.tsx @@ -8,7 +8,6 @@ import { TouchableOpacity, View, } from 'react-native' -import {type Image as RNImage} from 'react-native-image-crop-picker' import Animated, {FadeOut} from 'react-native-reanimated' import {LinearGradient} from 'expo-linear-gradient' import {type AppBskyActorDefs} from '@atproto/api' @@ -18,6 +17,7 @@ import {useLingui} from '@lingui/react' import {MAX_DESCRIPTION, MAX_DISPLAY_NAME, urls} from '#/lib/constants' import {usePalette} from '#/lib/hooks/usePalette' import {compressIfNeeded} from '#/lib/media/manip' +import {type PickerImage} from '#/lib/media/picker.shared' import {cleanError} from '#/lib/strings/errors' import {enforceLen} from '#/lib/strings/helpers' import {colors, gradients, s} from '#/lib/styles' @@ -67,16 +67,16 @@ export function Component({ profile.avatar, ) const [newUserBanner, setNewUserBanner] = useState< - RNImage | undefined | null + PickerImage | undefined | null >() const [newUserAvatar, setNewUserAvatar] = useState< - RNImage | undefined | null + PickerImage | undefined | null >() const onPressCancel = () => { closeModal() } const onSelectNewAvatar = useCallback( - async (img: RNImage | null) => { + async (img: PickerImage | null) => { setImageError('') if (img === null) { setNewUserAvatar(null) @@ -95,7 +95,7 @@ export function Component({ ) const onSelectNewBanner = useCallback( - async (img: RNImage | null) => { + async (img: PickerImage | null) => { setImageError('') if (!img) { setNewUserBanner(null) |