about summary refs log tree commit diff
path: root/src/view/com/modals/EditProfile.tsx
diff options
context:
space:
mode:
authorAnsh <anshnanda10@gmail.com>2023-03-02 16:53:18 -0800
committerGitHub <noreply@github.com>2023-03-02 18:53:18 -0600
commite592e59f4e339aff48589ba7a6f93209bf31d026 (patch)
tree2568a58d1bac350d45897df843510d7ecd2b1686 /src/view/com/modals/EditProfile.tsx
parentaeb04a2ed0b90091f92fd1130bd3d30a76449cb2 (diff)
downloadvoidsky-e592e59f4e339aff48589ba7a6f93209bf31d026.tar.zst
72-delete-avatar-and-cover (#255)
* allow to delete profile pic

* allow for removing banner
Diffstat (limited to 'src/view/com/modals/EditProfile.tsx')
-rw-r--r--src/view/com/modals/EditProfile.tsx27
1 files changed, 21 insertions, 6 deletions
diff --git a/src/view/com/modals/EditProfile.tsx b/src/view/com/modals/EditProfile.tsx
index 052681fd3..121831ada 100644
--- a/src/view/com/modals/EditProfile.tsx
+++ b/src/view/com/modals/EditProfile.tsx
@@ -44,20 +44,30 @@ export function Component({
   const [description, setDescription] = useState<string>(
     profileView.description || '',
   )
-  const [userBanner, setUserBanner] = useState<string | undefined>(
+  const [userBanner, setUserBanner] = useState<string | undefined | null>(
     profileView.banner,
   )
-  const [userAvatar, setUserAvatar] = useState<string | undefined>(
+  const [userAvatar, setUserAvatar] = useState<string | undefined | null>(
     profileView.avatar,
   )
-  const [newUserBanner, setNewUserBanner] = useState<PickedMedia | undefined>()
-  const [newUserAvatar, setNewUserAvatar] = useState<PickedMedia | undefined>()
+  const [newUserBanner, setNewUserBanner] = useState<
+    PickedMedia | undefined | null
+  >()
+  const [newUserAvatar, setNewUserAvatar] = useState<
+    PickedMedia | undefined | null
+  >()
   const onPressCancel = () => {
     store.shell.closeModal()
   }
-  const onSelectNewAvatar = async (img: PickedMedia) => {
+  const onSelectNewAvatar = async (img: PickedMedia | null) => {
     track('EditProfile:AvatarSelected')
     try {
+      // if img is null, user selected "remove avatar"
+      if (!img) {
+        setNewUserAvatar(null)
+        setUserAvatar(null)
+        return
+      }
       const finalImg = await compressIfNeeded(img, 1000000)
       setNewUserAvatar({mediaType: 'photo', ...finalImg})
       setUserAvatar(finalImg.path)
@@ -65,7 +75,12 @@ export function Component({
       setError(cleanError(e))
     }
   }
-  const onSelectNewBanner = async (img: PickedMedia) => {
+  const onSelectNewBanner = async (img: PickedMedia | null) => {
+    if (!img) {
+      setNewUserBanner(null)
+      setUserBanner(null)
+      return
+    }
     track('EditProfile:BannerSelected')
     try {
       const finalImg = await compressIfNeeded(img, 1000000)