React Native Chatify is a lightweight and customizable chat UI library for React Native applications. It simplifies the process of building chat interfaces with reusable components and easy integration.
This project requires NodeJS (version 8 or later) and NPM. Node and NPM are really easy to install. To make sure you have them available on your machine,
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
To install and set up the library, run:
$ npm install react-native-chatify
Or if you prefer using Yarn:
$ yarn add react-native-chatify
import Chatify from "react-native-chatify";
const MyComponent = () => {
const [text, setText] = useState("");
const [messages, setMessages] = useState([
{
_id: 1,
user: { id: "123", name: "Test User 1" },
text: "Test1",
direction: "InBound",
},
{
_id: 2,
user: { id: "123", name: "Test User 2" },
text: "Test2",
direction: "OutBound",
},
]);
const onChange = (data) => {
setText(data);
};
const sendChat = () => {
const message = {
text: text,
user: {
id: "456",
name: "Test User 2",
},
direction: "OutBound",
};
setMessages((prevState) => [...prevState, message]);
};
return (
<Chatify
data={messages}
text={text}
title="Test User"
onSend={sendChat}
onTextChange={onChange}
theme={chatThemeConfig}
/>
);
};
Prop | Type | Description | Default |
---|---|---|---|
data |
Array |
An array of message objects. Each message should include _id , text , createdAt , and user object along with direction either "InBound" or "OutBound". |
[] |
text |
string |
Input field value | - |
text |
Function |
A callback function for sending new messages. This function should update the messages state. |
- |
onTextChange |
Function |
A callback function that returns the text input value entered | - |
theme |
Object |
A theme object which takes the custom styling option for headers, input field, footer | {} |
onTextChange |
Function |
A callback function that returns the text input value entered | - |
_renderHeader |
Function |
A callback function that receives your custom header component, allowing you to replace the default header with your own design. | - |
_renderFooter |
Function |
A callback function that receives your custom footer component, allowing you to replace the default footer with your own design.. | - |
const chatThemeConfig = {
avoidingView: {}, // Customize properties for keyboard avoiding view
header: {
backgroundColor: "red", // Styles for header
headerImage: {}, // Styles for the header image
headerIcon: {}, // Styles for icons within the header
headerIconLayout: {}, // Layout styles for icon arrangement in the header
headerTitle: {}, // Styles for the header title text
},
row: {
marginTop: 20, // Set margin for rows within the chat layout
},
footer: {
inputField: {}, // Customize the input field styles in the footer
footerIconLayout: {}, // Layout for icons in the footer
footerIcon: {}, // Styles for individual icons in the footer
},
};
MIT License