{"version":3,"sources":["components/accessabilityPage.js","components/appointmentPage.js","components/bookingCodePage.js","components/confirmationPage.js","components/errorPage.js","components/loadingPage.js","components/postcodePage.js","components/sitePage.js","components/staffOutcomeSelectionPage.js","components/warningPage.js","components/flow.js","App.js","index.js"],"names":["Accessibility","setAccessibility","className","title","style","width","color","onClick","Appointment","appointments","setAppointment","days","sort","a","b","moment","date","valueOf","map","day","i","key","format","timeOfDays","tod","j","size","timeOfDay","BookingCode","bookingCode","submitBookingCode","isStaff","useState","tempBookingCode","setTempBookingCode","length","block","placeholder","value","onChange","e","target","maxLength","icon","faInfoCircle","href","Confirmation","bookingDetails","site","firstAppointmentLocation","faMap","window","open","firstAppointmentWTW","faMapMarker","firstAppointmentMapUri","faCalendar","firstAppointmentDate","faClock","firstAppointmentTimeSlot","secondAppointmentLocation","secondAppointmentWTW","secondAppointmentMapUri","secondAppointmentDate","secondAppointmentTimeSlot","Error","error","guidanceText","guidanceText1","guidanceText2","location","reload","faChevronCircleLeft","Loading","faSpinner","spin","Postcode","personName","submitPostCode","validationType","tempPostCode","setTempPostCode","Site","sites","setAppointmentSite","failedBooking","filter","x","Math","random","s","tempBookingOutComeEnum","showMoreInfo","wantToBook","alreadyHad","notHad","planningToHaveSomewhereElse","decline","talkToClinician","talkToManager","talkToRCE","StaffOutcomeSelection","setStaffOutcome","postcode","tempBookingOutCome","setTempBookingOutCome","setError","loading","setLoading","finishedDeclined","setFinishedDeclined","discussedWithManager","setDiscussedWithManager","text","code","set","declineReasons","setDeclinedReason","submitOutcome","outcome","callback","fetch","method","mode","cache","credentials","headers","redirect","referrerPolicy","body","ok","useEffect","scrollTo","rel","marginTop","marginBottom","reason","next","val","find","toggleReason","disabled","reasonKey","join","Warning","warnings","confirmation","hasNHSNumber","w","whiteSpace","answer","warningText","Flow","useParams","errors","codeAlreadyUsed","detailsDoNotMatch","notEligible","somethingGoneWrong","noAppointments","invalidCode","validatedBookingCode","setValidatedBookingCode","postCode","setPostCode","setPersonName","setValidationType","setHasNhsNumber","passedAppointment","setPassedAppointment","accessibility","vaxRestriction","setAppointments","firstAppointment","setFirstAppointment","setSecondAppointment","appointmentSite","setBookingDetails","setFailedBooking","setSites","answers","confirmedWarning","setConfirmedWarnings","staffOutcome","help","setHelp","toUpperCase","response","json","data","name","verificationType","getTimeSlots","startDate","endDate","restriction","locationKeys","filterLocations","url","mapAppointments","loadAppointments","incomingRestrictions","add","load","console","log","indexOf","forEach","findIndex","campus","push","slots","slot","locations","firstAppointmentSubmission","appointment","timeSlots","submitRequest","request","secondAppointment","verificationCode","questions","questionKey","JSON","stringify","incomingData","message","secondAppointmentSubmission","fluid","isOpen","toggle","helpText","Card","answersWithWarnings","reverse","siteAppointments","getCorrectPage","App","exact","path","children","component","Component","displayName","baseUrl","document","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","basename"],"mappings":"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","file":"static/js/main.4715c56a.chunk.js","sourcesContent":["import React from 'react';\r\nimport Button from 'reactstrap/lib/Button';\r\nimport ButtonGroup from 'reactstrap/lib/ButtonGroup';\r\nimport Label from 'reactstrap/lib/Label';\r\n\r\nexport const Accessibility = ({setAccessibility}) => { \r\n\r\n return
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n}\r\n","\r\nimport React from 'react';\r\nimport moment from 'moment';\r\nimport Button from 'reactstrap/lib/Button';\r\nimport ListGroup from 'reactstrap/lib/ListGroup';\r\nimport ListGroupItem from 'reactstrap/lib/ListGroupItem';\r\n\r\nexport const Appointment = ({ appointments, setAppointment }) => {\r\n\r\n const formatDate = (date) => {\r\n return moment(date).format('dddd, MMMM Do YYYY')\r\n }\r\n\r\n\r\n return
\r\n \r\n {appointments.days.sort((a, b) => {\r\n return moment(a.date).valueOf() - moment(b.date).valueOf()\r\n }).map((day, i) => {\r\n return \r\n
{formatDate(day.date)}
\r\n
\r\n {day.timeOfDays.map((tod, j) => )}\r\n
\r\n
\r\n })}\r\n
\r\n
\r\n
\r\n} ","import React, { useState } from 'react';\r\nimport Button from 'reactstrap/lib/Button';\r\nimport Input from 'reactstrap/lib/Input';\r\nimport InputGroup from 'reactstrap/lib/InputGroup';\r\nimport { faInfoCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nexport const BookingCode = ({ bookingCode, submitBookingCode, isStaff }) => {\r\n const [tempBookingCode, setTempBookingCode] = useState(bookingCode || \"\");\r\n\r\n if (isStaff && !bookingCode) {\r\n return <>\r\n
Guy's and St Thomas' COVID-19 vaccine uptake questionnaire
\r\n\r\n
The link you have used is not valid, please ensure you are using the link exactly as provided on email or text message
\r\n \r\n }\r\n\r\n if (isStaff && bookingCode.length !== 0) {\r\n return <>\r\n
Guy's and St Thomas' COVID-19 vaccine uptake questionnaire
\r\n
\r\n

The COVID-19 vaccine protects you and others from the virus. It is important that we know how many of our staff have had the vaccine. Please help us make sure our information is up to date.

\r\n

This portal will allow you to book a vaccine slot online, request more information if you are undecided, let us know that you’ve already had it or opt-out of the vaccine.

\r\n

To start we will need to confirm who you are, the link we sent is unique to you, on the next screen we will ask you to confirm your home post code

\r\n\r\n \r\n \r\n \r\n\r\n

You will not need to provide any other personal information.

\r\n
Thank you for your support.
\r\n \r\n }\r\n\r\n return <>\r\n

The COVID-19 vaccination consists of two injections spaced 12 weeks apart. Both appointments will be booked together and to ensure you receive the best possible protection it's important you receive both doses.

\r\n

You can only book an appointment by using the unique booking code that that has been sent to you by text message and/or letter. This code is unique to you and cannot be used to book appointments for anyone else or to reschedule existing appointments.

\r\n

Please enter your unique booking code in the box below:

\r\n\r\n \r\n setTempBookingCode(e.target.value)} maxLength=\"5\">\r\n

\r\n \r\n
\r\n\r\n\r\n \r\n \r\n If you are trying to reschedule an existing appointment or are having difficulties using the internet please call us on 020 7188 4040 and ensure that you have your unique booking code to hand.\r\n \r\n \r\n\r\n}","import React from 'react';\r\nimport { faMap, faMapMarker, faClock, faCalendar, faInfoCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport moment from 'moment';\r\n\r\nexport const Confirmation = ({bookingDetails}) => {\r\n return
\r\n

Booking Confirmation

\r\n
Please ensure that you arrive a maximum of 5 minutes before your allotted appointment time.
\r\n
\r\n
\r\n \r\n\r\n
\r\n\r\n \r\n\r\n\r\n
\r\n

Please make a note of your bookings before closing the internet browser window or save a copy of the web page.

\r\n

We will send you confirmation of your appointments to the mobile phone number that you have registered with the Trust.

\r\n

Info section: if you need to change your either of your appointments please call 020 7188 4040. You cannot amend your appointments through this portal.

\r\n\r\n\r\n \r\n
\r\n
\r\n} ","import React from 'react';\r\nimport { faChevronCircleLeft } from '@fortawesome/free-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport Button from 'reactstrap/lib/Button';\r\n\r\nexport const Error = ({ error }) => {\r\n return
\r\n

Sorry you cannot proceed right now

\r\n

{error.guidanceText}

\r\n

{error.guidanceText1}

\r\n

{error.guidanceText2}

\r\n\r\n \r\n
\r\n} ","import { faSpinner } from '@fortawesome/free-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport React from 'react';\r\n\r\nexport const Loading = () => {\r\n return
\r\n \r\n
\r\n} ","import React, { useState } from 'react';\r\nimport Button from 'reactstrap/lib/Button';\r\nimport Input from 'reactstrap/lib/Input';\r\nimport InputGroup from 'reactstrap/lib/InputGroup';\r\n\r\nexport const Postcode = ({ personName, submitPostCode, validationType, isStaff }) => {\r\n const [tempPostCode, setTempPostCode] = useState(\"\");\r\n\r\n return
\r\n

The Link you provided is unique to {personName} and can only be used once to book an appointment for yourself.

\r\n\r\n

If you are {personName}, please enter your {validationType} to continue.

\r\n\r\n {isStaff ? <>\r\n

You should use the postcode for your address that is registered with Guy’s and St Thomas’. If you have moved house and not told us you may need to enter the postcode of your previous address.

\r\n\r\n

If you do not know your postcode please check the Electronic Staff Record or speak to your manager who can check it for you.

\r\n

(Please ensure ESR has your up to date details.)

\r\n\r\n \r\n : <>\r\n {validationType === 'postcode' && <>\r\n

You should use the postcode for your address that is registered with Guy's and St Thomas' or your GP. If you have moved house and not told us you may need to enter the postcode of your previous address.

\r\n

If you do not know your postcode please telephone 020 7188 4040.

\r\n }\r\n {validationType === 'surname' && <>\r\n

You should use your last name for verification.

\r\n

If you cannot proceed past this screen please call 020 7188 4040.

\r\n }\r\n \r\n }\r\n\r\n \r\n setTempPostCode(e.target.value)} maxLength=\"10\">\r\n

\r\n \r\n
\r\n\r\n Please close this page if you are not {personName}. \r\n
\r\n}","import React from 'react';\r\nimport Button from 'reactstrap/lib/Button';\r\n\r\nexport const Site = ({ sites, setAppointmentSite, failedBooking }) => {\r\n\r\n return <>\r\n {failedBooking &&
Something went wrong with your booking, please try again:
}\r\n {!failedBooking &&
You are eligible to receive a COVID-19 Vaccine at one of our sites.
}\r\n {sites.length === 0 &&

Unfortunately there are no available slots in the next few weeks, please try again in a few days.

}\r\n {sites.length > 0 && <>\r\n

On the next pages you will be able to select both your first appointment and second appointment.

\r\n

Where would you like to be seen?

\r\n {\r\n sites.filter(x => x !== \"Guy's Hospital\" || true).sort(() => Math.random()-Math.random()).map((s, i) => )\r\n }\r\n }\r\n \r\n\r\n}","import React, { useEffect, useState } from 'react';\r\nimport Button from 'reactstrap/lib/Button';\r\nimport ButtonGroup from 'reactstrap/lib/ButtonGroup';\r\nimport { Loading } from './loadingPage';\r\n\r\nconst tempBookingOutComeEnum = {\r\n showMoreInfo: 'moreInfo',\r\n wantToBook: 'wantToBook',\r\n alreadyHad: 'alreadyHad',\r\n notHad: 'notHad',\r\n planningToHaveSomewhereElse: 'planningToHaveSomewhereElse',\r\n decline: 'decline',\r\n talkToClinician: 'talkToClinician',\r\n talkToManager: 'talkToManager',\r\n talkToRCE: 'talkToRCE'\r\n}\r\n\r\nexport const StaffOutcomeSelection = ({ setStaffOutcome, bookingCode, postcode }) => {\r\n\r\n const [tempBookingOutCome, setTempBookingOutCome] = useState();\r\n const [error, setError] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [finishedDeclined, setFinishedDeclined] = useState(false);\r\n const [discussedWithManager, setDiscussedWithManager] = useState(\"\");\r\n\r\n const declineReasonDefinition = [\r\n { text: 'I’m worried about the side effects', code: 'sideEffects', set: false },\r\n { text: 'I’m worried about the long-term impact on my health', code: 'longTermImpact', set: false },\r\n { text: 'There isn’t enough research/information available for me to feel confident to have it', code: 'notEnoughResearch', set: false },\r\n { text: 'I am shielding and do not want to go out to have the vaccine', code: 'shielding', set: false },\r\n { text: 'My family are not supportive of me having the vaccine', code: 'familyNotSupportive', set: false },\r\n { text: 'I have religious/faith reasons', code: 'religion', set: false },\r\n { text: 'I have seen/heard information about the vaccine which concerns me', code: 'seenInformation', set: false },\r\n { text: 'I have moral/ethical/lifestyle reasons', code: 'moralEthicalLifestyle', set: false },\r\n { text: 'I am on a research trial for a new COVID vaccine', code: 'researchTrial', set: false },\r\n { text: 'I am pregnant/breastfeeding', code: 'pregnantOrBreastfeeding', set: false },\r\n { text: 'I have an allergy', code: 'allergy', set: false },\r\n { text: 'I have had COVID and believe that protects me. ', code: 'alreadyHadCovid', set: false },\r\n { text: 'Another reason not listed above', code: 'other', set: false }\r\n ]\r\n\r\n const [declineReasons, setDeclinedReason] = useState(declineReasonDefinition);\r\n\r\n const submitOutcome = async (outcome, callback) => {\r\n setLoading(true);\r\n\r\n const response = await fetch(`/api/StaffQuestionsSubmission/${bookingCode}/${postcode}`, {\r\n method: 'PUT', // *GET, POST, PUT, DELETE, etc.\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'text/plain'\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url\r\n body: outcome // body data type must match \"Content-Type\" header\r\n });\r\n\r\n if (!response.ok) {\r\n setError(true);\r\n }\r\n\r\n setLoading(false);\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n if (tempBookingOutCome && (tempBookingOutComeEnum !== tempBookingOutComeEnum.notHad)) {\r\n submitOutcome(tempBookingOutCome);\r\n }\r\n }, [tempBookingOutCome]);\r\n\r\n const toggleReason = (code) => {\r\n const next = [...declineReasons]\r\n const val = next.find(x => x.code === code);\r\n val.set = !val.set;\r\n setDeclinedReason(next);\r\n }\r\n\r\n const submitDeclinedReason = () => {\r\n var reasonKey = declineReasons.filter(x => x.set).map(x => x.code).join(',');\r\n reasonKey = `Declined:Discussed-${discussedWithManager},${reasonKey}`;\r\n submitOutcome(reasonKey, () => { setFinishedDeclined(true) });\r\n }\r\n\r\n if (error) {\r\n return
\r\n

Something has gone wrong

\r\n

Please refresh the page and try again

\r\n

If this is happening constantly please report the problem to the IT Service Desk

\r\n
\r\n }\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n if (finishedDeclined) {\r\n return
\r\n

Thank you for your response. The information available here - including detailed frequently asked questions, information about the vaccine in different languages, Q&A sessions you can take part in and other support – may help address your concerns.

\r\n

Your feedback is important in helping us understand why people may not want to have their vaccine and will be shared with your directorate management team. Your manager may also wish to have a conversation with you.

\r\n

Please remember that you can come back to this site to book a vaccine at any time if you change your mind.

\r\n
\r\n }\r\n\r\n if (tempBookingOutCome === tempBookingOutComeEnum.showMoreInfo) {\r\n return
\r\n
\r\n Thank you for letting us know you’d like more information about the vaccine.\r\n
\r\n

Please have a look at this information which includes detailed frequently asked questions, videos in different languages and other support to help you make an informed choice.

\r\n

There are also a number of online sessions you can join to help answer any questions you may have. Details of these are available on GTi at gti/vaccine.

\r\n

After you’ve reviewed the information please remember to register your decision on the survey. Until you do this you will receive regular reminders and your directorate management team will be aware that you haven’t completed the survey.

\r\n

Many thanks for your support.

\r\n
\r\n }\r\n\r\n if (tempBookingOutCome === tempBookingOutComeEnum.talkToRCE) {\r\n return
\r\n

Thank you for letting us know you’d like to talk to someone about your religious, cultural, ethical or other non-clinical concerns about the vaccine.

\r\n

A member of staff will contact you over the next few days to help answer any questions you have.

\r\n

In the meantime please have a look at this information which includes detailed frequently asked questions, webinars, information about the vaccine in different languages and other support to help you make an informed choice.

\r\n

There are also a number of online sessions you can join to help answer any questions you may have. Details of these are available on GTi at gti/vaccine.

\r\n

After you’ve had your discussion, and you’ve received to the information you need, please return to the survey to register your decision. Until you do this you will receive regular reminders and your directorate management team will be aware that you haven’t completed the survey.

\r\n

Many thanks for your support

\r\n\r\n
\r\n }\r\n\r\n if (tempBookingOutCome === tempBookingOutComeEnum.talkToManager) {\r\n return
\r\n

Thank you for letting us know you’d like to talk to your line manager about your concerns about the vaccine. Please get in touch with them to arrange your discussion.

\r\n

In the meantime please have a look at this information which includes detailed frequently asked questions, information about the vaccine in different languages and other support to help you make an informed choice.

\r\n

There are also a number of online sessions you can join to help answer any questions you may have. Details of these are available on GTi at gti/vaccine.

\r\n

After you’ve had your discussion, and you’ve received to all the information you need, please return to the survey to register your decision. Until you do this you will receive regular reminders and your directorate management team will be aware that you haven’t completed the survey.

\r\n

Many thanks for your support.

\r\n
\r\n }\r\n\r\n if (tempBookingOutCome === tempBookingOutComeEnum.talkToClinician) {\r\n return
\r\n

Thank you for letting us know you’d like to talk to a clinical member of staff about your concerns about the vaccine.

\r\n

A member of staff will contact you over the next few days to help answer any questions you have.

\r\n

In the meantime please have a look at this information which includes detailed frequently asked questions, webinars, information about the vaccine in different languages and other support to help you make an informed choice.

\r\n

There are also a number of online sessions you can join to help answer any questions you may have. Details of these are available on GTi at gti/vaccine.

\r\n

After you’ve had your discussion, and you’ve received all the information you need, please return to the survey to register your decision. Until you do this you will receive regular reminders and your directorate management team will be aware that you haven’t completed the survey.

\r\n

Many thanks for your support.

\r\n
\r\n }\r\n\r\n if (tempBookingOutCome === tempBookingOutComeEnum.alreadyHad) {\r\n return
\r\n

Many thanks for having the COVID-19 vaccine.

\r\n\r\n

This is our best defence against the virus and can reduce the likelihood of you becoming seriously ill with COVID-19 and transmitting the virus to others.

\r\n

Please remember it’s important to have the second dose to ensure lasting protection from COVID-19.

\r\n

If you are aware of any colleagues who need further information before making a decision, please direct them to gti/vaccine.

\r\n
You can now close this window.
\r\n
\r\n }\r\n\r\n if (tempBookingOutCome === tempBookingOutComeEnum.wantToBook) {\r\n return
\r\n

Thank you for deciding to have your COVID-19 vaccine.

\r\n

You can now book your vaccine appointments online. You will be asked some short screening questions to ensure that it is appropriate for you to receive this vaccine.

\r\n

Please be aware that the vaccine is delivered in two doses, so we will also book your second appointment for you at the same time.

\r\n

NOTE: This link is unique to you and cannot be used to book appointments for anyone else.

\r\n \r\n
\r\n }\r\n\r\n if (tempBookingOutCome === tempBookingOutComeEnum.decline) {\r\n return
\r\n
Thank you for informing us that you would not like to receive the vaccine.
\r\n

Please remember that you’re able to book a vaccine at any time if you change your mind.

\r\n\r\n

Please let us know whether you discussed this decision with a clinician, religious/cultural representative or your manager.

\r\n \r\n \r\n\r\n

We will be very grateful if you can let us know why you’ve decided not to have the vaccine. You can select more than one reason.

\r\n

Your response will not be shared with your manager but it will help us understand more about why people have made this decision.

\r\n\r\n
\r\n {declineReasons.map((reason, i) => )}\r\n
\r\n\r\n \r\n
\r\n }\r\n\r\n if (tempBookingOutCome === tempBookingOutComeEnum.notHad) {\r\n return
\r\n
Thank you for letting us know you’ve not yet had your vaccine.
\r\n

More than 12,000 members of Trust staff, and 20 million people across the country, have already safely received a COVID-19 vaccine. Evidence shows that having the vaccine can reduce the likelihood of you becoming seriously ill with COVID-19 and reduces the risk of you transmitting the virus to others.

\r\n

You now have a number of options:

\r\n
1.\tBook an appointment
\r\n \r\n
2.\tRequest more information or support.
\r\n

If you remain unsure about whether or not to have the vaccine please let us know how we can help:

\r\n \r\n

Please let us know whether you would like to talk to someone:

\r\n \r\n \r\n \r\n
3.\tConfirm you do not want the vaccine
\r\n \r\n
\r\n }\r\n\r\n return
\r\n
COVID-19 vaccine uptake survey
\r\n

As the COVID-19 vaccination programme continues across the country, it is really important for us to have the reassurance that everyone who works for Guy’s and St Thomas’ has had the opportunity to have their vaccine, and has access to the information that they need to be able to make an informed choice.

\r\n\r\n

Please confirm whether or not you have received your first dose of the COVID-19 vaccine:

\r\n
\r\n \r\n \r\n
\r\n
\r\n}","import React from 'react';\r\nimport Button from 'reactstrap/lib/Button';\r\n\r\nexport const Warning = ({ warnings, confirmation, hasNHSNumber }) => {\r\n return <>
\r\n
Please confirm
\r\n\r\n

I consent to share the information I have provided in this booking portal with the National Immunisation and Vaccination Service (NIVS), NHS Digital and my GP

\r\n\r\n

I will also bring in a list of my current medications and (if applicable) my anticoagulation record book to my appointment.

\r\n\r\n {warnings.length !==0 &&

As you answered the following questions, please read and confirm to proceed.

}\r\n {\r\n warnings.map((w, i) =>\r\n
{w.text} {w.answer.warningText()}
\r\n\r\n )\r\n }\r\n\r\n

I confirm that the information I have provided here is true and complete to the best of my knowledge.

\r\n\r\n

If you have question about how and why your information is collected and shared, please refer to our website www.guysandstthomas.nhs.uk and search for \"your health records\".

\r\n\r\n {!hasNHSNumber &&
We do not have your NHS number in our records, please ensure that you bring it to your vaccination appointment
}\r\n\r\n \r\n\r\n
\r\n \r\n\r\n\r\n}","import moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useParams } from \"react-router-dom\";\r\nimport { Card } from 'reactstrap';\r\nimport Button from 'reactstrap/lib/Button';\r\nimport CardBody from 'reactstrap/lib/CardBody';\r\nimport Container from 'reactstrap/lib/Container';\r\nimport Modal from 'reactstrap/lib/Modal';\r\nimport ModalBody from 'reactstrap/lib/ModalBody';\r\nimport ModalHeader from 'reactstrap/lib/ModalHeader';\r\nimport { Accessibility } from './accessabilityPage';\r\nimport { Appointment } from './appointmentPage';\r\nimport { BookingCode } from './bookingCodePage';\r\nimport { Confirmation } from './confirmationPage';\r\nimport { Error } from './errorPage';\r\nimport { Loading } from './loadingPage';\r\nimport { Postcode } from './postcodePage';\r\nimport { Site } from './sitePage';\r\nimport { StaffOutcomeSelection } from './staffOutcomeSelectionPage';\r\nimport { Warning } from './warningPage';\r\n\r\n\r\nexport const Flow = ({ isStaff }) => {\r\n\r\n const { bookingCode, postcode } = useParams();\r\n\r\n const errors = {\r\n codeAlreadyUsed: { key: \"codeAlreadyUsed\", guidanceText: \"The unique booking code you have entered cannot be used at this time.\", guidanceText1: \" This may be because you have already used the code to book an appointment.\", guidanceText2: \"If you have not already booked an appointment and wish to book one, or if you need to reschedule one of your existing appointments, please telephone 0207 1884040. You will need your unique booking code to hand which you will have received by letter or text message. \" },\r\n detailsDoNotMatch: { key: \"detailsDoNotMatch\", guidanceText: \"The postcode you have entered does not link to the one held in our records. Please press the back button and resubmit the correct postcode.\", guidanceText1: \"If you have moved house and not updated us you may need to use the postcode from a previous address.\", guidanceText2: \"If you continue to encounter difficulties, please telephone us on 0207 1884040.\" },\r\n notEligible: { key: \"notEligible\", guidanceText: \"Sorry the information provided mean we cannot vaccinate you at this time.\" },\r\n somethingGoneWrong: { key: \"somethingGoneWrong\", guidanceText: \"Sorry there is a problem with the portal at the moment, please try again.\" },\r\n noAppointments: { key: \"noAppointments\", guidanceText: \"Sorry there are currently no available appointments please try again tomorrow.\" },\r\n invalidCode: { key: \"invalidCode\", guidanceText: \"We do not recognise this booking code please try again.\" },\r\n }\r\n\r\n const [validatedBookingCode, setValidatedBookingCode] = useState(\"\");\r\n const [postCode, setPostCode] = useState(postcode || \"\");\r\n const [personName, setPersonName] = useState();\r\n const [validationType, setValidationType] = useState(\"\");\r\n const [hasNHSNumber, setHasNhsNumber] = useState(false);\r\n const [passedAppointment, setPassedAppointment] = useState(false);\r\n const [accessibility, setAccessibility] = useState(\"\");\r\n const [vaxRestriction, setVaxRestriction] = useState(\"Az\");\r\n const [appointments, setAppointments] = useState([]);\r\n const [firstAppointment, setFirstAppointment] = useState();\r\n const [secondAppointment, setSecondAppointment] = useState();\r\n const [appointmentSite, setAppointmentSite] = useState();\r\n const [bookingDetails, setBookingDetails] = useState();\r\n const [failedBooking, setFailedBooking] = useState(false);\r\n const [sites, setSites] = useState();\r\n const [answers, setAnswers] = useState([]);\r\n const [confirmedWarning, setConfirmedWarnings] = useState(false);\r\n const [staffOutcome, setStaffOutcome] = useState();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState(null);\r\n const [help, setHelp] = useState(null);\r\n\r\n const submitBookingCode = async (bookingCode) => {\r\n setLoading(true);\r\n var response = await fetch(`/api/BookingVerification/${bookingCode.toUpperCase()}`);\r\n if (response.ok) {\r\n var data = await response.json();\r\n setValidatedBookingCode(bookingCode.toUpperCase());\r\n setPersonName(data.name);\r\n setValidationType(data.verificationType);\r\n setHasNhsNumber(data.hasNHSNumber);\r\n setLoading(false);\r\n } else {\r\n var error = await response.text();\r\n setError(errors[error] || errors.somethingGoneWrong);\r\n }\r\n }\r\n\r\n const submitPostCode = async (postcode) => {\r\n setLoading(true);\r\n var response = await fetch(`/api/BookingVerification/${validatedBookingCode}/${validationType}/${postcode}`);\r\n if (response.ok) {\r\n var data = await response.text();\r\n if (data === \"false\") {\r\n setError(errors.detailsDoNotMatch);\r\n }\r\n setPostCode(postcode);\r\n setLoading(false);\r\n } else {\r\n setError(errors.somethingGoneWrong);\r\n }\r\n }\r\n\r\n const getTimeSlots = async (startDate, endDate, restriction, accessibility, locationKeys, filterLocations) => {\r\n var url = `/api/BookingSlotAvailability/${validatedBookingCode}/${postCode}?StartDate=${startDate.format(\"YYYY-MM-DD\")}&EndDate=${endDate.format(\"YYYY-MM-DD\")}`;\r\n\r\n if (accessibility === \"Yes\") {\r\n url += '&accessible=true';\r\n }\r\n\r\n if (restriction) {\r\n url += '&vaccine=' + restriction\r\n }\r\n\r\n if (locationKeys) {\r\n url += '&locationKeys=' + locationKeys.join('|');\r\n }\r\n\r\n var response = await fetch(url);\r\n\r\n if (response.ok) {\r\n var data = await response.json();\r\n if (!data) {\r\n setError(errors.noAppointments);\r\n }\r\n return mapAppointments(data, filterLocations);\r\n\r\n } else {\r\n setError(errors.somethingGoneWrong);\r\n }\r\n }\r\n\r\n const loadAppointments = async (incomingRestrictions) => {\r\n const startDate = new moment().add(1, \"day\");\r\n const endDate = new moment().add(3, \"weeks\");\r\n\r\n const restriction = incomingRestrictions || vaxRestriction;\r\n\r\n const appointments = await getTimeSlots(startDate, endDate, restriction, accessibility);\r\n setAppointments(appointments)\r\n setSites(appointments.filter(x => x.days.length).map(x => x.site));\r\n }\r\n\r\n const load = async () =>{\r\n setLoading(true);\r\n await loadAppointments(vaxRestriction);\r\n setLoading(false);\r\n }\r\n\r\n useEffect(() => {\r\n if(confirmedWarning){\r\n load();\r\n }\r\n }, [confirmedWarning])\r\n\r\n useEffect(() => {\r\n if(staffOutcome !== 'book') {\r\n console.log('POST:' + staffOutcome);\r\n }\r\n },[staffOutcome])\r\n\r\n const mapAppointments = function (appointments, filterLocations) {\r\n const sites = [];\r\n appointments.filter(x => {\r\n if (!filterLocations) return true;\r\n return filterLocations.indexOf(x.location) !== -1\r\n }).forEach(a => {\r\n if (sites.findIndex(x => x.site === a.campus) === -1) {\r\n sites.push({ site: a.campus, days: [] });\r\n }\r\n\r\n const site = sites.find(x => x.site === a.campus);\r\n\r\n a.slots.forEach(slot => {\r\n if (site.days.findIndex(x => x.date === slot.date) === -1) {\r\n site.days.push({ date: slot.date, timeOfDays: [{ timeOfDay: slot.timeOfDay, locations: [a.location], date: slot.date }] });\r\n } else {\r\n const day = site.days.find(x => x.date === slot.date);\r\n if (day.timeOfDays.findIndex(tod => tod.timeOfDay === slot.timeOfDay) === -1) {\r\n day.timeOfDays.push({ timeOfDay: slot.timeOfDay, locations: [a.location], date: slot.date });\r\n } else {\r\n const tod = day.timeOfDays.find(tod => tod.timeOfDay === slot.timeOfDay)\r\n tod.locations.push(a.location);\r\n }\r\n }\r\n });\r\n })\r\n\r\n return sites;\r\n }\r\n\r\n const firstAppointmentSubmission = async (appointment) => {\r\n setLoading(true);\r\n setFirstAppointment(appointment)\r\n const startDate = new moment(appointment.date).add(11, \"weeks\");\r\n const endDate = new moment(appointment.date).add(12, \"weeks\");\r\n console.log(appointment.locations);\r\n const timeSlots = await getTimeSlots(startDate, endDate, vaxRestriction, accessibility, null, appointment.locations);\r\n setAppointments(timeSlots)\r\n\r\n setLoading(false);\r\n }\r\n\r\n const submitRequest = async (request) => {\r\n const data = request;\r\n data.firstAppointment.site = request.site;\r\n data.secondAppointment.site = request.site;\r\n data.bookingCode = validatedBookingCode;\r\n data.verificationCode = postCode;\r\n data.questions = answers.map(x => { return { questionKey: x.questionKey, answers: [x.answer.value] } });\r\n\r\n const response = await fetch('api/QuestionSubmission', {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url\r\n body: JSON.stringify(data) // body data type must match \"Content-Type\" header\r\n });\r\n\r\n if (response.ok) {\r\n\r\n var incomingData = await response.json();\r\n if (incomingData.message) {\r\n switch (incomingData.message) {\r\n case 'NoBookingSlots':\r\n setFirstAppointment(null);\r\n setSecondAppointment(null);\r\n setAppointmentSite(null);\r\n setFailedBooking(true);\r\n setPassedAppointment(false)\r\n await loadAppointments();\r\n break;\r\n default:\r\n setError(errors.somethingGoneWrong);\r\n break;\r\n }\r\n\r\n } else {\r\n setBookingDetails(incomingData);\r\n setPassedAppointment(true)\r\n }\r\n } else {\r\n setError(errors.somethingGoneWrong);\r\n }\r\n\r\n setLoading(false);\r\n }\r\n\r\n const secondAppointmentSubmission = async (appointment) => {\r\n setLoading(true);\r\n setSecondAppointment(appointment)\r\n setPassedAppointment(true);\r\n submitRequest({\r\n site: appointmentSite,\r\n firstAppointment: firstAppointment,\r\n secondAppointment: appointment\r\n });\r\n }\r\n\r\n const getCorrectPage = () => {\r\n if (error) {\r\n return ;\r\n }\r\n if (loading) {\r\n return ;\r\n }\r\n if (!validatedBookingCode) {\r\n return ;\r\n }\r\n\r\n if (!postCode) {\r\n return ;\r\n }\r\n\r\n if(isStaff && !staffOutcome) {\r\n return \r\n }\r\n\r\n if(!accessibility) {\r\n return \r\n }\r\n\r\n const answersWithWarnings = answers.filter(x => x.answer && x.answer.warningText && x.answer.warningText());\r\n if (!confirmedWarning) {\r\n return \r\n }\r\n\r\n if (!passedAppointment) {\r\n if (!appointmentSite && sites) {\r\n return \r\n } else if (!firstAppointment) {\r\n const siteAppointments = appointments.find(x => x.site === appointmentSite);\r\n if (!siteAppointments || siteAppointments.days.length === 0 ) {\r\n return <>\r\n
Sorry there are no first appointment slots available for your selected site please try a different site.
\r\n \r\n \r\n \r\n } else {\r\n return <>\r\n

You have selected {appointmentSite}

\r\n
First Appointment
\r\n \r\n \r\n }\r\n } else {\r\n const siteAppointments = appointments.find(x => x.site === appointmentSite);\r\n if (!siteAppointments || siteAppointments.days.length === 0 ) {\r\n return <>\r\n
Sorry there are no follow-up slots available for your selected site please try a different site or a different first appointment date.
\r\n \r\n \r\n } else {\r\n return <>
Second Appointment
\r\n }\r\n }\r\n }\r\n\r\n if (validatedBookingCode && postCode && passedAppointment) {\r\n return ;\r\n }\r\n\r\n return

\r\n Sorry something has gone wrong on the portal, please refresh your page to try again.\r\n

\r\n }\r\n\r\n return (\r\n {help && \r\n setHelp(null)}>\r\n \r\n {help.helpText()}\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n {getCorrectPage()}\r\n \r\n \r\n \r\n )\r\n}","import React, { Component } from 'react';\r\nimport { Route, Switch } from 'react-router';\r\nimport { Flow } from './components/flow';\r\n\r\nimport './custom.css'\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n\r\n render() {\r\n return (\r\n <>\r\n \r\n } />\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import 'react-app-polyfill/ie11';\r\nimport 'react-app-polyfill/stable'\r\nimport 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\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 rootElement);\r\n\r\n\r\n"],"sourceRoot":""}