intelicoreact 0.2.3 → 0.2.4

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.
@@ -11,6 +11,10 @@ exports.default = void 0;
11
11
 
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
 
14
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
+
16
+ var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
17
+
14
18
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
19
 
16
20
  var _react = _interopRequireWildcard(require("react"));
@@ -83,6 +87,52 @@ var NavLine = function NavLine(_ref) {
83
87
  navLineFirstItemOffset = _useState12[0],
84
88
  setNavLineFirstItemOffset = _useState12[1];
85
89
 
90
+ var _useState13 = (0, _react.useState)([]),
91
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
92
+ scrollQueue = _useState14[0],
93
+ setScrollQueue = _useState14[1];
94
+
95
+ var popScrollTask = function popScrollTask() {
96
+ if (!scrollQueue.length) return null;
97
+
98
+ var _scrollQueue = (0, _toArray2.default)(scrollQueue),
99
+ task = _scrollQueue[0],
100
+ rest = _scrollQueue.slice(1);
101
+
102
+ setScrollQueue(rest);
103
+ return task;
104
+ };
105
+
106
+ var pushScrollTask = function pushScrollTask(task) {
107
+ return setScrollQueue(function (queue) {
108
+ return [].concat((0, _toConsumableArray2.default)(queue), [task]);
109
+ });
110
+ };
111
+
112
+ (0, _react.useEffect)(function () {
113
+ if (!scrollQueue.length) return false;
114
+ var task = popScrollTask();
115
+ if (!task) return false;
116
+
117
+ switch (task) {
118
+ case 'next':
119
+ scrollToNextItem();
120
+ break;
121
+
122
+ case 'prev':
123
+ scrollToPrevItem();
124
+ break;
125
+
126
+ default:
127
+ break;
128
+ }
129
+ }, [scrollQueue]);
130
+
131
+ var _useState15 = (0, _react.useState)(false),
132
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
133
+ isScrollBlocked = _useState16[0],
134
+ setScrollBlocked = _useState16[1];
135
+
86
136
  var getVisibleNavLineItems = function getVisibleNavLineItems() {
87
137
  var wrapperInner = wrapperInnerRef === null || wrapperInnerRef === void 0 ? void 0 : wrapperInnerRef.current;
88
138
  var wrapperInnerProps = wrapperInner.getBoundingClientRect();
@@ -117,13 +167,22 @@ var NavLine = function NavLine(_ref) {
117
167
 
118
168
  var scroll = function scroll() {
119
169
  var offset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
170
+ if (isScrollBlocked) return false;
171
+ setScrollBlocked(true);
120
172
  var wrapperInner = wrapperInnerRef === null || wrapperInnerRef === void 0 ? void 0 : wrapperInnerRef.current;
121
173
  var wrapperInnerProps = wrapperInner.getBoundingClientRect();
122
174
  var leftOffset = wrapperInner.scrollLeft;
123
- setTotalScrolledItems(function (state) {
124
- return offset > 0 ? ++state : --state;
175
+ wrapperInner === null || wrapperInner === void 0 ? void 0 : wrapperInner.addEventListener('scroll', function () {
176
+ setTotalScrolledItems(function (state) {
177
+ return offset > 0 ? ++state : --state;
178
+ });
179
+ setScrollLeft(leftOffset + offset);
180
+ setTimeout(function () {
181
+ return setScrollBlocked(false);
182
+ }, 200);
183
+ }, {
184
+ once: true
125
185
  });
126
- setScrollLeft(leftOffset + offset);
127
186
  wrapperInner === null || wrapperInner === void 0 ? void 0 : wrapperInner.scrollBy({
128
187
  left: offset,
129
188
  behavior: 'smooth'
@@ -133,6 +192,7 @@ var NavLine = function NavLine(_ref) {
133
192
  var scrollToPrevItem = function scrollToPrevItem() {
134
193
  var _prevItem$ref, _prevItem$ref$current;
135
194
 
195
+ if (isScrollBlocked) return false;
136
196
  var wrapperInner = wrapperInnerRef === null || wrapperInnerRef === void 0 ? void 0 : wrapperInnerRef.current;
137
197
  var navLineUnvisibleItems = getUnvisibleLeftSideNavLineItems();
138
198
 
@@ -161,8 +221,23 @@ var NavLine = function NavLine(_ref) {
161
221
  var secondVisibleItemProps = secondVisibleItem === null || secondVisibleItem === void 0 ? void 0 : (_secondVisibleItem$re = secondVisibleItem.ref) === null || _secondVisibleItem$re === void 0 ? void 0 : (_secondVisibleItem$re2 = _secondVisibleItem$re.current) === null || _secondVisibleItem$re2 === void 0 ? void 0 : _secondVisibleItem$re2.getBoundingClientRect();
162
222
  var scrollOffset = secondVisibleItemProps.x - wrapperInnerProps.x;
163
223
  scroll(scrollOffset);
164
- }; // Count Total NavLine Items Width
224
+ };
225
+
226
+ var onWheel = function onWheel(e) {
227
+ e.preventDefault();
228
+ e.stopPropagation();
229
+ var deltaY = e.deltaY;
230
+ deltaY > 0 ? pushScrollTask('next') : pushScrollTask('prev');
231
+ };
165
232
 
233
+ (0, _react.useEffect)(function () {
234
+ var _wrapperRef$current;
235
+
236
+ if (!(wrapperRef !== null && wrapperRef !== void 0 && wrapperRef.current)) return false;
237
+ wrapperRef === null || wrapperRef === void 0 ? void 0 : (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.addEventListener("mousewheel", onWheel, {
238
+ passive: false
239
+ });
240
+ }, [wrapperRef]); // Count Total NavLine Items Width
166
241
 
167
242
  (0, _react.useEffect)(function () {
168
243
  var _navLineItems$0$ref$c, _navLineItems$, _navLineItems$$ref, _navLineItems$$ref$cu;
@@ -186,9 +261,9 @@ var NavLine = function NavLine(_ref) {
186
261
  }, [navLineItems === null || navLineItems === void 0 ? void 0 : navLineItems.length]); // Count Wrapper Width
187
262
 
188
263
  (0, _react.useEffect)(function () {
189
- var _wrapperRef$current$g, _wrapperRef$current, _wrapperRef$current$g2;
264
+ var _wrapperRef$current$g, _wrapperRef$current2, _wrapperRef$current2$;
190
265
 
191
- setWrapperRefWidth((_wrapperRef$current$g = wrapperRef === null || wrapperRef === void 0 ? void 0 : (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : (_wrapperRef$current$g2 = _wrapperRef$current.getBoundingClientRect()) === null || _wrapperRef$current$g2 === void 0 ? void 0 : _wrapperRef$current$g2.width) !== null && _wrapperRef$current$g !== void 0 ? _wrapperRef$current$g : 0);
266
+ setWrapperRefWidth((_wrapperRef$current$g = wrapperRef === null || wrapperRef === void 0 ? void 0 : (_wrapperRef$current2 = wrapperRef.current) === null || _wrapperRef$current2 === void 0 ? void 0 : (_wrapperRef$current2$ = _wrapperRef$current2.getBoundingClientRect()) === null || _wrapperRef$current2$ === void 0 ? void 0 : _wrapperRef$current2$.width) !== null && _wrapperRef$current$g !== void 0 ? _wrapperRef$current$g : 0);
192
267
  }, [wrapperRef]); //Init NavLine Items
193
268
 
194
269
  (0, _react.useEffect)(function () {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [