{"version":3,"sources":["shells/ContextProvider.js","utils/apiRoutes.js","utils/api.js","shells/Play/questions.jsx","utils/constants.js","shells/Play/index.js","shells/Results/header.jsx","shells/Results/email.jsx","shells/Results/leaderboard.jsx","shells/Results/index.jsx","shells/Lobby/header.jsx","shells/Lobby/timer.jsx","shells/Lobby/rules.jsx","shells/Lobby/prizes.jsx","shells/Lobby/email.jsx","shells/Lobby/index.jsx","root/history.js","root/index.js","App.js","serviceWorker.js","index.js"],"names":["QuizContext","React","createContext","ContextProvider","props","Provider","value","children","routes","V1_CHALLENGES_GETCURRENTQUIZ","path","method","V1_CHALLENGES_GETQUESTIONS","V1_USER_SUBMIT_EMAIL","V1_CHALLENGES_SUBMITANSWER","V1_CHALLENGES_GET_QUIZ_RESULT","V1_GET_STREAM_SWITCH_TIME","V1_COMMON_LAUNCH","V1_USER_SUBMIT_COUNTRY","api","action","a","token","localStorage","getItem","form","containsFormData","headers","Object","assign","Authorization","axios","handler","url","data","payload","params","query","response","status","console","log","error","delay","ms","Promise","res","setTimeout","Questions","forwardRef","ref","timer","updateTimer","showOptionBool","updateShowOptionBool","slider","useRef","useState","option","setOpton","submit","isAnswered","setAnsweredState","answer","setAnswer","inital","setInitailLode","move","setMove","currentScore","updateCurrentScore","prevScore","updatePrevScore","score","updateScore","setOptionsTimeout","currentIndexUtil","questionSet","length","questionOffset","question_offset","time_diff","option_offset","useImperativeHandle","submitAndNav","live_quiz_id","quiz_challenge_id","questionIndexUtil","nextQuestionIndexUtil","delayTime","question_id","id","question_answer","question_points","current","slickGoTo","submitAnswer","optionNumber","correctAnswer","history","replace","points","cumulativePoints","answer_time","current_points","useEffect","className","quizStreamTime","showFirstQuestionBool","dots","infinite","speed","slidesToShow","slidesToScroll","arrows","draggable","swipe","map","question","key","question_text","onClick","bind","style","pointerEvents","question_option_1","question_option_2","question_option_3","question_option_4","withRouter","childRef","playerRef","updateQuestionSet","isStreamPlaying","updatePlayingState","updateShowFirstQuestionBool","updateQuizStreamTime","isVideoMuted","updateIsVideoMuted","isPaused","updateIsPaused","apiPollCounter","getQuestion","questionSetUtil","getStreamTime","handleOnStreamReady","showFirstQuestion","optionOffset","exactVideoStreamTime","Date","setSeconds","getSeconds","exactShowOptionsTime","currentDate","timeoutInterval","getTime","optionTimeoutInterval","handleTick","handlePause","width","height","controls","playing","onReady","playsinline","muted","onPause","onPlay","seekTo","onBuffer","Fragment","e","WinnerCard","user_rank","user_score","total_participants","user_prize","src","LostCard","EnterEmailCard","emailValue","updateEmailValue","showSuccessSubmission","updateSubmission","emailError","updateEmailError","submitEmailApi","user_email","type","placeholder","onChange","target","indexOf","GetInTouchCard","Leaderboard","results","itemCount","finalLeaderBoard","itemSize","itemData","LeaderboardRow","index","dataUtil","country_code","getCountryFlag","user_id","user_points","is_a_winner","countryCode","flagStyle","marginRight","marginTop","alignSelf","Results","updateResults","didResultsApiFail","updateDidResultsApiFail","fetchResults","isWinner","isEmailRequired","is_email_required","LobbyHeader","autoPlay","loop","playsInline","LobbyTimer","start_time","quizStartDate","initial","setInitial","calcTimeLeft","diff","submitCountryCode","push","d","Math","floor","h","m","s","timeleft","setTimeLeft","timerComponent","keys","forEach","interval","LobbyRules","quizRules","expandShutter","setShutterExpand","open","href","LobbyPrizes","quizPrizes","prize","img_link","EnterEmailCardLobby","quizData","updateQuizData","updateCountryCode","countryName","updateCountryName","nanoidValue","nanoid","action_2","gid","all","response_2","setItem","getQuiz","getGeoInfo","get","then","country_name","catch","quiz_rules","quiz_prizes","createHistory","require","createBrowserHistory","Root","exact","render","App","Boolean","window","location","hostname","match","ReactDOM","StrictMode","document","getElementById","navigator","serviceWorker","ready","registration","unregister","message"],"mappings":"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","file":"static/js/main.226ca7b8.chunk.js","sourcesContent":["import React, { useState } from \"react\";\n\nexport const QuizContext = React.createContext();\n\nexport const ContextProvider = props => {\n return (\n {props.children}\n );\n};\n","const routes = {\n V1_CHALLENGES_GETCURRENTQUIZ: {\n path: \"/livequiz/api/v1/challenges/getCurrentQuiz\",\n method: \"get\"\n },\n V1_CHALLENGES_GETQUESTIONS: {\n path: \"/livequiz/api/v1/challenges/getQuestions\",\n method: \"get\"\n },\n V1_USER_SUBMIT_EMAIL: {\n path: \"/livequiz/api/v1/user/submitEmail\",\n method: \"post\"\n },\n V1_CHALLENGES_SUBMITANSWER: {\n path: \"/livequiz/api/v1/challenges/submitAnswer\",\n method: \"post\"\n },\n V1_CHALLENGES_GET_QUIZ_RESULT: {\n path: \"/livequiz/api/v1/challenges/getQuizResult\",\n method: \"get\"\n },\n V1_GET_STREAM_SWITCH_TIME: {\n path: \"/livequiz/api/v1/challenges/getStreamTime\",\n method: \"get\"\n },\n V1_COMMON_LAUNCH: {\n path: \"/livequiz/api/v1/common/launch\",\n method: \"get\"\n },\n V1_USER_SUBMIT_COUNTRY: {\n path: \"/livequiz/api/v1/user/submitCntrycode\",\n method: \"post\"\n }\n};\n\nexport default routes;\n","import axios from \"axios\";\nimport routes from \"./apiRoutes\";\n\nexport default async function api(action) {\n const token = localStorage.getItem(\"token\");\n const baseUrl = \"https://onequizserver.azurewebsites.net\";\n\n const form = action.containsFormData\n ? { \"Content-Type\": \"multipart/form-data\" }\n : {};\n const headers = Object.assign({}, form, { Authorization: token });\n\n try {\n const response = await axios({\n method: routes[action.handler].method,\n url: baseUrl + routes[action.handler].path,\n data: action.payload || null,\n params: action.query || null,\n headers\n // withCredentials: true\n // credentials: 'same-origin',\n });\n\n return response;\n } catch (error) {\n if (error && error.response) {\n if (error.response.status === 401) {\n return error.response;\n //yield put({ type: \"USER_LOGOUT\" });\n } else {\n console.log(error);\n //yield put({ type: \"UNCAUGHT_ERR\", info: \"Error\", err: \"error\" });\n return error.response;\n }\n }\n\n console.log(error);\n return { data: { data: null }, error };\n }\n}\n","import React, {\n useState,\n useRef,\n useEffect,\n forwardRef,\n useImperativeHandle\n} from \"react\";\nimport Slider from \"react-slick\";\nimport api from \"../../utils/api\";\nimport { OPTION_TIME } from \"../../utils/constants\";\n\nconst delay = ms => new Promise(res => setTimeout(res, ms));\n\nexport const Questions = forwardRef((props, ref) => {\n const { timer, updateTimer, showOptionBool, updateShowOptionBool } = props;\n let slider = useRef(null);\n const [option, setOpton] = useState(0);\n const [submit, answerSubmit] = useState(false);\n const [isAnswered, setAnsweredState] = useState(false);\n const [answer, setAnswer] = useState(-1);\n const [inital, setInitailLode] = useState(false);\n const [move, setMove] = useState(0);\n const [currentScore, updateCurrentScore] = useState(0);\n const [prevScore, updatePrevScore] = useState(0);\n const [score, updateScore] = useState(0);\n\n const settings = {\n dots: false,\n infinite: false,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1,\n arrows: false,\n draggable: false,\n swipe: false,\n className: \"sliderclass\"\n };\n\n const setOptionsTimeout = () => {\n const currentIndexUtil =\n props.questionSet && props.questionSet.length && props.questionSet[move];\n const questionOffset = currentIndexUtil && currentIndexUtil.question_offset;\n const optionOffset = currentIndexUtil && currentIndexUtil.option_offset;\n let time_diff = optionOffset - questionOffset;\n time_diff = time_diff * 1000;\n const showOptionsTimeout = setTimeout(() => {\n updateShowOptionBool(true);\n updateTimer(OPTION_TIME);\n }, time_diff);\n };\n\n useImperativeHandle(ref, () => ({\n submitAndNav: async () => {\n const live_quiz_id =\n props.questionSet &&\n props.questionSet.length &&\n props.questionSet[0] &&\n props.questionSet[0].quiz_challenge_id;\n\n if (inital) {\n const totalQst = (props.questionSet && props.questionSet.length) || 0;\n\n if (totalQst > move + 1) {\n const questionIndexUtil =\n props.questionSet &&\n props.questionSet.length &&\n props.questionSet[move];\n\n const nextQuestionIndexUtil =\n props.questionSet &&\n props.questionSet.length &&\n props.questionSet[move + 1];\n\n const delayTime =\n (nextQuestionIndexUtil.question_offset -\n questionIndexUtil.option_offset -\n OPTION_TIME) *\n 1000 || 0;\n\n const question_id = questionIndexUtil && questionIndexUtil.id;\n const question_answer =\n questionIndexUtil && questionIndexUtil.question_answer;\n const question_points =\n questionIndexUtil && questionIndexUtil.question_points;\n if (isAnswered) {\n await delay(delayTime - 750);\n setMove(move + 1);\n setAnswer(-1);\n\n setAnsweredState(false);\n setOpton(0);\n updateShowOptionBool(false);\n\n slider.current.slickGoTo(move + 1);\n setOptionsTimeout();\n console.log(\"wait time for \" + move + \" question:\" + delayTime);\n } else {\n submitAnswer({\n optionNumber: -99,\n correctAnswer: question_answer,\n question_id,\n live_quiz_id,\n question_points\n });\n\n await delay(delayTime - 750);\n setMove(move + 1);\n setAnswer(-1);\n\n updateShowOptionBool(false);\n\n slider.current.slickGoTo(move + 1);\n setOptionsTimeout();\n console.log(\"wait time for \" + move + \" question:\" + delayTime);\n }\n } else {\n if (isAnswered) {\n await delay(3000);\n\n props.history.replace(\"/results\");\n } else {\n const questionIndexUtil =\n props.questionSet &&\n props.questionSet.length &&\n props.questionSet[move];\n\n const question_id = questionIndexUtil && questionIndexUtil.id;\n const question_points =\n questionIndexUtil && questionIndexUtil.question_points;\n const question_answer =\n questionIndexUtil && questionIndexUtil.question_answer;\n\n submitAnswer({\n optionNumber: -99,\n correctAnswer: question_answer,\n question_id,\n live_quiz_id,\n question_points\n });\n\n await delay(3000);\n\n props.history.replace(\"/results\");\n }\n }\n }\n }\n }));\n\n const submitAnswer = ({\n optionNumber,\n correctAnswer,\n question_id,\n live_quiz_id,\n question_points\n }) => {\n let points = 0;\n if (optionNumber === correctAnswer) {\n points =\n // question_points - timer > 0 ? question_points - timer : 0;\n timer > 0 ? timer : 0;\n const cumulativePoints = currentScore + points;\n updatePrevScore(currentScore);\n updateCurrentScore(cumulativePoints);\n }\n if (!isAnswered) {\n if (optionNumber > 0) {\n setAnsweredState(true);\n setOpton(optionNumber);\n setAnswer(correctAnswer);\n }\n const answer = optionNumber ? optionNumber : -99;\n const answer_time = OPTION_TIME - timer;\n const action = Object.assign({});\n action.handler = \"V1_CHALLENGES_SUBMITANSWER\";\n action.payload = {\n answer,\n answer_time,\n question_id,\n live_quiz_id,\n current_points: points\n };\n const response = api(action);\n if (response.status === 200) {\n // props.history.push(\"/quiz/results\");\n // const answer = response.data.correct_ans;\n // const user_answer = response.data.user_answer;\n // setAnswer(answer);\n // if (answer === user_answer) {\n // const userScore = score;\n // const newScore = userScore + 10;\n // updateScore(newScore);\n // }\n } else {\n // console.log(\"answer submit fail\");\n }\n }\n };\n\n useEffect(() => {\n setInitailLode(true);\n }, []);\n\n useEffect(() => {\n if (currentScore !== prevScore) {\n updateScore(currentScore);\n }\n }, [move]);\n\n return (\n
\n
\n
\n

\n {move + 1}/{(props.questionSet && props.questionSet.length) || 0}\n

\n Question\n
\n {props.quizStreamTime && props.showFirstQuestionBool ? (\n
\n
\n

{timer}

\n
\n
\n ) : (\n
\n )}\n\n
\n

{score}

\n Score\n
\n
\n {props.quizStreamTime && props.showFirstQuestionBool ? (\n \n {props.questionSet &&\n props.questionSet.length &&\n props.questionSet.map(question => {\n return (\n
\n
\n

{question.question_text}

\n
\n {showOptionBool ? (\n
\n \n

{question.question_option_1}

\n
\n \n

{question.question_option_2}

\n
\n \n

{question.question_option_3}

\n
\n \n

{question.question_option_4}

\n
\n \n ) : (\n
\n )}\n
\n );\n })}\n \n ) : (\n
\n Hold on while we tune you in into the live stream. This will not take\n more than 45 seconds. Please do not exit.\n
\n )}\n \n );\n});\n","export const OPTION_TIME = 10;\nexport const LIVE_QUIZ_ID = 39;\n","import React, { useState, useRef, useEffect } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport Header from \"./header\";\nimport Snackbar from \"../Snackbar/index\";\nimport api from \"../../utils/api\";\nimport { Questions } from \"./questions\";\nimport ReactPlayer from \"react-player\";\nimport { OPTION_TIME, LIVE_QUIZ_ID } from \"../../utils/constants\";\n\nconst delay = ms => new Promise(res => setTimeout(res, ms));\n\nconst Play = props => {\n const childRef = useRef();\n const playerRef = useRef();\n const [questionSet, updateQuestionSet] = useState([]);\n const [timer, updateTimer] = useState(-1);\n const [isStreamPlaying, updatePlayingState] = useState(false);\n const [showFirstQuestionBool, updateShowFirstQuestionBool] = useState(false);\n const [quizStreamTime, updateQuizStreamTime] = useState(0);\n const [showOptionBool, updateShowOptionBool] = useState(false);\n const [isVideoMuted, updateIsVideoMuted] = useState(true);\n const [isPaused, updateIsPaused] = useState(false);\n\n useEffect(() => {\n let apiPollCounter = 4500000;\n\n const getQuestion = async () => {\n const action = Object.assign({});\n action.handler = \"V1_CHALLENGES_GETQUESTIONS\";\n //to do\n action.query = { live_quiz_id: LIVE_QUIZ_ID };\n const response = await api(action);\n if (response.status === 200) {\n const questionSetUtil = response.data;\n updateQuestionSet(questionSetUtil);\n } else {\n console.log(\"question fetch fail\");\n }\n };\n\n const getStreamTime = async () => {\n const action = Object.assign({});\n action.handler = \"V1_GET_STREAM_SWITCH_TIME\";\n //to do\n action.query = { live_quiz_id: LIVE_QUIZ_ID };\n while (apiPollCounter > 0) {\n const response = await api(action);\n apiPollCounter = apiPollCounter - 3;\n if (response.status === 200) {\n if (response.data !== -1) {\n apiPollCounter = 0;\n updateQuizStreamTime(response.data);\n }\n } else {\n console.log(\"fetch stream time fail\");\n }\n await delay(3000);\n }\n };\n\n getQuestion();\n\n getStreamTime();\n\n handleOnStreamReady();\n }, []);\n\n useEffect(() => {\n if (questionSet && quizStreamTime) {\n showFirstQuestion(questionSet);\n }\n }, [quizStreamTime]);\n\n const showFirstQuestion = questionSet => {\n let questionOffset =\n (questionSet &&\n questionSet.length &&\n questionSet[0] &&\n questionSet[0].question_offset) ||\n 0;\n let optionOffset =\n (questionSet &&\n questionSet.length &&\n questionSet[0] &&\n questionSet[0].option_offset) ||\n 0;\n\n questionOffset = questionOffset;\n optionOffset = optionOffset;\n\n let exactVideoStreamTime = new Date(quizStreamTime);\n exactVideoStreamTime = exactVideoStreamTime.setSeconds(\n exactVideoStreamTime.getSeconds() + questionOffset\n );\n\n let exactShowOptionsTime = new Date(quizStreamTime);\n exactShowOptionsTime = exactShowOptionsTime.setSeconds(\n exactShowOptionsTime.getSeconds() + optionOffset\n );\n const currentDate = new Date();\n const timeoutInterval =\n new Date(exactVideoStreamTime).getTime() - currentDate.getTime();\n\n const optionTimeoutInterval =\n new Date(exactShowOptionsTime).getTime() - currentDate.getTime();\n\n const qTimer = setTimeout(() => {\n updateShowFirstQuestionBool(true);\n console.log(\"wait time for first question:\" + timeoutInterval);\n }, timeoutInterval);\n\n const oTimer = setTimeout(() => {\n updateShowOptionBool(true);\n updateTimer(OPTION_TIME);\n }, optionTimeoutInterval);\n };\n\n useEffect(() => {\n handleTick();\n }, [timer]);\n\n const handleTick = () => {\n let timerTimeout = setTimeout(function() {\n if (timer < 0) {\n return;\n }\n if (timer === 0) {\n //clearInterval(timerTimeout);\n childRef.current.submitAndNav();\n return;\n } else {\n updateTimer(timer - 1);\n }\n\n //}\n }, 1000);\n };\n\n const handleOnStreamReady = () => {\n setTimeout(() => {\n updatePlayingState(true);\n }, 500);\n };\n\n const handlemuteclick = e => {\n console.log(playerRef.current);\n updateIsVideoMuted(!isVideoMuted);\n };\n\n const handlePause = () => {\n updateIsPaused(true);\n };\n\n const handlePlay = () => {\n if (isPaused) {\n playerRef.current.seekTo(0.9999);\n }\n updateIsPaused(false);\n };\n\n return (\n
\n {/*
*/}\n
\n \n
\n {quizStreamTime ? (\n \n \n {/* */}\n \n ) : isVideoMuted ? (\n \n
\n Your video is in mute. Please click the below button to start\n listening to your favorite star\n
\n
\n Unmute\n
\n
\n ) : (\n
\n Hold on while we tune you in into the live stream. This will not take\n more than 45 seconds. Please do not exit.\n
\n )}\n
\n );\n};\n\nexport default withRouter(Play);\n","import React from \"react\";\n\nexport const WinnerCard = props => {\n const { user_rank, user_score, total_participants, user_prize } = props;\n return (\n
\n
CONGRATULATIONS
\n
YOU WON!
\n
\n \n
\n
Your Score: {user_score}
\n
\n Rank # {user_rank}/{total_participants}\n
\n
\n );\n};\n\nexport const LostCard = props => {\n const { user_rank, user_score, total_participants } = props;\n return (\n
\n
YOU LOST
\n
BETTER LUCK NEXT TIME
\n {/*
\n \n
*/}\n
Your Score: {user_score}
\n
\n Rank # {user_rank}/{total_participants}\n
\n
\n );\n};\n","import React, { useState } from \"react\";\nimport api from \"../../utils/api\";\n\nexport const EnterEmailCard = () => {\n const [emailValue, updateEmailValue] = useState(\"\");\n const [showSuccessSubmission, updateSubmission] = useState(false);\n const [emailError, updateEmailError] = useState(\"\");\n\n const handleEmailChange = e => {\n if (e) {\n updateEmailValue(e.target.value);\n }\n };\n\n const submitEmail = () => {\n if (\n emailValue &&\n emailValue.indexOf(\"@\") > -1 &&\n emailValue.indexOf(\".\") > -1\n ) {\n submitEmailApi();\n } else {\n updateEmailError(\"Please enter a valid email address!\");\n }\n };\n\n const submitEmailApi = async () => {\n //alert(\"Your email ID is: \" + emailValue);\n\n const action = Object.assign({});\n action.handler = \"V1_USER_SUBMIT_EMAIL\";\n action.payload = { user_email: emailValue };\n const response = await api(action);\n if (response.status === 200) {\n updateSubmission(true);\n } else {\n console.log(\"submit email fail\");\n }\n };\n if (!showSuccessSubmission) {\n return (\n
\n
\n Provide your email address to claim winnings\n
\n {/*
\n Kindly provide your email address so that you can be contacted for\n rewards\n
*/}\n
\n \n
\n SUBMIT\n
\n
\n {emailError ?
{emailError}
:
}\n
\n );\n } else {\n return ;\n }\n};\n\nexport const GetInTouchCard = () => {\n return (\n
\n
\n \n
\n
\n Our team will get in touch with you shortly to give away your rewards\n
\n
\n );\n};\n","import React from \"react\";\nimport { FixedSizeList as List } from \"react-window\";\nimport ReactCountryFlag from \"react-country-flag\";\n\nexport const Leaderboard = props => {\n const { results } = props;\n const itemCount =\n (results && results.finalLeaderBoard && results.finalLeaderBoard.length) ||\n 0;\n return (\n
\n
LEADERBOARD
\n \n {LeaderboardRow}\n \n
\n );\n};\n\nconst LeaderboardRow = ({ data, index, style }) => {\n const dataUtil = (data && data[index]) || {};\n return (\n \n
{index + 1}
\n {dataUtil && dataUtil.country_code ? (\n getCountryFlag(dataUtil.country_code)\n ) : (\n
\n )}\n\n
\n
\n {(dataUtil && dataUtil.user_email) || \"guest_\" + dataUtil.user_id}\n
\n
\n {dataUtil && dataUtil.user_points} Pts\n
\n
\n
\n {dataUtil && dataUtil.is_a_winner ? \"Won\" : \"\"}\n
\n
\n );\n};\n\nconst getCountryFlag = country_code => {\n return ;\n};\n\nconst flagStyle = {\n height: \"1.19rem\",\n width: \"1.19rem\",\n marginRight: \"1rem\",\n marginTop: \"0.75rem\",\n alignSelf: \"center\"\n};\n","import React, { useState, useEffect } from \"react\";\nimport { WinnerCard, LostCard } from \"./header\";\nimport { EnterEmailCard } from \"./email\";\nimport { Leaderboard } from \"./leaderboard\";\nimport { useHistory } from \"react-router-dom\";\nimport api from \"../../utils/api\";\nimport { LIVE_QUIZ_ID } from \"../../utils/constants\";\n\nexport const Results = () => {\n const [results, updateResults] = useState([]);\n const [didResultsApiFail, updateDidResultsApiFail] = useState(false);\n useEffect(() => {\n const fetchResults = async () => {\n const action = Object.assign({});\n action.handler = \"V1_CHALLENGES_GET_QUIZ_RESULT\";\n action.query = { live_quiz_id: LIVE_QUIZ_ID };\n const response = await api(action);\n if (response.status === 200) {\n updateResults(response.data);\n } else {\n console.log(\"results fail\");\n updateDidResultsApiFail(true);\n }\n };\n fetchResults();\n }, []);\n\n const isWinner = (results && results.is_a_winner) || false;\n const isEmailRequired = (results && results.is_email_required) || false;\n\n if (results.length === 0 && !didResultsApiFail) {\n return (\n
\n Please wait while we fetch the results{\" \"}\n
\n );\n } else if (didResultsApiFail) {\n return
Something went wrong
;\n }\n return (\n
\n {isWinner ? : }\n {!isEmailRequired ? :
}\n \n
\n );\n};\n","import React from \"react\";\n\nexport const LobbyHeader = () => {\n return (\n
\n {/*
\n \n
*/}\n
\n \n
\n
\n );\n};\n","import React, { useState, useEffect } from \"react\";\nimport api from \"../../utils/api\";\n\nexport const LobbyTimer = props => {\n //const start_time = 1590435958454; //\"2021-01-01\";\n const start_time = props.quizStartDate;\n const [initial, setInitial] = useState(true);\n const [isJoinClicked, updateJoinClicked] = useState(false);\n\n const calcTimeLeft = () => {\n const diff = new Date(start_time) - new Date();\n let timeleft = {};\n if (diff === 0) {\n submitCountryCode(props.countryCode);\n props.history.push(\"play\");\n return;\n } else if (diff > 0) {\n if (initial) {\n setInitial(false);\n }\n\n timeleft = {\n d: Math.floor(diff / (1000 * 60 * 60 * 24)),\n h: Math.floor((diff / (1000 * 60 * 60)) % 24),\n m: Math.floor((diff / 1000 / 60) % 60),\n s: Math.floor((diff / 1000) % 60)\n };\n\n return timeleft;\n } else {\n if (!initial) {\n submitCountryCode(props.countryCode);\n props.history.push(\"play\");\n }\n // updateAlreadyStarted(true);\n return;\n }\n };\n const [timeleft, setTimeLeft] = useState(calcTimeLeft());\n\n useEffect(() => {\n const value = calcTimeLeft();\n setTimeout(() => {\n if (value === 0) {\n }\n setTimeLeft(value);\n }, 1000);\n });\n\n const timerComponent = [];\n\n timeleft &&\n Object.keys(timeleft).forEach(interval => {\n if (!timeleft[interval]) {\n return;\n }\n\n timerComponent.push(\n \n {timeleft[interval]} {interval}{\" \"}\n \n );\n });\n\n if (new Date(start_time) - new Date() < 0) {\n return (\n
Come back tomorrow for the next Quiz
\n );\n }\n\n return (\n
\n {timeleft && (timeleft[\"s\"] || timeleft[\"m\"] || timeleft[\"h\"]) ? (\n \n
LIVE QUIZ STARTING IN
\n
\n {timerComponent.length ? timerComponent : \"\"}\n
\n {/* {isJoinClicked ? (\n
Quiz Joined!
\n ) : (\n updateJoinClicked(true)}\n >\n Click here to Join Quiz!\n
\n )} */}\n \n ) : (\n
\n {/* Come back tomorrow for the next Quiz */}\n
\n )}\n
\n );\n};\n\nconst submitCountryCode = async countryCode => {\n const action = Object.assign({});\n action.handler = \"V1_USER_SUBMIT_COUNTRY\";\n action.payload = { country_code: countryCode };\n const response = await api(action);\n if (response.status === 200) {\n console.log(\"success\");\n } else {\n console.log(\"submit code fail\");\n }\n};\n","import React, { useState } from \"react\";\nimport Collapsible from \"react-collapsible\";\n\nexport const LobbyRules = props => {\n const { quizRules } = props;\n const [expandShutter, setShutterExpand] = useState(false);\n\n const handleShutterClick = () => {\n setShutterExpand(!expandShutter);\n };\n\n return (\n
\n
\n
QUIZ RULES
\n
\n Know More\n
\n
\n
\n
\n {/* {quizRules} */}\n
1. 15 questions - 10 seconds each
\n
\n 2. Each question has 4 options for answers\n
\n
\n 3. Answer faster to get more points\n
\n \n
\n 4. Terms & Conditions Apply (\n \n https://www.onefc.com/one-quiz-tnc\n \n )\n
\n
\n
\n
\n );\n};\n","import React from \"react\";\n\nexport const LobbyPrizes = props => {\n const { quizPrizes } = props;\n if (quizPrizes && quizPrizes.length) {\n return (\n
\n
TODAY'S PRIZES
\n
\n {quizPrizes.map(prize => {\n return (\n
\n \n
\n );\n })}\n
\n
\n );\n }\n return
;\n};\n","import React, { useState } from \"react\";\nimport api from \"../../utils/api\";\n\nexport const EnterEmailCardLobby = () => {\n const [emailValue, updateEmailValue] = useState(\"\");\n const [showSuccessSubmission, updateSubmission] = useState(false);\n const [emailError, updateEmailError] = useState(\"\");\n\n const handleEmailChange = e => {\n // if (emailError) {\n // updateEmailError(\"\");\n // }\n if (e) {\n updateEmailValue(e.target.value);\n }\n };\n\n const submitEmail = () => {\n if (\n emailValue &&\n emailValue.indexOf(\"@\") > -1 &&\n emailValue.indexOf(\".\") > -1\n ) {\n submitEmailApi();\n } else {\n updateEmailError(\"Please enter a valid email address!\");\n }\n };\n const submitEmailApi = async () => {\n //alert(\"Your email ID is: \" + emailValue);\n\n const action = Object.assign({});\n action.handler = \"V1_USER_SUBMIT_EMAIL\";\n action.payload = { user_email: emailValue };\n const response = await api(action);\n if (response.status === 200) {\n updateSubmission(true);\n } else {\n console.log(\"submit email fail\");\n }\n };\n if (!showSuccessSubmission) {\n return (\n
\n
\n Provide your email address so that we can get in touch with you if you\n win\n
\n\n
\n \n
\n SUBMIT\n
\n
\n {emailError ?
{emailError}
:
}\n
\n );\n } else {\n return ;\n }\n};\n\nexport const GetInTouchCard = () => {\n return (\n
\n
\n \n
\n
\n Email submitted successfully. Best of Luck!\n
\n
\n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport { LobbyHeader } from \"./header\";\nimport { LobbyTimer } from \"./timer\";\nimport { LobbyRules } from \"./rules\";\nimport { LobbyPrizes } from \"./prizes\";\nimport { EnterEmailCardLobby } from \"./email\";\nimport { withRouter } from \"react-router-dom\";\nimport api from \"../../utils/api\";\nimport { nanoid } from \"nanoid\";\nimport axios from \"axios\";\nimport ReactCountryFlag from \"react-country-flag\";\n\nconst Lobby = props => {\n const [quizData, updateQuizData] = useState([]);\n const [countryCode, updateCountryCode] = useState(\"\");\n const [countryName, updateCountryName] = useState(\"\");\n useEffect(() => {\n const getQuiz = async () => {\n const nanoidValue = nanoid();\n const action = {};\n const action_2 = {};\n action.handler = \"V1_CHALLENGES_GETCURRENTQUIZ\";\n action_2.handler = \"V1_COMMON_LAUNCH\";\n action_2.query = { gid: nanoidValue };\n if (localStorage.getItem(\"token\")) {\n const response = await api(action);\n if (response.status === 200) {\n updateQuizData(response.data);\n } else {\n console.log(\"Get current quiz failed!\");\n }\n } else {\n const [response, response_2] = await Promise.all([\n api(action),\n api(action_2)\n ]);\n if (response_2.status === 200) {\n localStorage.setItem(\"token\", response_2.data);\n }\n if (response.status === 200) {\n updateQuizData(response.data);\n }\n if (response.status !== 200) {\n console.log(\"Get current quiz failed!\");\n }\n }\n };\n getQuiz();\n getGeoInfo();\n }, []);\n\n const getGeoInfo = () => {\n axios\n .get(\"https://ipapi.co/json/\")\n .then(response => {\n const data = response.data || {};\n updateCountryCode(data.country_code);\n updateCountryName(data.country_name);\n })\n .catch(error => {\n console.log(error);\n });\n };\n\n return (\n
\n \n \n \n \n \n {countryCode ? (\n
\n You are playing from {\" \"}\n {countryName}\n
\n ) : (\n
\n )}\n
\n );\n};\n\nexport default withRouter(Lobby);\n","const createHistory = require(\"history\").createBrowserHistory;\nconst history = createHistory();\nexport default history;\n","import React from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\nimport { ContextProvider } from \"../shells/ContextProvider\";\nimport Play from \"../shells/Play\";\nimport { BrowserRouter as Router } from \"react-router-dom\";\nimport { Results } from \"../shells/Results\";\nimport Lobby from \"../shells/Lobby\";\nimport history from \"./history\";\n\nfunction Root() {\n return (\n \n \n }>\n }>\n }>\n }>\n \n \n );\n}\nexport default Root;\n","import React from \"react\";\nimport \"./main.css\";\nimport Root from \"./root/index\";\nfunction App() {\n return (\n
\n \n
\n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}