Page MenuHomePhabricator

D8772.diff
No OneTemporary

D8772.diff

diff --git a/lib/components/base-edit-thread-avatar-provider.react.js b/lib/components/base-edit-thread-avatar-provider.react.js
--- a/lib/components/base-edit-thread-avatar-provider.react.js
+++ b/lib/components/base-edit-thread-avatar-provider.react.js
@@ -21,9 +21,10 @@
import { useSelector } from '../utils/redux-utils.js';
export type EditThreadAvatarContextType = {
+ +updateThreadAvatarMediaUploadInProgress: (inProgress: boolean) => void,
+threadAvatarSaveInProgress: boolean,
+updateImageThreadAvatar: (
- selection: NativeMediaSelection,
+ imageAvatarUpdateRequest: ImageAvatarDBContent,
threadID: string,
) => Promise<void>,
+baseSetThreadAvatar: (
@@ -43,7 +44,7 @@
+children: React.Node,
};
function BaseEditThreadAvatarProvider(props: Props): React.Node {
- const { useUploadSelectedMedia, activeThreadID, children } = props;
+ const { activeThreadID, children } = props;
const updateThreadAvatarLoadingStatus: LoadingStatus = useSelector(
createLoadingStatusSelector(
@@ -78,18 +79,11 @@
threadAvatarMediaUploadInProgress.has(activeThreadID) ||
updateThreadAvatarLoadingStatus === 'loading';
- const uploadSelectedMedia = useUploadSelectedMedia(
- updateThreadAvatarMediaUploadInProgress,
- );
-
const updateImageThreadAvatar = React.useCallback(
- async (selection: NativeMediaSelection, threadID: string) => {
- const imageAvatarUpdateRequest = await uploadSelectedMedia(selection);
-
- if (!imageAvatarUpdateRequest) {
- return;
- }
-
+ async (
+ imageAvatarUpdateRequest: ImageAvatarDBContent,
+ threadID: string,
+ ) => {
const updateThreadRequest: UpdateThreadRequest = {
threadID,
changes: {
@@ -109,7 +103,6 @@
changeThreadSettingsCall,
dispatchActionPromise,
updateThreadAvatarMediaUploadInProgress,
- uploadSelectedMedia,
],
);
@@ -135,11 +128,17 @@
const context = React.useMemo(
() => ({
+ updateThreadAvatarMediaUploadInProgress,
threadAvatarSaveInProgress,
updateImageThreadAvatar,
baseSetThreadAvatar,
}),
- [threadAvatarSaveInProgress, updateImageThreadAvatar, baseSetThreadAvatar],
+ [
+ updateThreadAvatarMediaUploadInProgress,
+ threadAvatarSaveInProgress,
+ updateImageThreadAvatar,
+ baseSetThreadAvatar,
+ ],
);
return (
diff --git a/native/avatars/avatar-hooks.js b/native/avatars/avatar-hooks.js
--- a/native/avatars/avatar-hooks.js
+++ b/native/avatars/avatar-hooks.js
@@ -340,20 +340,30 @@
) => Promise<void> {
const editThreadAvatarContext = React.useContext(EditThreadAvatarContext);
invariant(editThreadAvatarContext, 'editThreadAvatarContext must be defined');
- const { updateImageThreadAvatar } = editThreadAvatarContext;
+ const { updateImageThreadAvatar, updateThreadAvatarMediaUploadInProgress } =
+ editThreadAvatarContext;
+
+ const uploadSelectedMedia = useUploadSelectedMedia(
+ updateThreadAvatarMediaUploadInProgress,
+ );
const nativeUpdateThreadImageAvatar = React.useCallback(
async (
selection: NativeMediaSelection,
threadID: string,
): Promise<void> => {
+ const imageAvatarUpdateRequest = await uploadSelectedMedia(selection);
+ if (!imageAvatarUpdateRequest) {
+ return;
+ }
+
try {
- await updateImageThreadAvatar(selection, threadID);
+ await updateImageThreadAvatar(imageAvatarUpdateRequest, threadID);
} catch {
displayAvatarUpdateFailureAlert();
}
},
- [updateImageThreadAvatar],
+ [updateImageThreadAvatar, uploadSelectedMedia],
);
return nativeUpdateThreadImageAvatar;

File Metadata

Mime Type
text/plain
Expires
Sun, Oct 6, 5:47 AM (22 h, 25 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2248044
Default Alt Text
D8772.diff (3 KB)

Event Timeline