diff --git a/native/avatars/edit-thread-avatar-provider.react.js b/native/avatars/edit-thread-avatar-provider.react.js --- a/native/avatars/edit-thread-avatar-provider.react.js +++ b/native/avatars/edit-thread-avatar-provider.react.js @@ -7,7 +7,10 @@ changeThreadSettingsActionTypes, } from 'lib/actions/thread-actions.js'; import { createLoadingStatusSelector } from 'lib/selectors/loading-selectors.js'; -import type { UpdateUserAvatarRequest } from 'lib/types/avatar-types.js'; +import type { + UpdateUserAvatarRequest, + ImageAvatarDBContent, +} from 'lib/types/avatar-types.js'; import type { LoadingStatus } from 'lib/types/loading-types.js'; import type { MediaLibrarySelection, @@ -19,7 +22,6 @@ useServerCall, } from 'lib/utils/action-utils.js'; -import { selectFromGallery, useUploadSelectedMedia } from './avatar-hooks.js'; import { activeThreadSelector } from '../navigation/nav-selectors.js'; import { NavContext } from '../navigation/navigation-context.js'; import { useSelector } from '../redux/redux-utils.js'; @@ -42,10 +44,19 @@ type Props = { +displayFailureAlert: () => mixed, + +selectFromGallery: () => Promise<?MediaLibrarySelection>, + +useUploadSelectedMedia: ( + setProcessingOrUploadInProgress?: (inProgress: boolean) => mixed, + ) => (selection: NativeMediaSelection) => Promise<?ImageAvatarDBContent>, +children: React.Node, }; function EditThreadAvatarProvider(props: Props): React.Node { - const { displayFailureAlert, children } = props; + const { + displayFailureAlert, + selectFromGallery, + useUploadSelectedMedia, + children, + } = props; const navContext = React.useContext(NavContext); const activeThreadID = React.useMemo( @@ -139,7 +150,7 @@ } await updateImageThreadAvatar(selection, threadID); }, - [updateImageThreadAvatar], + [selectFromGallery, updateImageThreadAvatar], ); const setThreadAvatar = React.useCallback( diff --git a/native/root.react.js b/native/root.react.js --- a/native/root.react.js +++ b/native/root.react.js @@ -23,6 +23,10 @@ import { actionLogger } from 'lib/utils/action-logger.js'; import { RegistrationContextProvider } from './account/registration/registration-context-provider.react.js'; +import { + selectFromGallery, + useUploadSelectedMedia, +} from './avatars/avatar-hooks.js'; import { EditThreadAvatarProvider } from './avatars/edit-thread-avatar-provider.react.js'; import NativeEditUserAvatarProvider from './avatars/native-edit-user-avatar-provider.react.js'; import ChatContextProvider from './chat/chat-context-provider.react.js'; @@ -276,6 +280,8 @@ displayFailureAlert={ displayAvatarUpdateFailureAlert } + selectFromGallery={selectFromGallery} + useUploadSelectedMedia={useUploadSelectedMedia} > <MarkdownContextProvider> <ChatContextProvider>