@flyerhq/react-native-link-preview
Version:
Fully customizable preview of the URL extracted from the provided text.
62 lines (47 loc) • 5.18 kB
Markdown
# React Native Link Preview
[](https://www.npmjs.com/package/@flyerhq/react-native-link-preview)
[](https://github.com/flyerhq/react-native-link-preview/actions?query=workflow%3Abuild)
[](https://codeclimate.com/github/flyerhq/react-native-link-preview/maintainability)
[](https://codeclimate.com/github/flyerhq/react-native-link-preview/test_coverage)
[](https://github.com/plantain-00/type-coverage)
Fully customizable preview of the URL extracted from the provided text.
<img src="https://user-images.githubusercontent.com/14123304/119363213-d727b580-bcad-11eb-8678-6e4c4a54621c.png" width="428" height="926">
## Getting Started
```sh
yarn add @flyerhq/react-native-link-preview
```
## Usage
```ts
import { LinkPreview } from '@flyerhq/react-native-link-preview'
// ...
return (
<LinkPreview text='This link https://github.com/flyerhq can be extracted from the text' />
)
```
## Props
### Required
| Name | Type | Description |
| ---- | ------ | ----------------------------- |
| text | string | Text to extract the link from |
### Optional
| Name | Type | Description |
| ----------------------------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------ |
| containerStyle | [ViewStyle](https://reactnative.dev/docs/view-style-props) | Top level container style |
| enableAnimation | boolean | Enables `LayoutAnimation` |
| header | string | Text above the link |
| metadataContainerStyle | [ViewStyle](https://reactnative.dev/docs/view-style-props) | Title, description and minimized image container style |
| metadataTextContainerStyle | [ViewStyle](https://reactnative.dev/docs/view-style-props) | Title and description container style |
| onPreviewDataFetched | (PreviewData) => void | Callback to get the fetched preview data |
| previewData | PreviewData | Data to render instead of parsing the provided text |
| renderDescription | (string) => ReactNode | Custom description render prop |
| renderHeader | (string) => ReactNode | Custom header render prop |
| renderImage | (PreviewDataImage) => ReactNode | Custom image render prop |
| renderLinkPreview | ({ aspectRatio?: number, containerWidth: number, previewData?: PreviewData }) => ReactNode | Custom render prop |
| renderMinimizedImage | (PreviewDataImage) => ReactNode | Custom minimised image render prop |
| renderText | (string) => ReactNode | Custom provided text render prop |
| renderTitle | (string) => ReactNode | Custom title render prop |
| requestTimeout | number | Timeout after which request to get preview data should abort |
| textContainerStyle | [ViewStyle](https://reactnative.dev/docs/view-style-props) | Text, title, description and minimized image container style |
| touchableWithoutFeedbackProps | TouchableWithoutFeedbackProps | Top level touchable props |
## License
[MIT](LICENSE)