read-more-more
Version:
Read-More-More is a simple package for react that helps to implement 'read more' or 'read less' feature to any given text
85 lines (55 loc) • 4.22 kB
Markdown
# Read-More-More
<p>
<img src="https://img.shields.io/npm/v/read-more-more"/>
<img src="https://img.shields.io/npm/dt/read-more-more"/>
<img src="https://img.shields.io/badge/license-AGPL--3.0-green"/>
<img src="https://img.shields.io/bundlephobia/min/read-more-more"/>
</p>
Read-More-More is a simple pakage for react that helps to implement 'read more' or 'read less' feature to any given text, you can limit the number of chracters in string/text to give the "read more" text at the end, also if you have a `HTML String` that you want to convert it to `React element`, you can do that too by add `parseHtml` prop
## Motivation
I was working on a project where i needed to use "read more/less" button , cause of the huge "HTML String" I was getting from an API and I tried finding libraries to add "read more/less" feature to the text but the problem was that in those libraries there was not any options for parsing HTML string to React element , which was serious need for me.Also I tried parsing the text that i was getting from other 'read more' libraries but that didn't work too. So finally I decided to make my own 'read more/less' library and here we are.
## Update 2.0.0
This update brings you a new advance read-more-more, it calculates the actual height of the sentences when it opens, also recalculates the height if the window resizes so it makes the transition smoother. And I named this method `AdvReadMoreMore` 😬, I know its pretty basic 😂.
Hope you all will love this new update and as always critisims are always welcomed.
## How to Use
### With React
Read-More-More is extraordinarily simple to use with react. For starters you only have to provide `text` prop and it's required.
#### Install
```
npm install read-more-more
```
#### Import
```
import {ReadMoreMore, AdvReadMoreMore} from 'read-more-more';
```
#### Use
```
<ReadMoreMore text={yourTextHere} /> or <AdvReadMoreMore text={yourTextHere} /> , add other props according to your needs
```
| Props | type | Default Value | Defination |
| :-----------: | :-----: | :-----------: | :----------------------------------------------------: |
| text | string | null | add the text you want to "read more/less" to it |
| checkFor | number | 300 np | how many characters it should check to add "read more" |
| btnStyles | object | null | pass custom styles to "read more/less" button |
| transDuration | number | 2s | transition duration for the read more/less collapsing |
| transType | string | linear | transition type for the read more/less collapsing |
| linesToShow | number | 3 | intial number of lines to show |
| parseHtml | boolean | false | to parse html string to react element |
| readMoreText | string | read more... | replace the default "read more..." with your own text |
| readLessText | string | read less... | replace the default "read less..." with your own text |
| textStyles | object | null | styles the text container along with the text |
#### Addition props for `AdvReadMoreMore`
| Props | type | Default Value | Defination |
| :-----------: | :-----: | :-----------: | :----------------------------------------------------: |
|lineHeight|number| 20 (i.e. 20px)|line height of the text|
|fontSize | number | 15 (i.e.15px)| font size of the text|
|color|string|#000| color of the text|
#### *Note* : `textStyles` prop is not suppported in `AdvReadMoreMore`
## Demo
[Click here](https://codesandbox.io/s/xenodochial-zhukovsky-hkdr4?file=/src/App.js)
## Report Bugs
[Report](https://github.com/the-wrong-guy/read-more-more/issues)
## Contributing
Please read [CONTRIBUTING.md](https://github.com/the-wrong-guy/read-more-more/blob/master/CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
## Versioning
We use [SemVer](http://semver.org/) for versioning.