{"ast":null,"code":"import { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nvar _jsxFileName = \"/home/gkkdzdg/www/src/components/VideoLoop/VideoLoop.js\";\nimport cn from 'classnames';\nimport { useRef, useState } from 'react';\nimport styles from './VideoLoop.module.scss';\n\nconst VideoLoop = ({\n  className,\n  videos\n}) => {\n  const {\n    0: index,\n    1: setIndex\n  } = useState(0);\n  const preloadingRef = useRef();\n  const playingRef = useRef(); // console.log('VideoLoop.js::12 videos', videos)\n\n  if (videos.length == 0) return null;\n\n  if (videos.length == 1) {\n    return /*#__PURE__*/_jsxDEV(\"div\", {\n      className: cn(styles.container, className),\n      children: /*#__PURE__*/_jsxDEV(\"video\", {\n        className: cn(styles.video),\n        autoPlay: true,\n        muted: true,\n        loop: true,\n        ref: playingRef,\n        children: /*#__PURE__*/_jsxDEV(\"source\", {\n          src: videos[0],\n          type: \"video/mp4\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 24,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 17,\n        columnNumber: 10\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 16,\n      columnNumber: 14\n    }, this);\n  }\n\n  const onEnded = () => {\n    preloadingRef && preloadingRef.current && preloadingRef.current.play();\n    playingRef && playingRef.current && playingRef.current.pause();\n    setIndex(i => i + 1 == videos.length ? 0 : i + 1);\n  };\n\n  const previousVideo = videos.length > 1 && videos[index - 1 >= 0 ? index - 1 : videos.length - 1];\n  const currentVideo = videos[index];\n  const nextVideo = videos.length > 1 && videos[index + 1 == videos.length ? 0 : index + 1];\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    className: cn(styles.container, className),\n    children: [nextVideo && /*#__PURE__*/_jsxDEV(\"video\", {\n      className: cn(styles.nextVideo),\n      ref: preloadingRef,\n      muted: true,\n      children: /*#__PURE__*/_jsxDEV(\"source\", {\n        src: nextVideo,\n        type: \"video/mp4\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 48,\n        columnNumber: 13\n      }, this)\n    }, nextVideo + '-preload', false, {\n      fileName: _jsxFileName,\n      lineNumber: 42,\n      columnNumber: 24\n    }, this), previousVideo && /*#__PURE__*/_jsxDEV(\"video\", {\n      className: cn(styles.previousVideo),\n      muted: true,\n      children: /*#__PURE__*/_jsxDEV(\"source\", {\n        src: nextVideo,\n        type: \"video/mp4\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 55,\n        columnNumber: 13\n      }, this)\n    }, previousVideo, false, {\n      fileName: _jsxFileName,\n      lineNumber: 50,\n      columnNumber: 28\n    }, this), /*#__PURE__*/_jsxDEV(\"video\", {\n      className: cn(styles.video),\n      autoPlay: true,\n      muted: true,\n      onEnded: nextVideo && onEnded,\n      loop: nextVideo ? false : true,\n      ref: playingRef,\n      children: /*#__PURE__*/_jsxDEV(\"source\", {\n        src: currentVideo,\n        type: \"video/mp4\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 66,\n        columnNumber: 13\n      }, this)\n    }, currentVideo, false, {\n      fileName: _jsxFileName,\n      lineNumber: 57,\n      columnNumber: 10\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 41,\n    columnNumber: 7\n  }, this);\n};\n\nexport default VideoLoop;","map":{"version":3,"sources":["/home/gkkdzdg/www/src/components/VideoLoop/VideoLoop.js"],"names":["cn","useRef","useState","styles","VideoLoop","className","videos","index","setIndex","preloadingRef","playingRef","length","container","video","onEnded","current","play","pause","i","previousVideo","currentVideo","nextVideo"],"mappings":"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","sourcesContent":["\nimport cn from 'classnames'\nimport { useRef, useState } from 'react'\nimport styles from './VideoLoop.module.scss'\n\nconst VideoLoop = ({ className, videos, }) => {\n\n   const [index, setIndex] = useState(0)\n   const preloadingRef = useRef()\n   const playingRef = useRef()\n\n   // console.log('VideoLoop.js::12 videos', videos)\n\n   if(videos.length == 0) return null\n   if(videos.length == 1) {\n      return <div className={cn(styles.container, className)}>\n         <video\n            className={cn(styles.video)}\n            autoPlay\n            muted\n            loop\n            ref={playingRef}\n         >\n            <source src={videos[0]} type=\"video/mp4\" />\n         </video>\n      </div>\n   }\n\n   const onEnded = () => {\n      preloadingRef && preloadingRef.current && preloadingRef.current.play()\n      playingRef && playingRef.current && playingRef.current.pause()\n\n      setIndex(i => (i + 1 == videos.length ? 0 : i + 1))\n   }\n\n   const previousVideo = videos.length > 1 && videos[index - 1 >= 0 ? index - 1 : videos.length - 1]\n   const currentVideo = videos[index]\n   const nextVideo = videos.length > 1 && videos[index + 1 == videos.length ? 0 : index + 1]\n\n   return (\n      <div className={cn(styles.container, className)}>\n         {nextVideo && <video\n            className={cn(styles.nextVideo)}\n            ref={preloadingRef}\n            muted\n            key={nextVideo + '-preload'}\n         >\n            <source src={nextVideo} type=\"video/mp4\" />\n         </video>}\n         {previousVideo && <video\n            className={cn(styles.previousVideo)}\n            muted\n            key={previousVideo}\n         >\n            <source src={nextVideo} type=\"video/mp4\" />\n         </video>}\n         <video\n            className={cn(styles.video)}\n            autoPlay\n            muted\n            onEnded={nextVideo && onEnded}\n            key={currentVideo}\n            loop={nextVideo ? false : true}\n            ref={playingRef}\n         >\n            <source src={currentVideo} type=\"video/mp4\" />\n         </video>\n      </div>\n   )\n}\n\nexport default VideoLoop\n\n"]},"metadata":{},"sourceType":"module"}