{"version":3,"file":"static/chunks/24821-32ef6ef6f4e3b581.js","sources":["webpack://_N_E/./src/LegacyApp/hooks/fetch/useGetDataJSON.ts","webpack://_N_E/./src/common/components/backdrop/Backdrop.styled.ts","webpack://_N_E/./src/modules/slots/components/GameError.tsx","webpack://_N_E/./src/modules/slots/context/SlotsGameContext.ts","webpack://_N_E/./src/modules/slots/hooks/useFetchGame.ts","webpack://_N_E/./src/modules/slots/hooks/useGameHTML.ts"],"sourceRoot":"","sourcesContent":["import { useEffect, useState } from 'react';\n\ntype UseGetDataJSON = (\n\tkey: string,\n\tcallback: UseGetDataJSONCallback,\n\toptions?: UseGetDataJSONOptions,\n) => {\n\tloaded?: boolean;\n\tdata?: any;\n};\n\nexport interface UseGetDataJSONOptions {\n\tloaded?: boolean;\n\tdata?: any;\n}\n\nexport type UseGetDataJSONCallback = (props?: any) => Promise;\n\nexport const useGetDataJSON: UseGetDataJSON = (key, callback, options) => {\n\tconst defaults = {\n\t\tloaded: options?.loaded || false,\n\t\tdata: options?.data || [],\n\t};\n\n\tconst [loaded, setLoaded] = useState(defaults.loaded);\n\tconst [data, setData] = useState(defaults.data);\n\n\tuseEffect(() => {\n\t\tconst fetchData = async () => {\n\t\t\tconst { data } = await callback().catch((error) => {\n\t\t\t\tconsole.error(error);\n\t\t\t\treturn defaults;\n\t\t\t});\n\t\t\tsetData(data);\n\t\t\tsetLoaded(true);\n\t\t};\n\t\tfetchData();\n\t}, [key]);\n\n\treturn {\n\t\tloaded,\n\t\tdata,\n\t};\n};\n","import styled from 'styled-components';\n\nexport const Backdrop = styled.div`\n\talign-items: center;\n\tbackground: rgba(0, 0, 0, 0.7);\n\tdisplay: flex;\n\theight: 100%;\n\tjustify-content: center;\n\tposition: absolute;\n\twidth: 100%;\n`;\n","import { FC, PropsWithChildren, useContext, useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport classnames from 'classnames';\n\nimport { parseImageSrc } from '@common/components/default/Image/Image';\nimport { useAppMobile } from '@common/selectors/app.selectors';\nimport { trans } from '@legacyApp/client/modules/translation/translate';\nimport { DEFAULT_NAMESPACE } from '@legacyApp/client/modules/translation/translate.constants';\nimport { SlotsGameContext } from '@modules/slots/context/SlotsGameContext';\nimport { generateSlotUrl } from '@modules/slots/services/Slots.service';\nimport { ButtonStyleType } from '@uiTypes/ButtonStyleType';\nimport { Size } from '@uiTypes/Size';\n\nimport { LinkTo } from '@common/components/default/LinkTo/LinkTo';\nimport { GameData } from '@modules/slots/components/GameWindow';\nimport { Button } from '@ui/button';\n\nexport const ERROR_MESSAGES = {\n\tWOL1001: {\n\t\ttitle: 'We are undergoing scheduled maintenance.',\n\t\tparagraph: 'Sorry for the inconvenience.',\n\t\tnamespace: DEFAULT_NAMESPACE,\n\t},\n\tWOL1003: {\n\t\ttitle:\n\t\t\t'Our location services have detected you are in a country that this provider offer is not available.',\n\t\tparagraph:\n\t\t\t'If you are using any software that changes your IP address like VPN or proxy please switch it off so you can access the site.',\n\t\tnamespace: 'slots',\n\t},\n\tWOL1009: {\n\t\ttitle: 'Could not connect to {{provider_name}}',\n\t\tparagraph:\n\t\t\t'There might be maintenance or temporary downtime on {{provider_name}} servers. Please, try again in few minutes',\n\t\tnamespace: 'slots',\n\t},\n};\n\nconst StyledErrorCode = styled.p.attrs(({ className }) => ({\n\tclassName: classnames('text-style-md-medium', className),\n}))`\n\t@media (min-width: ${(props) => props.theme.media.minWidthDesktop}) {\n\t\tbottom: 3rem;\n\t\tposition: absolute;\n\t}\n\n\t@media (max-width: ${(props) => props.theme.media.maxWidthTablet}) {\n\t\tmargin-top: 3rem;\n\t}\n`;\n\nconst getError = (data: GameData) => {\n\tif (typeof data === 'string') {\n\t\treturn {\n\t\t\tprefix: data,\n\t\t};\n\t}\n\n\tif (data?.errorStatus) {\n\t\treturn {\n\t\t\tprefix: data.errorStatus?.split?.('--')[0],\n\t\t\tdetails: data.errorStatus?.split?.('--')[1],\n\t\t};\n\t}\n\n\tif (data?.text) {\n\t\treturn {\n\t\t\tprefix: data.text.replace('-', ''),\n\t\t\tdetails: data.status >= 400 ? data.status : null,\n\t\t};\n\t}\n\n\treturn {\n\t\tprefix: null,\n\t\tdetails: null,\n\t};\n};\n\nexport const GoBackGameButton = styled(Button)`\n\tmargin-top: 30px;\n`;\n\nexport const StyledGameError = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\tjustify-content: flex-start;\n\tpadding: 3rem;\n\tposition: relative;\n\twidth: 100%;\n\n\t&:before {\n\t\tbackground-image: url(${parseImageSrc(\n\t\t\t'/img/homepage/wolf-with-bg-dark-theme.svg',\n\t\t)});\n\t\tbackground-size: cover;\n\t\tcontent: '';\n\t\theight: 100%;\n\t\tleft: 0;\n\t\topacity: 0.15;\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\twidth: 100%;\n\t\tz-index: 0;\n\t}\n\n\th3,\n\tp {\n\t\tz-index: 1;\n\t}\n\n\tp:last-of-type {\n\t\tmargin-bottom: 0;\n\t}\n`;\n\nexport const useGameError = ({ code }: { code: GameData }) => {\n\tconst [status, setStatus] = useState(null);\n\n\tuseEffect(() => {\n\t\tif (!code || typeof code === 'string') {\n\t\t\treturn setStatus(null);\n\t\t}\n\n\t\tsetStatus(getError(code));\n\t}, [code]);\n\n\treturn {\n\t\tstatus,\n\t};\n};\n\nexport const GameError: FC<\n\tPropsWithChildren<{ code: GameData; noBackButton?: boolean }>\n> = ({ children, code, noBackButton }) => {\n\tconst { game } = useContext(SlotsGameContext);\n\n\tconst { provider } = game || {};\n\n\tconst { status } = useGameError({ code });\n\n\tconst isMobile = useAppMobile();\n\n\tif (!status) {\n\t\treturn <>{children};\n\t}\n\n\tconst transOptions = {\n\t\tvalue: status?.details,\n\t\tprovider_name: provider?.name,\n\t};\n\n\treturn (\n\t\t\n\t\t\t

\n\t\t\t\t{trans({\n\t\t\t\t\tlabel: ERROR_MESSAGES[status?.prefix]\n\t\t\t\t\t\t? ERROR_MESSAGES[status?.prefix]?.title\n\t\t\t\t\t\t: 'Whoops, something went wrong',\n\t\t\t\t\toptions: transOptions,\n\t\t\t\t\tnamespace: ERROR_MESSAGES[status?.prefix]?.namespace,\n\t\t\t\t})}\n\t\t\t

\n\t\t\t

\n\t\t\t\t{trans({\n\t\t\t\t\tlabel: ERROR_MESSAGES[status?.prefix]\n\t\t\t\t\t\t? ERROR_MESSAGES[status?.prefix]?.paragraph\n\t\t\t\t\t\t: 'We are having trouble loading game right now. Please try again later',\n\t\t\t\t\toptions: transOptions,\n\t\t\t\t\tnamespace: ERROR_MESSAGES[status?.prefix]?.namespace || 'slots',\n\t\t\t\t})}\n\t\t\t

\n\n\t\t\t{status?.prefix && !ERROR_MESSAGES[status?.prefix] && (\n\t\t\t\t\n\t\t\t\t\t{trans({ label: 'Error code' })}:{' '}\n\t\t\t\t\t\n\t\t\t\t\t\t{status?.prefix}\n\t\t\t\t\t\t{status?.details ? `--${status?.details}` : null}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{status?.details && ERROR_MESSAGES[status?.prefix] && (\n\t\t\t\t\n\t\t\t\t\t{trans({ label: 'Error code' })}:{' '}\n\t\t\t\t\t{status?.details}\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{isMobile && !noBackButton && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n};\n","import { createContext } from 'react';\n\nimport { GameDetailsDTO, SlotGroupDTO } from '@modules/slots/store/slots.types';\n\nexport const SlotsGameContext = createContext<{\n\tgame: GameDetailsDTO;\n\tsetGame: any;\n\tgroups: Array;\n}>({\n\tgame: null,\n\tsetGame: (value) => value,\n\tgroups: [],\n});\n","import { useCallback, useContext } from 'react';\nimport { useFetchApiPromise } from '@legacyApp/hooks/fetch/useFetchApi';\nimport { UseGetDataJSONCallback } from '@legacyApp/hooks/fetch/useGetDataJSON';\nimport { generateSlotGameInfoUrl } from '../services/Slots.service';\nimport { mapSlotDTMtoSlot } from '../services/Slots.mapper';\nimport { GameDetailsDTO } from '../store/slots.types';\nimport { SlotsGameContext } from '../context/SlotsGameContext';\n\nexport const useFetchGame = () => {\n\tconst fetchApi = useFetchApiPromise();\n\n\tconst contextGame = useContext(SlotsGameContext);\n\n\tconst callback: UseGetDataJSONCallback = useCallback(\n\t\tasync (props: { slug: string; isAdminGame?: boolean }) => {\n\t\t\tconst { slug, isAdminGame } = props;\n\t\t\tconst { data } = await fetchApi({\n\t\t\t\turl: `${generateSlotGameInfoUrl({ gameSlug: slug })}${\n\t\t\t\t\tisAdminGame ? `?admin=true` : ''\n\t\t\t\t}`,\n\t\t\t\tdisableErrorHandler: true,\n\t\t\t})\n\t\t\t\t.then((data) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata:\n\t\t\t\t\t\t\t(mapSlotDTMtoSlot(data) as GameDetailsDTO) || contextGame?.game,\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.catch(() => {\n\t\t\t\t\treturn { data: contextGame?.game };\n\t\t\t\t});\n\n\t\t\tif (contextGame?.setGame) {\n\t\t\t\tcontextGame.setGame(data || contextGame?.game);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tdata: data || contextGame?.game,\n\t\t\t};\n\t\t},\n\t\t[fetchApi, contextGame],\n\t);\n\n\treturn {\n\t\tcallback,\n\t\toptions: {\n\t\t\tdata: contextGame?.game,\n\t\t},\n\t};\n};\n","import { useCallback, useContext, useEffect, useState } from 'react';\nimport { useAppDispatch } from '@legacyApp/hooks/store/useAppDispatch';\nimport { useFetchApi } from '@legacyApp/hooks/fetch/useFetchApi';\nimport {\n\tuseUserActiveCurrency,\n\tuseUserJoinedAt,\n\tuseUserName,\n\tuseUserTokenValue,\n} from '@common/selectors/user.selectors';\nimport {\n\tuseAppInitialized,\n\tuseAppLanguage,\n\tuseAppMobile,\n} from '@common/selectors/app.selectors';\nimport { usePrevious } from '@legacyApp/hooks/render/usePrevious';\nimport { MODAL_ID } from '@common/constants/modal/ids.modal.constants';\nimport { getTimestamp } from '@legacyApp/client/modules/app/timeService';\nimport { lsSet } from '@modules/localStorage/methods/lsSet';\nimport { lsGet } from '@modules/localStorage/methods/lsGet';\nimport { lsClear } from '@modules/localStorage/methods/lsClear';\nimport { LocalStorageKeys } from '@modules/localStorage/types/localStorageKeys.type';\nimport { jsonToString } from '@common/methods/jsonToString';\nimport { GameDetailsDTO, GameMode } from '../store/slots.types';\nimport { generatePlaySlotGameUrl } from '../services/Slots.service';\nimport { openModal } from '../../modals/store/modal.actions';\nimport { balanceSetConverted } from '../../balance/store/balance.actions';\nimport { BalanceConvertedCurrencies } from '../../balance/store/balance.constants';\nimport { SlotsGameContext } from '../context/SlotsGameContext';\n\nconst getInitialGameMode = (token: any, game: GameDetailsDTO): GameMode => {\n\tconst isAuthorized = !!token;\n\n\tconst gameMode: GameMode = lsGet(LocalStorageKeys.SLOT_MODE);\n\n\tif (\n\t\t(gameMode === GameMode.DEMO && game?.has_demo) ||\n\t\t(gameMode === GameMode.REAL && isAuthorized)\n\t) {\n\t\treturn gameMode;\n\t}\n\tif (game?.has_demo) {\n\t\treturn GameMode.DEMO;\n\t}\n\tif (isAuthorized) {\n\t\treturn GameMode.REAL;\n\t}\n\treturn null;\n};\n\nexport const useGameHTML = ({\n\tmode,\n\tenableAutoDemoMode,\n}: {\n\tmode: GameMode;\n\tenableAutoDemoMode?: boolean;\n}) => {\n\tconst { game } = useContext(SlotsGameContext);\n\n\tconst { game_id, operator_id } = game || {};\n\n\tconst dispatch = useAppDispatch();\n\tconst { fetch: fetchApi, cancel } = useFetchApi();\n\tconst token = useUserTokenValue();\n\tconst initialized = useAppInitialized();\n\tconst isLogged = !!token;\n\tconst isMobile = useAppMobile();\n\tconst name = useUserName();\n\tconst activeCurrency = useUserActiveCurrency();\n\tconst isInitialized = useAppInitialized();\n\tconst language = useAppLanguage();\n\tconst joinedAt = useUserJoinedAt();\n\n\tconst [gameHTML, setGameHtml] = useState(null);\n\tconst [downloadedMode, setDownloadedMode] = useState(null);\n\tconst [_preloadMode, setPreloadMode] = useState(mode);\n\n\tconst _previousIsInitialized = usePrevious(isInitialized);\n\tconst _previousActiveCurrency = usePrevious(activeCurrency);\n\tconst _previousGameId = usePrevious(game_id);\n\tconst _previousOperatorId = usePrevious(operator_id);\n\n\tconst getGameHTML = useCallback(\n\t\tasync (_mode: GameMode) => {\n\t\t\tif (!game_id || !operator_id || !isInitialized || !_mode) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst url = generatePlaySlotGameUrl({\n\t\t\t\ttype: _mode,\n\t\t\t\tgameId: game_id,\n\t\t\t\toperatorId: operator_id,\n\t\t\t});\n\t\t\tconst body = {\n\t\t\t\tlogin: name,\n\t\t\t\tlanguage,\n\t\t\t\tcurrency: lsGet(LocalStorageKeys.ACTIVE_CURRENCY) || activeCurrency, // while refreshing page init btc currency is taken from app state\n\t\t\t\tisMobile,\n\t\t\t\tregistered_at: getTimestamp(joinedAt),\n\t\t\t};\n\t\t\tconst loadingGame_ = `${url}_${jsonToString(body)}`;\n\t\t\tif (loadingGame_ === lsGet(LocalStorageKeys.SLOT_LOADING_GAME)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlsSet(LocalStorageKeys.SLOT_LOADING_GAME, loadingGame_);\n\t\t\tsetGameHtml(null);\n\t\t\tcancel();\n\t\t\treturn await fetchApi({\n\t\t\t\turl,\n\t\t\t\tdisableErrorHandler: true,\n\t\t\t\tparameters: {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tbody,\n\t\t\t\t},\n\t\t\t})\n\t\t\t\t.then((result) => {\n\t\t\t\t\tlsClear(LocalStorageKeys.SLOT_LOADING_GAME);\n\t\t\t\t\tif (result?.status === 503) {\n\t\t\t\t\t\treturn { errorStatus: 'WOL1001' };\n\t\t\t\t\t}\n\t\t\t\t\tif (result?.data) {\n\t\t\t\t\t\treturn result?.data;\n\t\t\t\t\t}\n\t\t\t\t\treturn result;\n\t\t\t\t})\n\t\t\t\t.catch(() => {\n\t\t\t\t\tlsClear(LocalStorageKeys.SLOT_LOADING_GAME);\n\t\t\t\t\treturn null;\n\t\t\t\t});\n\t\t},\n\t\t[\n\t\t\tgame_id,\n\t\t\toperator_id,\n\t\t\tisInitialized,\n\t\t\tname,\n\t\t\tlanguage,\n\t\t\tactiveCurrency,\n\t\t\tisMobile,\n\t\t\tjoinedAt,\n\t\t\tcancel,\n\t\t\tfetchApi,\n\t\t],\n\t);\n\n\tconst handleRunGame = useCallback(async () => {\n\t\tif (!isLogged && !enableAutoDemoMode) {\n\t\t\tif (mode === GameMode.REAL && !isLogged) {\n\t\t\t\treturn dispatch(openModal(MODAL_ID.NEW_ACCOUNT, 'useGameHTML'));\n\t\t\t}\n\t\t\tif (_preloadMode === GameMode.REAL && !isLogged) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst mode_ =\n\t\t\tenableAutoDemoMode && !isLogged ? GameMode.DEMO : _preloadMode;\n\t\tconst gameHtml = await getGameHTML(mode_);\n\t\tsetDownloadedMode(_preloadMode);\n\t\tsetGameHtml(gameHtml?.body ? gameHtml.body : gameHtml);\n\t\tdispatch(balanceSetConverted(BalanceConvertedCurrencies.USD));\n\t}, [_preloadMode, dispatch, getGameHTML, isLogged, mode, enableAutoDemoMode]);\n\n\tuseEffect(() => {\n\t\tif (!_preloadMode || downloadedMode === _preloadMode) {\n\t\t\treturn;\n\t\t}\n\t\thandleRunGame();\n\t}, [_preloadMode, downloadedMode, handleRunGame]);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\t_previousActiveCurrency === activeCurrency ||\n\t\t\tdownloadedMode !== GameMode.REAL\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\thandleRunGame();\n\t}, [handleRunGame, _previousActiveCurrency, activeCurrency, downloadedMode]);\n\n\tuseEffect(() => {\n\t\tif (_previousGameId !== game_id || _previousOperatorId !== operator_id) {\n\t\t\thandleRunGame();\n\t\t}\n\t}, [\n\t\t_previousGameId,\n\t\t_previousOperatorId,\n\t\tgame_id,\n\t\thandleRunGame,\n\t\toperator_id,\n\t]);\n\n\tuseEffect(() => {\n\t\tif (!_previousIsInitialized && isInitialized) {\n\t\t\thandleRunGame();\n\t\t}\n\t}, [_previousIsInitialized, handleRunGame, isInitialized]);\n\n\tuseEffect(() => {\n\t\tif (!initialized) {\n\t\t\treturn;\n\t\t}\n\t\tif (!mode && !_preloadMode) {\n\t\t\tsetPreloadMode(getInitialGameMode(token, game));\n\t\t} else if (mode && mode !== _preloadMode) {\n\t\t\tsetPreloadMode(mode);\n\t\t}\n\t}, [_preloadMode, game, initialized, mode, token]);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tdispatch(balanceSetConverted(null));\n\t\t};\n\t}, [dispatch]);\n\n\treturn {\n\t\tgameHTML,\n\t\tdownloadedMode,\n\t};\n};\n"],"names":["useGetDataJSON","key","callback","options","defaults","loaded","data","useState","setLoaded","setData","useEffect","fetchData","error","console","Backdrop","styled","ERROR_MESSAGES","WOL1001","title","paragraph","namespace","DEFAULT_NAMESPACE","WOL1003","WOL1009","StyledErrorCode","className","classnames","props","theme","media","minWidthDesktop","maxWidthTablet","GoBackGameButton","Button","StyledGameError","parseImageSrc","useGameError","code","status","setStatus","prefix","errorStatus","split","details","text","replace","getError","GameError","children","noBackButton","game","useContext","SlotsGameContext","provider","isMobile","useAppMobile","transOptions","value","provider_name","name","trans","label","href","generateSlotUrl","styleType","ButtonStyleType","size","Size","createContext","setGame","groups","useFetchGame","fetchApi","useFetchApiPromise","contextGame","useCallback","slug","isAdminGame","url","generateSlotGameInfoUrl","gameSlug","disableErrorHandler","then","mapSlotDTMtoSlot","useGameHTML","mode","enableAutoDemoMode","game_id","operator_id","dispatch","useAppDispatch","useFetchApi","fetch","cancel","token","useUserTokenValue","initialized","useAppInitialized","isLogged","useUserName","activeCurrency","useUserActiveCurrency","isInitialized","language","useAppLanguage","joinedAt","useUserJoinedAt","gameHTML","setGameHtml","downloadedMode","setDownloadedMode","_preloadMode","setPreloadMode","_previousIsInitialized","usePrevious","_previousActiveCurrency","_previousGameId","_previousOperatorId","getGameHTML","_mode","generatePlaySlotGameUrl","type","gameId","operatorId","body","login","currency","lsGet","LocalStorageKeys","registered_at","getTimestamp","loadingGame_","jsonToString","lsSet","parameters","method","result","lsClear","handleRunGame","GameMode","openModal","MODAL_ID","mode_","gameHtml","balanceSetConverted","BalanceConvertedCurrencies","isAuthorized","gameMode","has_demo","getInitialGameMode"],"mappings":"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","debug_id":"fd5bf37e-5b8d-5b8a-8457-628a37f82c06"}