A <Text/>
component for React Native and React Native Web that automatically detects #hashtags and @mentions.
Using npm
:
npm install --save react-native-twitter-textview
Using yarn
:
yarn add react-native-twitter-textview
It's super easy; just replace your React Native <Text />
component with a <TwitterTextView />
, and there you go!
const App = () => {
const [value, onChangeText] = useState('');
return (
<View
style={StyleSheet.absoluteFill}
>
<TextInput
onChangeText={onChangeText}
value={value}
placeholder="Type some #hashtags or @mentions to get started."
multiline
numberOfLines={4}
/>
<TwitterTextView
style={styles.twitterTextView}
hashtagStyle={styles.hashtagStyle}
mentionStyle={styles.mentionStyle}
linkStyle={styles.linkStyle}
emailStyle={styles.emailStyle}
>
{value}
</TwitterTextView>
</View>
);
}
Are you looking for a similar component for tagged <TextInput/>
? If so, please check out react-native-segmented-text-input.
Prop | Type | Default | Required | Description |
---|---|---|---|---|
children | string | '' | No | The text to render. |
extractHashtags | bool | true | No | Whether you wish to support hashtags. |
onPressHashtag | func | (e, hashtag) => null | No | Called when a detected hashtag is clicked. |
hashtagStyle | shape[object Object] | styles.linkStyle | No | Hashtag style. |
extractMentions | bool | true | No | Whether you wish to support mentions. |
onPressMention | func | (e, hashtag) => null | No | Called when a detected mention is clicked. |
mentionStyle | shape[object Object] | styles.linkStyle | No | Mention style. |
extractLinks | bool | true | No | Whether you wish to support links. |
onPressLink | func | (e, link) => Linking.openURL(link) | No | Called when a detected link is clicked. |
linkStyle | shape[object Object] | styles.linkStyle | No | Link style. |
extractEmails | bool | true | No | Whether you wish to support emails. |
onPressEmail | func | (e, link) => Linking.openURL(link) | No | Called when a detected email is clicked. |
emailStyle | shape[object Object] | styles.linkStyle | No | Email style. |