@megafon/ui-core 4.5.0 → 4.5.1

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/CHANGELOG.md CHANGED
@@ -3,6 +3,19 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.5.1](https://github.com/MegafonWebLab/megafon-ui/compare/@megafon/ui-core@4.5.0...@megafon/ui-core@4.5.1) (2022-10-24)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **carousel:** change navigation view after change slides count ([7b300eb](https://github.com/MegafonWebLab/megafon-ui/commit/7b300eb9c6f805c3b425104a17f437b3b8a520c5))
12
+ * **search:** fix input field font-size for all browsers ([739f3b0](https://github.com/MegafonWebLab/megafon-ui/commit/739f3b02a2dbf8abc6ad430e43272a5bae4d9cf9))
13
+ * **tabs:** change tabs list structure for correct underline width ([ab87ab2](https://github.com/MegafonWebLab/megafon-ui/commit/ab87ab2e23b3db7620ea0fd83c58bdc8f51ab0ae))
14
+
15
+
16
+
17
+
18
+
6
19
  # [4.5.0](https://github.com/MegafonWebLab/megafon-ui/compare/@megafon/ui-core@4.4.0...@megafon/ui-core@4.5.0) (2022-10-17)
7
20
 
8
21
 
@@ -1,4 +1,5 @@
1
1
  import "core-js/modules/es.array.index-of";
2
+ import "core-js/modules/es.array.is-array";
2
3
  import "core-js/modules/es.array.map";
3
4
  import "core-js/modules/es.object.values";
4
5
  import _extends from "@babel/runtime/helpers/extends";
@@ -18,6 +19,7 @@ import NavArrow, { Theme as ArrowTheme } from "../NavArrow/NavArrow";
18
19
  import throttleTime from "../../constants/throttleTime";
19
20
  import checkBreakpointsPropTypes from "./checkBreakpointsPropTypes";
20
21
  import "./Carousel.css";
22
+ import usePrevious from "./usePrevious";
21
23
  SwiperCore.use([Autoplay, Pagination, EffectFade]);
22
24
  export var NavTheme = {
23
25
  LIGHT: 'light',
@@ -116,6 +118,9 @@ var Carousel = function Carousel(_ref) {
116
118
  isLocked = _React$useState8[0],
117
119
  setLocked = _React$useState8[1];
118
120
 
121
+ var childrenLen = Array.isArray(children) ? children.length : 0;
122
+ var prevChildrenLen = usePrevious(childrenLen) || 0;
123
+ var isChildrenLenDiff = childrenLen !== prevChildrenLen;
119
124
  var increaseAutoplayDelay = React.useCallback(function (_ref2) {
120
125
  var params = _ref2.params,
121
126
  autoplay = _ref2.autoplay;
@@ -241,6 +246,11 @@ var Carousel = function Carousel(_ref) {
241
246
  window.removeEventListener('resize', windowResizeHandlerThrottled);
242
247
  };
243
248
  }, [swiperInstance]);
249
+ React.useEffect(function () {
250
+ if (swiperInstance && isChildrenLenDiff) {
251
+ handleNavDisplay(swiperInstance);
252
+ }
253
+ }, [isChildrenLenDiff, swiperInstance]);
244
254
  return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
245
255
  ref: rootRef,
246
256
  className: cn({
@@ -0,0 +1,2 @@
1
+ declare function usePrevious<T>(value: T): T | undefined;
2
+ export default usePrevious;
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+
3
+ function usePrevious(value) {
4
+ var ref = React.useRef();
5
+ React.useEffect(function () {
6
+ ref.current = value;
7
+ }, [value]);
8
+ return ref.current;
9
+ }
10
+
11
+ export default usePrevious;
@@ -172,6 +172,7 @@
172
172
  border-radius: 0;
173
173
  overflow: auto;
174
174
  color: var(--content);
175
+ font-size: 100%;
175
176
  font-family: inherit;
176
177
  line-height: 25px;
177
178
  background-color: transparent;
@@ -2,6 +2,7 @@
2
2
  display: -webkit-box;
3
3
  display: -ms-flexbox;
4
4
  display: flex;
5
+ -webkit-tap-highlight-color: transparent;
5
6
  }
6
7
  .mfui-switcher__content {
7
8
  font-size: 15px;
@@ -59,7 +59,7 @@ var Tabs = function Tabs(_ref) {
59
59
  dataAttrs = _ref.dataAttrs,
60
60
  onTabClick = _ref.onTabClick,
61
61
  outerObserveContainer = _ref.outerObserveContainer;
62
- var tabsRef = React.useRef([]);
62
+ var tabsRef = React.useRef({});
63
63
  var rootRef = React.useRef(null);
64
64
  var tabListRef = React.useRef(null);
65
65
  var intersectionObserverRef = React.useRef();
@@ -124,15 +124,21 @@ var Tabs = function Tabs(_ref) {
124
124
  stickyOffset = _React$useState22[0],
125
125
  setStickyOffset = _React$useState22[1];
126
126
 
127
- var setTabRef = React.useCallback(function (tab) {
128
- tab && tabsRef.current.push(tab);
127
+ var setTabRef = React.useCallback(function (i) {
128
+ return function (tab) {
129
+ if (tab) {
130
+ tabsRef.current[i] = tab;
131
+ }
132
+ };
129
133
  }, []);
130
134
  var calculateUnderline = React.useCallback(function () {
131
- if (!tabsRef.current.length) {
135
+ var tabs = Object.values(tabsRef.current);
136
+
137
+ if (!tabs.length) {
132
138
  return;
133
139
  }
134
140
 
135
- var translate = _toConsumableArray(tabsRef.current).splice(0, currentIndex).reduce(function (accWidth, node) {
141
+ var translate = _toConsumableArray(tabs).splice(0, currentIndex).reduce(function (accWidth, node) {
136
142
  var _node$getBoundingClie = node.getBoundingClientRect(),
137
143
  width = _node$getBoundingClie.width;
138
144
 
@@ -288,7 +294,7 @@ var Tabs = function Tabs(_ref) {
288
294
  className: cn('slide')
289
295
  }, /*#__PURE__*/React.createElement("div", _extends({
290
296
  className: cn('tab', [classes === null || classes === void 0 ? void 0 : classes.tab, activeTabClassName]),
291
- ref: setTabRef
297
+ ref: setTabRef(i)
292
298
  }, filterDataAttrs(data === null || data === void 0 ? void 0 : data.root, i + 1)), renderTabWrapper ? renderTabWrapper(tab) : tab));
293
299
  });
294
300
  }, [renderTab, children, classes === null || classes === void 0 ? void 0 : classes.activeTab, currentIndex, setTabRef, classes === null || classes === void 0 ? void 0 : classes.tab]);
@@ -44,3 +44,4 @@ export { default as Timer } from './components/Badges/components/TimerBadge/Time
44
44
  export { default as TimerBadge } from './components/Badges/components/TimerBadge/TimerBadge';
45
45
  export { default as Tooltip } from './components/Tooltip/Tooltip';
46
46
  export { default as usePagination } from './components/Pagination/usePagination';
47
+ export { default as usePrevious } from './components/Carousel/usePrevious';
package/dist/es/index.js CHANGED
@@ -43,4 +43,5 @@ export { default as Tile } from "./components/Tile/Tile";
43
43
  export { default as Timer } from "./components/Badges/components/TimerBadge/Timer/Timer";
44
44
  export { default as TimerBadge } from "./components/Badges/components/TimerBadge/TimerBadge";
45
45
  export { default as Tooltip } from "./components/Tooltip/Tooltip";
46
- export { default as usePagination } from "./components/Pagination/usePagination";
46
+ export { default as usePagination } from "./components/Pagination/usePagination";
47
+ export { default as usePrevious } from "./components/Carousel/usePrevious";
@@ -9,6 +9,8 @@ exports["default"] = exports.EffectTheme = exports.NavTheme = void 0;
9
9
 
10
10
  require("core-js/modules/es.array.index-of");
11
11
 
12
+ require("core-js/modules/es.array.is-array");
13
+
12
14
  require("core-js/modules/es.array.map");
13
15
 
14
16
  require("core-js/modules/es.object.values");
@@ -39,6 +41,8 @@ var _throttleTime = _interopRequireDefault(require("../../constants/throttleTime
39
41
 
40
42
  var _checkBreakpointsPropTypes = _interopRequireDefault(require("./checkBreakpointsPropTypes"));
41
43
 
44
+ var _usePrevious = _interopRequireDefault(require("./usePrevious"));
45
+
42
46
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
43
47
 
44
48
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
@@ -148,6 +152,9 @@ var Carousel = function Carousel(_ref) {
148
152
  isLocked = _React$useState8[0],
149
153
  setLocked = _React$useState8[1];
150
154
 
155
+ var childrenLen = Array.isArray(children) ? children.length : 0;
156
+ var prevChildrenLen = (0, _usePrevious["default"])(childrenLen) || 0;
157
+ var isChildrenLenDiff = childrenLen !== prevChildrenLen;
151
158
  var increaseAutoplayDelay = React.useCallback(function (_ref2) {
152
159
  var params = _ref2.params,
153
160
  autoplay = _ref2.autoplay;
@@ -271,6 +278,11 @@ var Carousel = function Carousel(_ref) {
271
278
  window.removeEventListener('resize', windowResizeHandlerThrottled);
272
279
  };
273
280
  }, [swiperInstance]);
281
+ React.useEffect(function () {
282
+ if (swiperInstance && isChildrenLenDiff) {
283
+ handleNavDisplay(swiperInstance);
284
+ }
285
+ }, [isChildrenLenDiff, swiperInstance]);
274
286
  return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({}, (0, _uiHelpers.filterDataAttrs)(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
275
287
  ref: rootRef,
276
288
  className: cn({
@@ -0,0 +1,2 @@
1
+ declare function usePrevious<T>(value: T): T | undefined;
2
+ export default usePrevious;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var React = _interopRequireWildcard(require("react"));
11
+
12
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
13
+
14
+ 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; }
15
+
16
+ function usePrevious(value) {
17
+ var ref = React.useRef();
18
+ React.useEffect(function () {
19
+ ref.current = value;
20
+ }, [value]);
21
+ return ref.current;
22
+ }
23
+
24
+ var _default = usePrevious;
25
+ exports["default"] = _default;
@@ -172,6 +172,7 @@
172
172
  border-radius: 0;
173
173
  overflow: auto;
174
174
  color: var(--content);
175
+ font-size: 100%;
175
176
  font-family: inherit;
176
177
  line-height: 25px;
177
178
  background-color: transparent;
@@ -2,6 +2,7 @@
2
2
  display: -webkit-box;
3
3
  display: -ms-flexbox;
4
4
  display: flex;
5
+ -webkit-tap-highlight-color: transparent;
5
6
  }
6
7
  .mfui-switcher__content {
7
8
  font-size: 15px;
@@ -89,7 +89,7 @@ var Tabs = function Tabs(_ref) {
89
89
  dataAttrs = _ref.dataAttrs,
90
90
  onTabClick = _ref.onTabClick,
91
91
  outerObserveContainer = _ref.outerObserveContainer;
92
- var tabsRef = React.useRef([]);
92
+ var tabsRef = React.useRef({});
93
93
  var rootRef = React.useRef(null);
94
94
  var tabListRef = React.useRef(null);
95
95
  var intersectionObserverRef = React.useRef();
@@ -154,15 +154,21 @@ var Tabs = function Tabs(_ref) {
154
154
  stickyOffset = _React$useState22[0],
155
155
  setStickyOffset = _React$useState22[1];
156
156
 
157
- var setTabRef = React.useCallback(function (tab) {
158
- tab && tabsRef.current.push(tab);
157
+ var setTabRef = React.useCallback(function (i) {
158
+ return function (tab) {
159
+ if (tab) {
160
+ tabsRef.current[i] = tab;
161
+ }
162
+ };
159
163
  }, []);
160
164
  var calculateUnderline = React.useCallback(function () {
161
- if (!tabsRef.current.length) {
165
+ var tabs = Object.values(tabsRef.current);
166
+
167
+ if (!tabs.length) {
162
168
  return;
163
169
  }
164
170
 
165
- var translate = (0, _toConsumableArray2["default"])(tabsRef.current).splice(0, currentIndex).reduce(function (accWidth, node) {
171
+ var translate = (0, _toConsumableArray2["default"])(tabs).splice(0, currentIndex).reduce(function (accWidth, node) {
166
172
  var _node$getBoundingClie = node.getBoundingClientRect(),
167
173
  width = _node$getBoundingClie.width;
168
174
 
@@ -317,7 +323,7 @@ var Tabs = function Tabs(_ref) {
317
323
  className: cn('slide')
318
324
  }, /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({
319
325
  className: cn('tab', [classes === null || classes === void 0 ? void 0 : classes.tab, activeTabClassName]),
320
- ref: setTabRef
326
+ ref: setTabRef(i)
321
327
  }, (0, _uiHelpers.filterDataAttrs)(data === null || data === void 0 ? void 0 : data.root, i + 1)), renderTabWrapper ? renderTabWrapper(tab) : tab));
322
328
  });
323
329
  }, [renderTab, children, classes === null || classes === void 0 ? void 0 : classes.activeTab, currentIndex, setTabRef, classes === null || classes === void 0 ? void 0 : classes.tab]);
@@ -44,3 +44,4 @@ export { default as Timer } from './components/Badges/components/TimerBadge/Time
44
44
  export { default as TimerBadge } from './components/Badges/components/TimerBadge/TimerBadge';
45
45
  export { default as Tooltip } from './components/Tooltip/Tooltip';
46
46
  export { default as usePagination } from './components/Pagination/usePagination';
47
+ export { default as usePrevious } from './components/Carousel/usePrevious';
package/dist/lib/index.js CHANGED
@@ -279,6 +279,12 @@ Object.defineProperty(exports, "usePagination", {
279
279
  return _usePagination["default"];
280
280
  }
281
281
  });
282
+ Object.defineProperty(exports, "usePrevious", {
283
+ enumerable: true,
284
+ get: function get() {
285
+ return _usePrevious["default"];
286
+ }
287
+ });
282
288
 
283
289
  var _Accordion = _interopRequireDefault(require("./components/Accordion/Accordion"));
284
290
 
@@ -372,4 +378,6 @@ var _Tooltip = _interopRequireDefault(require("./components/Tooltip/Tooltip"));
372
378
 
373
379
  var _usePagination = _interopRequireDefault(require("./components/Pagination/usePagination"));
374
380
 
381
+ var _usePrevious = _interopRequireDefault(require("./components/Carousel/usePrevious"));
382
+
375
383
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@megafon/ui-core",
3
- "version": "4.5.0",
3
+ "version": "4.5.1",
4
4
  "files": [
5
5
  "dist",
6
6
  "styles"
@@ -54,9 +54,12 @@
54
54
  "@babel/preset-env": "^7.8.6",
55
55
  "@babel/preset-react": "^7.8.3",
56
56
  "@babel/preset-typescript": "^7.8.3",
57
- "@megafon/ui-icons": "^2.1.0",
57
+ "@megafon/ui-icons": "^2.2.0",
58
58
  "@svgr/core": "^2.4.1",
59
+ "@testing-library/jest-dom": "5.16.2",
60
+ "@testing-library/react": "12.1.2",
59
61
  "@testing-library/react-hooks": "^7.0.1",
62
+ "@testing-library/user-event": "13.5.0",
60
63
  "@types/enzyme": "^3.10.5",
61
64
  "@types/enzyme-adapter-react-16": "^1.0.6",
62
65
  "@types/jest": "^25.1.3",
@@ -97,5 +100,5 @@
97
100
  "react-popper": "^2.2.3",
98
101
  "swiper": "^6.5.6"
99
102
  },
100
- "gitHead": "1767b434f1650a100aa2aca6f5c795f8b549a184"
103
+ "gitHead": "08dd535c268cf6cd4f7c30d66845e5f16aa7b14d"
101
104
  }