{"version":3,"file":"static/js/91727.611c9e74.chunk.js","mappings":"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","sources":["newelements/Casino/hooks/useCategoriesFetch.ts","newelements/Casino/hooks/useOptions.ts","newelements/Casino/hooks/useCustomCategoriesUpdate.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useQuery } from '@tanstack/react-query';\nimport axios from 'axios';\nimport { CasinoCommandNames } from 'utils/constants/casino/casino-command-names';\nimport { CASINO_LANG_EXCEPTIONS } from 'utils/constants/languages/language-format';\nimport { ECasinoQueryKey } from 'utils/constants/store/query-keys';\nimport { SUCCESS_STATUS_CODE } from 'utils/constants/swarm/backend-status-codes';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { GLOBALS } from 'utils/generic/global-variables';\nimport { isMobile } from 'utils/is-mobile';\nimport { NewCasinoCategory } from 'interfaces/new-casino';\nimport {\n setCanRequestCategoriesNestedData,\n setCasinoOriginalCategories\n} from 'store/actions/new-casino';\n\ntype TUseCategoriesFetchParams = {\n providerIdsForCategories?: string;\n setExternalLoading?: (isLoading: boolean) => void;\n};\n\nexport const useCategoriesFetch = ({\n providerIdsForCategories,\n setExternalLoading\n}: TUseCategoriesFetchParams): void => {\n const dispatch = useDispatch();\n\n const { data } = useQuery({\n queryKey: [ECasinoQueryKey.CasinoCategories],\n queryFn: () => getCategories(),\n retry: false\n });\n\n useEffect(() => {\n data && dispatch(setCasinoOriginalCategories(data));\n }, [data]);\n\n const getCategories = () => {\n setExternalLoading?.(true);\n\n return new Promise<NewCasinoCategory[]>(resolve => {\n if (SpringConfigs.MOCKED_DATA) {\n import(\n /* webpackChunkName: \"casino-categories-mock\" */ 'utils/mocks/casino/categories-mock'\n ).then(mockModule => {\n resolve(mockModule.CASINO_CATEGORIES_MOCK);\n });\n } else {\n const lang = document.documentElement.lang;\n\n const params = SpringConfigs?.DECENTRALIZED_CASINO_URL\n ? {\n partnerId: SpringConfigs.DECENTRALIZED_CASINO_PARTNER_ID\n }\n : {\n partner_id: SpringConfigs.PARTNER_ID,\n is_mobile: Number(isMobile()),\n only_categories: 1,\n country: SpringConfigs.CURRENT_COUNTRY_CODE,\n lang:\n GLOBALS.languageConfigs.casinoLangPrefix ||\n CASINO_LANG_EXCEPTIONS[lang] ||\n CASINO_LANG_EXCEPTIONS[lang.slice(0, 2)] ||\n SpringConfigs.LANGUAGE_PREFIX,\n ...(!!providerIdsForCategories && {\n providers: providerIdsForCategories\n })\n };\n\n const url = SpringConfigs?.DECENTRALIZED_CASINO_URL\n ? `${SpringConfigs.DECENTRALIZED_CASINO_URL}${CasinoCommandNames.GET_DECENTRALIZED_CATEGORIES}`\n : `${SpringConfigs.CASINO_URL}/${CasinoCommandNames.GET_OPTIONS}`;\n\n axios\n .get<{ categories: NewCasinoCategory[]; status: string }>(url, {\n params\n })\n .then((resp: any) => {\n if (\n resp.status === SUCCESS_STATUS_CODE &&\n resp.data &&\n (resp.data.status === 'ok' ||\n SpringConfigs?.DECENTRALIZED_CASINO_URL)\n ) {\n if (SpringConfigs?.DECENTRALIZED_CASINO_URL) {\n const result = resp.data.categories.map(\n (category: NewCasinoCategory) => {\n return {\n id: category.categoryId,\n name: category.name,\n title: category.name,\n games_count: category.gameCount,\n badge: null\n };\n }\n );\n\n resolve(result);\n } else {\n resolve(resp.data.categories);\n }\n\n dispatch(setCanRequestCategoriesNestedData(true));\n }\n })\n .finally(() => {\n setExternalLoading?.(false);\n });\n }\n });\n };\n};\n","import { leftSideBarCasinoMain } from 'utils/casino/casino';\nimport { useCustomCategoriesUpdate } from './useCustomCategoriesUpdate';\nimport { useCategoriesFetch } from 'newelements/Casino/hooks/useCategoriesFetch';\n\ntype TUseOptionsParams = {\n shouldFetch?: boolean;\n providerIdsForCategories?: string;\n setExternalLoading?: (isLoading: boolean) => void;\n};\n\nexport const useOptions = ({\n shouldFetch = false,\n providerIdsForCategories,\n setExternalLoading\n}: TUseOptionsParams): void => {\n useCategoriesFetch({ providerIdsForCategories, setExternalLoading });\n useCustomCategoriesUpdate(\n shouldFetch,\n providerIdsForCategories,\n leftSideBarCasinoMain()\n );\n};\n","import { useEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { CUSTOM_CATEGORIES } from 'utils/constants/casino/custom-categories';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { getCasinoParams, mountPoint } from 'utils/generic/route-manipulation';\nimport { NewCasinoCategory } from 'interfaces/new-casino';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport store from 'store';\nimport { setCasinoCustomCategories } from 'store/actions/new-casino';\nimport { getFavoriteEntitiesCount } from 'store/selectors/fav-data';\nimport {\n getCasinoOriginalCategories,\n getCasinoOriginalCategoriesSet,\n getCasinoOriginalCategoriesSetLeftSideBar,\n getCategoryCustomIds,\n getGamesConfigs\n} from 'store/selectors/new-casino';\nimport { getIsLoggedIn, getUser } from 'store/selectors/user-data';\n\nexport const useCustomCategoriesUpdate = (\n shouldFetch = false,\n providerIdsForCategories?: string,\n leftSideBarMain?: boolean\n): void => {\n const { path } = useSbRouteMatch(window.location.pathname);\n const originalCategories = useSelector(getCasinoOriginalCategories);\n const originalCategoriesSet = useSelector(getCasinoOriginalCategoriesSet);\n const categoryCustomIds = useSelector(getCategoryCustomIds);\n const leftSideBarOriginalCategoriesSet = useSelector(\n getCasinoOriginalCategoriesSetLeftSideBar\n );\n\n const user = useSelector(getUser);\n\n const casinoGamesConfigs = useSelector(getGamesConfigs);\n\n const categoriesSets = useMemo(() => {\n return (\n (leftSideBarMain\n ? leftSideBarOriginalCategoriesSet\n : originalCategoriesSet) ?? []\n );\n }, [leftSideBarOriginalCategoriesSet, originalCategoriesSet]);\n\n const isLoggedIn = useSelector(getIsLoggedIn);\n const {\n casino: casinoGamesFavoritesCount,\n providers: casinoProvidersFavoritesCount\n } = useSelector(getFavoriteEntitiesCount);\n\n const dispatch = useDispatch();\n const history = useHistory();\n\n const originalCategoriesCount = useMemo(() => {\n if (originalCategories === null) {\n return 0;\n } else {\n const categoriesIntersection = categoriesSets.length\n ? originalCategories.filter(cat => categoriesSets.includes(cat.id))\n : originalCategories;\n\n return categoriesIntersection.reduce((acc, i) => acc + +i.games_count, 0);\n }\n }, [\n originalCategories,\n categoriesSets,\n leftSideBarOriginalCategoriesSet,\n leftSideBarMain\n ]);\n\n useEffect(() => {\n if (shouldFetch && originalCategories !== null) {\n let finalCasinoGamesConfigs = casinoGamesConfigs || null;\n\n if (finalCasinoGamesConfigs === null) {\n const casinoGamesWidgetContainer = document.querySelector(\n `[data-widget=\"CasinoGames\"]`\n );\n\n if (casinoGamesWidgetContainer) {\n finalCasinoGamesConfigs = JSON.parse(\n casinoGamesWidgetContainer.getAttribute('data-configs') || '{}'\n );\n }\n }\n\n CUSTOM_CATEGORIES.favorite = {\n ...CUSTOM_CATEGORIES.favorite,\n games_count: (\n casinoGamesFavoritesCount + casinoProvidersFavoritesCount\n ).toString()\n };\n\n const reduxStore = store.getState().newCasinoStore;\n const reduxCustomCategoryAll = reduxStore.categories.custom.find(\n ({ id }: { id: string }) => id === CUSTOM_CATEGORIES.all.id\n );\n\n if (!reduxCustomCategoryAll?.games_count) {\n CUSTOM_CATEGORIES.all = {\n ...CUSTOM_CATEGORIES.all,\n games_count: finalCasinoGamesConfigs?.bindWithCategories\n ? ''\n : originalCategoriesCount.toString()\n };\n } else {\n CUSTOM_CATEGORIES.all = {\n ...CUSTOM_CATEGORIES.all,\n games_count: finalCasinoGamesConfigs?.bindWithCategories\n ? reduxCustomCategoryAll?.games_count\n : originalCategoriesCount.toString()\n };\n }\n\n let customCategoriesToApply: NewCasinoCategory[];\n\n if (isLoggedIn) {\n customCategoriesToApply = [...Object.values(CUSTOM_CATEGORIES)];\n\n if (typeof providerIdsForCategories === 'string') {\n customCategoriesToApply = customCategoriesToApply.filter(item => {\n return !['suggested', 'special', 'specialLive'].includes(item.id);\n });\n }\n } else {\n customCategoriesToApply = [\n CUSTOM_CATEGORIES.favorite,\n CUSTOM_CATEGORIES.all\n ];\n\n if (typeof providerIdsForCategories !== 'string') {\n customCategoriesToApply = [\n ...customCategoriesToApply,\n CUSTOM_CATEGORIES.special,\n CUSTOM_CATEGORIES.specialLive\n ];\n }\n }\n\n if (SpringConfigs.DECENTRALIZED_CASINO_URL) {\n customCategoriesToApply = [CUSTOM_CATEGORIES.all];\n }\n\n const { categoryId: queryCategory } = getCasinoParams();\n\n if (\n !isLoggedIn &&\n user.pending === undefined &&\n [\n CUSTOM_CATEGORIES.suggested.id,\n CUSTOM_CATEGORIES.lastPlayed.id\n ].includes(queryCategory)\n ) {\n history.push({\n pathname: `${mountPoint(path, false, true)}/${\n CUSTOM_CATEGORIES.all.id\n }`,\n search: window.location.search\n });\n }\n\n customCategoriesToApply = customCategoriesToApply.filter(item => {\n return categoryCustomIds.includes(item.id);\n });\n\n dispatch(setCasinoCustomCategories(customCategoriesToApply));\n }\n }, [\n originalCategories,\n casinoGamesFavoritesCount,\n casinoProvidersFavoritesCount,\n originalCategoriesCount,\n isLoggedIn,\n casinoGamesConfigs,\n leftSideBarOriginalCategoriesSet,\n leftSideBarMain,\n categoryCustomIds\n ]);\n};\n"],"names":["useOptions","_ref","shouldFetch","providerIdsForCategories","setExternalLoading","dispatch","useDispatch","data","useQuery","queryKey","ECasinoQueryKey","CasinoCategories","queryFn","getCategories","retry","useEffect","setCasinoOriginalCategories","Promise","resolve","SpringConfigs","MOCKED_DATA","then","mockModule","CASINO_CATEGORIES_MOCK","lang","document","documentElement","params","DECENTRALIZED_CASINO_URL","partnerId","DECENTRALIZED_CASINO_PARTNER_ID","partner_id","PARTNER_ID","is_mobile","Number","isMobile","only_categories","country","CURRENT_COUNTRY_CODE","GLOBALS","languageConfigs","casinoLangPrefix","CASINO_LANG_EXCEPTIONS","slice","LANGUAGE_PREFIX","providers","url","CasinoCommandNames","GET_DECENTRALIZED_CATEGORIES","CASINO_URL","GET_OPTIONS","axios","resp","status","SUCCESS_STATUS_CODE","result","categories","map","category","id","categoryId","name","title","games_count","gameCount","badge","setCanRequestCategoriesNestedData","finally","useCategoriesFetch","arguments","length","undefined","leftSideBarMain","path","useSbRouteMatch","window","location","pathname","originalCategories","useSelector","getCasinoOriginalCategories","originalCategoriesSet","getCasinoOriginalCategoriesSet","categoryCustomIds","getCategoryCustomIds","leftSideBarOriginalCategoriesSet","getCasinoOriginalCategoriesSetLeftSideBar","user","getUser","casinoGamesConfigs","getGamesConfigs","categoriesSets","useMemo","isLoggedIn","getIsLoggedIn","casino","casinoGamesFavoritesCount","casinoProvidersFavoritesCount","getFavoriteEntitiesCount","history","useHistory","originalCategoriesCount","filter","cat","includes","reduce","acc","i","finalCasinoGamesConfigs","casinoGamesWidgetContainer","querySelector","JSON","parse","getAttribute","CUSTOM_CATEGORIES","favorite","toString","reduxCustomCategoryAll","store","getState","newCasinoStore","custom","find","_ref2","all","_finalCasinoGamesConf2","_finalCasinoGamesConf","customCategoriesToApply","bindWithCategories","Object","values","item","special","specialLive","queryCategory","getCasinoParams","pending","suggested","lastPlayed","push","mountPoint","search","setCasinoCustomCategories","useCustomCategoriesUpdate","leftSideBarCasinoMain"],"sourceRoot":""}