Skip to content

Repository files navigation

react-native-hyperlink

NPM versionAwesome

A <Hyperlink /> component for react-native & react-native-web that makes urls, fuzzy links, emails etc clickable

demo

Installation

npm i --save react-native-hyperlink

Props

namedesctypedefault
linkifylinkify-it object, for custom schemaobjectrequire('linkify-it')()
linkStylehighlight clickable text with stylesText.propTypes.style
linkTextA string or a func to replace parsed textoneOfType([ string, func ])
onPressFunc to handle click over a clickable text with parsed text as argfunc
onLongPressFunc to handle long click over a clickable text with parsed text as argfunc
linkDefaultA platform specific fallback to handle onPress. Uses Linking. Disabled by defaultbool
injectViewPropsFunc with url as a param to inject props to the clickable componentfunci => ({})

Examples

Wrap any component that has <Text> (works for nested text too) in it

importHyperlinkfrom'react-native-hyperlink'exportconstdefaultLink=()=><HyperlinklinkDefault={true}><Textstyle={{fontSize: 15}}>
This text will be parsed to check for clickable strings like https://github.com/obipawan/hyperlink and made clickable.
</Text></Hyperlink>exportconstregularText=()=><HyperlinkonPress={(url,text)=>alert(url+", "+text)}><Textstyle={{fontSize: 15}}>
This text will be parsed to check for clickable strings like https://github.com/obipawan/hyperlink and made clickable.
</Text></Hyperlink>exportconstregularTextLongPress=()=><HyperlinkonLongPress={(url,text)=>alert(url+", "+text)}><Textstyle={{fontSize: 15}}>
This text will be parsed to check for clickable strings like https://github.com/obipawan/hyperlink and made clickable for long click.
</Text></Hyperlink>exportconstnestedText=()=><HyperlinkonPress={(url,text)=>alert(url+", "+text)}><View><Textstyle={{fontSize: 15}}>
A nested Text component https://facebook.github.io/react-native/docs/text.html works equally well <Text>with https://github.com/obipawan/hyperlink</Text></Text></View></Hyperlink>exportconsthighlightText=()=><HyperlinklinkStyle={{color: '#2980b9',fontSize: 20}}><Textstyle={{fontSize: 15}}>
Make clickable strings like https://github.com/obipawan/hyperlink stylable
</Text></Hyperlink>exportconstparseAndReplace=()=><HyperlinklinkStyle={{color: '#2980b9',fontSize: 20}}linkText={url=>url==='https://github.com/obipawan/hyperlink' ? 'Hyperlink' : url}><Textstyle={{fontSize: 15}}>
Make clickable strings cleaner with https://github.com/obipawan/hyperlink
</Text></Hyperlink>exportconstpassPropsText=()=><HyperlinklinkDefaultinjectViewProps={url=>({testID: url==='http://link.com' ? 'id1' : 'id2',style: url==='https://link.com' ? {color: 'red'} : {color: 'blue'},//any other props you wish to pass to the component})}><Text>You can pass props to clickable components matched by url.
<Text>This url looks red https://link.com
</Text> and this url looks blue https://link2.com </Text></Hyperlink>

Dependenies

linkify-it

Development

PRs highly appreciated

License

MIT License

About

A <Hyperlink /> component for react-native that makes urls, fuzzy links, emails etc clickable

Topics

Resources

Code of conduct

Contributing

Stars

812 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages