All Projects → obipawan → React Native Hyperlink

obipawan / React Native Hyperlink

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

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to React Native Hyperlink

link text
Easy to use text widget for Flutter apps, which converts inlined urls into working, clickable links
Stars: ✭ 20 (-96.5%)
Mutual labels:  url, text, link
URL-Shortner-Bot-V2
A link shortner telegram bot version 2 with advanced features
Stars: ✭ 18 (-96.85%)
Mutual labels:  url, link
custom-permalinks
Set custom permalinks on a per-post basis in WordPress
Stars: ✭ 17 (-97.03%)
Mutual labels:  url, link
react-bones
💀 Dead simple content loading components for React and React-Native. 💀
Stars: ✭ 42 (-92.66%)
Mutual labels:  text, react-native-web
reachable-urls
Check URLs are reachable in text 🕵️
Stars: ✭ 29 (-94.93%)
Mutual labels:  url, link
fbvideos
🔗 Easily extract downloadable link of publicly available videos on facebook.
Stars: ✭ 28 (-95.1%)
Mutual labels:  url, link
quill-magic-url
Automatically convert URLs to links in Quill
Stars: ✭ 86 (-84.97%)
Mutual labels:  url, link
ngx-linkifyjs
Angular V8 wrapper for linkifyjs - library for finding links in plain text and converting them to HTML <a> tags via linkifyjs
Stars: ✭ 40 (-93.01%)
Mutual labels:  url, text
Ybattributetexttapaction
一行代码添加文本点击事件/a fast way to implement click event text
Stars: ✭ 430 (-24.83%)
Mutual labels:  text, link
Lmdb Embeddings
Fast word vectors with little memory usage in Python
Stars: ✭ 404 (-29.37%)
Mutual labels:  text
Pesdk Android Demo
A fully customizable photo editor for your app.
Stars: ✭ 464 (-18.88%)
Mutual labels:  text
Url
Parse, build and manipulate URL's
Stars: ✭ 396 (-30.77%)
Mutual labels:  url
Crayons
Text UI colors for Python.
Stars: ✭ 409 (-28.5%)
Mutual labels:  text
Pdf To Text
Extract text from a pdf
Stars: ✭ 462 (-19.23%)
Mutual labels:  text
Environmentswitcher
🔥No repackage, switch environment with one click.(无需重新打包,一键切换环境 )
Stars: ✭ 401 (-29.9%)
Mutual labels:  url
Input Mask Ios
User input masking library repo.
Stars: ✭ 494 (-13.64%)
Mutual labels:  text
Purell
tiny Go library to normalize URLs
Stars: ✭ 391 (-31.64%)
Mutual labels:  url
Dbreeze
C# .NET MONO NOSQL ( key value store embedded ) ACID multi-paradigm database management system.
Stars: ✭ 383 (-33.04%)
Mutual labels:  text
Digger
Digger is a lightweight download framework that requires only one line of code to complete the file download task
Stars: ✭ 521 (-8.92%)
Mutual labels:  url
Zep
Zep - An embeddable editor, with optional support for using vim keystrokes.
Stars: ✭ 477 (-16.61%)
Mutual labels:  text

react-native-hyperlink

NPM version Awesome

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

name desc type default
linkify linkify-it object, for custom schema object require('linkify-it')()
linkStyle highlight clickable text with styles Text.propTypes.style
linkText A string or a func to replace parsed text oneOfType([ string, func ])
onPress Func to handle click over a clickable text with parsed text as arg func
onLongPress Func to handle long click over a clickable text with parsed text as arg func
linkDefault A platform specific fallback to handle onPress. Uses Linking. Disabled by default bool
injectViewProps Func with url as a param to inject props to the clickable component func i => ({})

Examples

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

import Hyperlink from 'react-native-hyperlink'

export const defaultLink = () =>
  <Hyperlink linkDefault={ true }>
    <Text style={ { fontSize: 15 } }>
      This text will be parsed to check for clickable strings like https://github.com/obipawan/hyperlink and made clickable.
    </Text>
  </Hyperlink>

export const regularText = () =>
  <Hyperlink onPress={ (url, text) => alert(url + ", " + text) }>
    <Text style={ { fontSize: 15 } }>
      This text will be parsed to check for clickable strings like https://github.com/obipawan/hyperlink and made clickable.
    </Text>
  </Hyperlink>

export const regularTextLongPress = () =>
  <Hyperlink onLongPress={ (url, text) => alert(url + ", " + text) }>
    <Text style={ { 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>

export const nestedText = () =>
  <Hyperlink onPress={ (url, text) => alert(url + ", " + text) }>
    <View>
      <Text style={ { 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>

export const highlightText = () =>
  <Hyperlink linkStyle={ { color: '#2980b9', fontSize: 20 } }>
    <Text style={ { fontSize: 15 } }>
      Make clickable strings like https://github.com/obipawan/hyperlink stylable
    </Text>
  </Hyperlink>

export const parseAndReplace = () =>
  <Hyperlink
    linkStyle={ { color: '#2980b9', fontSize: 20 } }
    linkText={ url => url === 'https://github.com/obipawan/hyperlink' ? 'Hyperlink' : url }
  >
    <Text style={ { fontSize: 15 } }>
      Make clickable strings cleaner with https://github.com/obipawan/hyperlink
    </Text>
  </Hyperlink>

export const passPropsText = () =>
  <Hyperlink
    linkDefault
    injectViewProps={ 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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].