{"version":3,"file":"static/js/764.80ec9595.chunk.js","mappings":"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","sources":["hooks/usePageTitle.tsx","components/Breadcrumbs.tsx","components/buttons/AcceptMatchButton.tsx","components/buttons/DeclineMatchButton.tsx","components/modals/ConfirmMatchModal.tsx","components/modals/NotificationModal.tsx","components/modals/CancelMatchDeclinedModal.tsx","components/modals/CancelMatchReceivedModal.tsx","components/modals/ChallengeDeclinedModal.tsx","components/modals/EntrantDeclinedMatchModal.tsx","components/modals/MatchAutoCancelledModal.tsx","components/modals/MatchCancelledModal.tsx","components/modals/MatchReceivedModal.tsx","components/modals/OpponentDeclinedMatchModal.tsx","components/modals/MatchCompletedModal.tsx","pages/Page.tsx","utils/BrandingUtils.tsx"],"sourcesContent":["import { useEffect } from \"react\";\r\nimport { BrandingUtils } from \"utils/BrandingUtils\";\r\n\r\nexport const usePageTitle = (props: { title?: string }) => {\r\n const { title } = props;\r\n\r\n const { siteName } = BrandingUtils;\r\n\r\n // set the title\r\n useEffect(() => {\r\n if (title) {\r\n const titleElement = document.querySelector(\"title\");\r\n const ogTitleElement = document.querySelector(\"meta[property='og:title']\");\r\n\r\n if (titleElement && ogTitleElement) {\r\n // we only want to show the site name on home page\r\n const fullTitle = title.length ? `${title} - ${siteName}` : siteName;\r\n\r\n titleElement.textContent = fullTitle;\r\n ogTitleElement.setAttribute(\"content\", fullTitle);\r\n }\r\n }\r\n }, [title, siteName]);\r\n\r\n return {};\r\n};\r\n","import { Link } from \"react-router-dom\";\r\nimport { RouteList } from \"Routes\";\r\n\r\nexport type BreadcrumbItem = {\r\n name: string;\r\n url: string;\r\n};\r\n\r\nexport const Breadcrumb = (name: string, url: string): BreadcrumbItem => ({\r\n name: name,\r\n url: url,\r\n});\r\n\r\nexport const Breadcrumbs = (props: { name?: string; items?: Array; pageTitle?: string }) => {\r\n const { name, items, pageTitle } = props;\r\n\r\n return (\r\n
\r\n \r\n\r\n {pageTitle ? (\r\n

{pageTitle}

\r\n ) : (\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n","import { GlobalContext } from \"contexts/GlobalContext\";\r\nimport { LadderContext } from \"contexts/LadderContext\";\r\nimport { useContext, useState } from \"react\";\r\n\r\nexport const AcceptMatchButton = () => {\r\n const { service, catchServerError } = useContext(GlobalContext);\r\n const { ladder } = useContext(LadderContext);\r\n const { acceptQueueMatch } = service;\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n if (!ladder) {\r\n return null;\r\n }\r\n\r\n return (\r\n {\r\n setIsLoading(true);\r\n\r\n acceptQueueMatch(ladder.ladderId)\r\n .then(() => {\r\n setIsLoading(false);\r\n })\r\n .catch(catchServerError);\r\n }}\r\n >\r\n Accept match\r\n \r\n );\r\n};\r\n","import { GlobalContext } from \"contexts/GlobalContext\";\r\nimport { LadderContext } from \"contexts/LadderContext\";\r\nimport { useContext, useState } from \"react\";\r\n\r\nexport const DeclineMatchButton = () => {\r\n const { service, catchServerError } = useContext(GlobalContext);\r\n const { rejectQueueMatch } = service;\r\n const { ladder } = useContext(LadderContext);\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n if (!ladder) {\r\n return null;\r\n }\r\n\r\n return (\r\n {\r\n setIsLoading(true);\r\n\r\n rejectQueueMatch(ladder.ladderId)\r\n .then(() => {\r\n setIsLoading(false);\r\n })\r\n .catch(catchServerError);\r\n }}\r\n >\r\n Decline match\r\n \r\n );\r\n};\r\n","import { Modal } from \"bootstrap\";\r\nimport { AcceptMatchButton } from \"components/buttons/AcceptMatchButton\";\r\nimport { DeclineMatchButton } from \"components/buttons/DeclineMatchButton\";\r\nimport { LadderContext } from \"contexts/LadderContext\";\r\nimport { Fragment, useContext, useEffect, useRef } from \"react\";\r\n\r\nexport const ConfirmMatchModal = () => {\r\n const { playerState, ladder } = useContext(LadderContext);\r\n\r\n const modalRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (playerState?.confirmation?.userHasConfirmation && modalRef.current) {\r\n const modalInstance = Modal.getOrCreateInstance(modalRef.current);\r\n\r\n modalInstance.show();\r\n\r\n return () => {\r\n modalInstance.hide();\r\n };\r\n }\r\n }, [playerState?.confirmation?.userHasConfirmation]);\r\n\r\n if (!playerState?.confirmation?.userHasConfirmation) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
Match found!
\r\n
\r\n\r\n
\r\n {playerState.confirmation.userHasConfirmed ? (\r\n \r\n You have been matched with {playerState.confirmation.opponentName}\r\n \r\n ) : ladder?.isAutoCancelEnabled ? (\r\n \"You have two minutes to accept your match\"\r\n ) : (\r\n \"Please accept your match to continue\"\r\n )}\r\n
\r\n\r\n
\r\n {playerState.confirmation?.userHasConfirmed ? (\r\n
\r\n \r\n
Waiting on opponent to accept match
\r\n
\r\n ) : (\r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import { Modal } from \"bootstrap\";\r\nimport { ReactNode, useEffect, useRef } from \"react\";\r\n\r\nexport const NotificationModal = (props: {\r\n title: string;\r\n children: ReactNode;\r\n show: boolean;\r\n onClose: () => void;\r\n}) => {\r\n const { children, onClose, show, title } = props;\r\n\r\n const modalRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (modalRef.current && show) {\r\n const modal = Modal.getOrCreateInstance(modalRef.current);\r\n\r\n modalRef.current.addEventListener(\"hidden.bs.modal\", () => {\r\n onClose();\r\n });\r\n\r\n modal.show();\r\n\r\n return () => {\r\n modal.hide();\r\n };\r\n }\r\n }, [onClose, show]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
{title}
\r\n\r\n \r\n
\r\n\r\n
{children}
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import { LadderContext } from \"contexts/LadderContext\";\r\nimport { useContext } from \"react\";\r\nimport { NotificationModal } from \"./NotificationModal\";\r\n\r\nexport const CancelMatchDeclinedModal = () => {\r\n const { showCancellationDeclined, setShowCancellationDeclined } = useContext(LadderContext);\r\n\r\n return (\r\n setShowCancellationDeclined(false)}\r\n >\r\n Your opponent declined your request to cancel the match.\r\n \r\n );\r\n};\r\n","import { Modal } from \"bootstrap\";\r\nimport { GlobalContext } from \"contexts/GlobalContext\";\r\nimport { LadderContext } from \"contexts/LadderContext\";\r\nimport { useContext, useEffect, useRef, useState } from \"react\";\r\n\r\nexport const CancelMatchReceivedModal = () => {\r\n const { service, catchServerError } = useContext(GlobalContext);\r\n const { acceptCancelMatch, rejectCancelMatch } = service;\r\n const { playerState } = useContext(LadderContext);\r\n\r\n const cancelMatchReceived = playerState?.cancellation?.userHasCancellationReceived;\r\n\r\n const modalRef = useRef(null);\r\n\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n useEffect(() => {\r\n if (cancelMatchReceived && modalRef.current) {\r\n const modalInstance = Modal.getOrCreateInstance(modalRef.current);\r\n\r\n modalInstance.show();\r\n\r\n return () => {\r\n modalInstance.hide();\r\n };\r\n }\r\n }, [cancelMatchReceived]);\r\n\r\n if (!cancelMatchReceived) {\r\n return null;\r\n }\r\n\r\n const accept = () => {\r\n if (playerState?.cancellation?.id) {\r\n setIsSubmitting(true);\r\n\r\n acceptCancelMatch(playerState.cancellation.id)\r\n .then(() => {\r\n setIsSubmitting(false);\r\n })\r\n .catch(catchServerError);\r\n }\r\n };\r\n\r\n const reject = () => {\r\n if (playerState?.cancellation?.id) {\r\n setIsSubmitting(true);\r\n\r\n rejectCancelMatch(playerState.cancellation.id)\r\n .then(() => {\r\n setIsSubmitting(false);\r\n })\r\n .catch(catchServerError);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
Cancel match?
\r\n
\r\n\r\n
\r\n Your opponent wants to cancel the match. If you both agree the match will be cancelled and no\r\n loss will be recorded.\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import { LadderContext } from \"contexts/LadderContext\";\r\nimport { useContext } from \"react\";\r\nimport { NotificationModal } from \"./NotificationModal\";\r\n\r\nexport const ChallengeDeclinedModal = () => {\r\n const { showChallengeDeclined, setShowChallengeDeclined } = useContext(LadderContext);\r\n\r\n return (\r\n setShowChallengeDeclined(false)}\r\n >\r\n Your opponent declined your challenge.\r\n \r\n );\r\n};\r\n","import { LadderContext } from \"contexts/LadderContext\";\r\nimport { useContext } from \"react\";\r\nimport { NotificationModal } from \"./NotificationModal\";\r\n\r\nexport const EntrantDeclinedMatchModal = () => {\r\n const { showEntrantDeclinedMatch, setShowEntrantDeclinedMatch } = useContext(LadderContext);\r\n\r\n return (\r\n setShowEntrantDeclinedMatch(false)}\r\n >\r\n You have declined the match.\r\n \r\n );\r\n};\r\n","import { LadderContext } from \"contexts/LadderContext\";\r\nimport { useContext } from \"react\";\r\nimport { NotificationModal } from \"./NotificationModal\";\r\n\r\nexport const MatchAutoCancelledModal = () => {\r\n const { showMatchAutoCancelled, setShowMatchAutoCancelled } = useContext(LadderContext);\r\n\r\n return (\r\n setShowMatchAutoCancelled(false)}\r\n >\r\n Your match was cancelled because both players did not approve in time.\r\n \r\n );\r\n};\r\n","import { LadderContext } from \"contexts/LadderContext\";\r\nimport { useContext } from \"react\";\r\nimport { NotificationModal } from \"./NotificationModal\";\r\n\r\nexport const MatchCancelledModal = () => {\r\n const { showMatchCancelled, setShowMatchCancelled } = useContext(LadderContext);\r\n\r\n return (\r\n setShowMatchCancelled(false)}\r\n >\r\n Your match has been cancelled. No Elo change or loss will be recorded.\r\n \r\n );\r\n};\r\n","import { Modal } from \"bootstrap\";\r\nimport { GlobalContext } from \"contexts/GlobalContext\";\r\nimport { LadderContext } from \"contexts/LadderContext\";\r\nimport { useContext, useEffect, useRef, useState } from \"react\";\r\n\r\nexport const MatchReceivedModal = () => {\r\n const { service, catchServerError } = useContext(GlobalContext);\r\n const { acceptChallenge, rejectChallenge } = service;\r\n const { playerState } = useContext(LadderContext);\r\n\r\n const challengeReceived = playerState?.challenge?.userHasChallengeReceived;\r\n\r\n const modalRef = useRef(null);\r\n\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n useEffect(() => {\r\n if (challengeReceived && modalRef.current) {\r\n const modalInstance = Modal.getOrCreateInstance(modalRef.current);\r\n\r\n modalInstance.show();\r\n\r\n return () => {\r\n modalInstance.hide();\r\n };\r\n }\r\n }, [challengeReceived]);\r\n\r\n if (!challengeReceived) {\r\n return null;\r\n }\r\n\r\n const accept = () => {\r\n if (playerState?.challenge?.id) {\r\n setIsSubmitting(true);\r\n\r\n acceptChallenge(playerState.challenge.id)\r\n .then(() => {\r\n setIsSubmitting(false);\r\n })\r\n .catch(catchServerError);\r\n }\r\n };\r\n\r\n const reject = () => {\r\n if (playerState?.challenge?.id) {\r\n setIsSubmitting(true);\r\n\r\n rejectChallenge(playerState.challenge.id)\r\n .then(() => {\r\n setIsSubmitting(false);\r\n })\r\n .catch(catchServerError);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
Challenge received!
\r\n
\r\n\r\n
\r\n You have been challenged by {playerState?.challenge?.opponentName}\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import { LadderContext } from \"contexts/LadderContext\";\r\nimport { useContext } from \"react\";\r\nimport { NotificationModal } from \"./NotificationModal\";\r\n\r\nexport const OpponentDeclinedMatchModal = () => {\r\n const { showOpponentDeclinedMatch, setShowOpponentDeclinedMatch } = useContext(LadderContext);\r\n\r\n return (\r\n setShowOpponentDeclinedMatch(false)}\r\n >\r\n Your opponent has declined the match.\r\n \r\n );\r\n};\r\n","import { LadderContext } from \"contexts/LadderContext\";\r\nimport { useContext } from \"react\";\r\nimport { NotificationModal } from \"./NotificationModal\";\r\n\r\nexport const MatchCompletedModal = () => {\r\n const { completedResult, setCompletedResult } = useContext(LadderContext);\r\n\r\n return (\r\n {\r\n setCompletedResult(undefined);\r\n }}\r\n >\r\n {completedResult && (\r\n
\r\n {completedResult.isForfeit && (\r\n
\r\n {completedResult.loserName} forfeited\r\n
\r\n )}\r\n\r\n
\r\n
\r\n
\r\n {!completedResult.isForfeit &&
{completedResult.winCount}
}\r\n\r\n
\r\n
{completedResult.winnerName}
\r\n\r\n
\r\n \r\n +{completedResult.eloChange}\r\n \r\n
\r\n\r\n {completedResult.winnerCharacters.length > 0 && (\r\n
\r\n {completedResult.winnerCharacters.map(c => (\r\n \"\"\r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {!completedResult.isForfeit &&
{completedResult.lossCount}
}\r\n\r\n
\r\n
{completedResult.loserName}
\r\n\r\n
\r\n \r\n -{completedResult.eloChange}\r\n \r\n
\r\n {completedResult.loserCharacters.length > 0 && (\r\n
\r\n {completedResult.loserCharacters.map(c => (\r\n \"\"\r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n \r\n );\r\n};\r\n","import { Fragment, PropsWithChildren, useContext, useEffect } from \"react\";\r\nimport { BreadcrumbItem, Breadcrumbs } from \"components/Breadcrumbs\";\r\nimport { GlobalContext } from \"contexts/GlobalContext\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { RouteList } from \"Routes\";\r\nimport { Collapse } from \"bootstrap\";\r\nimport { ConfirmMatchModal } from \"components/modals/ConfirmMatchModal\";\r\nimport { CancelMatchDeclinedModal } from \"components/modals/CancelMatchDeclinedModal\";\r\nimport { CancelMatchReceivedModal } from \"components/modals/CancelMatchReceivedModal\";\r\nimport { ChallengeDeclinedModal } from \"components/modals/ChallengeDeclinedModal\";\r\nimport { EntrantDeclinedMatchModal } from \"components/modals/EntrantDeclinedMatchModal\";\r\nimport { MatchAutoCancelledModal } from \"components/modals/MatchAutoCancelledModal\";\r\nimport { MatchCancelledModal } from \"components/modals/MatchCancelledModal\";\r\nimport { MatchReceivedModal } from \"components/modals/MatchReceivedModal\";\r\nimport { OpponentDeclinedMatchModal } from \"components/modals/OpponentDeclinedMatchModal\";\r\nimport { MatchCompletedModal } from \"components/modals/MatchCompletedModal\";\r\nimport { usePageTitle } from \"hooks/usePageTitle\";\r\n\r\ntype Auth = \"LoggedInOnly\" | \"LoggedOutOnly\";\r\n\r\nexport const Page = (\r\n props: PropsWithChildren<{\r\n title?: string;\r\n description: string;\r\n canonical: string;\r\n breadcrumbs?: Array;\r\n breadcrumbName?: string;\r\n auth?: Auth;\r\n }>,\r\n) => {\r\n const { children, title, description, canonical, breadcrumbs, breadcrumbName, auth } = props;\r\n\r\n const { isAuthenticated } = useContext(GlobalContext);\r\n\r\n const history = useHistory();\r\n\r\n usePageTitle({ title });\r\n\r\n // handle auth\r\n useEffect(() => {\r\n if (auth) {\r\n if (auth === \"LoggedInOnly\" && !isAuthenticated) {\r\n history.push(RouteList.AccountLogin);\r\n }\r\n\r\n if (auth === \"LoggedOutOnly\" && isAuthenticated) {\r\n history.push(RouteList.Home);\r\n }\r\n }\r\n }, [auth, history, isAuthenticated]);\r\n\r\n // basic tidy up each page load\r\n useEffect(() => {\r\n // scroll to top on page change\r\n window.scroll(0, 0);\r\n\r\n // close navbar\r\n const collapseElement = document.getElementById(\"nav\");\r\n\r\n if (collapseElement) {\r\n const bsCollapse = Collapse.getInstance(collapseElement);\r\n\r\n if (bsCollapse) {\r\n bsCollapse.hide();\r\n }\r\n }\r\n }, []);\r\n\r\n // set the description\r\n useEffect(() => {\r\n const descriptionElement = document.querySelector(\"meta[name='description']\");\r\n const ogDescriptionElement = document.querySelector(\"meta[property='og:description']\");\r\n\r\n if (descriptionElement && ogDescriptionElement) {\r\n descriptionElement.setAttribute(\"content\", description);\r\n ogDescriptionElement.setAttribute(\"content\", description ?? \"\");\r\n }\r\n }, [description]);\r\n\r\n // set canonical url\r\n useEffect(() => {\r\n const fullCanonical = `https://${window.location.host}${canonical}`;\r\n\r\n const canonicalElement = document.querySelector(\"link[rel='canonical']\");\r\n\r\n if (canonicalElement) {\r\n canonicalElement.setAttribute(\"href\", fullCanonical);\r\n }\r\n }, [canonical]);\r\n\r\n return (\r\n \r\n
\r\n \r\n\r\n {children}\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","export const BrandingUtils = Object.freeze({\r\n siteName: \"Ausmash\",\r\n});\r\n"],"names":["usePageTitle","props","title","siteName","BrandingUtils","useEffect","titleElement","document","querySelector","ogTitleElement","fullTitle","length","concat","textContent","setAttribute","Breadcrumbs","name","items","pageTitle","_jsxs","className","children","_jsx","Link","to","RouteList","Home","map","item","url","AcceptMatchButton","service","catchServerError","useContext","GlobalContext","ladder","LadderContext","acceptQueueMatch","isLoading","setIsLoading","useState","type","disabled","onClick","ladderId","then","catch","DeclineMatchButton","rejectQueueMatch","ConfirmMatchModal","_playerState$confirma2","_playerState$confirma3","_playerState$confirma4","playerState","modalRef","useRef","_playerState$confirma","confirmation","userHasConfirmation","current","modalInstance","Modal","getOrCreateInstance","show","hide","ref","userHasConfirmed","opponentName","isAutoCancelEnabled","Fragment","NotificationModal","onClose","modal","addEventListener","CancelMatchDeclinedModal","showCancellationDeclined","setShowCancellationDeclined","CancelMatchReceivedModal","_playerState$cancella","acceptCancelMatch","rejectCancelMatch","cancelMatchReceived","cancellation","userHasCancellationReceived","isSubmitting","setIsSubmitting","accept","_playerState$cancella2","id","reject","_playerState$cancella3","ChallengeDeclinedModal","showChallengeDeclined","setShowChallengeDeclined","EntrantDeclinedMatchModal","showEntrantDeclinedMatch","setShowEntrantDeclinedMatch","MatchAutoCancelledModal","showMatchAutoCancelled","setShowMatchAutoCancelled","MatchCancelledModal","showMatchCancelled","setShowMatchCancelled","MatchReceivedModal","_playerState$challeng","_playerState$challeng4","acceptChallenge","rejectChallenge","challengeReceived","challenge","userHasChallengeReceived","_playerState$challeng2","_playerState$challeng3","OpponentDeclinedMatchModal","showOpponentDeclinedMatch","setShowOpponentDeclinedMatch","MatchCompletedModal","completedResult","setCompletedResult","undefined","isForfeit","loserName","winCount","winnerName","eloChange","winnerCharacters","c","alt","src","lossCount","loserCharacters","Page","description","canonical","breadcrumbs","breadcrumbName","auth","isAuthenticated","history","useHistory","push","AccountLogin","window","scroll","collapseElement","getElementById","bsCollapse","Collapse","getInstance","descriptionElement","ogDescriptionElement","fullCanonical","location","host","canonicalElement","Object","freeze"],"sourceRoot":""}