{"version":3,"file":"static/js/9491.df3e39e5.chunk.js","mappings":"gRAeIA,EAAAA,GAAcC,QAChB,iCAmBF,MAAM,qBAAEC,IAAyBC,EAAAA,EAAAA,IAC/B,IAAM,qLAGF,sBAAEC,IAA0BD,EAAAA,EAAAA,IAChC,IAAM,yKAGKE,EAAkBC,IAC7B,MAAMC,GAAWC,EAAAA,EAAAA,MACXC,GAAaC,EAAAA,EAAAA,IAAYC,EAAAA,IACzBC,GAAiBC,EAAAA,EAAAA,KACjBC,GAAaJ,EAAAA,EAAAA,KACjBK,EAAAA,EAAAA,IAA2BT,EAAMU,KAAKC,kBAAmB,WAGrDC,GAAmBC,EAAAA,EAAAA,cACtBC,IACCA,EAAEC,mBAEGZ,GAAcT,EAAAA,GAAcsB,8BAC/BC,EAAAA,EAAaC,SACXC,EAAAA,EAAAA,GAAe,UAAW,4BAC1BC,KAAKC,UAAUrB,EAAMU,OAEvBJ,KAEAL,GAASqB,EAAAA,EAAAA,KAAe,CAAEC,OAAQvB,EAAMU,KAAMc,SAAU,WAC1D,GAEF,CAACxB,EAAMU,KAAMP,IAGf,OACEsB,EAAAA,EAAAA,KAACC,EAAAA,EAAQ,CACPC,QAAS7B,EACT8B,OAAQhC,EACRiC,WAAY,IACP7B,EACHQ,aACAI,mBACAkB,eAAgB9B,EAAM8B,eACtBC,sBAAuB/B,EAAM+B,sBAC7BC,WAAYhC,EAAMgC,YAEpBC,UAAUR,EAAAA,EAAAA,KAACS,EAAAA,EAAsB,CAACC,aAAcnC,EAAMmC,gBACtD,C","sources":["newcomponents/Shared/casino/CasinoGameCard/index.tsx"],"sourcesContent":["import { MouseEvent, ReactElement, useCallback } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport LocalStorage from 'utils/bom-dom-manipulation/local-storage';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { storageKeyName } from 'utils/generic/storage-key-name';\nimport { NewCasinoGame } from 'interfaces/new-casino';\nimport { Viewport } from 'components/Viewport';\nimport { CasinoGameCardSkeleton } from 'newcomponents/Shared/casino/CasinoGameCard/Skeleton';\nimport { useOpenLoginPopup } from 'hooks/account/useOpenLoginPopup';\nimport { toggleFavorite } from 'store/actions';\nimport { getFavoriteActiveStateById } from 'store/selectors/fav-data';\nimport { getIsLoggedIn } from 'store/selectors/user-data';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n  import('./rtl.less');\n}\n\ntype Props = {\n  game: NewCasinoGame;\n  casinoPlayRealBtnSize?: string;\n  casinoNameSize?: string;\n  fromAccount?: boolean;\n  index?: number;\n  shouldStoreOffset?: boolean;\n  scaleOut?: boolean;\n  setVisible?: (arg: boolean) => void;\n  hidePartials?: {\n    name?: boolean;\n    providerTitle?: boolean;\n    favorite?: boolean;\n  };\n};\n\nconst { CasinoGameCardMobile } = lazy(\n  () => import(/* webpackChunkName: \"casino-game-card-mobile\" */ './Mobile')\n);\n\nconst { CasinoGameCardDesktop } = lazy(\n  () => import(/* webpackChunkName: \"casino-game-card-desktop\" */ './Desktop')\n);\n\nexport const CasinoGameCard = (props: Props): ReactElement => {\n  const dispatch = useDispatch();\n  const isLoggedIn = useSelector(getIsLoggedIn);\n  const openLoginPopup = useOpenLoginPopup();\n  const isFavorite = useSelector(\n    getFavoriteActiveStateById(props.game.extearnal_game_id, 'casino')\n  );\n\n  const onFavoriteToggle = useCallback(\n    (e: MouseEvent<HTMLElement, MouseEvent>) => {\n      e.stopPropagation();\n\n      if (!isLoggedIn && SpringConfigs.USER_PERSONALIZATION_ENABLED) {\n        LocalStorage.setItem(\n          storageKeyName('account', 'UNSIGNED_FAV_CASINO_GAME'),\n          JSON.stringify(props.game)\n        );\n        openLoginPopup();\n      } else {\n        dispatch(toggleFavorite({ entity: props.game, groupKey: 'casino' }));\n      }\n    },\n    [props.game, isLoggedIn]\n  );\n\n  return (\n    <Viewport\n      desktop={CasinoGameCardDesktop}\n      mobile={CasinoGameCardMobile}\n      innerProps={{\n        ...props,\n        isFavorite,\n        onFavoriteToggle,\n        casinoNameSize: props.casinoNameSize,\n        casinoPlayRealBtnSize: props.casinoPlayRealBtnSize,\n        setVisible: props.setVisible\n      }}\n      fallback={<CasinoGameCardSkeleton hidePartials={props.hidePartials} />}\n    />\n  );\n};\n"],"names":["SpringConfigs","IS_RTL","CasinoGameCardMobile","lazy","CasinoGameCardDesktop","CasinoGameCard","props","dispatch","useDispatch","isLoggedIn","useSelector","getIsLoggedIn","openLoginPopup","useOpenLoginPopup","isFavorite","getFavoriteActiveStateById","game","extearnal_game_id","onFavoriteToggle","useCallback","e","stopPropagation","USER_PERSONALIZATION_ENABLED","LocalStorage","setItem","storageKeyName","JSON","stringify","toggleFavorite","entity","groupKey","_jsx","Viewport","desktop","mobile","innerProps","casinoNameSize","casinoPlayRealBtnSize","setVisible","fallback","CasinoGameCardSkeleton","hidePartials"],"sourceRoot":""}