A brief tutorial on how to render custom UI componenets inside the chat messages if you use Gifted Chat library for React Native.
Gifted Chat for React Native is a very powerful library which allows you to implement chat UI real easy.
You can customize virtually everything. Say you want a Switch to be displayed
inside your messages if the message contains [x]
text.
In order to do it you need to provide renderBubble
attribute to the
GiftedChat
component:
<GiftedChat
renderMessageText={renderMessageText}
...
/>
Now you need to implement renderMessageText
function:
const renderMessageText = (props) => {
const {
currentMessage,
} = props;
const { text: currText } = currentMessage;
if (currText.indexOf('[x]') === -1) {
return <MessageText {...props} />;
}
return (
<View style={styles.checkboxView}>
<Switch value={checked} onValueChange={(value) => setChecked(value) } style={ {flex: 1} }/>
<MessageText {...props}/>
</View>
);
};
This function checks if the message text contains [x]
and if not, just returns
the default message UI. Oherwise it customezes the UI and adds a Switch
component next to the message text.
Below you can find the full working example: