1.0.3 • Published 2 years ago
rn-chips
Licence
MIT
Version
1.0.3
Deps
0
Size
12 kB
Vulns
0
Weekly
0
rn-chips
A customizable React Native component for creating chip input functionality.
Installation
npm install rn-chips
or
yarn add rn-chips
Usage
import ChipInput from "rn-chips";
// ...
<ChipInput
initialChips={["React", "Native"]}
onChangeChips={(chips) => console.log(chips)}
/>;
Props
| Prop | Type | Default | Description |
|---|---|---|---|
initialChips |
Array | [] |
Initial set of chips to display. |
duplicate |
Boolean | false |
Allow duplicate chips if set to true. |
onChangeText |
Function | - | Callback function triggered when input text changes. |
onChangeChips |
Function | - | Callback function triggered when chips array changes. Receives the updated chips array as an argument. |
alertRequired |
Boolean | false |
Show alerts for chip addition/deletion if set to true. |
inputPlaceholder |
String | "Type something..." |
Placeholder text for the input field. |
hideInput |
Boolean | false |
Hide the input field if set to true. |
chipStyle |
Object | - | Custom styles for the chip container. |
chipTextStyle |
Object | - | Custom styles for the chip text. |
inputStyle |
Object | - | Custom styles for the input field. |
chipsContainerStyle |
Object | - | Custom styles for the container holding all chips. |
closeBtn |
Element | - | Custom close button element for chips. (Add custom icon/button using this as emoji is used by default) |
closeBtnStyle |
Object | - | Custom styles for the default close button. |
chipPressable |
Boolean | false |
Make chips pressable if set to true. |
onChipPress |
Function | - | Callback function triggered when a chip is pressed. Receives the index and value of the pressed chip as arguments. |
Detailed Functionality
- Chip Input: Users can type text into the input field and create chips by submitting the text (e.g., pressing enter).
- Initial Chips: Set initial chips using the
initialChipsprop. Ifduplicateis false, duplicate chips will be automatically removed. - Duplicate Handling: Control whether duplicate chips are allowed using the
duplicateprop. - Chip Removal: Chips can be removed by clicking on their close button. This action can trigger an alert if
alertRequiredis set to true. - Chip Addition: New chips are added when the input loses focus or the user submits the input. This action can trigger an alert if
alertRequiredis set to true. - Custom Styling: Customize the appearance of chips, input field, and the overall container using various style props.
- Hidden Input: Hide the input field using the
hideInputprop, useful for displaying a static set of chips. - Custom Close Button: Provide a custom close button element using the
closeBtnprop. - Pressable Chips: Make chips pressable using the
chipPressableprop and handle press events with theonChipPresscallback. - Callbacks: Utilize
onChangeText,onChangeChips, andonChipPresscallbacks to handle various events and keep your app's state in sync with the component.
Example
import React from "react";
import { View } from "react-native";
import ChipInput from "rn-chips";
export default function App() {
const handleChipsChange = (chips) => {
console.log("Current chips:", chips);
};
return (
<View style={{ padding: 20 }}>
<ChipInput
initialChips={["React", "Native"]}
onChangeChips={handleChipsChange}
alertRequired={true}
inputPlaceholder="Add a technology..."
chipStyle={{ backgroundColor: "#e0e0e0" }}
chipTextStyle={{ color: "#333" }}
inputStyle={{ borderColor: "#ccc" }}
/>
</View>
);
}
This example creates a chip input with initial values, custom styling, and alerts for chip additions and deletions.
Dependencies
This package depends on:
react-nativern-animated-pressable
Make sure these are installed in your project.
License
This project is licensed under the MIT License.