Changeset View
Changeset View
Standalone View
Standalone View
native/chat/settings/emoji-thread-avatar-creation.react.js
// @flow | // @flow | ||||
import invariant from 'invariant'; | import invariant from 'invariant'; | ||||
import * as React from 'react'; | import * as React from 'react'; | ||||
import { savedEmojiAvatarSelectorForThread } from 'lib/selectors/thread-selectors.js'; | import { savedEmojiAvatarSelectorForThread } from 'lib/selectors/thread-selectors.js'; | ||||
import type { RawThreadInfo, ThreadInfo } from 'lib/types/thread-types.js'; | |||||
import { EditThreadAvatarContext } from '../../avatars/edit-thread-avatar-provider.react.js'; | import { EditThreadAvatarContext } from '../../avatars/edit-thread-avatar-provider.react.js'; | ||||
import EmojiAvatarCreation from '../../avatars/emoji-avatar-creation.react.js'; | import EmojiAvatarCreation from '../../avatars/emoji-avatar-creation.react.js'; | ||||
import type { ChatNavigationProp } from '../../chat/chat.react.js'; | import type { ChatNavigationProp } from '../../chat/chat.react.js'; | ||||
import { displayActionResultModal } from '../../navigation/action-result-modal.js'; | import { displayActionResultModal } from '../../navigation/action-result-modal.js'; | ||||
import type { NavigationRoute } from '../../navigation/route-names.js'; | import type { NavigationRoute } from '../../navigation/route-names.js'; | ||||
export type EmojiThreadAvatarCreationParams = { | export type EmojiThreadAvatarCreationParams = { | ||||
+threadID: string, | +threadInfo: RawThreadInfo | ThreadInfo, | ||||
+containingThreadID?: ?string, | |||||
}; | }; | ||||
type Props = { | type Props = { | ||||
+navigation: ChatNavigationProp<'EmojiThreadAvatarCreation'>, | +navigation: ChatNavigationProp<'EmojiThreadAvatarCreation'>, | ||||
+route: NavigationRoute<'EmojiThreadAvatarCreation'>, | +route: NavigationRoute<'EmojiThreadAvatarCreation'>, | ||||
}; | }; | ||||
function EmojiThreadAvatarCreation(props: Props): React.Node { | function EmojiThreadAvatarCreation(props: Props): React.Node { | ||||
const { threadID, containingThreadID } = props.route.params; | const { id: threadID, containingThreadID } = props.route.params.threadInfo; | ||||
const selector = savedEmojiAvatarSelectorForThread( | const selector = savedEmojiAvatarSelectorForThread( | ||||
threadID, | threadID, | ||||
containingThreadID, | containingThreadID, | ||||
); | ); | ||||
const editThreadAvatarContext = React.useContext(EditThreadAvatarContext); | const editThreadAvatarContext = React.useContext(EditThreadAvatarContext); | ||||
invariant(editThreadAvatarContext, 'editThreadAvatarContext should be set'); | invariant(editThreadAvatarContext, 'editThreadAvatarContext should be set'); | ||||
Show All 22 Lines |