Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
earthtoday-react-truncate
Advanced tools
$ npm install earthtoday-react-truncate
import Truncate from 'earthtoday-react-truncate';
// ...
class Foo extends Component {
render() {
return (
<Truncate lines={3} ellipsis={<span>... <a href='/link/to/article'>Read more</a></span>}>
{longText}
</Truncate>
);
}
}
Hint: (Generally with React) if you want to preserve newlines from plain text, you need to do as follows:
//...
{text.split('\n').map((line, i, arr) => {
const line = <span key={i}>{line}</span>;
if (i === arr.length - 1) {
return line;
} else {
return [line, <br key={i + 'br'} />];
}
})}
//...
Prop | Type | Default | Description | Example |
---|---|---|---|---|
lines | integer, boolean {false} | 1 | Specifies how many lines of text should be preserved until it gets truncated. false and any integer < 1 will result in the text not getting clipped at all. | (false , -1 , 0 ), 1 , ... |
ellipsis | string, React node | '…' | An ellipsis that is added to the end of the text in case it is truncated. | '...' , <span>...</span> , <span>... <a href='#' onClick={someHandler}>Read more</a></span> , [<span key='some'>Some</span>, <span key='siblings'>siblings<span>] |
children | string, React node | The text to be truncated. Anything that can be evaluated as text. | 'Some text' , <p>Some paragraph <a/>with other text-based inline elements<a></p> , <span>Some</span><span>siblings</span> | |
trimWhitespace | boolean | false | If true , whitespace will be removed from before the ellipsis (e.g. words ... will become words... instead) | |
width | number | 0 | If not 0 , the calculation of the content will be based on this number. | |
onTruncate | function | Gets invoked on each render. Gets called with true when text got truncated and ellipsis was injected, and with false otherwise. | isTruncated => isTruncated !== this.state.isTruncated && this.setState({ isTruncated }) |
width
property or call ref.onResize()
). See issueimport React, { Component } from 'react';
import PropTypes from 'prop-types';
import Truncate from 'react-truncate';
class ReadMore extends Component {
constructor(...args) {
super(...args);
this.state = {
expanded: false,
truncated: false
};
this.handleTruncate = this.handleTruncate.bind(this);
this.toggleLines = this.toggleLines.bind(this);
}
handleTruncate(truncated) {
if (this.state.truncated !== truncated) {
this.setState({
truncated
});
}
}
toggleLines(event) {
event.preventDefault();
this.setState({
expanded: !this.state.expanded
});
}
render() {
const {
children,
more,
less,
lines
} = this.props;
const {
expanded,
truncated
} = this.state;
return (
<div>
<Truncate
lines={!expanded && lines}
ellipsis={(
<span>... <a href='#' onClick={this.toggleLines}>{more}</a></span>
)}
onTruncate={this.handleTruncate}
>
{children}
</Truncate>
{!truncated && expanded && (
<span> <a href='#' onClick={this.toggleLines}>{less}</a></span>
)}
</div>
);
}
}
ReadMore.defaultProps = {
lines: 3,
more: 'Read more',
less: 'Show less'
};
ReadMore.propTypes = {
children: PropTypes.node.isRequired,
lines: PropTypes.number,
less: PropTypes.string,
more: PropTypes.string
};
export default ReadMore;
Install system libraries needed for development dependencies
Install development dependencies
$ npm install
Run tests
$ npm test
Run code linter
$ npm run lint
Compile to ES5 from /src to /lib
$ npm run compile
FAQs
cloned repo
The npm package earthtoday-react-truncate receives a total of 97 weekly downloads. As such, earthtoday-react-truncate popularity was classified as not popular.
We found that earthtoday-react-truncate demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.