项目作者: mikelpmc

项目描述 :
React multiline text clamping component with show more/less feature
高级语言: HTML
项目地址: git://github.com/mikelpmc/react-multiline-clamping.git
创建时间: 2019-09-29T17:26:09Z
项目社区:https://github.com/mikelpmc/react-multiline-clamping

开源协议:

下载


React Multiline Clamping

React component that uses the css line clamping to truncate given text in specified lines.

Codesandbox demo

Features

  • 🎉 Uses the css line clamp property
  • 😱 It works both with plain text and HTML/Components
  • 💥 Integrated show more/less behaviour
  • 👂 Listens to text and lines changes and responds accordingly
  • ⚙️ Easy-to-use component API
  • 🌳 Tiny size, only 1.4kb

Installation

  1. npm install react-multiline-clamp

Basic example

  1. import Clamp from 'react-multiline-clamp';
  2. const MyComponent = () => {
  3. return (
  4. <Clamp withTooltip lines={2}>
  5. <p>Multiline text</p>
  6. </Clamp>
  7. );
  8. };

With show more/less behaviour

  1. import Clamp from 'react-multiline-clamp';
  2. const MyComponent = () => {
  3. return (
  4. <Clamp
  5. lines={2}
  6. maxLines={6}
  7. withToggle
  8. showMoreElement={({ toggle }) => (
  9. <button type="button" onClick={toggle}>
  10. Show more
  11. </button>
  12. )}
  13. showLessElement={({ toggle }) => (
  14. <span type="button" onClick={toggle}>
  15. menossssss
  16. </span>
  17. )}
  18. >
  19. <p>Multiline text</p>
  20. </Clamp>
  21. );
  22. };

API

Name Type Default Description
children Element The expected element to which the ellipsis would be applied. It could be plain text or any HTML/Component
lines Number 2 The number of lines we want the text to be truncated to
maxLines Number 8 The maximum number of lines we want to show after clicking on showMore button
withTooltip Boolean true Indicates if we want the text to have a tooltip title
withToggle Boolean false Indicates if we want to have the show more/less actions
showMoreElement Element Element that triggers the show more action
showLessElement Element Element that triggers the show less action
onShowMore (isExpanded) => Boolean () => {} A callback function that gets calls every time we click on the show more/less buttons. It returns whether the text is expanded or not (Boolean)

See browser support

Author: Mikel Parra mikelpmc@gmail.com | http://github.com/mikelpmc