Changeset View
Changeset View
Standalone View
Standalone View
native/avatars/edit-user-avatar-provider.react.js
Show All 30 Lines | |||||
const registrationModeOff = { registrationMode: 'off' }; | const registrationModeOff = { registrationMode: 'off' }; | ||||
export type EditUserAvatarContextType = { | export type EditUserAvatarContextType = { | ||||
+userAvatarSaveInProgress: boolean, | +userAvatarSaveInProgress: boolean, | ||||
+selectFromGalleryAndUpdateUserAvatar: () => Promise<void>, | +selectFromGalleryAndUpdateUserAvatar: () => Promise<void>, | ||||
+updateImageUserAvatar: (selection: NativeMediaSelection) => Promise<void>, | +updateImageUserAvatar: (selection: NativeMediaSelection) => Promise<void>, | ||||
+setUserAvatar: (avatarRequest: UpdateUserAvatarRequest) => Promise<void>, | +setUserAvatar: (avatarRequest: UpdateUserAvatarRequest) => Promise<void>, | ||||
+setRegistrationMode: (registrationMode: RegistrationMode) => void, | +setRegistrationMode: (registrationMode: RegistrationMode) => void, | ||||
+registrationModeEnabled: boolean, | |||||
}; | }; | ||||
const EditUserAvatarContext: React.Context<?EditUserAvatarContextType> = | const EditUserAvatarContext: React.Context<?EditUserAvatarContextType> = | ||||
React.createContext<?EditUserAvatarContextType>(); | React.createContext<?EditUserAvatarContextType>(); | ||||
const updateUserAvatarLoadingStatusSelector = createLoadingStatusSelector( | const updateUserAvatarLoadingStatusSelector = createLoadingStatusSelector( | ||||
updateUserAvatarActionTypes, | updateUserAvatarActionTypes, | ||||
); | ); | ||||
▲ Show 20 Lines • Show All 95 Lines • ▼ Show 20 Lines | async (request: UpdateUserAvatarRequest) => { | ||||
} | } | ||||
})(); | })(); | ||||
dispatchActionPromise(updateUserAvatarActionTypes, promise); | dispatchActionPromise(updateUserAvatarActionTypes, promise); | ||||
await promise; | await promise; | ||||
}, | }, | ||||
[registrationMode, updateUserAvatarCall, dispatchActionPromise], | [registrationMode, updateUserAvatarCall, dispatchActionPromise], | ||||
); | ); | ||||
const registrationModeEnabled = registrationMode.registrationMode === 'on'; | |||||
const context = React.useMemo( | const context = React.useMemo( | ||||
() => ({ | () => ({ | ||||
userAvatarSaveInProgress, | userAvatarSaveInProgress, | ||||
selectFromGalleryAndUpdateUserAvatar, | selectFromGalleryAndUpdateUserAvatar, | ||||
updateImageUserAvatar, | updateImageUserAvatar, | ||||
setUserAvatar, | setUserAvatar, | ||||
setRegistrationMode, | setRegistrationMode, | ||||
registrationModeEnabled, | |||||
}), | }), | ||||
[ | [ | ||||
userAvatarSaveInProgress, | userAvatarSaveInProgress, | ||||
selectFromGalleryAndUpdateUserAvatar, | selectFromGalleryAndUpdateUserAvatar, | ||||
updateImageUserAvatar, | updateImageUserAvatar, | ||||
setUserAvatar, | setUserAvatar, | ||||
setRegistrationMode, | setRegistrationMode, | ||||
registrationModeEnabled, | |||||
], | ], | ||||
); | ); | ||||
return ( | return ( | ||||
<EditUserAvatarContext.Provider value={context}> | <EditUserAvatarContext.Provider value={context}> | ||||
{children} | {children} | ||||
</EditUserAvatarContext.Provider> | </EditUserAvatarContext.Provider> | ||||
); | ); | ||||
} | } | ||||
export { EditUserAvatarContext, EditUserAvatarProvider }; | export { EditUserAvatarContext, EditUserAvatarProvider }; |