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.