@micromag/viewer 0.3.587 → 0.3.589

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.
Files changed (2) hide show
  1. package/es/index.js +47 -23
  2. package/package.json +10 -10
package/es/index.js CHANGED
@@ -1803,6 +1803,7 @@ var propTypes$8 = {
1803
1803
  screenState: PropTypes.string,
1804
1804
  current: PropTypes.bool,
1805
1805
  active: PropTypes.bool,
1806
+ preload: PropTypes.bool,
1806
1807
  mediaRef: PropTypes.func,
1807
1808
  width: PropTypes.number,
1808
1809
  index: PropTypes.number,
@@ -1817,6 +1818,7 @@ var defaultProps$8 = {
1817
1818
  screenState: null,
1818
1819
  current: false,
1819
1820
  active: true,
1821
+ preload: true,
1820
1822
  index: null,
1821
1823
  mediaRef: null,
1822
1824
  width: null,
@@ -1831,6 +1833,7 @@ function ViewerScreen(_ref) {
1831
1833
  index = _ref.index,
1832
1834
  screenState = _ref.screenState,
1833
1835
  active = _ref.active,
1836
+ preload = _ref.preload,
1834
1837
  current = _ref.current,
1835
1838
  mediaRef = _ref.mediaRef,
1836
1839
  width = _ref.width,
@@ -1871,6 +1874,7 @@ function ViewerScreen(_ref) {
1871
1874
  screenState: screenState,
1872
1875
  index: index,
1873
1876
  active: active,
1877
+ preload: preload,
1874
1878
  current: current,
1875
1879
  mediaRef: mediaRef
1876
1880
  }) : null));
@@ -2547,6 +2551,9 @@ var propTypes$2 = {
2547
2551
  neighborScreensActive: PropTypes.number,
2548
2552
  neighborScreenOffset: PropTypes.number,
2549
2553
  neighborScreenScale: PropTypes.number,
2554
+ neighborPreloadDelay: PropTypes.number,
2555
+ neighborPreloadBackward: PropTypes.number,
2556
+ neighborPreloadScreens: PropTypes.number,
2550
2557
  topSafezoneHeight: PropTypes.number,
2551
2558
  bottomSafezoneHeight: PropTypes.number,
2552
2559
  menuDotsButtons: PropTypes.node,
@@ -2599,6 +2606,9 @@ var defaultProps$2 = {
2599
2606
  neighborScreensActive: 1,
2600
2607
  neighborScreenOffset: 105,
2601
2608
  neighborScreenScale: 0.8,
2609
+ neighborPreloadDelay: 2000,
2610
+ neighborPreloadBackward: false,
2611
+ neighborPreloadScreens: null,
2602
2612
  topSafezoneHeight: null,
2603
2613
  bottomSafezoneHeight: null,
2604
2614
  menuIsScreenWidth: false,
@@ -2646,6 +2656,9 @@ var Viewer = function Viewer(_ref) {
2646
2656
  neighborScreensActive = _ref.neighborScreensActive,
2647
2657
  neighborScreenOffset = _ref.neighborScreenOffset,
2648
2658
  neighborScreenScale = _ref.neighborScreenScale,
2659
+ neighborPreloadDelay = _ref.neighborPreloadDelay,
2660
+ neighborPreloadBackward = _ref.neighborPreloadBackward,
2661
+ neighborPreloadScreens = _ref.neighborPreloadScreens,
2649
2662
  topSafezoneHeight = _ref.topSafezoneHeight,
2650
2663
  bottomSafezoneHeight = _ref.bottomSafezoneHeight,
2651
2664
  menuIsScreenWidth = _ref.menuIsScreenWidth,
@@ -2820,6 +2833,10 @@ var Viewer = function Viewer(_ref) {
2820
2833
  containerRef.current.style.setProperty('--micromag-focus-color', finalFocusColor);
2821
2834
  }
2822
2835
  }, [finalFocusColor]);
2836
+ var _useState = useState(false),
2837
+ _useState2 = _slicedToArray(_useState, 2),
2838
+ preloadNeighbors = _useState2[0],
2839
+ setPreloadNeighbors = _useState2[1];
2823
2840
 
2824
2841
  /**
2825
2842
  * Screen Transitions
@@ -2833,6 +2850,7 @@ var Viewer = function Viewer(_ref) {
2833
2850
  if (index === screenIndex) {
2834
2851
  return;
2835
2852
  }
2853
+ setPreloadNeighbors(false);
2836
2854
  if (currentScreenMedia !== null) {
2837
2855
  currentScreenMedia.current = screensMediasRef.current[index] || null;
2838
2856
  }
@@ -2867,10 +2885,10 @@ var Viewer = function Viewer(_ref) {
2867
2885
  var gotoNextScreen = useCallback(function () {
2868
2886
  changeIndex(Math.min(screens.length - 1, screenIndex + 1));
2869
2887
  }, [changeIndex, screenIndex]);
2870
- var _useState = useState(false),
2871
- _useState2 = _slicedToArray(_useState, 2),
2872
- hasInteracted = _useState2[0],
2873
- setHasInteracted = _useState2[1];
2888
+ var _useState3 = useState(false),
2889
+ _useState4 = _slicedToArray(_useState3, 2),
2890
+ hasInteracted = _useState4[0],
2891
+ setHasInteracted = _useState4[1];
2874
2892
  var onInteractionPrivate = useCallback(function () {
2875
2893
  if (onInteraction !== null) {
2876
2894
  onInteraction();
@@ -2940,10 +2958,10 @@ var Viewer = function Viewer(_ref) {
2940
2958
  });
2941
2959
  }
2942
2960
  }, [onScreenNavigate, screenIndex]);
2943
- var _useState3 = useState(true),
2944
- _useState4 = _slicedToArray(_useState3, 2),
2945
- transitioned = _useState4[0],
2946
- setTransitioned = _useState4[1];
2961
+ var _useState5 = useState(true),
2962
+ _useState6 = _slicedToArray(_useState5, 2),
2963
+ transitioned = _useState6[0],
2964
+ setTransitioned = _useState6[1];
2947
2965
  var onTransitionStart = useCallback(function () {
2948
2966
  setTransitioned(false);
2949
2967
  }, [setTransitioned]);
@@ -3093,14 +3111,14 @@ var Viewer = function Viewer(_ref) {
3093
3111
  }
3094
3112
  }
3095
3113
  }, []);
3096
- var _useState5 = useState(null),
3097
- _useState6 = _slicedToArray(_useState5, 2),
3098
- currentShareIncentive = _useState6[0],
3099
- setCurrentShareIncentive = _useState6[1];
3100
- var _useState7 = useState(false),
3114
+ var _useState7 = useState(null),
3101
3115
  _useState8 = _slicedToArray(_useState7, 2),
3102
- shareIncentiveVisible = _useState8[0],
3103
- setShareIncentiveVisible = _useState8[1];
3116
+ currentShareIncentive = _useState8[0],
3117
+ setCurrentShareIncentive = _useState8[1];
3118
+ var _useState9 = useState(false),
3119
+ _useState10 = _slicedToArray(_useState9, 2),
3120
+ shareIncentiveVisible = _useState10[0],
3121
+ setShareIncentiveVisible = _useState10[1];
3104
3122
  var _ref16 = currentScreen || {},
3105
3123
  _ref16$header = _ref16.header,
3106
3124
  header = _ref16$header === void 0 ? null : _ref16$header;
@@ -3135,19 +3153,17 @@ var Viewer = function Viewer(_ref) {
3135
3153
  clearTimeout(timeout);
3136
3154
  };
3137
3155
  }, [shareIncentiveLabel, setShareIncentiveVisible, hasShareIncentive, incentiveLabel, currentIncentiveLabel, setCurrentShareIncentive, isView]);
3138
- var _useState9 = useState(false),
3139
- _useState10 = _slicedToArray(_useState9, 2),
3140
- preloadNeighbors = _useState10[0],
3141
- setPreloadNeighbors = _useState10[1];
3142
3156
  useEffect(function () {
3143
- setPreloadNeighbors(false);
3157
+ if (preloadNeighbors) {
3158
+ return function () {};
3159
+ }
3144
3160
  var timeout = setTimeout(function () {
3145
3161
  setPreloadNeighbors(true);
3146
- }, 1000);
3162
+ }, neighborPreloadDelay);
3147
3163
  return function () {
3148
3164
  clearTimeout(timeout);
3149
3165
  };
3150
- }, [screenIndex]);
3166
+ }, [preloadNeighbors]);
3151
3167
  var topHeight = 0;
3152
3168
  if (topSafezoneHeight !== null) {
3153
3169
  topHeight = topSafezoneHeight / screenScale;
@@ -3291,7 +3307,14 @@ var Viewer = function Viewer(_ref) {
3291
3307
  }
3292
3308
  }, screens.map(function (screen, i) {
3293
3309
  var current = screenIndex === i;
3294
- var active = i >= screenIndex - neighborScreensActive && i <= screenIndex + neighborScreensActive && preloadNeighbors;
3310
+ var isBefore = i < screenIndex;
3311
+ var isAfter = i > screenIndex;
3312
+ var activeRange = neighborScreensActive;
3313
+ var isInActiveRange = Math.abs(i - screenIndex) <= activeRange;
3314
+ var preloadRange = neighborPreloadScreens !== null ? neighborPreloadScreens : neighborScreensActive;
3315
+ var isInPreloadRange = Math.abs(i - screenIndex) <= preloadRange;
3316
+ var active = isInActiveRange;
3317
+ var preload = current || preloadNeighbors && (isAfter && isInPreloadRange || neighborPreloadBackward && isBefore && isInPreloadRange);
3295
3318
  var screenStyles = getScreenStylesByIndex(i, progressSpring);
3296
3319
  return /*#__PURE__*/React.createElement(animated.div, {
3297
3320
  key: "screen-viewer-".concat(screen.id || '', "-").concat(i + 1),
@@ -3308,6 +3331,7 @@ var Viewer = function Viewer(_ref) {
3308
3331
  current: current,
3309
3332
  active: active || current,
3310
3333
  ready: current && transitioned,
3334
+ preload: preload || current,
3311
3335
  mediaRef: function mediaRef(ref) {
3312
3336
  screensMediasRef.current[i] = ref;
3313
3337
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/viewer",
3
- "version": "0.3.587",
3
+ "version": "0.3.589",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "keywords": [
@@ -64,14 +64,14 @@
64
64
  "dependencies": {
65
65
  "@babel/runtime": "^7.13.10",
66
66
  "@folklore/routes": "^0.2.27",
67
- "@micromag/core": "^0.3.585",
68
- "@micromag/element-badge": "^0.3.585",
69
- "@micromag/element-scroll": "^0.3.585",
70
- "@micromag/element-share-options": "^0.3.585",
71
- "@micromag/element-webview": "^0.3.585",
72
- "@micromag/elements": "^0.3.587",
73
- "@micromag/intl": "^0.3.585",
74
- "@micromag/screens": "^0.3.587",
67
+ "@micromag/core": "^0.3.589",
68
+ "@micromag/element-badge": "^0.3.589",
69
+ "@micromag/element-scroll": "^0.3.589",
70
+ "@micromag/element-share-options": "^0.3.589",
71
+ "@micromag/element-webview": "^0.3.589",
72
+ "@micromag/elements": "^0.3.589",
73
+ "@micromag/intl": "^0.3.589",
74
+ "@micromag/screens": "^0.3.589",
75
75
  "@react-spring/core": "^9.6.1",
76
76
  "@react-spring/web": "^9.6.1",
77
77
  "@use-gesture/react": "^10.3.0",
@@ -91,5 +91,5 @@
91
91
  "access": "public",
92
92
  "registry": "https://registry.npmjs.org/"
93
93
  },
94
- "gitHead": "40d2d37e166b6677fc19aaf4aefaadb768b0fd4f"
94
+ "gitHead": "534ea16483848cd334d4e2bd02f48beba4439a95"
95
95
  }