Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
react-native-gifted-messenger
Advanced tools
Ready-to-use chat interface for iOS and Android React-Native apps
Dependency: React-Native >= v0.20.0 (scrollTo is now using {x, y, animated})
var GiftedMessenger = require('react-native-gifted-messenger');
var {Dimensions} = React;
var GiftedMessengerExample = React.createClass({
getMessages() {
return [
{text: 'Are you building a chat app?', name: 'React-Native', image: {uri: 'https://facebook.github.io/react/img/logo_og.png'}, position: 'left', date: new Date(2015, 0, 16, 19, 0)},
{text: "Yes, and I use Gifted Messenger!", name: 'Developer', image: null, position: 'right', date: new Date(2015, 0, 17, 19, 0)},
];
},
handleSend(message = {}, rowID = null) {
// Send message.text to your server
},
handleReceive() {
this._GiftedMessenger.appendMessage({
text: 'Received message',
name: 'Friend',
image: {uri: 'https://facebook.github.io/react/img/logo_og.png'},
position: 'left',
date: new Date(),
});
},
render() {
return (
<GiftedMessenger
ref={(c) => this._GiftedMessenger = c}
messages={this.getMessages()}
handleSend={this.handleSend}
maxHeight={Dimensions.get('window').height - 64} // 64 for the navBar
styles={{
bubbleLeft: {
backgroundColor: '#e6e6eb',
marginRight: 70,
},
bubbleRight: {
backgroundColor: '#007aff',
marginLeft: 70,
},
}}
/>
);
},
});
See GiftedMessengerExample/GiftedMessengerExample.js
npm install react-native-gifted-messenger --save
Props name | Type | Description | Platform | Default |
---|---|---|---|---|
messages | Array | List of messages to display | Both | [] |
displayNames | Boolean | Display or not the name of the interlocutor(s) | Both | true |
placeholder | String | TextInput placeholder | Both | 'Type a message...' |
styles | Function | Styles of children components - See GiftedMessenger.js/componentWillMount | Both | {} |
autoFocus | Boolean | TextInput auto focus | Both | true |
onErrorButtonPress | Function | Called when the re-send button is pressed | Both | (message, rowID) => {} |
loadEarlierMessagesButton | Boolean | Display or not the button to load earlier message | Both | false |
loadEarlierMessagesButtonText | String | Label of the 'Load Earlier Messages' button | Both | 'Load earlier messages' |
onLoadEarlierMessages | Function | Called when 'Load Earlier Message' button is pressed | Both | (oldestMessage, callback) => {} |
handleSend | Function | Called when a message is Sent | Both | (message, rowID) => {} |
maxHeight | Integer | Max height of the component | Both | Dimensions.get('window').height |
senderName | String | Name of the sender of the messages | Both | 'Sender' |
senderImage | Object | Image of the sender | Both | null |
sendButtonText | String | 'Send' button label | Both | 'Send' |
onImagePress | Function | Called when the image of a message is pressed | Both | (rowData, rowID) => {} |
parseText | Boolean | If the text has to be parsed with taskrabbit/react-native-parsed-text | iOS | true |
handleUrlPress | Function | Called when a parsed url is pressed | iOS | (url) => {} |
handlePhonePress | Function | Called when a parsed phone number is pressed | iOS | (phone) => {} |
handleEmailPress | Function | Called when a parsed email is pressed | iOS | (email) => {} |
hideTextInput | Boolean | Hide or not the text input | Both | false |
keyboardDismissMode | String | Method to dismiss the keyboard when dragging (none, interactive, on-drag) | Both | interactive |
returnKeyType | Boolean | Determine if pressing 'send' will trigger handleSend | iOS | false |
submitOnReturn | Boolean | Send message when clicking on submit | Both | false |
forceRenderImage | Boolean | Always render the users images (avatar) | Both | false |
onCustomSend | Function | If you want to implement a progress bar. See PR #16 | Both | (message) => {} |
renderCustomText | Function | Implement your own text rendering | Both | (rowData, rowID) => {} |
onChangeText | Function | Called on every keypress in the TextInput | Both | (text) => {} |
The UI is updated when receiving new messages
prop.
appendMessages(messages = [])
// Add messages at the end of the list view
appendMessage(message = {})
// Add 1 message at the end of the list view
prependMessages(messages = [])
// Add messages at the begining of the list view
prependMessage(message = {})
// Add 1 message at the begining of the list view
setMessageStatus(status = '', rowID)
// Set the status of a message ('ErrorButton', 'Sent', 'Seen', 'Anything you want')
getMessage(rowID)
// Get message object by rowID
getPreviousMessage(rowID)
// Get previous message object of a rowID
getNextMessage(rowID)
// Get next message object of a rowID
var message = {
text: 'Message content',
name: "Sender's name",
image: {uri: 'https://facebook.github.io/react/img/logo_og.png'},
position: 'left', // left if received, right if sent
date: new Date(),
view: null, // A custom Bubble view
// ...any attributes you want
};
Feel free to ask me questions on Twitter @FaridSafi !
FAQs
Chat UI for iOS and Android React-Native apps
The npm package react-native-gifted-messenger receives a total of 7 weekly downloads. As such, react-native-gifted-messenger popularity was classified as not popular.
We found that react-native-gifted-messenger demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.