diff --git a/native/chat/text-message.react.js b/native/chat/text-message.react.js --- a/native/chat/text-message.react.js +++ b/native/chat/text-message.react.js @@ -63,6 +63,7 @@ +chatContext: ?ChatContextType, // MarkdownContext +isLinkModalActive: boolean, + +isUserProfileBottomSheetActive: boolean, +canEditMessage: boolean, +canTogglePins: boolean, }; @@ -89,6 +90,7 @@ overlayContext, chatContext, isLinkModalActive, + isUserProfileBottomSheetActive, canCreateSidebarFromMessage, canEditMessage, canTogglePins, @@ -185,9 +187,19 @@ const { message, - props: { verticalBounds, isLinkModalActive }, + props: { + verticalBounds, + isLinkModalActive, + isUserProfileBottomSheetActive, + }, } = this; - if (!message || !verticalBounds || isLinkModalActive) { + + if ( + !message || + !verticalBounds || + isLinkModalActive || + isUserProfileBottomSheetActive + ) { return; } @@ -251,7 +263,11 @@ const markdownContext = React.useContext(MarkdownContext); invariant(markdownContext, 'markdownContext should be set'); - const { linkModalActive, clearMarkdownContextData } = markdownContext; + const { + linkModalActive, + userProfileBottomSheetActive, + clearMarkdownContextData, + } = markdownContext; const key = messageKey(props.item.messageInfo); @@ -259,6 +275,8 @@ // default to false. The likely situation where the former statement // evaluates to null is when the thread is opened for the first time. const isLinkModalActive = linkModalActive[key] ?? false; + const isUserProfileBottomSheetActive = + userProfileBottomSheetActive[key] ?? false; const canCreateSidebarFromMessage = useCanCreateSidebarFromMessage( props.item.threadInfo, @@ -287,6 +305,7 @@ overlayContext={overlayContext} chatContext={chatContext} isLinkModalActive={isLinkModalActive} + isUserProfileBottomSheetActive={isUserProfileBottomSheetActive} canEditMessage={canEditMessage} canTogglePins={canTogglePins} /> diff --git a/native/markdown/markdown-context-provider.react.js b/native/markdown/markdown-context-provider.react.js --- a/native/markdown/markdown-context-provider.react.js +++ b/native/markdown/markdown-context-provider.react.js @@ -13,6 +13,11 @@ [key: string]: boolean, }>({}); + const [userProfileBottomSheetActive, setUserProfileBottomSheetActive] = + React.useState<{ + [key: string]: boolean, + }>({}); + const [spoilerRevealed, setSpoilerRevealed] = React.useState<{ [key: string]: { [key: number]: boolean, @@ -21,6 +26,7 @@ const clearMarkdownContextData = React.useCallback(() => { setLinkModalActive({}); + setUserProfileBottomSheetActive({}); setSpoilerRevealed({}); }, []); @@ -28,6 +34,8 @@ () => ({ setLinkModalActive, linkModalActive, + userProfileBottomSheetActive, + setUserProfileBottomSheetActive, setSpoilerRevealed, spoilerRevealed, clearMarkdownContextData, @@ -35,6 +43,8 @@ [ setLinkModalActive, linkModalActive, + setUserProfileBottomSheetActive, + userProfileBottomSheetActive, setSpoilerRevealed, spoilerRevealed, clearMarkdownContextData, diff --git a/native/markdown/markdown-context.js b/native/markdown/markdown-context.js --- a/native/markdown/markdown-context.js +++ b/native/markdown/markdown-context.js @@ -7,6 +7,8 @@ export type MarkdownContextType = { +setLinkModalActive: SetState<{ [key: string]: boolean }>, +linkModalActive: { [key: string]: boolean }, + +setUserProfileBottomSheetActive: SetState<{ [key: string]: boolean }>, + +userProfileBottomSheetActive: { [key: string]: boolean }, +setSpoilerRevealed: SetState<{ [key: string]: { [key: number]: boolean } }>, +spoilerRevealed: { [key: string]: { [key: number]: boolean } }, +clearMarkdownContextData: () => void,