Web fork of most complete chat UI for React Native (formerly known as Gifted Messenger).
- Fully customizable components
- Composer actions (to attach photos, etc.)
- Load earlier messages
- Copy messages to clipboard
- Touchable links using react-native-parsed-text
- Avatar as user's initials
- Localized dates
- Multiline TextInput
- InputToolbar avoiding keyboard
import { GiftedChat } from 'react-native-gifted-chat';
class Example extends React.Component {
state = {
messages: [],
};
componentWillMount() {
this.setState({
messages: [
{
_id: 1,
text: 'Hello developer',
createdAt: new Date(),
user: {
_id: 2,
name: 'React Native',
avatar: 'https://facebook.github.io/react/img/logo_og.png',
},
},
],
});
}
onSend(messages = []) {
this.setState((previousState) => ({
messages: GiftedChat.append(previousState.messages, messages),
}));
}
render() {
return (
<GiftedChat
messages={this.state.messages}
onSend={(messages) => this.onSend(messages)}
user={{
_id: 1,
}}
/>
);
}
}
See example/App.js for a working demo!
e.g.
{
_id: 1,
text: 'My message',
createdAt: new Date(Date.UTC(2016, 5, 11, 17, 20, 0)),
user: {
_id: 2,
name: 'React Native',
avatar: 'https://facebook.github.io/react/img/logo_og.png',
},
image: 'https://facebook.github.io/react/img/logo_og.png',
// Any additional custom parameters are passed through
}
messages
(Array) - Messages to displaymessageIdGenerator
(Function) - Generate an id for new messages. Defaults to UUID v4, generated by uuiduser
(Object) - User sending the messages:{ _id, name, avatar }
onSend
(Function) - Callback when sending a messagelocale
(String) - Locale to localize the datesisAnimated
(Bool) - Animates the view when the keyboard appearsloadEarlier
(Bool) - Enables the "Load earlier messages" buttononLoadEarlier
(Function) - Callback when loading earlier messagesisLoadingEarlier
(Bool) - Display anActivityIndicator
when loading earlier messagesrenderLoading
(Function) - Render a loading view when initializingrenderLoadEarlier
(Function) - Custom "Load earlier messages" buttonrenderAvatar
(Function) - Custom message avatar; set tonull
to not render any avatar for the messagerenderAllAvatars
(Bool) - Allways render the avatar of a message. Default isfalse
. Only the first message from of a series by the same user has an avatar.backgroundImage
(String) - No background image by default. Display image as background from URLonPressAvatar
(Function(user
)) - Callback when a message avatar is tappedrenderAvatarOnTop
(Bool) - Render the message avatar at the top of consecutive messages, rather than the bottom (default)renderBubble
(Function) - Custom message bubbleonLongPress
(Function(context
,message
)) - Callback when a message bubble is long-pressed; default is to show an ActionSheet with "Copy Text" (see example usingshowActionSheetWithOptions()
)renderMessage
(Function) - Custom message containerrenderMessageText
(Function) - Custom message textrenderMessageImage
(Function) - Custom message imageimageProps
(Object) - Extra props to be passed to the<Image>
component created by the defaultrenderMessageImage
lightboxProps
(Object) - Extra props to be passed to theMessageImage
's LightboxrenderCustomView
(Function) - Custom view inside the bubblerenderDay
(Function) - Custom day above a messagerenderTime
(Function) - Custom time inside a messagerenderFooter
(Function) - Custom fixed bottom view, e.g. "User is typing..."; see example/App.js for an examplerenderInputToolbar
(Function) - Custom message composer containerrenderComposer
(Function) - Custom text input message composerrenderActions
(Function) - Custom action button on the left of the message composerrenderSend
(Function) - Custom send buttonrenderAccessory
(Function) - Custom second line of actions below the message composeronPressActionButton
(Function) - Callback when the Action button is pressed (if set, the defaultactionSheet
will not be used)bottomOffset
(Integer) - Distance of the chat from the bottom of the screen (e.g. useful if you display a tab bar)minInputToolbarHeight
(Integer) - Minimum height of the input toolbar; default is44
listViewProps
(Object) - Extra props to be passed to the messages<ListView>
; some props can't be overridden, see the code inMessageContainer.render()
for detailskeyboardShouldPersistTaps
(Enum) - Determines whether the keyboard should stay visible after a tap; see<ScrollView>
docsonInputTextChanged
(Function) - Callback when the input text changesmaxInputLength
(Integer) - Max message composer TextInput length