Page MenuHomePhorge

D8740.1768424078.diff
No OneTemporary

Size
3 KB
Referenced Files
None
Subscribers
None

D8740.1768424078.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,18 @@
};
const action = changeThreadSettingsActionTypes.started;
- dispatchActionPromise(
- changeThreadSettingsActionTypes,
- (async () => {
- updateThreadAvatarMediaUploadInProgress(false);
- try {
- return await changeThreadSettingsCall(updateThreadRequest);
- } catch (e) {
- displayFailureAlert();
- throw e;
- }
- })(),
- {
- customKeyName: `${action}:${threadID}:avatar`,
- },
- );
+ const promise = (async () => {
+ updateThreadAvatarMediaUploadInProgress(false);
+ return await 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,14 @@
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);
+ nativeUpdateThreadImageAvatar(capture, threadID);
},
- [threadID, updateImageThreadAvatar],
+ [threadID, nativeUpdateThreadImageAvatar],
);
return <CameraModal handlePhotoCapture={sendPhoto} navigation={navigation} />;

File Metadata

Mime Type
text/plain
Expires
Wed, Jan 14, 8:54 PM (11 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5933956
Default Alt Text
D8740.1768424078.diff (3 KB)

Event Timeline