{"version":3,"sources":["assets/images/logo_stay4golf.png","layout.js","components/confirm.dialog.js","service/requeshandler.js","service/service.config.js","service/googlesheet.service.js","components/player.form.js","components/player.summertour.form.js","views/thankyou.js","components/player.list.js","components/details.form.js","components/validation.feedback.js","components/get-member.form.js","components/guestplayer.dialog.js","util/sort.js","components/player.select.js","util/validator.js","components/registration.form.js","views/thankyou.activity.js","components/activity.item.js","components/activity.form.js","views/home.js","components/booking/handlespainactivity.booking.js","components/booking/handlecompetition.booking.js","service/appsettings.service.js","app.js","registerServiceWorker.js","index.js"],"names":["module","exports","Layout","props","useState","title","setTitle","useEffect","window","location","href","endsWith","className","target","rel","src","logo","alt","align","Container","children","icon","faFacebookF","faInstagram","ConfirmDialog","open","name","confirm","close","Dialog","onClose","aria-labelledby","aria-describedby","DialogTitle","id","DialogContent","undefined","DialogContentText","DialogActions","Button","onClick","autoFocus","createRequest","method","data","recaptchToken","request","cache","headers","body","JSON","stringify","handleResponse","response","a","status","json","getRegistrationStatus","fetch","RequestHandler","searchMember","memberNo","submitRegistrations","competitionType","registrations","recaptchaToken","getCompetition","getCompetitions","getPlayers","sheetName","getActivities","submitActivityRegistrations","email","getRegistrations","competitionId","registrationNumber","getActivityRegistrations","updateRegistrations","cancelRegistration","playerName","cancelActivityRegistration","activityId","participantName","PlayerForm","updatePlayer","player","isBlueTeeAvailable","enableCancel","updateValidation","cancelling","setCancelling","confirmCancelOpen","setConfirmCancelOpen","LoadingButton","loading","variant","loadingPosition","startIcon","isGuest","TextField","required","label","sx","width","value","handicap","onChange","e","FormControl","InputLabel","Select","labelId","teeType","MenuItem","disabled","GoogleSheetsService","then","success","PlayerSummerTourForm","disableName","disableGolfId","alreadyRegistered","golfId","dinnerOption","ThankYou","competition","players","member","newBooking","state","registrationDetails","titleRef","useRef","current","scrollIntoView","behavior","getEmail","ref","getTitle","Fragment","track","startingTime","split","substring","map","p","key","color","PlayerList","Accordion","AccordionSummary","expandIcon","aria-controls","Typography","AccordionDetails","length","sort","b","localeCompare","DetailsForm","setRegistrationDetails","telephone","postCode","city","fullWidth","comment","multiline","rows","ValidationFeedback","validationInfo","validationWarning","validationError","GetMemberForm","updateMember","memberSearchRef","setMemberNo","searchingMember","setSearchingMember","memberError","setMemberError","result","setTimeout","onKeyUp","keyCode","GuestPlayerDialog","dialogOpen","setDialogOpen","addGuestPlayer","error","setError","setName","setGuestName","filter","type","sortPlayers","p1","p2","PlayerSelect","updatePlayers","playersRef","maxSelect","canAddGuest","guestDialogOpen","setQuestDialogOpen","FormGroup","FormControlLabel","control","Checkbox","checked","participating","updatedPlayers","updatedPlayer","find","inputProps","_","toLowerCase","guestPlayer","push","isEmailValid","test","isGolfIdValid","RegistrationForm","reCAPTCHAActive","goBack","resetRegistrationType","loadingCompetitions","setLoadingCompetitions","competitions","setCompetitions","setCompetition","setMember","setPlayers","registeredPlayers","setRegisteredPlayers","playerCount","setPlayerCount","setValidationError","setValidationWarning","submitting","setSubmitting","showThankYou","setShowThankYou","approveReCAPTCHA","setApproveReCAPTCHA","approveGDPR","setApproveGDPR","singleRegistration","setSingleRegistration","recaptchaRef","infoTitleRef","thankYouRef","submitButtonRef","competitionRef","noOfOpenSpots","isPlayerRegistered","number","trim","setDefaultSummerTourPlayers","validateRegistration","Set","item","hcpValue","replace","lastChar","charAt","isNaN","isHandicapValid","indexOf","registration","submitRegistration","getValue","index","findIndex","splice","getCompetitionStatus","getSpotDescription","c","description","whiteSpace","wordBreak","getCompetitionSelectName","dangerouslySetInnerHTML","__html","link","phoneNumber","hl","sitekey","dinner","validateSummerTourRegistration","ThankYouActivity","activities","participants","newRegistration","dateDisplay","selection","ActivityItem","noOfParticipants","padding","ActivityForm","setLoading","setActivities","setParticipants","activitiesAvailable","setActivitiesAvailable","aa","options","option","o","join","updatedParticipants","updateActivities","ap","activity","fullActivityIndex","addActivity","activityIndex","updateActivity","updateActivityParticipant","updateActivityIndex","updateActivityParticipantIndex","activityOptionsSet","participantOptionsUnset","phonenumber","Home","registrationStatus","registrationType","setRegistrationType","setGoBack","spainCompetitions","summerTourCompetitions","resetInfoTimeoutId","HandleSpainActivityBooking","activityRegistrations","setActivityRegistrations","setEmail","confirmCancelTarget","setConfirmCancelTarget","info","setInfo","queryParams","URLSearchParams","search","get","newInfo","newError","clearTimeout","activityRegistration","marginRight","updatedCancelling","updatedActivityRegistrations","participantIndex","HandleCompetitionBooking","saving","setSaving","setRegistrations","Promise","all","forEach","updatedRegistrations","getReCAPTCHAActive","App","setReCAPTCHAActive","setRegistrationStatus","AppSettingsService","exact","path","component","currentVersion","version","isEnabled","process","isVerboseMode","metaFileDirectory","includes","isLocalhost","Boolean","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","onupdatefound","installingWorker","installing","onstatechange","controller","console","log","catch","baseUrl","document","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","basename","URL","origin","addEventListener","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.04bbdbac.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/logo_stay4golf.a364a44f.png\";","import React, { useState, useEffect } from 'react';\nimport { Container } from 'reactstrap';\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faFacebookF, faInstagram } from \"@fortawesome/free-brands-svg-icons\";\n\nimport logo from './assets/images/logo_stay4golf.png';\n\nimport './custom.css';\nimport './mobile.css';\n\nconst Layout = (props) => {\n const [title, setTitle] = useState('');\n\n useEffect(() => {\n if (window.location.href.endsWith('summertour')) {\n setTitle('Välkommen till Stay4Golfs SOMMARTOURS-ANMÄLAN');\n } else {\n setTitle('Välkommen till Stay4Golfs anmälningssida');\n }\n }, []);\n\n return (\n
\n
\n
\n Logo\n

{title}

\n
\n \n {props.children}\n \n
\n
\n
\n
\n
Följ oss
\n \n \n
\n
\n
\n
\n
040 - 29 44 00
\n
info@stay4golf.se
\n
\n
\n
\n
\n );\n}\n\nexport default Layout;\n","import React from 'react';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nconst ConfirmDialog = ({ open, name, target, confirm, close }) => {\n return (\n \n \n Är du säker?\n \n \n {(target !== null && target !== undefined) && \n Är du säker på att du vill avboka {name} för {target}\n }\n {(target === null || target === undefined) && \n Är du säker på att du vill avboka {name}\n }\n \n \n \n \n \n \n );\n}\n\nexport default ConfirmDialog","import ApiKey from '../service/service.config'\n\nexport default {\n createRequest: (method, data, recaptchToken) => {\n let request = {\n method: method,\n cache: 'no-cache',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Api-Key': ApiKey,\n 'X-ReCAPTCHA-Token': recaptchToken\n }\n }\n\n if(data) {\n request.body = JSON.stringify(data);\n }\n\n if (recaptchToken) {\n request.headers['X-ReCAPTCHA-Token'] = recaptchToken;\n }\n\n return request;\n },\n handleResponse: async (response) => {\n if (response.status === 200 || response.status === 204) {\n try {\n return await response.json();\n }\n catch { }\n }\n\n return null;\n }\n}","const ApiKey = '67703ffb-34cd-4cd5-85eb-4f8c73eab228';\n\nexport default ApiKey;","import RequestHandler from '../service/requeshandler'\n\nexport default {\n getRegistrationStatus: async () => {\n var response = await fetch(`googlesheet/registration/status/`, RequestHandler.createRequest('GET'));\n return await RequestHandler.handleResponse(response);\n },\n searchMember: async (memberNo) => {\n var response = await fetch(`googlesheet/member/search/${memberNo}`, RequestHandler.createRequest('GET'));\n return await RequestHandler.handleResponse(response);\n },\n submitRegistrations: async (competitionType, registrations, recaptchaToken) => {\n var response = await fetch(`googlesheet/competition/registration/${competitionType}`, RequestHandler.createRequest('POST', registrations, recaptchaToken));\n return await RequestHandler.handleResponse(response);\n },\n getCompetition: async (competitionType, id) => {\n var response = await fetch(`googlesheet/competition/${competitionType}/${id}`, RequestHandler.createRequest('GET'));\n return await RequestHandler.handleResponse(response);\n },\n getCompetitions: async (competitionType) => {\n var response = await fetch(`googlesheet/competition/${competitionType}`, RequestHandler.createRequest('GET'));\n return await RequestHandler.handleResponse(response);\n },\n getPlayers: async (competitionType, sheetName) => {\n var response = await fetch(`googlesheet/competition/players/${competitionType}/${sheetName}`, RequestHandler.createRequest('GET'));\n return await RequestHandler.handleResponse(response);\n },\n getActivities: async () => {\n var response = await fetch(`googlesheet/activity`, RequestHandler.createRequest('GET'));\n return await RequestHandler.handleResponse(response);\n },\n submitActivityRegistrations: async (email, registrations, recaptchaToken) => {\n var response = await fetch(`googlesheet/activity/registration/${email}`, RequestHandler.createRequest('POST', registrations, recaptchaToken));\n return await RequestHandler.handleResponse(response);\n },\n getRegistrations: async (competitionType, competitionId, registrationNumber) => {\n var response = await fetch(`googlesheet/registration/${competitionType}/${competitionId}/${registrationNumber}`, RequestHandler.createRequest('GET'));\n return await RequestHandler.handleResponse(response);\n },\n getActivityRegistrations: async (registrationNumber) => {\n var response = await fetch(`googlesheet/registration/activity/${registrationNumber}`, RequestHandler.createRequest('GET'));\n return await RequestHandler.handleResponse(response);\n },\n updateRegistrations: async (competitionType, competitionId, registrationNumber, registrations, recaptchaToken) => {\n var response = await fetch(`googlesheet/competition/registration/${competitionType}/${competitionId}/${registrationNumber}`, RequestHandler.createRequest('PUT', registrations, recaptchaToken));\n return await RequestHandler.handleResponse(response);\n },\n cancelRegistration: async (competitionType, competitionId, registrationNumber, playerName) => {\n var response = await fetch(`googlesheet/competition/registration/cancel/${competitionType}/${competitionId}/${registrationNumber}/${playerName}`, RequestHandler.createRequest('PUT'));\n return await RequestHandler.handleResponse(response);\n },\n cancelActivityRegistration: async (activityId, email, participantName) => {\n var response = await fetch(`googlesheet/activity/registration/cancel/${activityId}/${email}/${participantName}`, RequestHandler.createRequest('PUT'));\n return await RequestHandler.handleResponse(response);\n },\n}","import React, { useState } from 'react';\nimport FormControl from '@mui/material/FormControl';\nimport TextField from '@mui/material/TextField';\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select from '@mui/material/Select';\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport CancelIcon from '@mui/icons-material/Cancel';\nimport ConfirmDialog from './confirm.dialog';\n\nimport GoogleSheetsService from '../service/googlesheet.service';\n\nconst PlayerForm = ({ updatePlayer, player, isBlueTeeAvailable, enableCancel, competitionId, updateValidation }) => {\n const [cancelling, setCancelling] = useState(false);\n const [confirmCancelOpen, setConfirmCancelOpen] = useState(false);\n\n const cancelRegistration = () => {\n updateValidation('', '');\n setConfirmCancelOpen(false);\n setCancelling(true);\n GoogleSheetsService.cancelRegistration(1, competitionId, player.registrationNumber, player.name).then((success) => {\n setCancelling(false);\n if (success === true) {\n updatePlayer({ ...player, status: 4 });\n updateValidation(`${player.name} är nu avbokad från tävlingen!`, '');\n } else {\n updateValidation('', 'Tävlingen börjar snart! Du kan tyvärr inte längre avboka eller ändra på din bokning');\n }\n });\n }\n\n return (\n
\n
\n
\n {enableCancel === true &&
\n }\n onClick={() => setConfirmCancelOpen(true)}>\n Avboka\n \n
}\n
\n

{`${player.name} ${player.isGuest ? '(Gäst)' : ''} ${player.status === 2 ? '(Reserv)' : ''}`}

\n
\n
\n
\n
\n updatePlayer({ ...player, handicap: e.target.value })} />\n
\n
\n \n Tee *\n \n \n
\n
\n
\n cancelRegistration()}\n close={() => setConfirmCancelOpen(false)}\n />\n
\n );\n}\n\nexport default PlayerForm;\n","import React, { useState } from 'react';\nimport FormControl from '@mui/material/FormControl';\nimport TextField from '@mui/material/TextField';\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select from '@mui/material/Select';\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport CancelIcon from '@mui/icons-material/Cancel';\nimport ConfirmDialog from './confirm.dialog';\n\nimport GoogleSheetsService from '../service/googlesheet.service';\n\nconst PlayerSummerTourForm = ({ disableName, disableGolfId, updatePlayer, player, enableCancel, competitionId, updateValidation }) => {\n const [cancelling, setCancelling] = useState(false);\n const [confirmCancelOpen, setConfirmCancelOpen] = useState(false);\n\n const cancelRegistration = () => {\n setConfirmCancelOpen(false);\n setCancelling(true);\n GoogleSheetsService.cancelRegistration(2, competitionId, player.registrationNumber, player.name).then((success) => {\n setCancelling(false);\n if (success === true) {\n updatePlayer({ ...player, status: 4 });\n updateValidation(`${player.name} är nu avbokad från tävlingen!`, '');\n } else {\n updateValidation('', 'Tävlingen börjar snart! Du kan tyvärr inte längre avboka eller ändra på din bokning');\n }\n });\n }\n\n return (\n
\n
\n
\n
\n
\n {enableCancel === true &&
\n }\n onClick={() => setConfirmCancelOpen(true)}>\n Avboka\n \n
}\n {player.alreadyRegistered === false && updatePlayer({ ...player, name: e.target.value })} />}\n {player.alreadyRegistered === true &&

{player.golfId} är redan registrerad

}\n
\n
\n
\n updatePlayer({ ...player, golfId: e.target.value })} />\n
\n
\n \n Tee *\n \n \n
\n\n
\n \n Middag? *\n \n \n
\n
\n
\n cancelRegistration()}\n close={() => setConfirmCancelOpen(false)}\n />\n
\n );\n}\n\nexport default PlayerSummerTourForm;\n","import React, { useEffect, useRef } from 'react';\nimport Button from '@mui/material/Button';\n\nconst ThankYou = ({ competitionType, competition, players, member, newBooking, state, registrationDetails }) => {\n const titleRef = useRef();\n\n useEffect(() => {\n titleRef.current.scrollIntoView({\n behavior: \"smooth\",\n });\n }, []);\n\n const getEmail = () => {\n if (competitionType === 1) {\n return 'golf@stay4golf.se';\n } else {\n return 'info@stay4golf.se';\n }\n }\n\n const getTitle = () => {\n switch (state) {\n case 1: return 'Tack för din anmälan!';\n case 2: return 'Du är reserv!';\n case 3: return 'Tack för din anmälan!';\n default: return '';\n }\n }\n\n return (\n
\n

{getTitle()}

\n
\n

\n Till
\n {competitionType === 1 &&\n \n {`${competition.track} `} {`${competition.name}`}
\n {`${competition.startingTime.split('T')[0]}`}
\n {`Prel. starttid kl. ${competition.startingTime.split('T')[1].substring(0, 5)}`}\n
\n }\n {competitionType === 2 &&\n \n {`Sommartouren ${competition.sheetName}`}\n \n }\n
\n
\n Anmälan gäller:
\n {players.map(p => {\n return (\n \n {competitionType === 1 && {p.name}, HCP {p.handicap}}\n {competitionType === 2 && {p.name} {p.dinnerOption === '1' ? ' (Med middag)' : ' (Utan middag)'}}\n
\n
\n );\n })}\n

\n

Bekräftelse på er anmälan kommer att skickas till:
{registrationDetails.email ?? member.email}

\n
\n {state === 2 &&\n \n

Tyvärr så är denna tävling redan fullbokad så ni har blivit tilldelade en reservplats. Vi på Stay4Golf kommer att ta kontakt med er om det blir lediga platser.

\n
\n
\n }\n

Du kommer inom kort att få ett email som bekräftar att vi har tagit emot din anmälan. Om du har några frågor så kan du maila till {getEmail()}, eller ringa oss på 040 – 29 44 00.\n
Vi ses!

\n
\n \n
\n
\n https://stay4golf.se/\n
\n );\n}\n\nexport default ThankYou;","import React from 'react';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport Typography from '@mui/material/Typography';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\n\nconst PlayerList = ({ players }) => {\n return (\n
\n \n }\n aria-controls=\"panel1a-content\"\n id=\"panel1a-header\"\n >\n Se anmälda spelare:\n \n \n {players && players.length > 0 &&\n
    \n {players.sort((a, b) => a.name.localeCompare(b.name)).map((player) => (
  • {player.name}
  • ))}\n
}\n {(!players || players.length === 0) &&

Inga spelare är anmälda till denna tävling ännu.

}\n
\n
\n
\n );\n}\n\nexport default PlayerList;","import React from 'react';\nimport TextField from '@mui/material/TextField';\n\nconst DetailsForm = ({ competitionType, registrationDetails, setRegistrationDetails }) => {\n return (\n \n
\n
\n {competitionType === 2 &&
\n setRegistrationDetails({ ...registrationDetails, email: e.target.value })} />\n
}\n
\n setRegistrationDetails({ ...registrationDetails, telephone: e.target.value })} />\n
\n {competitionType === 2 &&
\n setRegistrationDetails({ ...registrationDetails, postCode: e.target.value })} />\n
}\n {competitionType === 2 &&
\n setRegistrationDetails({ ...registrationDetails, city: e.target.value })} />\n
}\n
\n
\n
\n
\n setRegistrationDetails({ ...registrationDetails, comment: e.target.value })} multiline rows={4} />\n
\n
\n
\n );\n}\n\nexport default DetailsForm;\n","import React from 'react';\n\nconst ValidationFeedback = ({ validationInfo, validationWarning, validationError }) => {\n return (\n
\n {validationInfo && validationInfo !== '' &&\n
\n {validationInfo}\n
\n }\n {validationWarning && validationWarning !== '' &&\n
\n {validationWarning}\n
\n }\n {validationError && validationError !== '' &&\n
\n {validationError}\n
\n }\n
\n );\n}\n\nexport default ValidationFeedback;\n","import React, { useState } from 'react';\nimport TextField from '@mui/material/TextField';\nimport SearchIcon from '@mui/icons-material/Search';\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport ValidationFeedback from '../components/validation.feedback';\n\nimport GoogleSheetsService from '../service/googlesheet.service';\n\nconst GetMemberForm = ({ updateMember, memberSearchRef, required, label, autoFocus }) => {\n const [memberNo, setMemberNo] = useState('');\n const [searchingMember, setSearchingMember] = useState(false);\n const [memberError, setMemberError] = useState('');\n\n const searchMember = () => {\n if (searchingMember === false) {\n setSearchingMember(true);\n GoogleSheetsService.searchMember(memberNo).then((result) => {\n updateMember(result);\n setMemberError('');\n if (!result) {\n setMemberError('Ingen medlem kunde hittas med det angivna kundnumret');\n setTimeout(() => {\n setMemberError('');\n }, 10000);\n }\n setSearchingMember(false);\n });\n }\n }\n\n const getMemberButtonText = () => {\n if (searchingMember) {\n return \"Söker efter medlem\";\n } else {\n return \"Hämta medlem\";\n }\n }\n\n return (\n \n
\n
\n setMemberNo(e.target.value)}\n onKeyUp={e => {\n if (e.keyCode === 13) {\n searchMember();\n }\n }} />\n
\n
\n }\n onClick={searchMember}>\n {getMemberButtonText()}\n \n
\n\n
\n \n
\n )\n}\n\nexport default GetMemberForm;\n","import React, { useState } from 'react';\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nconst GuestPlayerDialog = ({ dialogOpen, setDialogOpen, addGuestPlayer, players }) => {\n const [error, setError] = useState();\n const [name, setName] = useState('');\n\n const setGuestName = () => {\n if (name.length <= 0) {\n setError('Ange namn');\n } else if (players.filter(p => p.name === name).length > 0) {\n setError('Spelaren finns redan');\n } else {\n addGuestPlayer(name);\n setName('');\n setError('');\n }\n }\n\n return (\n
\n \n Lägg till gäst\n \n
\n
\n setName(e.target.value)}\n onKeyUp={e => {\n if (e.keyCode === 13) {\n setGuestName();\n }\n }}\n />\n
\n {error && {error}}\n
\n
\n \n
\n \n \n
\n
\n
\n
\n );\n}\n\nexport default GuestPlayerDialog;","export function sortPlayers(p1, p2) {\n if (p1.isGuest && p2.isGuest) {\n if (!p1.isGuest && p2.isGuest) {\n return -1;\n } else if (p1.isGuest && !p2.isGuest) {\n return 1;\n }\n }\n\n return p1.name > p2.name ? 1 : -1;\n}","import React, { useState } from 'react';\nimport FormGroup from '@mui/material/FormGroup';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Checkbox from '@mui/material/Checkbox';\nimport GuestPlayerDialog from '../components/guestplayer.dialog';\nimport Button from '@mui/material/Button';\nimport { sortPlayers } from '../util/sort';\n\nconst PlayerSelect = ({ players, updatePlayers, playersRef, maxSelect, canAddGuest }) => {\n const [guestDialogOpen, setQuestDialogOpen] = useState(false);\n\n return (\n
\n {players.map(function (player) {\n return (\n
\n \n p.participating).length >= maxSelect}\n onChange={() => {\n let updatedPlayers = [...players];\n let updatedPlayer = updatedPlayers.find(p => p.name === player.name);\n updatedPlayer.participating = !updatedPlayer.participating;\n\n updatePlayers(updatedPlayers.sort((a, b) => sortPlayers(a, b)));\n }}\n inputProps={{ 'aria-label': 'controlled' }}\n />} label={`${player.name} ${player.isGuest ? '(Gäst)' : ''}`} />\n \n
\n );\n })}\n {canAddGuest && }\n {\n if (players.filter(_ => _.name.toLowerCase() === name.toLowerCase()).length === 0) {\n let updatedPlayers = [...players];\n let guestPlayer = {\n id: name,\n name: name,\n teeType: '',\n isGuest: true,\n participating: true,\n alreadyRegistered: false\n };\n\n updatedPlayers.push(guestPlayer);\n updatePlayers(updatedPlayers.sort((a, b) => sortPlayers(a, b)));\n }\n setQuestDialogOpen(false);\n }} />\n
\n );\n}\n\nexport default PlayerSelect;\n","export function isEmailValid(email) {\n const regex = /^(([^<>()[\\].,;:\\s@\"]+(.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@(([^<>()[\\].,;:\\s@\"]+.)+[^<>()[\\].,;:\\s@\"]{2,})$/i;\n if (email && regex.test(email) === false) {\n return false;\n }\n return true;\n}\n\nexport function isGolfIdValid(golfId) {\n //Valid format is XXXXXX-XXX, really is should be YYMMDD\n if (golfId && golfId.split('-').length === 2 && golfId.split('-')[0].length === 6 && golfId.split('-')[1].length === 3) {\n\n return true;\n }\n return false;\n}\n\nexport function isPostCodeValid(postCode) {\n if (postCode && postCode.length === 5 && /^\\d+$/.test(postCode)) {\n\n return true;\n }\n return false;\n}\n\nexport function isHandicapValid(handicap) {\n var hcpValue = handicap.replace('+', '').replace(',', '');\n var lastChar = handicap.charAt(handicap.length - 1);\n return !isNaN(hcpValue) &&\n lastChar >= '0' && lastChar <= '9'\n}","import React, { useState, useEffect, useRef } from 'react';\nimport ReCAPTCHA from \"react-google-recaptcha\";\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport SaveIcon from '@mui/icons-material/Save';\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport FormGroup from '@mui/material/FormGroup';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Checkbox from '@mui/material/Checkbox';\nimport PlayerForm from '../components/player.form';\nimport PlayerSummerTourForm from '../components/player.summertour.form';\nimport ThankYou from '../views/thankyou';\nimport PlayerList from '../components/player.list';\nimport DetailsForm from '../components/details.form';\nimport ValidationFeedback from '../components/validation.feedback';\nimport GetMemberForm from '../components/get-member.form';\nimport PlayerSelect from '../components/player.select';\nimport { isEmailValid, isGolfIdValid, isHandicapValid, isPostCodeValid } from '../util/validator';\nimport { sortPlayers } from '../util/sort';\n\nimport GoogleSheetsService from '../service/googlesheet.service';\n\nconst RegistrationForm = ({ competitionType, reCAPTCHAActive, goBack, resetRegistrationType }) => {\n const [loadingCompetitions, setLoadingCompetitions] = useState(true);\n const [competitions, setCompetitions] = useState([]);\n const [competition, setCompetition] = useState({ id: '' });\n const [member, setMember] = useState({});\n const [players, setPlayers] = useState([]);\n const [registeredPlayers, setRegisteredPlayers] = useState([]);\n const [playerCount, setPlayerCount] = useState(0);\n const [validationError, setValidationError] = useState('');\n const [validationWarning, setValidationWarning] = useState('');\n const [submitting, setSubmitting] = useState(false);\n const [showThankYou, setShowThankYou] = useState(0);\n const [approveReCAPTCHA, setApproveReCAPTCHA] = useState(false);\n const [approveGDPR, setApproveGDPR] = useState(false);\n const [singleRegistration, setSingleRegistration] = useState(false);\n const [registrationDetails, setRegistrationDetails] = useState({\n email: '',\n telephone: '',\n postCode: '',\n city: ''\n });\n\n const recaptchaRef = useRef();\n const infoTitleRef = useRef();\n const memberSearchRef = useRef();\n const thankYouRef = useRef();\n const playersRef = useRef();\n const submitButtonRef = useRef();\n const competitionRef = useRef();\n\n useEffect(() => {\n if (showThankYou === 0) {\n setCompetition({ id: '' });\n GoogleSheetsService.getCompetitions(competitionType).then((result) => {\n if (competitionRef?.current !== undefined && competitionRef?.current !== null) {\n setCompetitions(result ?? []);\n setLoadingCompetitions(false);\n }\n });\n } else {\n thankYouRef.current.scrollIntoView({\n behavior: \"smooth\",\n });\n }\n }, [competitionType, showThankYou]);\n\n useEffect(() => {\n if (memberSearchRef?.current !== undefined && memberSearchRef?.current !== null) {\n memberSearchRef.current.scrollIntoView({\n behavior: \"smooth\",\n });\n }\n }, [competition]);\n\n useEffect(() => {\n if (competitionType === 2 && infoTitleRef?.current !== undefined && infoTitleRef?.current !== null && playerCount === 0) {\n infoTitleRef.current.scrollIntoView({\n behavior: \"smooth\",\n });\n } else if (submitButtonRef?.current !== undefined && submitButtonRef?.current !== null && players.filter(p => p.participating).length > playerCount) {\n submitButtonRef.current.scrollIntoView({\n behavior: \"smooth\",\n });\n } else if (playersRef?.current !== undefined && playersRef?.current !== null && playerCount === 0) {\n playersRef.current.scrollIntoView({\n behavior: \"smooth\",\n });\n }\n setPlayerCount(players.filter(p => p.participating).length);\n }, [competitionType, players, playerCount]);\n\n useEffect(() => {\n if (validationError && validationError !== '') {\n setTimeout(() => setValidationError(''), 10000)\n }\n }, [validationError]);\n\n useEffect(() => {\n if (competition.noOfOpenSpots < players.filter(_ => _.participating === true && _.alreadyRegistered === false).length) {\n setValidationWarning('Det finns inte tillräckligt med platser på tävlingen för alla spelare som du har valt, alla spelare kommer bli reserver');\n } else {\n setValidationWarning('');\n }\n }, [players, competition.noOfOpenSpots, registeredPlayers]);\n\n const updatePlayers = (updatedPlayers) => {\n updatedPlayers.map(p => {\n p.memberNo = member.number;\n p.alreadyRegistered = isPlayerRegistered(p);\n return p;\n });\n setPlayers(updatedPlayers);\n }\n\n const isPlayerRegistered = (player) => {\n if (competitionType === 1) {\n return registeredPlayers.filter(_ => _.memberNo === member.number && _.name.toLowerCase().trim() === player.name.toLowerCase().trim()).length > 0;\n } else {\n return registeredPlayers.filter(_ => _.golfId === player.golfId && _.name.toLowerCase().trim() === player.name.toLowerCase().trim()).length > 0;\n }\n }\n\n const updateMember = (member) => {\n if (member) {\n setPlayers([]);\n setMember(member);\n setRegistrationDetails({\n email: member.email,\n telephone: member.phoneNumber,\n postCode: member.postCode,\n city: member.city\n });\n member.players.map(p => {\n p.teeType = '';\n p.isGuest = false;\n p.dinnerOption = '';\n p.id = p.name;\n return p;\n });\n member.players = member.players.sort((a, b) => sortPlayers(a, b));\n setPlayers(member.players);\n } else {\n if (competitionType === 2) {\n setDefaultSummerTourPlayers();\n } else {\n setPlayers([]);\n }\n setRegistrationDetails({\n email: '',\n telephone: '',\n postCode: '',\n city: ''\n });\n setMember({});\n }\n }\n\n const setDefaultSummerTourPlayers = () => {\n let summerTourPlayers = [\n {\n id: 'summer-tour-player-1',\n name: '',\n golfId: '',\n teeType: '',\n dinnerOption: '',\n participating: true,\n alreadyRegistered: false\n },\n {\n id: 'summer-tour-player-2',\n name: '',\n golfId: '',\n teeType: '',\n dinnerOption: '',\n participating: singleRegistration === false,\n alreadyRegistered: false\n }\n ]\n\n setPlayers(summerTourPlayers);\n }\n\n const validateRegistration = () => {\n\n players.map(p => {\n p.name = p.name?.trim();\n p.email = p.email?.trim();\n p.handicap = p.handicap?.trim();\n return p;\n });\n\n if (players.filter(p => p.participating === true && p.alreadyRegistered === false).length === 0) {\n setValidationError('Du måste välja vilka spelare som skall vara med');\n } else if ([...new Set(players.map(item => item.name))].length < players.length) {\n setValidationError('Du måste ange unika namn på alla spelare');\n } else if (players.filter(p => p.participating === true && p.alreadyRegistered === false && (p.handicap === '' || p.handicap === undefined)).length > 0) {\n setValidationError('Du måste ange HCP för alla spelare');\n } else if (players.filter(p => p.participating === true && p.alreadyRegistered === false && (p.teeType === '' || p.teeType === undefined)).length > 0) {\n setValidationError('Du måste ange tee för alla spelare');\n } else if (players.filter(p => p.participating === true && p.alreadyRegistered === false && isEmailValid(p.email) === false).length > 0) {\n setValidationError('Ogiltig epost');\n } else if (players.filter(p => p.participating === true && p.alreadyRegistered === false && isHandicapValid(p.handicap) === false).length > 0) {\n setValidationError('Ogiltigt handikap');\n } else {\n setValidationError('');\n\n const registrations = [];\n players.filter(p => p.participating === true && p.alreadyRegistered === false).map(p => {\n\n //This is need for the SHCP calculation to work properly\n if (p.handicap.indexOf(',') + p.handicap.indexOf('.') === -2) {\n p.handicap = p.handicap + ',0';\n }\n\n let registration = {\n ...p,\n competitionId: competition.id,\n memberNo: member.number,\n comment: registrationDetails.comment,\n email: member.email,\n telephone: registrationDetails.telephone\n };\n\n registrations.push(registration);\n\n return [];\n })\n\n setSubmitting(true);\n submitRegistration(registrations);\n }\n }\n\n const validateSummerTourRegistration = () => {\n\n players.map(p => {\n p.name = p.name?.trim();\n p.golfId = p.golfId?.trim();\n return p;\n });\n\n registrationDetails.email = registrationDetails.email?.trim();\n registrationDetails.telephone = registrationDetails.telephone?.trim();\n registrationDetails.postCode = registrationDetails.postCode?.trim();\n registrationDetails.city = registrationDetails.city?.trim();\n\n if (players.filter(p => p.participating === true && p.alreadyRegistered === false).length === 0) {\n setValidationError('Du måste välja vilka spelare som skall vara med');\n } else if (players.filter(p => p.participating === true).length > 2) {\n setValidationError('Du får bara anmäla max två spelare i taget');\n } else if (players.filter(p => p.participating === true && p.alreadyRegistered === false && (p.name === '' || p.name === undefined)).length > 0) {\n setValidationError('Du måste ange namn för alla spelare');\n } else if ([...new Set(players.map(item => item.name))].length < players.length) {\n setValidationError('Du måste ange unika namn på alla spelare');\n } else if (players.filter(p => p.participating === true && p.alreadyRegistered === false && (p.golfId === '' || p.golfId === undefined)).length > 0) {\n setValidationError('Du måste ange golfid för alla spelare');\n } else if (players.filter(p => p.participating === true && p.alreadyRegistered === false && isGolfIdValid(p.golfId) === false).length > 0) {\n setValidationError('Ogiltigt golfid, skriv på formatet ÅÅMMDD-XXX');\n } else if (players.filter(p => p.participating === true && p.alreadyRegistered === false && (p.teeType === '' || p.teeType === undefined)).length > 0) {\n setValidationError('Du måste ange tee för alla spelare');\n } else if (players.filter(p => p.participating === true && p.alreadyRegistered === false && (p.dinnerOption === '' || p.dinnerOption === undefined)).length > 0) {\n setValidationError('Du måste ange om man skall delta på middagen för alla spelare');\n } else if (registrationDetails.email === '' || registrationDetails.email === undefined) {\n setValidationError('Du måste ange e-post');\n } else if (isEmailValid(registrationDetails.email) === false) {\n setValidationError('Ogiltig ange epost');\n } else if (registrationDetails.telephone === '' || registrationDetails.telephone === undefined) {\n setValidationError('Du måste ange telefonnummer');\n } else if (registrationDetails.postCode === '' || registrationDetails.postCode === undefined) {\n setValidationError('Du måste ange postnummer');\n } else if (isPostCodeValid(registrationDetails.postCode) === false) {\n setValidationError('Ogiltigt postnummer, skriv på formatet XXXXX');\n } else if (registrationDetails.city === '' || registrationDetails.city === undefined) {\n setValidationError('Du måste ange ort');\n } else {\n setValidationError('');\n\n const registrations = [];\n players.filter(p => p.participating === true && p.alreadyRegistered === false).map(p => {\n\n let registration = {\n ...p,\n dinner: p.dinnerOption === '1',\n competitionId: competition.id,\n memberNo: member.number,\n comment: registrationDetails.comment,\n telephone: registrationDetails.telephone,\n email: registrationDetails.email,\n postCode: registrationDetails.postCode,\n city: registrationDetails.city\n };\n\n registrations.push(registration);\n\n return [];\n });\n\n setSubmitting(true);\n submitRegistration(registrations);\n }\n }\n\n const submitRegistration = (registrations) => {\n let recaptchaToken = '';\n if (reCAPTCHAActive === true) {\n recaptchaToken = recaptchaRef.current.getValue();\n }\n\n GoogleSheetsService.submitRegistrations(competitionType, registrations, recaptchaToken).then((result) => {\n setSubmitting(false);\n setShowThankYou(result);\n });\n }\n\n const updatePlayer = (player) => {\n if (competitionType === 2) {\n //Check main list\n player.alreadyRegistered = registeredPlayers.find(p =>\n p.golfId === player.golfId &&\n isGolfIdValid(p.golfId) === true) !== undefined;\n\n //Check current register list\n player.alreadyRegistered = player.alreadyRegistered ||\n players.filter(p => p.participating === true).find(p =>\n p.golfId === player.golfId &&\n isGolfIdValid(p.golfId) === true &&\n p.alreadyRegistered === false &&\n p.id !== player.id) !== undefined;\n }\n const updatedPlayers = [...players];\n const index = updatedPlayers.findIndex(_ => _.id === player.id);\n updatedPlayers.splice(index, 1, player);\n setPlayers(updatedPlayers);\n }\n\n const getCompetitionStatus = () => {\n if (loadingCompetitions === true) {\n return \"Hämtar tävlingar, vänligen vänta lite...\";\n } else if (loadingCompetitions === false && competitions && competitions.length > 0) {\n return \"Välj tävling\";\n } else {\n return \"Det finns inga tävlingar att anmäla sig till just nu\";\n }\n }\n\n const getCompetitionSelectName = (competition) => {\n let name = '';\n if (competitionType === 1) {\n name = `${competition.track} - ${competition.name}, ${competition.startingTime.split('T')[0]} prel. starttid kl. ${competition.startingTime.split('T')[1].substring(0, 5)}`;\n if (competition.noOfOpenSpots < 7) {\n name = `${name} (${getSpotDescription(competition)})`;\n }\n } else {\n name = `${competition.sheetName}`;\n }\n\n return name;\n }\n\n const getSpotDescription = (competition) => {\n if (competition.noOfOpenSpots === 0) {\n return `Fullbokad, anmäl reservplats`;\n } else if (competition.noOfOpenSpots < 7 && competition.noOfOpenSpots > 1) {\n return `Endast ${competition.noOfOpenSpots} platser kvar`;\n } else if (competition.noOfOpenSpots === 1) {\n return `Endast ${competition.noOfOpenSpots} plats kvar`;\n }\n }\n\n if (showThankYou > 0) {\n return (\n \n
\n p.participating === true && p.alreadyRegistered === false)} member={member} registrationDetails={registrationDetails} state={showThankYou} newBooking={() => {\n setCompetition({ id: '' });\n setMember({});\n setPlayers([]);\n setShowThankYou(0);\n setRegistrationDetails({\n email: '',\n telephone: '',\n postCode: '',\n city: ''\n });\n setValidationWarning('');\n setSingleRegistration(false);\n setApproveReCAPTCHA(false);\n setApproveGDPR(false);\n }} />\n
)\n } else {\n return (\n
\n {goBack === true &&
\n } onClick={resetRegistrationType}>\n Gå tillbaka\n \n
}\n
\n {competitionType === 1 && Välj tävling och följ sedan instruktionerna för att anmäla er till tävlingen}\n {competitionType === 1 &&

OBS! Du behöver kundnummer och HCP tillgängligt

}\n {competitionType === 2 &&

Välj sommartours-tävlingen och följ sedan instruktionerna för att anmäla er till tävlingen

}\n \n {getCompetitionStatus()}\n {\n let updatedPlayers = [...players];\n updatedPlayers.map(p => p.participating = false);\n setPlayers(updatedPlayers.sort((a, b) => sortPlayers(a, b)));\n let competition = competitions.find(c => c.id === e.target.value);\n competition.description = competition.description.replace(/(?:\\r\\n|\\r|\\n)/g, '
');\n setCompetition(competition);\n\n if (competitionType === 1) {\n setPlayers(updatedPlayers.sort((a, b) => (a.name > b.name) ? 1 : -1));\n } else if (competitionType === 2) {\n setDefaultSummerTourPlayers();\n }\n\n setRegisteredPlayers([]);\n GoogleSheetsService.getPlayers(competitionType, competition.sheetName).then((result) => {\n setRegisteredPlayers(result);\n });\n }}>\n {competitions.map(function (competition) {\n return ({getCompetitionSelectName(competition)}\n )\n })}\n \n
\n
\n {competition.id > 0 &&\n
\n
\n

{`${competition.track} - ${competition.name}`}

\n {competitionType === 1 &&

Datum: {`${competition.startingTime.split('T')[0]}, prel. starttid kl. ${competition.startingTime.split('T')[1].substring(0, 5)}`}

}\n {competitionType === 2 &&

Datum: {`${competition.startingTime.split('T')[0]}`}

}\n {competition.noOfOpenSpots < 7 &&

Platser: {getSpotDescription(competition)}

}\n {competition.noOfOpenSpots >= 7 &&

Platser: {competition.noOfOpenSpots}

}\n

Information om tävlingen:

\n {competition.link &&

Mer information om banan: {competition.link}

}\n {competitionType === 1 &&\n \n

Allmän information:

\n
    \n
  • \n Anmälan till tävling måste göras senast kl 10.00 två dagar innan tävling.\n
  • \n
  • \n Startlistorna publiceras senast kl 15.00 dagen innan tävling.\n
  • \n
  • \n Startavgift till tävling är 5€ per person och går oavkortat till prisbordet.\n
  • \n
  • \n OBS! Behöver ni golfbil bokar ni det själva med klubben så snart som möjligt.\n
  • \n
  • \n För att anmäla er till tävlingen: Fyll i kundnummer nedan och klicka på Hämta medlem\n
  • \n
\n _.status === 1)} />\n
\n }\n {competitionType === 2 &&\n

Om du är tidigare gäst hos Stay4Golf fyll i ditt kundnummer i rutan, klicka på \"Hämta medlem\", så fylls vissa fält i automatiskt. Annars måste Du fylla i alla fälten.

\n }\n\n
\n \n
\n }\n {players.length > 0 &&
\n

Vilka skall vara med att spela?

\n {competitionType === 1 &&

OBS! Tänk på att du kan anmäla fler spelare samtidigt

}\n {competitionType === 1 &&
\n

\n Bekräftelsemail för bokningen kommer skickas till eposten {member.email} som är registrerad för kundnumret.\n

\n
}\n {member.players && }\n {!member.players &&
\n \n {\n let updatedPlayers = [...players];\n setSingleRegistration(e.target.checked);\n updatedPlayers[1].participating = !e.target.checked;\n setPlayers(updatedPlayers);\n }}\n inputProps={{ 'aria-label': 'controlled' }}\n />} label='Jag vill bara anmäla en spelare' />\n \n
}\n
}\n {players.filter(_ => _.participating === true).length > 0 && \n
\n {players.map(function (player) {\n if (competitionType === 1 && player.participating === true) {\n if (player.alreadyRegistered === false) {\n return ();\n } else {\n return (
\n

{`${player.name} ${player.isGuest ? '(Gäst)' : ''} ${player.status === 2 ? '(Reserv)' : ''}`} är redan anmäld

\n
)\n }\n } else if (competitionType === 2 && player.participating === true) {\n return ();\n } \n\n return null;\n })}\n
\n
}\n {players.filter(p => p.participating).length > 0 &&\n
\n \n \n {competitionType === 2 &&
\n \n setApproveGDPR(e.target.checked)}\n inputProps={{ 'aria-label': 'controlled' }}\n />} label='Jag samtycker till att Stay4Golf sparar mina kontaktuppgifter för att kunna informera om befintliga och kommande evenemang' />\n \n
}\n {reCAPTCHAActive === true &&
\n { setApproveReCAPTCHA(true) }} />\n
}\n
\n p.participating === true && p.alreadyRegistered === false).length === 0} // Måste ha valt spelare\n variant=\"contained\"\n loadingPosition=\"start\"\n ref={submitButtonRef}\n startIcon={}\n onClick={e => {\n if (competitionType === 1) {\n validateRegistration();\n } else if (competitionType === 2) {\n validateSummerTourRegistration();\n }\n }}>\n {submitting ? \"Skickar anmälan\" : \"Skicka in anmälan\"}\n \n
\n
\n }\n
\n );\n }\n}\n\nexport default RegistrationForm;\n","import React, { useEffect, useRef } from 'react';\nimport Button from '@mui/material/Button';\n\nconst ThankYouActivity = ({ activities, participants, newRegistration, email }) => {\n const titleRef = useRef();\n\n useEffect(() => {\n titleRef.current.scrollIntoView({\n behavior: \"smooth\",\n });\n }, []);\n\n return (\n
\n

Tack för din anmälan!

\n
\n

\n Till
\n {activities.map(a => {\n return (\n \n {`${a.dateDisplay} - ${a.name}`} {`${a.selection}`}\n
\n
)\n })}\n
\n Anmälan gäller:
\n {participants.map(p => {\n return (\n \n {p.name}\n
\n
\n );\n })}\n

\n
\n

Bekräftelse på er anmälan kommer att skickas till:
{email}

\n
\n

Om du har några frågor så kan du maila till golf@stay4golf.se, eller ringa oss på 040 – 29 44 00.\n
Vi ses!

\n
\n \n
\n
\n https://stay4golf.se/\n
\n );\n}\n\nexport default ThankYouActivity;","import React from 'react';\nimport Checkbox from '@mui/material/Checkbox';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport Typography from '@mui/material/Typography';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\n\nconst ActivityItem = ({ checked, disabled, onChange, title, description, noOfOpenSpots, noOfParticipants }) => {\n return (\n
\n \n
\n \n }\n aria-controls=\"activity-content\"\n id=\"activity-header\"\n >\n
\n {title} {noOfOpenSpots === 0 ? 'FULLBOKAD' : ''} {noOfOpenSpots !== 0 && noOfOpenSpots < noOfParticipants ? `Enbart plats för ${noOfOpenSpots} personer` : ''}\n
\n \n \n \n {description !== null && description.length > 0 ? description : \"Information/beskrivning saknas för aktiviteten\"}\n \n \n
\n
\n
\n );\n}\n\nexport default ActivityItem","import React, { useState, useEffect, useRef } from 'react';\nimport ReCAPTCHA from \"react-google-recaptcha\";\nimport FormControl from '@mui/material/FormControl';\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport SaveIcon from '@mui/icons-material/Save';\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select from '@mui/material/Select';\nimport ValidationFeedback from '../components/validation.feedback';\nimport ThankYouActivity from '../views/thankyou.activity';\nimport GetMemberForm from '../components/get-member.form';\nimport PlayerSelect from '../components/player.select';\nimport ActivityItem from './activity.item';\nimport { sortPlayers } from '../util/sort';\n\nimport GoogleSheetsService from '../service/googlesheet.service';\n\nconst ActivityForm = ({ reCAPTCHAActive, goBack, resetRegistrationType }) => {\n const [loading, setLoading] = useState(true);\n const [member, setMember] = useState({});\n const [submitting, setSubmitting] = useState(false);\n const [approveReCAPTCHA, setApproveReCAPTCHA] = useState(false);\n const [validationError, setValidationError] = useState('');\n const [showThankYou, setShowThankYou] = useState(0);\n const [activities, setActivities] = useState([]);\n const [participants, setParticipants] = useState([]);\n const [activitiesAvailable, setActivitiesAvailable] = useState([]);\n\n const recaptchaRef = useRef();\n\n useEffect(() => {\n if (showThankYou === 0) {\n setLoading(true);\n GoogleSheetsService.getActivities().then((result) => {\n setActivitiesAvailable(result ?? []);\n setLoading(false);\n });\n }\n }, [showThankYou]);\n\n const updateMember = (member) => {\n if (member) {\n setMember(member);\n member.players.map(p => {\n p.id = p.name;\n p.option = '';\n return p;\n });\n member.players = member.players.sort((a, b) => sortPlayers(a, b));\n setParticipants(member.players);\n } else {\n setParticipants([]);\n setMember({});\n }\n }\n\n const updateParticipants = (updatedParticipants) => {\n setParticipants(updatedParticipants);\n\n let updateActivities = [...activities];\n updateActivities.map(a => {\n a.participants = [...updatedParticipants.filter(p => p.participating === true)].map(p => {\n return { ...p, option: a.participants.find(ap => ap.id === p.id)?.option ?? '' }\n });\n return a;\n });\n\n for (const activity of activitiesAvailable) {\n if (activity.noOfOpenSpots < participants.filter(p => p.participating === true).length) {\n const fullActivityIndex = updateActivities.findIndex(a => a.id === activity.id);\n if (fullActivityIndex !== -1) {\n updateActivities.splice(fullActivityIndex, 1);\n }\n }\n }\n\n setActivities(updateActivities);\n }\n\n const validateRegistration = () => {\n let activityOptionsSet = true;\n activities.map(a => {\n let activity = activitiesAvailable.filter(_ => _.id === a.id)[0];\n if (activity.options && activity.options.length > 0) {\n let participantOptionsUnset = a.participants.filter(_ => _.option === '' && participants.filter(p => p.id === _.id && p.name !== '').length > 0);\n if (participantOptionsUnset && participantOptionsUnset.length > 0) {\n activityOptionsSet = false;\n }\n }\n return a;\n });\n if (participants.filter(p => p.participating === true).length === 0) {\n setValidationError('Du måste välja minst en deltagare');\n } else if (activities.length === 0) {\n setValidationError('Du måste välja minst en aktivitet');\n } else if ([...new Set(participants.filter(_ => _.name !== '').map(item => item.name))].length < participants.filter(_ => _.name !== '').length) {\n setValidationError('Du måste ange unika namn på alla deltagare');\n } else if (activityOptionsSet === false) {\n setValidationError('Du har missat att göra ett val för en aktivitet');\n } else {\n setValidationError('');\n\n //Set correct names\n activities.map(a => {\n a.activityId = a.id;\n a.participants.map(p => {\n p.name = participants.filter(_ => _.id === p.id)[0].name;\n p.phonenumber = member.phoneNumber;\n return p;\n });\n return a;\n\n });\n\n setSubmitting(true);\n let recaptchaToken = '';\n if (reCAPTCHAActive === true) {\n recaptchaToken = recaptchaRef.current.getValue();\n }\n GoogleSheetsService.submitActivityRegistrations(member.email, activities, recaptchaToken).then((result) => {\n setSubmitting(false);\n setShowThankYou(result);\n });\n }\n }\n\n if (showThankYou > 0) {\n return (\n \n activities.filter(a => a.id === aa.id).length > 0)\n .map(aa => {\n let options = activities.find(a => a.id === aa.id).participants?.map(p => p.option).filter(o => o && o !== \"\");\n aa.selection = options.length > 0 ? `(${options.join(\", \")})` : \"\";\n return aa;\n })\n }\n participants={participants.filter(p => p.participating === true)}\n newRegistration={() => {\n setActivities([]);\n setParticipants([]);\n setActivitiesAvailable([]);\n setMember({});\n setShowThankYou(0);\n setApproveReCAPTCHA(false);\n }\n } />\n )\n } else {\n return (\n
\n {loading === true &&
\n {

Hämtar aktiviteter, vänligen vänta lite...

}\n
}\n\n {loading === false && \n {goBack === true &&
\n } onClick={resetRegistrationType}>\n Gå tillbaka\n \n
}\n \n \n\n {participants.length > 0 &&
\n

Vem vill du anmäla

\n \n
}\n\n {member.players &&
\n

Välj aktiviteter som ni vill anmäla er till

\n

Klicka på en aktivitet för mer information.

\n {loading === false && activitiesAvailable.length > 0 && activitiesAvailable.map((activity) => {\n return (\n _.id === activity.id).length > 0}\n disabled={activity.noOfOpenSpots === 0 || activity.noOfOpenSpots < participants.filter(p => p.participating === true).length}\n onChange={e => {\n let updateActivities = [...activities];\n if (e.target.checked === true) {\n var addActivity = { id: activity.id, participants: [...participants.filter(p => p.participating === true)] };\n updateActivities.push(addActivity);\n } else {\n let activityIndex = updateActivities.findIndex(_ => _.id === activity.id);\n updateActivities.splice(activityIndex, 1);\n }\n setActivities(updateActivities);\n }}\n title={`${activity.dateDisplay} - ${activity.name}`}\n description={activity.description}\n noOfOpenSpots={activity.noOfOpenSpots}\n noOfParticipants={participants.filter(p => p.participating === true).length} />\n {activities.filter(_ => _.id === activity.id).length > 0 && activity.options.length > 0 && participants.filter(p => p.participating === true).length > 0 &&
\n {participants.filter(p => p.participating === true).map(p => {\n return (\n \n {activities.filter(_ => _.id === activity.id)[0].participants.length > 0 &&
\n \n {p.name}'s val *\n \n \n
}\n
\n )\n })}\n
}\n
)\n })}\n
}\n\n {member.players &&
\n \n {reCAPTCHAActive === true &&
\n { setApproveReCAPTCHA(true) }} />\n
}\n
\n }\n onClick={e => {\n validateRegistration();\n }}>\n {submitting ? \"Skickar anmälan\" : \"Skicka in anmälan\"}\n \n
\n
}\n
}\n
\n );\n }\n}\n\nexport default ActivityForm;\n","import React, { useState, useEffect } from 'react';\nimport RegistrationForm from '../components/registration.form';\nimport ActivityForm from '../components/activity.form';\nimport LoadingButton from '@mui/lab/LoadingButton';\n\nconst Home = ({ reCAPTCHAActive, registrationStatus }) => {\n const [loading, setLoading] = useState(true);\n const [registrationType, setRegistrationType] = useState(-1);\n const [goBack, setGoBack] = useState(true);\n \n useEffect(() => {\n if (registrationStatus.spainCompetitions > 0 && registrationStatus.summerTourCompetitions === 0 && registrationStatus.activities === 0) {\n setRegistrationType(1);\n setGoBack(false);\n } else if (registrationStatus.summerTourCompetitions > 0 && registrationStatus.spainCompetitions === 0 && registrationStatus.activities === 0) {\n setRegistrationType(3);\n setGoBack(false);\n } else if (registrationStatus.activities > 0 && registrationStatus.spainCompetitions === 0 && registrationStatus.summerTourCompetitions === 0) {\n setRegistrationType(2);\n setGoBack(false);\n } else if (registrationStatus.activities === 0 && registrationStatus.spainCompetitions === 0 && registrationStatus.summerTourCompetitions === 0) {\n setRegistrationType(4);\n }\n setLoading(false);\n }, [registrationStatus.activities, registrationStatus.spainCompetitions, registrationStatus.summerTourCompetitions]);\n\n return (\n
\n {loading === true &&

Laddar sidan, vänligen vänta lite...

}\n {loading === false && registrationType === -1 &&
\n

Vad vill du anmäla dig till?

\n
\n {registrationStatus.spainCompetitions > 0 && setRegistrationType(1)}>Tävlingar}\n {registrationStatus.activities > 0 && setRegistrationType(2)}>Aktiviteter}\n {registrationStatus.summerTourCompetitions > 0 && setRegistrationType(3)}>Sommartouren}\n
\n
}\n {loading === false && registrationType === 1 &&\n setRegistrationType(-1)} />}\n {loading === false && registrationType === 2 &&\n setRegistrationType(-1)} />}\n {loading === false && registrationType === 3 &&\n setRegistrationType(-1)} />}\n {loading === false && registrationType === 4 &&\n

Det finns inget att anmäla sig till just nu

}\n
\n );\n}\n\nexport default Home;\n","import React, { useState, useEffect } from 'react';\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport CancelIcon from '@mui/icons-material/Cancel';\nimport ValidationFeedback from '../validation.feedback';\nimport ConfirmDialog from '../confirm.dialog';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\n\nimport GoogleSheetsService from '../../service/googlesheet.service';\n\nlet resetInfoTimeoutId = -1;\n\nconst HandleSpainActivityBooking = () => {\n const [loading, setLoading] = useState(true);\n const [cancelling, setCancelling] = useState({});\n const [activityRegistrations, setActivityRegistrations] = useState([]);\n const [email, setEmail] = useState('');\n const [confirmCancelOpen, setConfirmCancelOpen] = useState(false);\n const [confirmCancelTarget, setConfirmCancelTarget] = useState({});\n const [error, setError] = useState('');\n const [info, setInfo] = useState('');\n\n useEffect(() => {\n const queryParams = new URLSearchParams(window.location.search);\n GoogleSheetsService.getActivityRegistrations(queryParams.get(\"b\")).then((result) => {\n if (result && result.length > 0) {\n setEmail(result[0].participants[0].email);\n }\n setActivityRegistrations(result ?? []);\n setLoading(false);\n });\n }, []);\n\n const cancelActivityRegistration = (activityId, participantName) => {\n updateValidation('', '');\n setConfirmCancelOpen(false);\n var updatedCancelling = { ...cancelling };\n updatedCancelling[activityId + '-' + participantName] = true;\n setCancelling(updatedCancelling);\n\n GoogleSheetsService.cancelActivityRegistration(activityId, email, participantName).then((success) => {\n if (success === true) {\n const updatedActivityRegistrations = [...activityRegistrations];\n const activityIndex = updatedActivityRegistrations.findIndex(_ => _.activityId === activityId);\n const participants = updatedActivityRegistrations[activityIndex].participants;\n const participantIndex = participants.findIndex(_ => _.name === participantName);\n\n updatedActivityRegistrations[activityIndex].participants[participantIndex].status = 4;\n updatedActivityRegistrations[activityIndex].participants = participants;\n\n setActivityRegistrations(updatedActivityRegistrations);\n updateValidation(`${participantName} är nu avbokad från ${confirmCancelTarget?.activity?.dateDisplay} - ${confirmCancelTarget?.activity?.name}`, '');\n } else {\n updateValidation('', 'Aktiviteten börjar snart! Du kan tyvärr inte längre avboka deltagare');\n }\n\n var updatedCancelling = { ...cancelling };\n updatedCancelling[activityId + '-' + participantName] = false;\n setCancelling(updatedCancelling);\n });\n }\n\n const updateValidation = (newInfo, newError) => {\n setInfo(newInfo);\n setError(newError);\n clearTimeout(resetInfoTimeoutId);\n resetInfoTimeoutId = setTimeout(() => {\n setInfo('');\n setError('');\n }, 10000);\n }\n\n return (\n
\n {loading === true &&

Hämtar din bokning, vänligen vänta lite...

}\n {loading === false && (activityRegistrations === undefined || activityRegistrations === null || activityRegistrations.length === 0) &&\n
\n

Vi kan inte hitta din bokning! :(

\n

Kontrollera att du använt rätt länk från ditt boknings-mail.
Om felet kvarstår, vänligen hör av dig till oss via mail golf@stay4golf.se, eller ringa oss på 040 – 29 44 00.

\n
\n }\n {loading === false && activityRegistrations !== undefined && activityRegistrations !== null && activityRegistrations.length > 0 && activityRegistrations.filter(a => a.participants.filter(p => p.status !== 4).length > 0).length === 0 &&\n
\n

Avbokad

\n

Samtliga deltagare för denna aktivitet är redan avbokade. Om du har några frågor vänligen hör av dig till oss via mail golf@stay4golf.se, eller ringa oss på 040 – 29 44 00.

\n
\n }\n {loading === false && activityRegistrations !== undefined && activityRegistrations !== null && activityRegistrations.length > 0 && activityRegistrations.filter(a => a.participants.filter(p => p.status !== 4).length > 0).length > 0 &&\n
\n
\n

Aktiviteter

\n

Klicka på en aktivitet för mer information.

\n {activityRegistrations.filter(a => a.participants.filter(p => p.status !== 4).length > 0).map((activityRegistration) => {\n return (\n \n }\n aria-controls=\"activity-content\"\n id=\"activity-header\"\n >\n
\n
{activityRegistration.activity.dateDisplay} - {activityRegistration.activity.name}
\n
\n \n \n
\n {activityRegistration.participants.filter(p => p.status !== 4).map(p => {\n return (\n
\n }\n onClick={() => {\n setConfirmCancelTarget({\n participantName: p.name,\n activity: activityRegistration.activity\n });\n setConfirmCancelOpen(true);\n }}>\n Avboka\n \n
{p.name} {p.option.length > 0 ? '(' + p.option + ')' : ''}
\n
\n )\n })}\n
\n
\n
\n )\n })}\n
\n \n
\n }\n cancelActivityRegistration(confirmCancelTarget.activity.id, confirmCancelTarget.participantName)}\n close={() => setConfirmCancelOpen(false)}\n />\n
\n );\n}\n\nexport default HandleSpainActivityBooking;\n","import React, { useState, useEffect, useRef } from 'react';\nimport ReCAPTCHA from \"react-google-recaptcha\";\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport SaveIcon from '@mui/icons-material/Save';\nimport PlayerForm from '../player.form';\nimport PlayerSummerTourForm from '../player.summertour.form';\nimport ValidationFeedback from '../validation.feedback';\n\nimport GoogleSheetsService from '../../service/googlesheet.service';\n\nlet resetInfoTimeoutId = -1;\n\nconst HandleCompetitionBooking = ({ competitionType, reCAPTCHAActive }) => {\n const [loading, setLoading] = useState(true);\n const [saving, setSaving] = useState(false);\n const [competition, setCompetition] = useState({});\n const [registrations, setRegistrations] = useState([]);\n const [approveReCAPTCHA, setApproveReCAPTCHA] = useState(false);\n const [error, setError] = useState('');\n const [info, setInfo] = useState('');\n\n const recaptchaRef = useRef();\n\n useEffect(() => {\n const queryParams = new URLSearchParams(window.location.search);\n let getRegistrations = GoogleSheetsService.getRegistrations(competitionType, queryParams.get(\"c\"), queryParams.get(\"b\"));\n let getCompetition = GoogleSheetsService.getCompetition(competitionType, queryParams.get(\"c\"));\n \n Promise.all([getRegistrations, getCompetition]).then((result) => {\n if (result !== null) {\n if (competitionType === 2 && result[0] !== undefined && result[0] !== null) {\n result[0].forEach(_ => _.dinnerOption = _.dinner === true ? \"1\" : \"2\");\n result[0].forEach(_ => _.alreadyRegistered = false);\n }\n setRegistrations(result[0]);\n setCompetition(result[1]);\n setLoading(false);\n }\n });\n }, [competitionType]);\n\n const getEmail = () => {\n if (competitionType === 1) {\n return 'golf@stay4golf.se';\n } else {\n return 'info@stay4golf.se';\n }\n }\n\n const updateRegistrations = (registration) => {\n const updatedRegistrations = [...registrations];\n const index = updatedRegistrations.findIndex(_ => _.name === registration.name);\n updatedRegistrations.splice(index, 1, registration);\n\n if (competitionType === 2) {\n updatedRegistrations.forEach(_ => _.dinner = _.dinnerOption === \"1\" ? true : false);\n }\n setRegistrations(updatedRegistrations);\n }\n\n const saveRegistrations = () => {\n updateValidation('', '');\n setSaving(true);\n\n let recaptchaToken = '';\n if (reCAPTCHAActive === true) {\n recaptchaToken = recaptchaRef.current.getValue();\n }\n\n if (competitionType === 1) {\n registrations.forEach(p => {\n if (p.handicap.indexOf(',') + p.handicap.indexOf('.') === -2) {\n p.handicap = p.handicap + ',0';\n }\n });\n }\n\n const queryParams = new URLSearchParams(window.location.search);\n GoogleSheetsService.updateRegistrations(competitionType, queryParams.get(\"c\"), queryParams.get(\"b\"), registrations, recaptchaToken).then((status) => {\n if (status === 1) {\n updateValidation('Dina ändringar är sparade!', '');\n } else if (status === 2) {\n updateValidation('', 'Tävlingen börjar snart! Du kan tyvärr inte längre avboka eller ändra på din bokning');\n } else {\n updateValidation('', 'Dina ändringar kunde inte spara, vänligen ladda om sidan och försök igen!');\n }\n setSaving(false);\n });\n }\n\n const updateValidation = (newInfo, newError) => {\n setInfo(newInfo);\n setError(newError);\n clearTimeout(resetInfoTimeoutId);\n resetInfoTimeoutId = setTimeout(() => {\n setInfo('');\n setError('');\n }, 10000);\n }\n\n const getCompetitionSelectName = () => {\n let name = '';\n if (competitionType === 1) {\n name = `${competition.track} - ${competition.name}, ${competition.startingTime.split('T')[0]} prel. starttid kl. ${competition.startingTime.split('T')[1].substring(0, 5)}`;\n } else {\n name = `${competition.sheetName}`;\n }\n\n return name;\n }\n\n return (\n
\n {loading === true &&

Hämtar din bokning, vänligen vänta lite...

}\n {loading === false && (registrations === undefined || registrations === null || registrations.length === 0) &&\n
\n

Vi kan inte hitta din bokning! :(

\n

Kontrollera att du använt rätt länk från ditt boknings-mail.
Om felet kvarstår, vänligen hör av dig till oss via mail {getEmail()}, eller ringa oss på 040 – 29 44 00.

\n
\n }\n {loading === false && registrations !== undefined && registrations !== null && registrations.length > 0 && registrations.filter(p => p.status !== 4).length === 0 &&\n
\n

Avbokad

\n

Samtliga spelare för denna tävling är redan avbokade. Om du har några frågor vänligen hör av dig till oss via mail {getEmail()}, eller ringa oss på 040 – 29 44 00.

\n
\n }\n {loading === false && registrations !== undefined && registrations !== null && registrations.filter(p => p.status !== 4).length > 0 &&\n
\n

{getCompetitionSelectName()}

\n {competitionType === 1 &&\n
\n {registrations.filter(p => p.status !== 4).map(p => {\n const queryParams = new URLSearchParams(window.location.search);\n return (\n \n )\n })}\n
\n }\n\n {competitionType === 2 &&\n
\n {registrations.filter(p => p.status !== 4).map(p => {\n const queryParams = new URLSearchParams(window.location.search);\n return (\n \n )\n })}\n
\n }\n \n
\n {reCAPTCHAActive === true &&\n { setApproveReCAPTCHA(true) }} />\n }\n }\n onClick={saveRegistrations}>\n Spara ändringar\n \n
\n
\n }\n
\n );\n}\n\nexport default HandleCompetitionBooking;\n","import RequestHandler from '../service/requeshandler'\n\nexport default {\n getReCAPTCHAActive: async () => {\n var response = await fetch(`applicationsettings/recaptcha/active/`, RequestHandler.createRequest('GET'));\n return await response.json();\n }\n}","import React, { useState, useEffect } from 'react';\nimport { BrowserRouter, Route, Switch } from 'react-router-dom';\nimport CacheBuster from 'react-cache-buster';\nimport { version } from '../package.json';\nimport Layout from './layout';\nimport Home from './views/home';\nimport RegistrationForm from './components/registration.form';\nimport HandleSpainActivityBooking from './components/booking/handlespainactivity.booking';\nimport HandleCompetitionBooking from './components/booking/handlecompetition.booking';\n\nimport GoogleSheetsService from './service/googlesheet.service';\nimport AppSettingsService from './service/appsettings.service';\n\nconst App = () => {\n const [loading, setLoading] = useState(true);\n const [reCAPTCHAActive, setReCAPTCHAActive] = useState(false);\n const [registrationStatus, setRegistrationStatus] = useState({\n spainCompetitions: 0,\n summerTourCompetitions: 0,\n activities: 0\n });\n const isProduction = process.env.NODE_ENV === 'production';\n\n useEffect(() => {\n var getReCAPTCHAActive = AppSettingsService.getReCAPTCHAActive();\n var getCompetitionStatus = GoogleSheetsService.getRegistrationStatus();\n\n Promise.all([getReCAPTCHAActive, getCompetitionStatus]).then((result) => {\n if (result !== null) {\n //This is tmp solution to remove summer tour from the main select view\n //I decided to keep the code as is as to be able to revert easily\n result[1].summerTourCompetitions = 0;\n\n setReCAPTCHAActive(result[0]);\n setRegistrationStatus(result[1]);\n setLoading(false);\n }\n });\n }, []);\n\n if (loading === false) {\n return (\n \n \n \n { return (

Här finns inget... :)

) }} />\n { return () }} />\n { return () }} />\n { return () }} />\n { return () }} />\n { return () }} />\n
\n
\n
\n );\n } else {\n return (\n \n \n \n {window.location.href.includes('mybooking') === false &&

Laddar sidan, vänligen vänta lite...

}\n {window.location.href.includes('mybooking') === true &&

Hämtar din bokning, vänligen vänta lite...

}\n
\n );\n }\n}\n\nexport default App;\n","// In production, we register a service worker to serve assets from local cache.\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 the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\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.1/8 is 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 default function register () {\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);\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/facebookincubator/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. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW (swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\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 }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker (swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').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);\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.then(registration => {\n registration.unregister();\n });\n }\n}\n","import 'bootstrap/dist/css/bootstrap.css';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport App from './app';\nimport registerServiceWorker from './registerServiceWorker';\n\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\nconst rootElement = document.getElementById('root');\n\nReactDOM.render(\n \n \n ,\n rootElement);\n\nregisterServiceWorker();\n\n"],"sourceRoot":""}