A component package which helps you render the preview data of any link
NOTE: This utilizes https://github.com/ashwamegh/link-preview-generator-server server deployed on Azure, a free web server which can run 30 minutes in a day. If you want to use it in a PRODUCTION app, I would recommend you to use your own server (You can use the
Dockerfile
or the Docker hub image for deploying link-preview-generator-server) and provide the custom link of the API forcustomDomain
in the Component Props
npm install @ashwamegh/react-link-preview
yarn add @ashwamegh/react-link-preview
import React from 'react'
import LinkPreview from '@ashwamegh/react-link-preview'
// If you're using built in layout, you will need to import this css
import '@ashwamegh/react-link-preview/dist/index.css'
function Example() {
return <LinkPreview url='https://reactjs.org' />
}
export default Example
You can provide your own component to replace the existing one using renderProps.
import React from 'react'
import LinkPreview from '@ashwamegh/react-link-preview'
function CustomComponent({ loading, preview }) {
return loading ? (
<h1>Loading...</h1>
) : (
<div>
<p>Domain: {preview.domain}</p>
<p>Title: {preview.title}</p>
<p>Description: {preview.description}</p>
<img height='100px' width='100px' src={preview.img} alt={preview.title} />
</div>
)
}
function App() {
return (
<LinkPreview
url='https://reactjs.org'
customDomain='https://lpdg-server.azurewebsites.net/parse/link'
render={CustomComponent}
/>
)
}
export default App
Property | Type | Default | Description | Required |
---|---|---|---|---|
url |
string |
URL to get preview data | true | |
onClick |
function |
onClick handler for the card | false | |
customDomain |
string |
https://lpdg-server.azurewebsites.net/parse/link |
Custom Server API link which can parse the metadata of the page | false |
render |
function |
function which can be called with preview data to render custom component | false | |
width |
string |
90% |
Width of the card preview | false |
maxWidth |
string |
700px |
Max Width of the card preview | false |
marginTop |
string |
18px |
Margin top for the card | false |
marginBottom |
string |
18px |
Margin bottom for the card | false |
marginRight |
string |
auto |
Margin right for the card | false |
marginLeft |
string |
auto |
Margin left for the card | false |
Thanks for taking the time to contribute, please check out the src to understand how things work.
Found a problem? Want a new feature? First of all, see if your issue or idea has already been reported. If don't, just open a new clear and descriptive issue.
Pull requests are the greatest contributions, so be sure they are focused in scope and do avoid unrelated commits.
- Fork it!
- Clone your fork:
git clone https://github.com/<your-username>/react-link-preview
- Navigate to the newly cloned directory:
cd react-link-preview
- Create a new branch for the new feature:
git checkout -b my-new-feature
- Install the tools necessary for development:
yarn
- Make your changes.
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request with full remarks documenting your changes