HomePhabricator
Diffusion Comm b309c505208e

[lib] Move `selectFromGalleryAndUpdateUserAvatar` from provider to `avatar…

Description

[lib] Move selectFromGalleryAndUpdateUserAvatar from provider to avatar-hooks

Summary:
This diff involved moving selectFromGalleryAndUpdateUserAvatar from Edit*AvatarProvider to avatar-hooks.react.js... which makes a lot more sense.

  1. As discussed D8316, this allows us to better decouple the avatar providers and hooks. The providers are an entity(user/thread)-specific, but platform-agnostic interface b/w client and keyserver, whereas avatar hooks are platform-specific implementations. The coupling between the providers and hooks made things difficult to work w/ when dealing with implementing image avatars on web.
  2. Previously we had hooks which were "functions" of provider state which itself was a "function" of hooks. This diff starts to enforce the idea that hooks are "downstream" of providers which makes things easier to reason about.
  3. selectFromGallery functionality is specific to native where we launch the image gallery programmatically and process the media selection. On web, we "virtually" click on an <input> to launch file selection, and then handle selected media from onChange callback... so things aren't as "sequential."
  4. We're one step closer to merging WebEditUserAvatarProvider and NativeEditUserAvatarProvider.

Depends on D8316

Test Plan: Still able to select and set image avatar from native.

Reviewers: ashoat, ginsu, rohan

Reviewed By: ginsu

Subscribers: tomek

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

Details

Provenance
atulAuthored on Jun 27 2023, 9:02 AM
Reviewer
ginsu
Differential Revision
D8318: [lib] Move `selectFromGalleryAndUpdateUserAvatar` from provider to `avatar-hooks`
Parents
rCOMM6746bd00f63a: Rename NEW_CODE_VERSION to NEXT_CODE_VERSION
Branches
Unknown
Tags
Unknown