diff --git a/client-app/components/feed/PostCard.tsx b/client-app/components/feed/PostCard.tsx index b823833..9c654c6 100644 --- a/client-app/components/feed/PostCard.tsx +++ b/client-app/components/feed/PostCard.tsx @@ -195,8 +195,10 @@ function PostCardInner({ post, likedByMe, onStatsChanged, onDeleted, compact }: - {/* Content column */} - + {/* Content column. overflow:'hidden' stops a long unbreakable + token (URL, hashtag) from visually escaping the card — it'll + be ellipsized or clipped instead. */} + {/* Header: [name] · [time] … [menu] All three on a single row with no wrap. The name shrinks if too long (flexShrink:1 + numberOfLines:1), time never shrinks @@ -243,7 +245,12 @@ function PostCardInner({ post, likedByMe, onStatsChanged, onDeleted, compact }: )} - {/* Body text with hashtag highlighting */} + {/* Body text with hashtag highlighting. + flexShrink:1 + explicit width:'100%' + paddingRight:4 keep + long lines inside the content column on every platform. On + Android a few RN versions have been known to let the inner + Text spans overflow the parent by 1-2 px without an explicit + width declaration — hence the belt-and-braces here. */} {post.content.length > 0 && ( {renderInline(post.content)}