react-show-more-text 1.5.1 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +11 -4
- package/lib/ShowMoreText.js +12 -12
- package/lib/Truncate.js +12 -10
- package/package.json +15 -4
- package/CHANGELOG.md +0 -46
package/LICENSE
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Copyright (c)
|
|
1
|
+
Copyright (c) 2022, Devzone Tech
|
|
2
2
|
|
|
3
3
|
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
|
|
4
4
|
|
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
# React Show More Text 1.
|
|
1
|
+
# React Show More Text 1.6.0
|
|
2
2
|
|
|
3
3
|
[![NPM version][npm-image]][npm-url]
|
|
4
4
|
[![Downloads][downloads-image]][npm-url]
|
|
5
5
|
[![Build status][travis-image]][travis-url]
|
|
6
6
|
[![Dependency status][david-dm-image]][david-dm-url]
|
|
7
7
|
|
|
8
|
-
The text surrounded by the component will be truncated. Anything surrounded by the component could be evaluated as text. The component react-show-more-text/ShowMoreText is fork of react-show-more/ShowMore, applied improvements, works with React 16.x.x, added onClick event.
|
|
8
|
+
The text surrounded by the component will be truncated. Anything surrounded by the component could be evaluated as text. The component react-show-more-text/ShowMoreText is fork of react-show-more/ShowMore, applied improvements, works with React 16.x.x, React 18.x.x added onClick event.
|
|
9
9
|
|
|
10
10
|
## Demo
|
|
11
11
|
|
|
@@ -86,11 +86,12 @@ class Foo extends Component {
|
|
|
86
86
|
| className | string | '' | Class name(s) to add on component content wrapper div. | `'wrapper-class'`, `'wrapper-class-1 wrapper-class-2'` |
|
|
87
87
|
| anchorClass | string | '' | Class name(s) to add to the anchor elements. | `'my-anchor-class'`, `'class-1 class-2'` |
|
|
88
88
|
| onClick | Function | | Function executed on click on 'Show more' or 'Show less' | `onClick={this.executeOnClick}` |
|
|
89
|
-
| expanded | boolean | 'false' | Control the text to be shown as expanded | `expanded={true}`
|
|
90
|
-
| expandByClick | boolean | 'true' | Cancel the default anchor click expand behavior | `expandByClick={false}`
|
|
89
|
+
| expanded | boolean | 'false' | Control the text to be shown as expanded | `expanded={true}` |
|
|
90
|
+
| expandByClick | boolean | 'true' | Cancel the default anchor click expand behavior | `expandByClick={false}` |
|
|
91
91
|
| width | number | `0` | If not `0`, the calculation of the content will be based on this number. | |
|
|
92
92
|
| keepNewLines | boolean | 'false' | Controls the new lines in text to be kept or not. When set to true, only strings can be passed in as children, and not html nodes. | `keepNewLines={true}` |
|
|
93
93
|
| truncatedEndingComponent | string | '...' | Control the text to be shown at the end of short text | `truncatedEndingComponent={'... '}` |
|
|
94
|
+
| onTruncate | Function | undefined | Function executed on click on Truncate | `onTruncate={() => {alert('Turncated!')}}` |
|
|
94
95
|
|
|
95
96
|
## Developing
|
|
96
97
|
|
|
@@ -118,6 +119,12 @@ Compile to ES5 from /src to /lib
|
|
|
118
119
|
$ npm run compile
|
|
119
120
|
```
|
|
120
121
|
|
|
122
|
+
Storybook usage
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
$ npm run storybook --legacy-peer-deps=true
|
|
126
|
+
```
|
|
127
|
+
|
|
121
128
|
[npm-url]: https://npmjs.org/package/react-show-more-text
|
|
122
129
|
[downloads-image]: http://img.shields.io/npm/dm/react-show-more-text.svg
|
|
123
130
|
[npm-image]: https://badge.fury.io/js/react-show-more-text.svg
|
package/lib/ShowMoreText.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -13,31 +15,29 @@ var _Truncate = _interopRequireDefault(require("./Truncate"));
|
|
|
13
15
|
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
17
|
|
|
16
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
17
|
-
|
|
18
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
19
|
|
|
20
|
-
function
|
|
20
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
21
|
|
|
22
22
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
23
23
|
|
|
24
24
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
25
25
|
|
|
26
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
26
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
27
27
|
|
|
28
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
28
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
29
29
|
|
|
30
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
|
30
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
31
31
|
|
|
32
32
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
33
33
|
|
|
34
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
34
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
35
35
|
|
|
36
36
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
37
37
|
|
|
38
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
38
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
39
39
|
|
|
40
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
40
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
41
41
|
|
|
42
42
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
43
43
|
|
|
@@ -74,7 +74,7 @@ var ShowMoreText = /*#__PURE__*/function (_Component) {
|
|
|
74
74
|
|
|
75
75
|
if (!_self.props.expandByClick) {
|
|
76
76
|
if (_self.props.onClick) {
|
|
77
|
-
_self.props.onClick(_self.state.expanded);
|
|
77
|
+
_self.props.onClick(_self.state.expanded, event);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
return;
|
|
@@ -85,7 +85,7 @@ var ShowMoreText = /*#__PURE__*/function (_Component) {
|
|
|
85
85
|
expanded: !_this.state.expanded
|
|
86
86
|
}, function () {
|
|
87
87
|
if (_self.props.onClick) {
|
|
88
|
-
_self.props.onClick(_self.state.expanded);
|
|
88
|
+
_self.props.onClick(_self.state.expanded, event);
|
|
89
89
|
}
|
|
90
90
|
});
|
|
91
91
|
}
|
package/lib/Truncate.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -9,11 +11,11 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
11
|
|
|
10
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
var _excluded = ["children", "ellipsis", "lines"];
|
|
13
15
|
|
|
14
|
-
function
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
17
|
|
|
16
|
-
function _extends() { _extends = Object.assign
|
|
18
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
17
19
|
|
|
18
20
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
19
21
|
|
|
@@ -23,21 +25,21 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|
|
23
25
|
|
|
24
26
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
25
27
|
|
|
26
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
28
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
27
29
|
|
|
28
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
30
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
29
31
|
|
|
30
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
|
32
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
31
33
|
|
|
32
34
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
33
35
|
|
|
34
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
36
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
35
37
|
|
|
36
38
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
37
39
|
|
|
38
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
40
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
39
41
|
|
|
40
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
42
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
41
43
|
|
|
42
44
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
43
45
|
|
|
@@ -367,7 +369,7 @@ var Truncate = /*#__PURE__*/function (_React$Component) {
|
|
|
367
369
|
children = _this$props.children,
|
|
368
370
|
ellipsis = _this$props.ellipsis,
|
|
369
371
|
lines = _this$props.lines,
|
|
370
|
-
spanProps = _objectWithoutProperties(_this$props,
|
|
372
|
+
spanProps = _objectWithoutProperties(_this$props, _excluded),
|
|
371
373
|
targetWidth = this.state.targetWidth,
|
|
372
374
|
getLines = this.getLines,
|
|
373
375
|
onTruncate = this.onTruncate;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-show-more-text",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "The text surrounded by the component will be truncated. Anything surrounded by the component could be evaluated as text. The component react-show-more-text/ShowMoreText is fork of react-show-more/ShowMore, applied improvements, works with React 16.x.x, added onClick event.",
|
|
5
5
|
"main": "lib/ShowMoreText.js",
|
|
6
6
|
"files": [
|
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
"report-coverage": "npm run coverage | coveralls",
|
|
17
17
|
"test": "./node_modules/.bin/jest",
|
|
18
18
|
"test:watch": "./node_modules/.bin/jest --watch",
|
|
19
|
-
"travis": "npm run compile && npm run test"
|
|
19
|
+
"travis": "npm run compile && npm run test",
|
|
20
|
+
"storybook": "start-storybook -p 6006",
|
|
21
|
+
"build-storybook": "build-storybook"
|
|
20
22
|
},
|
|
21
23
|
"repository": {
|
|
22
24
|
"type": "git",
|
|
@@ -38,7 +40,7 @@
|
|
|
38
40
|
"author": "Zdravko Shishmanov <zdrsoft@gmail.com>",
|
|
39
41
|
"license": "ISC",
|
|
40
42
|
"peerDependencies": {
|
|
41
|
-
"react": "
|
|
43
|
+
"react": "16 - 18.x"
|
|
42
44
|
},
|
|
43
45
|
"devDependencies": {
|
|
44
46
|
"@babel/cli": "^7.12.1",
|
|
@@ -46,9 +48,18 @@
|
|
|
46
48
|
"@babel/plugin-proposal-class-properties": "^7.12.1",
|
|
47
49
|
"@babel/preset-env": "^7.12.1",
|
|
48
50
|
"@babel/preset-react": "^7.12.1",
|
|
51
|
+
"@storybook/addon-actions": "^6.5.12",
|
|
52
|
+
"@storybook/addon-essentials": "^6.5.12",
|
|
53
|
+
"@storybook/addon-interactions": "^6.5.12",
|
|
54
|
+
"@storybook/addon-links": "^6.5.12",
|
|
55
|
+
"@storybook/builder-webpack4": "^6.5.12",
|
|
56
|
+
"@storybook/manager-webpack4": "^6.5.12",
|
|
57
|
+
"@storybook/react": "^6.5.12",
|
|
58
|
+
"@storybook/testing-library": "^0.0.13",
|
|
49
59
|
"babel-eslint": "^10.1.0",
|
|
60
|
+
"babel-loader": "^8.2.5",
|
|
50
61
|
"babel-preset-minify": "^0.5.1",
|
|
51
|
-
"canvas": "^2.
|
|
62
|
+
"canvas": "^2.8.0",
|
|
52
63
|
"core-js": "^3.6.5",
|
|
53
64
|
"coveralls": "^3.0.7",
|
|
54
65
|
"enzyme": "^3.11.0",
|
package/CHANGELOG.md
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
All notable changes to this project will be documented in this file.
|
|
3
|
-
|
|
4
|
-
## [1.5.1] - 2021-11-24
|
|
5
|
-
- [#34](https://github.com/devzonetech/react-show-more-text/issues/34) Added props expandByClick true/false #34
|
|
6
|
-
|
|
7
|
-
## [1.5.0] - 2021-07-25
|
|
8
|
-
### Added
|
|
9
|
-
- [#31](https://github.com/devzonetech/react-show-more-text/issues/31) Ability to change or remove the ... at the end
|
|
10
|
-
- [#25](https://github.com/devzonetech/react-show-more-text/issues/25)Showing [@ at the end
|
|
11
|
-
### Fixed
|
|
12
|
-
- Dependencies updated
|
|
13
|
-
|
|
14
|
-
## [1.4.6] - 2020-11-01
|
|
15
|
-
### Fixed
|
|
16
|
-
- [#20](https://github.com/devzonetech/react-show-more-text/issues/20) Incorrect appearance
|
|
17
|
-
- [#23](https://github.com/devzonetech/react-show-more-text/issues/23) Show more/less anchor breaks in case of hash routers
|
|
18
|
-
|
|
19
|
-
## [1.4.5] - 2020-10-20
|
|
20
|
-
### Fixed
|
|
21
|
-
- [#12](https://github.com/devzonetech/react-show-more-text/issues/12) className prop for the wrapper div of component content
|
|
22
|
-
|
|
23
|
-
## [1.4.4] - 2020-08-21
|
|
24
|
-
### Fixed
|
|
25
|
-
- [#16](https://github.com/devzonetech/react-show-more-text/issues/16) @ showing at the end of the line
|
|
26
|
-
|
|
27
|
-
## [1.4.3] - 2020-08-08
|
|
28
|
-
### Fixed
|
|
29
|
-
- [#18](https://github.com/devzonetech/react-show-more-text/issues/18) Missing links, when the content surrounded by the component contains only one line
|
|
30
|
-
- [#16](https://github.com/devzonetech/react-show-more-text/issues/16) @ showing at the end of the line
|
|
31
|
-
|
|
32
|
-
## [1.4.2] - 2020-04-02
|
|
33
|
-
### Changed
|
|
34
|
-
- State update on unmounted component #14
|
|
35
|
-
- HTML tags for hyperlinks disabled when show-less #11
|
|
36
|
-
- Automated unit tests added in ShowMoreText.test.js file
|
|
37
|
-
- README file updated
|
|
38
|
-
- Improved example application
|
|
39
|
-
|
|
40
|
-
## [1.3.0] - 2019-12-20
|
|
41
|
-
### Changed
|
|
42
|
-
- Option to preserve newlines from plain text #4
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
46
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|