authorgravatar for 134711311+Exotic209093@users.noreply.github.comJames C <134711311+Exotic209093@users.noreply.github.com> 2026-09-17 19:12:48+01:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-17 18:12:48+00:00
log8db3c250f41e8f1d0b36da6b5a5093821e72d4f3
tree856c0b5f2c3aa7f5639858082c8b346275642277
parentc25c3e0ee678ef62245cb5eef20eeafb9a86d9d9
signature Signed by PGP key B5690EEEBB952194

fix(mobile): prevent overlapping text and UI on Android chat messages (#11611)

Co-authored-by: Julius Marminge <julius0216@outlook.com>

1 files changed, 7 insertions(+), 2 deletions(-)

apps/mobile/src/features/threads/ThreadFeed.tsx+7-2
......@@ -627,6 +627,7 @@ const markdownLinkStyles = StyleSheet.create({
627627 height: 14,
628628 marginHorizontal: 3,
629629 transform: [{ translateY: 2 }],
630 flexShrink: 0,
630631 },
631632 favicon: {
632633 borderRadius: 3,
......@@ -1155,7 +1156,7 @@ function useMarkdownStyles(
11551156 >
11561157 {ordered ? `${start + index}.` : "•"}
11571158 </NativeText>
1158 <View className="min-w-0 flex-1">
1159 <View className="min-w-0 flex-1 shrink overflow-hidden">
11591160 <Renderer node={child} depth={1} inListItem parentIsText={false} />
11601161 </View>
11611162 </View>
......@@ -1684,10 +1685,14 @@ function renderFeedEntry(
16841685 return null;
16851686 }
16861687
1688 // Assistant messages hit the same Android unclamped-pass bug as user
1689 // bubbles: wide markdown blocks cause children to be positioned at
1690 // intrinsic width before the container is clamped, overlapping the
1691 // timestamp/copy button row. Pinning the width removes that pass.
16871692 const enterAnimated = isFreshTimestamp(message.createdAt);
16881693 return (
16891694 <Animated.View
1690 className={cn(showAssistantMeta ? "mb-5 px-1" : "mb-1 px-1")}
1695 className={cn(showAssistantMeta ? "mb-5 px-1" : "mb-1 px-1", hasWideBlock && "w-full")}
16911696 {...(enterAnimated ? { entering: FadeIn.duration(220) } : {})}
16921697 >
16931698 {renderedText.trim().length > 0 ? (