@micromag/viewer 0.4.69 → 0.4.71

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 +24 -3
  2. package/package.json +10 -10
package/es/index.js CHANGED
@@ -6,7 +6,7 @@ import isEmpty from 'lodash/isEmpty';
6
6
  import uniq from 'lodash/uniq';
7
7
  import { useEffect, useState, useCallback, useMemo, useRef } from 'react';
8
8
  import { Link, useLocation, Switch, Route, Router } from 'wouter';
9
- import { useViewerSize, usePlaybackContext, useViewerWebView, useViewerInteraction, useStory, StoryProvider, ScreenSizeProvider, ViewerProvider, SettingsProvider, GoogleKeysProvider, GoogleMapsClientProvider, ComponentsProvider, SCREENS_NAMESPACE, VisitorProvider, PlaybackProvider, TrackingProvider } from '@micromag/core/contexts';
9
+ import { useViewerSize, usePlaybackContext, useViewerWebView, useViewerInteraction, useStory, mediaElementIsPlaying, StoryProvider, ScreenSizeProvider, ViewerProvider, SettingsProvider, GoogleKeysProvider, GoogleMapsClientProvider, ComponentsProvider, SCREENS_NAMESPACE, VisitorProvider, PlaybackProvider, TrackingProvider } from '@micromag/core/contexts';
10
10
  import { useIsVisible, useDimensionObserver, useTrackEvent, useDragProgress, useMediaProgress, useMediaCurrentTime, useMediaDuration, useMediaReady, useMediaState, useParsedStory, useLoadedFonts, useTrackScreenView, useScreenSizeFromElement, useFullscreen, useActivityDetector, useSupportsWebp } from '@micromag/core/hooks';
11
11
  import { IntlProvider } from '@micromag/intl';
12
12
  import { ScreensProvider } from '@micromag/screens';
@@ -2788,18 +2788,39 @@ function Viewer(_ref) {
2788
2788
  /**
2789
2789
  * Screen Navigation
2790
2790
  */
2791
+ var lastScreenMediaRef = useRef(null);
2791
2792
  var changeIndex = useCallback(function (index) {
2792
2793
  if (index === screenIndex) {
2793
2794
  return;
2794
2795
  }
2795
2796
  setPreloadNeighbors(false);
2797
+ var lastScreenMedia = lastScreenMediaRef.current;
2798
+ var screenMedia = screensMediasRef.current[index] || null;
2796
2799
  if (currentScreenMedia !== null) {
2797
- currentScreenMedia.current = screensMediasRef.current[index] || null;
2800
+ currentScreenMedia.current = screenMedia;
2798
2801
  }
2802
+ if (screenMedia !== null && playing && screenMedia.dataset.forcePlaying !== 'true' && !mediaElementIsPlaying(screenMedia)) {
2803
+ if (lastScreenMedia !== null) {
2804
+ lastScreenMedia.dataset.forcePlaying = 'false';
2805
+ lastScreenMedia.pause();
2806
+ }
2807
+ screenMedia.play()["catch"](function () {});
2808
+ screenMedia.dataset.forcePlaying = 'true';
2809
+ }
2810
+ lastScreenMediaRef.current = screenMedia;
2799
2811
  if (onScreenChange !== null) {
2800
2812
  onScreenChange(screens[index], index);
2801
2813
  }
2802
- }, [screenIndex, screens, onScreenChange]);
2814
+ }, [screenIndex, screens, onScreenChange, playing]);
2815
+ useEffect(function () {
2816
+ var screenMedia = screensMediasRef.current[screenIndex] || null;
2817
+ if (currentScreenMedia !== null && currentScreenMedia.current === null) {
2818
+ currentScreenMedia.current = screenMedia;
2819
+ }
2820
+ if (lastScreenMediaRef.current === null) {
2821
+ lastScreenMediaRef.current = screenMedia;
2822
+ }
2823
+ }, [screenIndex, currentScreenMedia, playing]);
2803
2824
  var onScreenNavigate = useCallback(function (_ref0) {
2804
2825
  var index = _ref0.index,
2805
2826
  newIndex = _ref0.newIndex,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/viewer",
3
- "version": "0.4.69",
3
+ "version": "0.4.71",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "keywords": [
@@ -63,14 +63,14 @@
63
63
  "dependencies": {
64
64
  "@babel/runtime": "^7.28.6",
65
65
  "@folklore/routes": "^0.2.36",
66
- "@micromag/core": "^0.4.69",
67
- "@micromag/element-badge": "^0.4.69",
68
- "@micromag/element-scroll": "^0.4.69",
69
- "@micromag/element-share-options": "^0.4.69",
70
- "@micromag/element-webview": "^0.4.69",
71
- "@micromag/elements": "^0.4.69",
72
- "@micromag/intl": "^0.4.69",
73
- "@micromag/screens": "^0.4.69",
66
+ "@micromag/core": "^0.4.71",
67
+ "@micromag/element-badge": "^0.4.71",
68
+ "@micromag/element-scroll": "^0.4.71",
69
+ "@micromag/element-share-options": "^0.4.71",
70
+ "@micromag/element-webview": "^0.4.71",
71
+ "@micromag/elements": "^0.4.71",
72
+ "@micromag/intl": "^0.4.71",
73
+ "@micromag/screens": "^0.4.71",
74
74
  "@react-spring/core": "^10.0.3",
75
75
  "@react-spring/web": "^10.0.3",
76
76
  "@use-gesture/react": "^10.3.0",
@@ -89,6 +89,6 @@
89
89
  "access": "public",
90
90
  "registry": "https://registry.npmjs.org/"
91
91
  },
92
- "gitHead": "509e113dc06022d6092e4aac9f47ccd5facfd59d",
92
+ "gitHead": "9101554bc5761e32b4a002a10d26800608c69773",
93
93
  "types": "es/index.d.ts"
94
94
  }