@watcha-authentic/react-slider 0.1.5 → 0.1.6
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.
|
@@ -316,24 +316,6 @@ const SliderComponent = ({ animationDuration = 500, animationTimingFunction = "e
|
|
|
316
316
|
}, [
|
|
317
317
|
extendedItems.length
|
|
318
318
|
]);
|
|
319
|
-
/**
|
|
320
|
-
* - extendedItems 프롭스에 의한 값을 초기화 합니다.
|
|
321
|
-
*/ (0, _react.useLayoutEffect)(()=>{
|
|
322
|
-
setSliderInfo((prevSliderInfo)=>{
|
|
323
|
-
return {
|
|
324
|
-
...prevSliderInfo,
|
|
325
|
-
elementStates: getNewStatesByItems({
|
|
326
|
-
centerIndex: prevSliderInfo.currentIndex,
|
|
327
|
-
itemIndexs: extendedItems.map((_, index)=>index),
|
|
328
|
-
prevStates: prevSliderInfo.elementStates
|
|
329
|
-
})
|
|
330
|
-
};
|
|
331
|
-
});
|
|
332
|
-
}, [
|
|
333
|
-
calcElementState,
|
|
334
|
-
extendedItems,
|
|
335
|
-
getNewStatesByItems
|
|
336
|
-
]);
|
|
337
319
|
const handleSwipe = (0, _react.useCallback)(async ()=>{
|
|
338
320
|
lastSlideTriggerEvent.current = "swipe";
|
|
339
321
|
await updateStateByPageIndex({
|
|
@@ -346,6 +328,41 @@ const SliderComponent = ({ animationDuration = 500, animationTimingFunction = "e
|
|
|
346
328
|
updateStateByPageIndex
|
|
347
329
|
]);
|
|
348
330
|
/**
|
|
331
|
+
* - 리사이즈 이벤트에 따라 아이템들의 위치를 초기화 합니다. (from extendedItems)
|
|
332
|
+
* - 스크롤 임계값을 업데이트 합니다.
|
|
333
|
+
*/ (0, _react.useLayoutEffect)(()=>{
|
|
334
|
+
const wrapElement = wrapRef.current;
|
|
335
|
+
if (!wrapElement) {
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
const handleResize = ()=>{
|
|
339
|
+
requestAnimationFrame(()=>{
|
|
340
|
+
// 리사이즈 이벤트에 따라 아이템들의 위치를 초기화 합니다.
|
|
341
|
+
setSliderInfo((prevSliderInfo)=>{
|
|
342
|
+
return {
|
|
343
|
+
...prevSliderInfo,
|
|
344
|
+
elementStates: getNewStatesByItems({
|
|
345
|
+
centerIndex: prevSliderInfo.currentIndex,
|
|
346
|
+
itemIndexs: extendedItems.map((_, index)=>index),
|
|
347
|
+
prevStates: prevSliderInfo.elementStates
|
|
348
|
+
})
|
|
349
|
+
};
|
|
350
|
+
});
|
|
351
|
+
// 스크롤 임계값 업데이트
|
|
352
|
+
const { width } = wrapElement.getBoundingClientRect();
|
|
353
|
+
canScrollThreshold.current = width * CAN_SCROLL_THRESHOLD_RATIO;
|
|
354
|
+
});
|
|
355
|
+
};
|
|
356
|
+
handleResize();
|
|
357
|
+
window.addEventListener("resize", handleResize);
|
|
358
|
+
return ()=>{
|
|
359
|
+
window.removeEventListener("resize", handleResize);
|
|
360
|
+
};
|
|
361
|
+
}, [
|
|
362
|
+
extendedItems,
|
|
363
|
+
getNewStatesByItems
|
|
364
|
+
]);
|
|
365
|
+
/**
|
|
349
366
|
* - currentIndex 변경 시 애니메이션을 적용합니다.
|
|
350
367
|
* - doNext/doPrev 또는 외부 index prop 변경 모두 처리합니다.
|
|
351
368
|
*/ (0, _react.useLayoutEffect)(()=>{
|
|
@@ -444,11 +461,10 @@ const SliderComponent = ({ animationDuration = 500, animationTimingFunction = "e
|
|
|
444
461
|
options: a11yOptions
|
|
445
462
|
});
|
|
446
463
|
(0, _react.useImperativeHandle)(ref, (0, _react.useCallback)(()=>{
|
|
447
|
-
return {
|
|
464
|
+
return Object.assign(wrapRef.current, {
|
|
448
465
|
doNext,
|
|
449
|
-
doPrev
|
|
450
|
-
|
|
451
|
-
};
|
|
466
|
+
doPrev
|
|
467
|
+
});
|
|
452
468
|
}, [
|
|
453
469
|
doNext,
|
|
454
470
|
doPrev
|
|
@@ -306,24 +306,6 @@ const SliderComponent = ({ animationDuration = 500, animationTimingFunction = "e
|
|
|
306
306
|
}, [
|
|
307
307
|
extendedItems.length
|
|
308
308
|
]);
|
|
309
|
-
/**
|
|
310
|
-
* - extendedItems 프롭스에 의한 값을 초기화 합니다.
|
|
311
|
-
*/ useLayoutEffect(()=>{
|
|
312
|
-
setSliderInfo((prevSliderInfo)=>{
|
|
313
|
-
return {
|
|
314
|
-
...prevSliderInfo,
|
|
315
|
-
elementStates: getNewStatesByItems({
|
|
316
|
-
centerIndex: prevSliderInfo.currentIndex,
|
|
317
|
-
itemIndexs: extendedItems.map((_, index)=>index),
|
|
318
|
-
prevStates: prevSliderInfo.elementStates
|
|
319
|
-
})
|
|
320
|
-
};
|
|
321
|
-
});
|
|
322
|
-
}, [
|
|
323
|
-
calcElementState,
|
|
324
|
-
extendedItems,
|
|
325
|
-
getNewStatesByItems
|
|
326
|
-
]);
|
|
327
309
|
const handleSwipe = useCallback(async ()=>{
|
|
328
310
|
lastSlideTriggerEvent.current = "swipe";
|
|
329
311
|
await updateStateByPageIndex({
|
|
@@ -336,6 +318,41 @@ const SliderComponent = ({ animationDuration = 500, animationTimingFunction = "e
|
|
|
336
318
|
updateStateByPageIndex
|
|
337
319
|
]);
|
|
338
320
|
/**
|
|
321
|
+
* - 리사이즈 이벤트에 따라 아이템들의 위치를 초기화 합니다. (from extendedItems)
|
|
322
|
+
* - 스크롤 임계값을 업데이트 합니다.
|
|
323
|
+
*/ useLayoutEffect(()=>{
|
|
324
|
+
const wrapElement = wrapRef.current;
|
|
325
|
+
if (!wrapElement) {
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
const handleResize = ()=>{
|
|
329
|
+
requestAnimationFrame(()=>{
|
|
330
|
+
// 리사이즈 이벤트에 따라 아이템들의 위치를 초기화 합니다.
|
|
331
|
+
setSliderInfo((prevSliderInfo)=>{
|
|
332
|
+
return {
|
|
333
|
+
...prevSliderInfo,
|
|
334
|
+
elementStates: getNewStatesByItems({
|
|
335
|
+
centerIndex: prevSliderInfo.currentIndex,
|
|
336
|
+
itemIndexs: extendedItems.map((_, index)=>index),
|
|
337
|
+
prevStates: prevSliderInfo.elementStates
|
|
338
|
+
})
|
|
339
|
+
};
|
|
340
|
+
});
|
|
341
|
+
// 스크롤 임계값 업데이트
|
|
342
|
+
const { width } = wrapElement.getBoundingClientRect();
|
|
343
|
+
canScrollThreshold.current = width * CAN_SCROLL_THRESHOLD_RATIO;
|
|
344
|
+
});
|
|
345
|
+
};
|
|
346
|
+
handleResize();
|
|
347
|
+
window.addEventListener("resize", handleResize);
|
|
348
|
+
return ()=>{
|
|
349
|
+
window.removeEventListener("resize", handleResize);
|
|
350
|
+
};
|
|
351
|
+
}, [
|
|
352
|
+
extendedItems,
|
|
353
|
+
getNewStatesByItems
|
|
354
|
+
]);
|
|
355
|
+
/**
|
|
339
356
|
* - currentIndex 변경 시 애니메이션을 적용합니다.
|
|
340
357
|
* - doNext/doPrev 또는 외부 index prop 변경 모두 처리합니다.
|
|
341
358
|
*/ useLayoutEffect(()=>{
|
|
@@ -434,11 +451,10 @@ const SliderComponent = ({ animationDuration = 500, animationTimingFunction = "e
|
|
|
434
451
|
options: a11yOptions
|
|
435
452
|
});
|
|
436
453
|
useImperativeHandle(ref, useCallback(()=>{
|
|
437
|
-
return {
|
|
454
|
+
return Object.assign(wrapRef.current, {
|
|
438
455
|
doNext,
|
|
439
|
-
doPrev
|
|
440
|
-
|
|
441
|
-
};
|
|
456
|
+
doPrev
|
|
457
|
+
});
|
|
442
458
|
}, [
|
|
443
459
|
doNext,
|
|
444
460
|
doPrev
|