analytica-frontend-lib 1.1.86 → 1.1.87

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.
package/dist/index.mjs CHANGED
@@ -8649,6 +8649,8 @@ var VideoPlayer = ({
8649
8649
  }
8650
8650
  }, [isPlaying, isFullscreen, showControlsWithTimer, clearControlsTimeout]);
8651
8651
  useEffect15(() => {
8652
+ const video = videoRef.current;
8653
+ if (!video) return;
8652
8654
  const handleFullscreenChange = () => {
8653
8655
  const isCurrentlyFullscreen = !!document.fullscreenElement;
8654
8656
  setIsFullscreen(isCurrentlyFullscreen);
@@ -8656,9 +8658,29 @@ var VideoPlayer = ({
8656
8658
  showControlsWithTimer();
8657
8659
  }
8658
8660
  };
8661
+ const handleWebkitBeginFullscreen = () => {
8662
+ setIsFullscreen(true);
8663
+ showControlsWithTimer();
8664
+ };
8665
+ const handleWebkitEndFullscreen = () => {
8666
+ setIsFullscreen(false);
8667
+ };
8659
8668
  document.addEventListener("fullscreenchange", handleFullscreenChange);
8669
+ video.addEventListener(
8670
+ "webkitbeginfullscreen",
8671
+ handleWebkitBeginFullscreen
8672
+ );
8673
+ video.addEventListener("webkitendfullscreen", handleWebkitEndFullscreen);
8660
8674
  return () => {
8661
8675
  document.removeEventListener("fullscreenchange", handleFullscreenChange);
8676
+ video.removeEventListener(
8677
+ "webkitbeginfullscreen",
8678
+ handleWebkitBeginFullscreen
8679
+ );
8680
+ video.removeEventListener(
8681
+ "webkitendfullscreen",
8682
+ handleWebkitEndFullscreen
8683
+ );
8662
8684
  };
8663
8685
  }, [showControlsWithTimer]);
8664
8686
  useEffect15(() => {
@@ -8765,15 +8787,30 @@ var VideoPlayer = ({
8765
8787
  video.currentTime = newTime;
8766
8788
  }
8767
8789
  }, []);
8790
+ const isSafariIOS = useCallback3(() => {
8791
+ const ua = navigator.userAgent;
8792
+ const isIOS = /iPad|iPhone|iPod/.test(ua);
8793
+ const isWebKit = /WebKit/.test(ua);
8794
+ const isNotChrome = !/CriOS|Chrome/.test(ua);
8795
+ return isIOS && isWebKit && isNotChrome;
8796
+ }, []);
8768
8797
  const toggleFullscreen = useCallback3(() => {
8769
- const container = videoRef.current?.parentElement;
8770
- if (!container) return;
8771
- if (!isFullscreen && container.requestFullscreen) {
8798
+ const video = videoRef.current;
8799
+ const container = video?.parentElement;
8800
+ if (!video || !container) return;
8801
+ if (isSafariIOS()) {
8802
+ const videoElement = video;
8803
+ if (!isFullscreen && videoElement.webkitEnterFullscreen) {
8804
+ videoElement.webkitEnterFullscreen();
8805
+ } else if (isFullscreen && videoElement.webkitExitFullscreen) {
8806
+ videoElement.webkitExitFullscreen();
8807
+ }
8808
+ } else if (!isFullscreen && container.requestFullscreen) {
8772
8809
  container.requestFullscreen();
8773
8810
  } else if (isFullscreen && document.exitFullscreen) {
8774
8811
  document.exitFullscreen();
8775
8812
  }
8776
- }, [isFullscreen]);
8813
+ }, [isFullscreen, isSafariIOS]);
8777
8814
  const handleSpeedChange = useCallback3((speed) => {
8778
8815
  if (videoRef.current) {
8779
8816
  videoRef.current.playbackRate = speed;