react-native-mentionable-textinput
v1.2.0
Published
ReactNative TextInput with enhanced capabilities for mentions
Downloads
1,973
Readme
react-native-mentionable-textinput
ReactNative TextInput with enhanced capabilities for mentions
Installation
npm install react-native-mentionable-textinput
npm install react-native-device-info # Needed to fix a well-known textinput bug on Xiaomi family devices
cd ios; pod install ## Needed to link react-native-device-info
Usage
import { TextInputMention } from "react-native-mentionable-textinput";
// ...
<TextInputMention
mentionsTypes={[
{
type: 'users',
mentionChar: '@',
},
{
type: 'channels',
mentionChar: '#',
},
]}
onSend={onSubmit}
searchMentionableItems={searchItems}
mentionableItems={itemsFound}
submitIcon={<Image style={iconStyle} source={{ uri: send }} />}
mentionIcon={<Image style={iconStyle} source={{ uri: email }} />}
closeIcon={<Image style={iconStyle} source={{ uri: close }} />}
maxHeightMentionWindow={200}
/>
Component props
| Name | Type | Mandatory | Additional info | | - | - | - | - | | mentionsTypes | Array | ✔️ | Type of objects that can be mentioned | | initialText | string | ❌ | Initial text of the text input | | placeholder | string | ❌ | Text input placeholder | | initialMentioned | Array | ❌ | Every mention is contained in this array. Fill it with inital mention elements | | isMentionsDisabled | boolean | ❌ | False if text input should not have mentions | | isSendButtonDisabled | boolean | ❌ | True if text input submit button is disable. | | isSmartSearchEnabled | boolean | ❌ | True if smart search should be enabled | | children | Array<JSX.Element> | ❌ | Optional view that will be attached above text input | | mentionableItems | Array | ✔️ | List of visible items that can be mentioned | | searchMentionableItems | (mentionType: string, searchText: string) => void | ✔️ | Search callback to filter mentionable items | | onChangeText | (text: string, mentioned: Array) => void | ❌ | Callback passed to text input | | onMentionClose | () => void | ❌ | Callback when the list of mentionable items is closed | | onSend | (text: string, mentioned: Array) | ✔️ | Called on submit | | onEndTyping | () => void | ❌ | Callback passed to text input | | | | | | | textStyle | StyleProp | ❌ | Style of text, excluded mentions | | mentionStyle | StyleProp | ❌ | Style of mentions, included mention character | | mentionContainerStyle | StyleProp | ❌ | Style of mentions container view | | textInputContainerStyle| StyleProp | ❌ | Style of text input container | | separatorColor | string | ❌ | Color of the separator between text input and mention window | | submitIcon | JSX.Element | ✔️ | Icon for on submit action | | mentionIcon | JSX.Element | ✔️ | Icon for mention | | closeIcon | JSX.Element | ✔️ | Icon for close | | | | | | | textInputProps | TextInputProps | ❌ | Props for native TextInput | | keyboardAvoidingViewProps | KeyboardAvoidingViewProps | ❌ | Props for native KeyboardAvoidingView | | | | | | | maxHeightMentionWindow | number | ✔️ | Max height of mentions container view | | renderMentionType | (mentionType: string) => JSX.Element | ❌ | Custom render of mentionable items |
Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
License
MIT