UNPKG

@tycoonsystems/tycoon-modules

Version:
1 lines 2.08 kB
function _extends(){return(_extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i,o=arguments[t];for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e}).apply(this,arguments)}import React from"react";import{debounce}from"../../util.js";import GridListStyles from"./gridList.module.scss";import VideoItem from"./videoItem.js";import{detectAllowEditingFlag}from"../../util.js";const GridList=i=>{let e=React.useRef(!1),[o,a]=React.useState(-1),[,r]=React.useState(null),[n,l]=React.useState(null);React.useEffect(()=>(!e.current&&i.cdn&&(e.current=!0),()=>{}),[i.cdn]);const s=React.useCallback(debounce((e,t,i,o)=>d(e,t,i,o),1e3),[]),d=async(e,t,i,o)=>{try{r(i);var n=getGhostContainerOfIndex(t,"ghostVideoItem");if(n&&moveableVideoComponent&&moveableVideoComponent.current&&i&&videoComponent&&videoComponent.current){n.appendChild(moveableVideoComponent.current);let e=document&&document.getElementsByClassName("moveableVideoContainer")&&document.getElementsByClassName("moveableVideoContainer")[0]?document.getElementsByClassName("moveableVideoContainer")[0]:null;e&&(e.style.display="block",o!=i&&(videoContainer.current.style.transition="0ms",e.style.opacity="0"),l(i),videoContainer.current.style.transition="200ms",setTimeout(()=>{a(t),e.style.opacity="1"},750),checkAllowedPlayback(i))&&(await videoPlayer.current.loadMedia(i,cdnData.videoCdn,"/video/",!0,!0),videoComponent.current.play())}}catch(e){}};return React.createElement("div",{className:""+GridListStyles.leadContainer},i._gridItems&&i._gridItems.map?"video"==i._gridListType?i._gridItems.map((e,t)=>React.createElement("div",{className:""+GridListStyles.col,key:t},React.createElement(VideoItem,_extends({item:e,index:t,setActive:(e,t,i,o)=>{s(e,t,i,o)},unsetActiveItem:e=>{r(null)},activeItem:o,previousActiveItemData:n,allowEditingFlag:detectAllowEditingFlag(e,i._loggedIn)},i)))):"product"==i._gridListType?i._gridItems.map((e,t)=>React.createElement("div",{className:""+GridListStyles.col,key:t},"Product")):null:null)};export default GridList;