intelicoreact 1.5.20 → 1.5.21

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.
@@ -10,13 +10,14 @@ var _classnames = _interopRequireDefault(require("classnames"));
10
10
  require("./Spinner.scss");
11
11
  const Spinner = function (_ref) {
12
12
  let {
13
+ className,
13
14
  size = null
14
15
  } = _ref;
15
16
  return /*#__PURE__*/_react.default.createElement("div", {
16
17
  className: (0, _classnames.default)("loader-box", {
17
18
  j5: size !== "small",
18
19
  j8: size === "small"
19
- })
20
+ }, className)
20
21
  }, /*#__PURE__*/_react.default.createElement("div", {
21
22
  className: (0, _classnames.default)("lds-ring", {
22
23
  ["lds-ring_".concat(size)]: size
@@ -12,9 +12,11 @@ var _reactFeather = require("react-feather");
12
12
  var _utils = require("../../../Functions/utils");
13
13
  var _CustomIcons = require("./../../../Molecular/CustomIcons");
14
14
  var _utils2 = require("./partials/_utils");
15
+ var _Spinner = _interopRequireDefault(require("./../../Layout/Spinner/Spinner"));
15
16
  require("./Hint.scss");
16
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
18
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
+ let isContentHoveredOuter = false;
18
20
  const Hint = _ref => {
19
21
  var _ref2, _label$replace;
20
22
  let {
@@ -32,12 +34,14 @@ const Hint = _ref => {
32
34
  icon,
33
35
  isAccessability = false,
34
36
  testId = "hint",
35
- isHoverableContent = false
37
+ isHoverableContent = false,
38
+ isLoading
36
39
  } = _ref;
37
40
  const hintRef = (0, _react.useRef)(null);
38
41
  const timeoutRef = (0, _react.useRef)(null);
39
42
  const [hintId] = (0, _react.useState)((_ref2 = key !== null && key !== void 0 ? key : id) !== null && _ref2 !== void 0 ? _ref2 : Math.random().toString(16).slice(2));
40
43
  const [isOpen, setIsOpen] = (0, _react.useState)(false);
44
+ const [isContentHovered, setIsContentHovered] = (0, _react.useState)(false);
41
45
 
42
46
  //? Определяем handleScroll-стейт, чтобы никогда не менять ссылку тем самым гарантировать корректную работу removeEventListener.
43
47
  //? Инициализируем стейт вызовом конструктора HandleScrollObj, передаем setIsOpen для записи в объект.
@@ -45,11 +49,52 @@ const Hint = _ref => {
45
49
  //? По аналогии определяем handleClickOutside
46
50
  const [handleClickOutside] = (0, _react.useState)(new _utils2.HandleClickOutsideObj(hintId, setIsOpen));
47
51
  const isCallbackExist = typeof onClickCallback === "function";
52
+ const handle = {
53
+ onMouseEnter: () => {
54
+ if (handleOpenType === "hover") {
55
+ timeoutRef.current = setTimeout(() => {
56
+ setIsOpen(true);
57
+ !isOpen && onClickCallback();
58
+ }, 350);
59
+ }
60
+ },
61
+ onMouseLeave: () => {
62
+ if (!isHoverableContent && handleOpenType === "hover") {
63
+ clearTimeout(timeoutRef.current);
64
+ timeoutRef.current = setTimeout(() => {
65
+ setIsOpen(false);
66
+ }, 1000);
67
+ } else if (isHoverableContent && handleOpenType === "hover") {
68
+ clearTimeout(timeoutRef.current);
69
+ timeoutRef.current = setTimeout(() => {
70
+ if (!isContentHoveredOuter) {
71
+ setIsOpen(false);
72
+ }
73
+ }, 100);
74
+ }
75
+ },
76
+ onMouseLeaveHoverableContent: () => {
77
+ if (isHoverableContent && handleOpenType === "hover") {
78
+ clearTimeout(timeoutRef.current);
79
+ timeoutRef.current = setTimeout(() => {
80
+ setIsOpen(false);
81
+ setIsContentHovered(false);
82
+ isContentHoveredOuter = false;
83
+ }, 100);
84
+ }
85
+ }
86
+ };
48
87
  const getHintMarkUp = className => {
49
88
  return /*#__PURE__*/_react.default.createElement("div", {
89
+ "data-testid": "test-hint-text",
50
90
  className: (0, _classnames.default)("hint__text", "hint__text_".concat(side), "hint--".concat(className, "__text")),
51
- onMouseLeave: () => isHoverableContent && handleOpenType === "hover" && setIsOpen(false)
52
- }, hint, children);
91
+ onMouseEnter: () => {
92
+ isContentHoveredOuter = true;
93
+ },
94
+ onMouseLeave: handle.onMouseLeaveHoverableContent
95
+ }, isLoading && /*#__PURE__*/_react.default.createElement(_Spinner.default, {
96
+ size: "small"
97
+ }), hint, children);
53
98
  };
54
99
  const setHintContainerStyles = () => {
55
100
  var _ref3, _ref4, _ref5;
@@ -115,24 +160,6 @@ const Hint = _ref => {
115
160
  if (!hc) return null;
116
161
  return /*#__PURE__*/(0, _reactDom.createPortal)(getHintMarkUp(className), hc);
117
162
  };
118
- const handle = {
119
- onMouseEnter: () => {
120
- if (handleOpenType === "hover") {
121
- timeoutRef.current = setTimeout(() => {
122
- setIsOpen(true);
123
- !isOpen && onClickCallback();
124
- }, 350);
125
- }
126
- },
127
- onMouseLeave: () => {
128
- if (!isHoverableContent && handleOpenType === "hover") {
129
- clearTimeout(timeoutRef.current);
130
- timeoutRef.current = setTimeout(() => {
131
- setIsOpen(false);
132
- }, 1000);
133
- }
134
- }
135
- };
136
163
  (0, _react.useEffect)(() => {
137
164
  (0, _utils2.initHintContainer)(hintId, hintContainer);
138
165
  return () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "1.5.20",
3
+ "version": "1.5.21",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [