Fix iOS markdown style metadata warnings

Resolve markdown UITextView styles to plain React Native text styles before crossing the third-party boundary. react-native-uitextview flattens parent and child styles internally, so Unistyles metadata must not be carried into that handoff.
This commit is contained in:
Mohamed Boudra
2026-06-05 19:11:29 +07:00
parent 45cca8a406
commit abf129f56e
3 changed files with 66 additions and 2 deletions
@@ -1,6 +1,7 @@
import { useMemo, type ReactNode } from "react";
import { View, type StyleProp, type TextProps, type TextStyle, type ViewStyle } from "react-native";
import { UITextView } from "react-native-uitextview";
import { resolvePlainMarkdownTextStyle } from "@/components/markdown-text-style";
interface MarkdownTextSpanProps {
style?: StyleProp<TextStyle>;
@@ -26,11 +27,13 @@ export function MarkdownTextSpan({
onPress,
accessibilityRole,
}: MarkdownTextSpanProps) {
const plainStyle = useMemo(() => resolvePlainMarkdownTextStyle(style), [style]);
return (
<UITextView
uiTextView
selectable
style={style}
style={plainStyle}
onPress={onPress}
accessibilityRole={accessibilityRole}
>
@@ -59,7 +62,11 @@ export function MarkdownParagraphView({
children,
}: MarkdownParagraphViewProps) {
const textStyle = useMemo(
() => [paragraphStyle, MARKDOWN_PARAGRAPH_RESET] as StyleProp<TextStyle>,
() =>
resolvePlainMarkdownTextStyle([
paragraphStyle,
MARKDOWN_PARAGRAPH_RESET,
] as StyleProp<TextStyle>),
[paragraphStyle],
);
const viewStyle = useMemo(() => [paragraphStyle, MARKDOWN_PARAGRAPH_RESET], [paragraphStyle]);