UNPKG

react-native-chatify

Version:

React native chat easy to use and integrate

126 lines (99 loc) 4.76 kB
# React Native Chatify 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. ## Prerequisites This project requires NodeJS (version 8 or later) and NPM. [Node](http://nodejs.org/) and [NPM](https://npmjs.org/) are really easy to install. To make sure you have them available on your machine, ## Getting Started 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. ## Installation To install and set up the library, run: ```sh $ npm install react-native-chatify ``` Or if you prefer using Yarn: ```sh $ yarn add react-native-chatify ``` ## Example ```javascript 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} /> ); }; ``` ## Props | 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.. | `-` | ### theme ``` 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 }, }; ``` ## Authors - **Maaz** - _Initial work_ - [Maazy](https://github.com/mmaazy03) - **Maaz** - _Portfolio_ - [Maazy](https://portfolio-henna-one-63.vercel.app/) ## License MIT License