react-text-typing 0.0.4 → 0.1.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/README.md CHANGED
@@ -8,8 +8,6 @@
8
8
  [![GitHub issues](https://img.shields.io/github/issues/Oda2/react-text-typing)](https://github.com/Oda2/react-text-typing/issues)
9
9
  [![GitHub stars](https://img.shields.io/github/stars/Oda2/react-text-typing)](https://github.com/Oda2/react-text-typing/stargazers)
10
10
  [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FOda2%2Freact-text-typing.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FOda2%2Freact-text-typing?ref=badge_shield)
11
- [![Dependencies](https://badgen.net/david/dep/Oda2/react-text-typing)](https://badgen.net/david/dep/Oda2/react-text-typing)
12
-
13
11
  [![Edit admiring-sun-5qry6](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/admiring-sun-5qry6?fontsize=14&hidenavigation=1&theme=dark)
14
12
 
15
13
  ## Installation
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -9,31 +11,60 @@ exports.default = void 0;
9
11
 
10
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
13
 
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
12
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
17
 
14
18
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
19
 
16
- var _react = _interopRequireDefault(require("react"));
20
+ var _react = _interopRequireWildcard(require("react"));
17
21
 
18
22
  var _propTypes = _interopRequireDefault(require("prop-types"));
19
23
 
20
24
  var _reactJss = require("react-jss");
21
25
 
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
26
+ var _excluded = ["text", "showBlink", "speed", "component"];
27
+
28
+ 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); }
29
+
30
+ 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; }
23
31
 
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
33
+
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
35
 
26
36
  var TextTyping = function TextTyping(_ref) {
27
37
  var text = _ref.text,
28
38
  showBlink = _ref.showBlink,
29
- _ref$component = _ref.component,
30
- Component = _ref$component === void 0 ? 'h1' : _ref$component,
31
- props = (0, _objectWithoutProperties2.default)(_ref, ["text", "showBlink", "component"]);
39
+ speed = _ref.speed,
40
+ Component = _ref.component,
41
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
32
42
  var classes = useStyles(_objectSpread({}, props));
33
- return _react.default.createElement(Component, (0, _extends2.default)({
43
+
44
+ var _useState = (0, _react.useState)(''),
45
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
46
+ internalText = _useState2[0],
47
+ setInternalText = _useState2[1];
48
+
49
+ var timer = (0, _react.useRef)(null);
50
+ (0, _react.useEffect)(function () {
51
+ var typing = text.split('');
52
+ timer.current = setInterval(function () {
53
+ if (typing.length > 0) {
54
+ var next = typing.shift();
55
+ setInternalText(function (value) {
56
+ return value + next;
57
+ });
58
+ } else {
59
+ clearInterval(timer.current);
60
+ }
61
+ }, speed);
62
+ return function () {};
63
+ }, [text]);
64
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
34
65
  className: "".concat(classes.text, " ").concat(showBlink ? classes.blink : ''),
35
- "data-text": text
36
- }, props), text);
66
+ "data-text": internalText
67
+ }, props), internalText);
37
68
  };
38
69
 
39
70
  var useStyles = (0, _reactJss.createUseStyles)({
@@ -81,25 +112,30 @@ var useStyles = (0, _reactJss.createUseStyles)({
81
112
  }
82
113
  });
83
114
  TextTyping.propTypes = {
84
- /** */
115
+ /** Text to be demonstrated in the component */
85
116
  text: _propTypes.default.string.isRequired,
86
117
 
87
- /** */
118
+ /** Component to be used internally in the component */
88
119
  component: _propTypes.default.elementType,
89
120
 
90
- /** */
121
+ /** Text color */
91
122
  colorText: _propTypes.default.string,
92
123
 
93
- /** */
124
+ /** Background fill color */
94
125
  colorTyping: _propTypes.default.string,
95
126
 
96
- /** */
97
- showBlink: _propTypes.default.bool
127
+ /** Show flashing text icon */
128
+ showBlink: _propTypes.default.bool,
129
+
130
+ /** Text speed appearing */
131
+ speed: _propTypes.default.number
98
132
  };
99
133
  TextTyping.defaultProps = {
134
+ component: 'h1',
100
135
  showBlink: true,
101
136
  colorText: '#FFF',
102
- colorTyping: '#0075D7'
137
+ colorTyping: '#0075D7',
138
+ speed: 500
103
139
  };
104
140
  var _default = TextTyping;
105
141
  exports.default = _default;
@@ -2,43 +2,74 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
6
+
5
7
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
8
 
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+
7
11
  var _react = _interopRequireDefault(require("react"));
8
12
 
9
13
  var _react2 = require("@testing-library/react");
10
14
 
11
15
  var _TextTyping = _interopRequireDefault(require("./TextTyping"));
12
16
 
13
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
17
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
18
 
15
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
20
 
17
- afterEach(_react2.cleanup);
18
21
  describe('TextTyping Component', function () {
19
- it('should render component', function () {
20
- var text = 'rice';
21
-
22
- var _createComponent = createComponent({
23
- text: text
24
- }),
25
- container = _createComponent.container;
26
-
27
- expect(container.firstChild).toBeDefined();
28
- expect((0, _react2.getByText)(container, text)).toBeDefined();
29
- });
30
- it('should render component with not show blink', function () {
31
- var text = 'rice';
32
-
33
- var _createComponent2 = createComponent({
34
- showBlink: false,
35
- text: text
36
- }),
37
- container = _createComponent2.container;
38
-
39
- expect(container.firstChild).toBeDefined();
40
- expect((0, _react2.getByText)(container, text)).toBeDefined();
41
- });
22
+ it('should render component', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
23
+ var text;
24
+ return _regenerator.default.wrap(function _callee$(_context) {
25
+ while (1) {
26
+ switch (_context.prev = _context.next) {
27
+ case 0:
28
+ text = 'rice';
29
+ createComponent({
30
+ text: text
31
+ });
32
+ _context.next = 4;
33
+ return (0, _react2.waitFor)(function () {
34
+ return _react2.screen.getByText(text);
35
+ });
36
+
37
+ case 4:
38
+ expect(_react2.screen.getByText(text)).toBeDefined();
39
+
40
+ case 5:
41
+ case "end":
42
+ return _context.stop();
43
+ }
44
+ }
45
+ }, _callee);
46
+ })));
47
+ it('should render component with not show blink', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
48
+ var text;
49
+ return _regenerator.default.wrap(function _callee2$(_context2) {
50
+ while (1) {
51
+ switch (_context2.prev = _context2.next) {
52
+ case 0:
53
+ text = 'rice';
54
+ createComponent({
55
+ showBlink: false,
56
+ text: text
57
+ });
58
+ _context2.next = 4;
59
+ return (0, _react2.waitFor)(function () {
60
+ return _react2.screen.getByText(text);
61
+ });
62
+
63
+ case 4:
64
+ expect(_react2.screen.getByText(text)).toBeDefined();
65
+
66
+ case 5:
67
+ case "end":
68
+ return _context2.stop();
69
+ }
70
+ }
71
+ }, _callee2);
72
+ })));
42
73
  });
43
74
 
44
75
  function createComponent() {
@@ -48,10 +79,11 @@ function createComponent() {
48
79
  text: 'Example',
49
80
  showBlink: true,
50
81
  colorText: '#FFF',
51
- colorTyping: '#0075D7'
82
+ colorTyping: '#0075D7',
83
+ speed: 1
52
84
  }, props);
53
85
 
54
- return (0, _react2.render)(_react.default.createElement(_TextTyping.default, defaultProps));
86
+ return (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_TextTyping.default, defaultProps));
55
87
  }
56
88
 
57
89
  ;
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+
3
+ export interface ReactTextTypingProps {
4
+ text: React.string;
5
+ component?: React.ElementType = 'h1';
6
+ colorText?: string = '#FFF';
7
+ colorTyping?: string = '#0075D7';
8
+ showBlink?: boolean = true;
9
+ }
10
+
11
+ export default class ReactTextTyping extends React.Component<
12
+ ReactTextTypingProps
13
+ > {}
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "react-text-typing",
3
- "version": "0.0.4",
3
+ "version": "0.1.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
+ "types": "dist/index.d.ts",
6
7
  "homepage": "https://renato-oda2.gitbook.io/react-text-typing",
7
8
  "license": "MIT",
8
9
  "author": {
@@ -13,7 +14,10 @@
13
14
  "type": "git",
14
15
  "url": "git++https://github.com/Oda2/react-text-typing"
15
16
  },
16
- "keywords": ["react", "library"],
17
+ "keywords": [
18
+ "react",
19
+ "library"
20
+ ],
17
21
  "bugs": {
18
22
  "url": "https://github.com/oda2/react-text-typing/issues"
19
23
  },
@@ -26,20 +30,22 @@
26
30
  "lint": "eslint .",
27
31
  "test": "react-dependency-scripts test",
28
32
  "coverage": "yarn test --coverage",
29
- "coveralls": "cat ./coverage/lcov.info | ./node_modules/.bin/coveralls"
33
+ "coveralls": "cat ./coverage/lcov.info | ./node_modules/.bin/coveralls",
34
+ "cypress": "$(yarn bin)/cypress"
30
35
  },
31
36
  "devDependencies": {
32
- "@testing-library/jest-dom": "^5.1.1",
33
- "@testing-library/react": "^9.4.0",
34
- "babel-eslint": "^10.0.3",
35
- "coveralls": "^3.0.9",
36
- "eslint": "^6.8.0",
37
- "eslint-plugin-jsx-a11y": "^6.2.3",
38
- "eslint-plugin-react": "^7.18.3",
39
- "prop-types": "^15.7.2",
40
- "react": "^16.12.0",
41
- "react-dependency-scripts": "^0.5.0",
42
- "react-dom": "^16.12.0"
37
+ "@babel/eslint-parser": "^7.17.0",
38
+ "@testing-library/jest-dom": "^5.16.4",
39
+ "@testing-library/react": "^13.1.1",
40
+ "coveralls": "^3.1.1",
41
+ "cypress": "^9.5.4",
42
+ "eslint": "^8.13.0",
43
+ "eslint-plugin-jsx-a11y": "^6.5.1",
44
+ "eslint-plugin-react": "^7.29.4",
45
+ "prop-types": "^15.8.1",
46
+ "react": "^18.0.0",
47
+ "react-dependency-scripts": "^1.0.6",
48
+ "react-dom": "^18.0.0"
43
49
  },
44
50
  "browserslist": {
45
51
  "production": [
@@ -54,6 +60,19 @@
54
60
  ]
55
61
  },
56
62
  "dependencies": {
57
- "react-jss": "^10.0.4"
63
+ "react-jss": "^10.9.0"
64
+ },
65
+ "jest": {
66
+ "testMatch": [
67
+ "<rootDir>src/lib/**/*.test.js"
68
+ ],
69
+ "coverageThreshold": {
70
+ "global": {
71
+ "branches": 100,
72
+ "functions": 100,
73
+ "lines": 100,
74
+ "statements": 100
75
+ }
76
+ }
58
77
  }
59
78
  }