{"version":3,"file":"static/js/add-to-betslip-link.bedd42fd.chunk.js","mappings":"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","sources":["components/AddToBetslipLink/index.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\nimport {\n addBetSlipMultipleEvents,\n createBetslipEventsFromSwarm\n} from 'utils/betslip/betslip';\nimport LocalStorage from 'utils/bom-dom-manipulation/local-storage';\nimport { ReservedRoutes } from 'utils/constants/app/app-routes';\nimport { BET_TYPE_NAMES_BY_KEY } from 'utils/constants/betslip/bet-types';\nimport {\n GREYHOUNDS_RACING,\n HORSE_RACING,\n RACING_SPORT_IDS\n} from 'utils/constants/sportsbook/racing-sport';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { storageKeyName } from 'utils/generic/storage-key-name';\nimport { BetSlipEventObj } from 'interfaces/bet-data';\nimport { SwarmDataBetslipEvents } from 'interfaces/sportsbook-data-levels';\nimport { getEventsReadyForBetslip } from 'services/bet-slip';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { setType } from 'store/actions';\n\nexport const AddToBetslipLink = (): null => {\n const queries = useSearchParams();\n const history = useLocation();\n const dispatch = useDispatch();\n\n const [requestedGames, setRequestedGames] = useState();\n const [requestedEvents, setRequestedEvents] = useState();\n\n useEffect(() => {\n let data: string | undefined = LocalStorage.getItem(\n storageKeyName('betslip', 'ADD_TO_BETSLIP_DATA')\n );\n\n if (history.pathname.includes(ReservedRoutes.addToBetslip)) {\n data = setDataToLocalStorage();\n\n if (data) {\n redirectToGame(data);\n }\n } else if (JSON.parse(data)) {\n addDataToBetslip(data);\n }\n }, []);\n\n const setDataToLocalStorage = (): string | undefined => {\n if (queries.games && queries.events) {\n const betslipData: string = JSON.stringify({\n games: queries.games,\n events: queries.events,\n stake: queries.stake,\n is_racing: queries.is_racing,\n betType: queries.betType\n });\n\n LocalStorage.setItem(\n storageKeyName('betslip', 'ADD_TO_BETSLIP_DATA'),\n betslipData\n );\n\n return betslipData;\n }\n };\n\n const redirectToGame = (data: string): void => {\n const [games, events] = getDataFromQuery(data);\n\n if (games && events) {\n setRequestedEvents(events);\n setRequestedGames(games);\n }\n };\n\n useEffect(() => {\n if (requestedGames && requestedEvents) {\n getEventsReadyForBetslip(\n null,\n getBetslipDataCallbackForRedirection,\n undefined,\n undefined,\n requestedGames,\n requestedEvents\n );\n }\n }, [requestedGames]);\n\n const getBetslipDataCallbackForRedirection = useCallback(\n (betslipEventsData: { data: SwarmDataBetslipEvents }) => {\n const betslipEvents: BetSlipEventObj[] = createBetslipEventsFromSwarm(\n betslipEventsData.data\n );\n\n if (!requestedGames) {\n return;\n }\n\n requestedGames.every((gameId: number) => {\n const event = betslipEvents.find(item => item.gameId === gameId);\n\n if (event) {\n if (\n event.sport_id &&\n RACING_SPORT_IDS.includes(event.sport_id) &&\n SpringConfigs.PAGE_URLS.racing\n ) {\n const racingSegment =\n event.sport_id === HORSE_RACING.id\n ? HORSE_RACING.alias\n : GREYHOUNDS_RACING.alias;\n\n window.location.href = `${SpringConfigs.PAGE_URLS.racing}/${\n SpringConfigs.SPORTSBOOK_MOUNT_PATH\n }/${racingSegment}/${event.region_alias || event.region_name}/${\n event.competitionId\n }/${event.gameId}${window.location.search}`;\n\n return false;\n } else if (event.sport_type === 0 && SpringConfigs.PAGE_URLS.esport) {\n window.location.href = `${SpringConfigs.PAGE_URLS.esport}/${\n SpringConfigs.SPORTSBOOK_MOUNT_PATH\n }/${event.sport_alias}/${event.region_alias || event.region_name}/${\n event.competitionId\n }/${event.gameId}${window.location.search}`;\n\n return false;\n } else if (event.type === 1 && SpringConfigs.PAGE_URLS.live) {\n window.location.href = `${SpringConfigs.PAGE_URLS.live}/${\n SpringConfigs.SPORTSBOOK_MOUNT_PATH\n }/${event.sport_alias}/${event.region_alias || event.region_name}/${\n event.competitionId\n }/${event.gameId}${window.location.search}`;\n\n return false;\n } else if (\n (event.type === 2 || event.type === 0) &&\n SpringConfigs.PAGE_URLS.prematch\n ) {\n window.location.href = `${SpringConfigs.PAGE_URLS.prematch}/${\n SpringConfigs.SPORTSBOOK_MOUNT_PATH\n }/${event.sport_alias}/${event.region_alias || event.region_name}/${\n event.competitionId\n }/${event.gameId}${window.location.search}`;\n\n return false;\n }\n\n return true;\n }\n });\n },\n [requestedGames]\n );\n\n const getDataFromQuery = (data: string): number[][] | null[] => {\n const params = JSON.parse(data);\n\n if (params.games) {\n const games = params.games\n .split(',')\n .map((item: string) => parseInt(item));\n\n if (params.events) {\n const events = params.events\n .split(',')\n .map((item: string) => parseInt(item));\n\n return [games, events];\n }\n }\n\n return [null, null];\n };\n\n const addDataToBetslip = (data: string): void => {\n const [games, events] = getDataFromQuery(data);\n\n if (games && events) {\n getEventsReadyForBetslip(\n null,\n getBetslipDataCallback,\n undefined,\n undefined,\n games,\n events\n );\n }\n };\n\n const getBetslipDataCallback = (betslipEventsData: {\n data: SwarmDataBetslipEvents;\n }) => {\n const betslipEvents: BetSlipEventObj[] = createBetslipEventsFromSwarm(\n betslipEventsData.data\n );\n\n addBetSlipMultipleEvents(betslipEvents);\n queries.betType &&\n dispatch(setType(BET_TYPE_NAMES_BY_KEY[Number(queries.betType)]));\n LocalStorage.removeItem(storageKeyName('betslip', 'ADD_TO_BETSLIP_DATA'));\n };\n\n return null;\n};\n"],"names":["AddToBetslipLink","queries","useSearchParams","history","useLocation","dispatch","useDispatch","requestedGames","setRequestedGames","useState","requestedEvents","setRequestedEvents","useEffect","data","LocalStorage","getItem","storageKeyName","pathname","includes","ReservedRoutes","addToBetslip","setDataToLocalStorage","redirectToGame","JSON","parse","addDataToBetslip","games","events","betslipData","stringify","stake","is_racing","betType","setItem","getDataFromQuery","getEventsReadyForBetslip","getBetslipDataCallbackForRedirection","undefined","useCallback","betslipEventsData","betslipEvents","createBetslipEventsFromSwarm","every","gameId","event","find","item","sport_id","RACING_SPORT_IDS","SpringConfigs","PAGE_URLS","racing","racingSegment","HORSE_RACING","id","alias","GREYHOUNDS_RACING","window","location","href","SPORTSBOOK_MOUNT_PATH","region_alias","region_name","competitionId","search","sport_type","esport","sport_alias","type","live","prematch","params","split","map","parseInt","getBetslipDataCallback","addBetSlipMultipleEvents","setType","BET_TYPE_NAMES_BY_KEY","Number","removeItem"],"sourceRoot":""}