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
|
-
|
|
124
|
-
|
|
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
|
-
};
|
|
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$
|
|
264
|
+
var _wrapperRef$current$g, _wrapperRef$current2, _wrapperRef$current2$;
|
|
190
265
|
|
|
191
|
-
setWrapperRefWidth((_wrapperRef$current$g = wrapperRef === null || wrapperRef === void 0 ? void 0 : (_wrapperRef$
|
|
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 () {
|