Page MenuHomePhorge

D8740.1768327807.diff
No OneTemporary

Size
3 KB
Referenced Files
None
Subscribers
None

D8740.1768327807.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
@@ -104,26 +104,16 @@
};
const action = changeThreadSettingsActionTypes.started;
- dispatchActionPromise(
- changeThreadSettingsActionTypes,
- (async () => {
- updateThreadAvatarMediaUploadInProgress(false);
- try {
- return await changeThreadSettingsCall(updateThreadRequest);
- } catch (e) {
- displayFailureAlert();
- throw e;
- }
- })(),
- {
- customKeyName: `${action}:${threadID}:avatar`,
- },
- );
+ updateThreadAvatarMediaUploadInProgress(false);
+ const promise = changeThreadSettingsCall(updateThreadRequest);
+ dispatchActionPromise(changeThreadSettingsActionTypes, promise, {
+ customKeyName: `${action}:${threadID}:avatar`,
+ });
+ await promise;
},
[
changeThreadSettingsCall,
dispatchActionPromise,
- displayFailureAlert,
updateThreadAvatarMediaUploadInProgress,
uploadSelectedMedia,
],
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
@@ -308,6 +308,31 @@
return selectFromGalleryAndUpdateUserAvatar;
}
+function useNativeUpdateThreadImageAvatar(): (
+ selection: NativeMediaSelection,
+ threadID: string,
+) => Promise<void> {
+ const editThreadAvatarContext = React.useContext(EditThreadAvatarContext);
+ invariant(editThreadAvatarContext, 'editThreadAvatarContext must be defined');
+ const { updateImageThreadAvatar } = editThreadAvatarContext;
+
+ const nativeUpdateThreadImageAvatar = React.useCallback(
+ async (
+ selection: NativeMediaSelection,
+ threadID: string,
+ ): Promise<void> => {
+ try {
+ await updateImageThreadAvatar(selection, threadID);
+ } catch {
+ displayAvatarUpdateFailureAlert();
+ }
+ },
+ [updateImageThreadAvatar],
+ );
+
+ return nativeUpdateThreadImageAvatar;
+}
+
function useSelectFromGalleryAndUpdateThreadAvatar(): (
threadID: string,
) => Promise<void> {
@@ -463,4 +488,5 @@
useNativeSetUserAvatar,
useNativeUpdateUserImageAvatar,
useSelectFromGalleryAndUpdateThreadAvatar,
+ useNativeUpdateThreadImageAvatar,
};
diff --git a/native/media/thread-avatar-camera-modal.react.js b/native/media/thread-avatar-camera-modal.react.js
--- a/native/media/thread-avatar-camera-modal.react.js
+++ b/native/media/thread-avatar-camera-modal.react.js
@@ -6,6 +6,7 @@
import { EditThreadAvatarContext } from 'lib/components/base-edit-thread-avatar-provider.react.js';
import type { PhotoCapture } from 'lib/types/media-types.js';
+import { useNativeUpdateThreadImageAvatar } from '../avatars/avatar-hooks.js';
import CameraModal from '../media/camera-modal.react.js';
import type { AppNavigationProp } from '../navigation/app-navigator.react.js';
import type { NavigationRoute } from '../navigation/route-names.js';
@@ -25,13 +26,12 @@
const editThreadAvatarContext = React.useContext(EditThreadAvatarContext);
invariant(editThreadAvatarContext, 'editThreadAvatarContext should be set');
- const { updateImageThreadAvatar } = editThreadAvatarContext;
+
+ const nativeUpdateThreadImageAvatar = useNativeUpdateThreadImageAvatar();
const sendPhoto = React.useCallback(
- (capture: PhotoCapture) => {
- updateImageThreadAvatar(capture, threadID);
- },
- [threadID, updateImageThreadAvatar],
+ (capture: PhotoCapture) => nativeUpdateThreadImageAvatar(capture, threadID),
+ [threadID, nativeUpdateThreadImageAvatar],
);
return <CameraModal handlePhotoCapture={sendPhoto} navigation={navigation} />;

File Metadata

Mime Type
text/plain
Expires
Tue, Jan 13, 6:10 PM (7 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5927981
Default Alt Text
D8740.1768327807.diff (3 KB)

Event Timeline