Skip to content

Commit

Permalink
[native] fix forcing the incorrect height for robotext messages
Browse files Browse the repository at this point in the history
Summary:
This diff is part 1/3 to fix forcing the incorrect height for messages with inline engagement in prod.

This [[ https://linear.app/comm/issue/ENG-4606/fix-forcing-incorrect-height-for-messages-with-inline-engagement-in | linear ]] comment explains this issue and what I did to address this

> Since item.contentHeight is now the height of the inner text message AND the height of the inline engagement we are now forcing the wrong height for the inner text message component. An idea I want to explore to address this is to force the height higher up in the component tree (somewhere like ComposedMessage) where both the "inner message" and the inline engagement is rendered so that when we force the height withitem.contentHeight, it is correct

Test Plan:
Please see demo video where I force and unforce the correct height of the robotext message and it did not change visually (outside of the green background) and I did not get any error logs talking about incorrect height measurements, I also purposely force an incorrect height (which resulted in some logs about incorrect height measurements.

Also please note for the video, I set a green background so that it is easier to visually see what is happening, but these are only for the demo videos

With the correct height measurement:
{F686462}

With the incorrect height measurement:
{F686474}

Reviewers: atul, kamil, tomek, ashoat

Reviewed By: ashoat

Subscribers: ashoat, tomek

Differential Revision: https://phab.comm.dev/D8797
  • Loading branch information
ginsueddy committed Aug 15, 2023
1 parent 128e058 commit 1a2ed56
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
9 changes: 1 addition & 8 deletions native/chat/inner-robotext-message.react.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,16 +79,9 @@ function InnerRobotextMessage(props: InnerRobotextMessageProps): React.Node {
});
}, [robotextWithENSNames, activeTheme, threadID, styles.robotext]);

const viewStyle = [styles.robotextContainer];
if (!__DEV__) {
// We don't force view height in dev mode because we
// want to measure it in Message to see if it's correct
viewStyle.push({ height: item.contentHeight });
}

return (
<TouchableWithoutFeedback onPress={onPress} onLongPress={onLongPress}>
<View style={viewStyle}>
<View style={styles.robotextContainer}>
<Text style={styles.robotext}>{textParts}</Text>
</View>
</TouchableWithoutFeedback>
Expand Down
11 changes: 9 additions & 2 deletions native/chat/robotext-message.react.js
Original file line number Diff line number Diff line change
Expand Up @@ -196,21 +196,28 @@ function RobotextMessage(props: Props): React.Node {

const contentAndHeaderOpacity = useContentAndHeaderOpacity(item);

const viewStyle = {};
if (!__DEV__) {
// We don't force view height in dev mode because we
// want to measure it in Message to see if it's correct
viewStyle.height = item.contentHeight;
}

return (
<View {...viewProps}>
<AnimatedView style={{ opacity: contentAndHeaderOpacity }}>
{timestamp}
</AnimatedView>
<View onLayout={onLayout} ref={viewRef}>
<View onLayout={onLayout} ref={viewRef} style={viewStyle}>
<AnimatedView style={{ opacity: contentAndHeaderOpacity }}>
<InnerRobotextMessage
item={item}
onPress={onPress}
onLongPress={onLongPress}
/>
</AnimatedView>
{inlineEngagement}
</View>
{inlineEngagement}
</View>
);
}
Expand Down

0 comments on commit 1a2ed56

Please sign in to comment.