diff --git a/native/chat/inner-text-message.react.js b/native/chat/inner-text-message.react.js
--- a/native/chat/inner-text-message.react.js
+++ b/native/chat/inner-text-message.react.js
@@ -13,6 +13,7 @@
import { useColors, colors } from '../themes/colors';
import type { ChatTextMessageInfoItemWithHeight } from '../types/chat-types';
import { useComposedMessageMaxWidth } from './composed-message-width';
+import { MessageContext } from './message-context.react';
import { MessageListContext } from './message-list-types';
import {
allCorners,
@@ -101,6 +102,11 @@
return [styles.text, textStyle];
}, [darkColor]);
+ const contextValue = {
+ messageID: item.messageInfo.id ?? '',
+ messageText: item.messageInfo.text,
+ };
+
const message = (
@@ -111,9 +117,11 @@
style={[styles.message, cornerStyle]}
animatedStyle={messageStyle}
>
-
- {text}
-
+
+
+ {text}
+
+
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
@@ -9,6 +9,7 @@
+linkModalActive: { [key: string]: boolean },
+setLinkPressActive: SetState<{ [key: string]: boolean }>,
+linkPressActive: { [key: string]: boolean },
+
+setSpoilerRevealed: SetState<{ [key: string]: { [key: number]: boolean } }>,
+spoilerRevealed: { [key: string]: { [key: number]: boolean } },
+setSpoilerPressActive: SetState,
diff --git a/native/markdown/markdown-spoiler.react.js b/native/markdown/markdown-spoiler.react.js
--- a/native/markdown/markdown-spoiler.react.js
+++ b/native/markdown/markdown-spoiler.react.js
@@ -19,10 +19,6 @@
const messageContext = React.useContext(MessageContext);
const styles = useStyles(unboundStyles);
- const [styleBasedOnState, setStyleBasedOnState] = React.useState(
- styles.spoilerHidden,
- );
-
const { messageID, messageText } = messageContext;
const text = props.text;
@@ -32,6 +28,12 @@
const spoilerIndex = messageText?.indexOf(text.toString());
+ const [styleBasedOnState, setStyleBasedOnState] = React.useState(
+ spoilerIndex && spoilerRevealed?.[messageID]?.[spoilerIndex]
+ ? null
+ : styles.spoilerHidden,
+ );
+
const onSpoilerClick = React.useCallback(() => {
if (styleBasedOnState === null) {
setSpoilerPressActive && setSpoilerPressActive(false);