HomePhabricator
Diffusion Comm 3e3e93ca20a8

[native] Introduce `useNativeUpdateUserImageAvatar()` to `avatar-hooks.react`

Tags
None
Referenced Files
F609722: cc01c7.png
Jul 28 2023, 12:32 PM
File Not Attached
F609721: 9e3b9c.png
Jul 28 2023, 12:32 PM
File Not Attached
Subscribers
None

Description

[native] Introduce useNativeUpdateUserImageAvatar() to avatar-hooks.react

Summary:
The updateImageUserAvatar function within *EditUserAvatarProvider previously contained a call to the displayFailureAlert(...) function, which was passed in via props. However, the displayFailureAlert function is only relevant on native as we surface errors differently on web.

As part of making EditUserAvatarProvider platform-agnostic, we introduce the useNativeUpdateUserImageAvatar() hook. The function it "creates" encapsulates its call to updateImageUserAvatar in a try/catch block that handles errors in a native-specific way. As a result, updateImageUserAvatar can throw a plain old exception that will be caught by platform-specific "wrapper" functions.

In subsequent diffs we'll do the same thing for setUserAvatar so we can completely remove the displayFailureAlert prop from *EditUserAvatarProvider. After that we'll work on removing the useUploadSelectedMedia prop so the provider is fully "platform-agnostic." At that point we'll be able to consolidate BaseEditUserAvatarProvider, NativeEditUserAvatarProvider, and WebEditUserAvatarProvider into a single EditUserAvatarProvider component.

Test Plan:

  1. Modify update_user_avatar endpoint to throw ServerError (we can't just kill keyserver because we want to make sure the alert is triggered by the update_user_avatar-specific codepath which we modified).
  2. Try to set a user image avatar via "Camera" flow
  3. Ensure that I see expected Alert.

Also, make sure the "happy case" (unmodified update_user_avatar endpoint) continues working as expected).

WARNING: I haven't actually gone through the Test Plan yet, will sequence at the end of all of the refactors and definitely before landing.

9e3b9c.png (358×640 px, 132 KB)

cc01c7.png (64×820 px, 13 KB)

Reviewers: ashoat, ginsu, rohan

Reviewed By: ashoat

Subscribers: tomek

Differential Revision: https://phab.comm.dev/D8339

Details

Provenance
atulAuthored on Jul 26 2023, 3:50 PM
Reviewer
ashoat
Differential Revision
D8339: [native] Introduce `useNativeUpdateUserImageAvatar()` to `avatar-hooks.react`
Parents
rCOMM4ca10823982e: [web] fix typo in crypto tests filename
Branches
Unknown
Tags
Unknown