{"version":3,"sources":["helpers/toast.js","components/PasswordField/PasswordField.jsx","config/constants.js","components/SimpleSelect/SimpleSelect.jsx","assets/images/visa-logo.png","actions/clinics.js","config/api-codes.js","Views/Dashboard/components/MyBookingForm/MyBookingForm.jsx","Views/Dashboard/components/MyBooking/MyBooking.jsx","assets/images/help.png","actions/appointment.js","assets/images/Mastercard-logo.png","assets/images/card-1.png","Views/Dashboard/components/MinPaymentForm/MinPaymentForm.jsx","Views/Dashboard/components/TermsPage/TermsPage.jsx","Views/Dashboard/components/CardNotApproved/CardNotApproved.jsx","assets/images/user-img.png","assets/images/pound-ic.png","assets/images/logo.png","assets/images/logo-blue.png","assets/images/bell-active.png","assets/images/user.svg","assets/images/password.svg","assets/images/logout.svg","config/routes.js","api/index.js","actions/profile.js","actions/auth.js","api/clinics-axios.js","config/labels.js","actions/card.js","components/SimpleImage/SimpleImage.jsx","helpers/validators.js","Views/ChangePassword/ChangePassword.jsx","actions/notifications.js","Views/Templates/AuthRouter/Header.jsx","routers/AuthRouter.js","routers/NoAuthRouter.js","routers/BasicRouter.js","helpers/firebase.js","App.js","reducers/auth.js","reducers/signup.js","reducers/profile.js","reducers/card.js","reducers/clinics.js","reducers/appointment.js","reducers/payment.js","reducers/notifications.js","reducers/index.js","api/patient-api-scripts.js","sagas/auth.js","api/patient-api-records.js","sagas/signup.js","sagas/profile.js","sagas/card.js","api/clinic-api-find.js","api/patient-clinic-api-find.js","api/patient-clinic-api-records.js","api/patient-appointment-find.js","api/find-payment-cards-api.js","sagas/clinics.js","api/product-api-find.js","api/diary-api-find.js","api/diary-day-api-find.js","api/time-slots-api.js","api/check-time-slots-api.js","sagas/appointment.js","api/payment-api.js","sagas/payment.js","api/get-notifications.js","sagas/notifications.js","sagas/index.js","config/history.js","serviceWorker.js","index.js","config/store.js","config/clear-accept-payment.js","actions/signup.js","api/patient-api-find.js","components/SimpleTextField/TextField.jsx","actions/payment.js"],"names":["Toast","props","toast","type","message","position","POSITION","TOP_RIGHT","closeButton","hideProgressBar","closeOnClick","rtl","PasswordField","useState","showPassword","setShowPassword","wrapperClasses","labelClasses","fieldClasses","errorClasses","warningClasses","push","meta","touched","error","className","join","label","id","name","input","onClick","warning","ADDRESS_FETCH_SERVER_RESPONSE_TYPE","BAD_REQUEST","UNAUTHORIZED_STATUS","LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY","REMEMBER_ME_LOCAL_STORAGE_KEY","TOKEN_LOCAL_STORAGE_KEY","CLINIC_TOKEN_LOCAL_STORAGE_KEY","CLINIC_BASE_URL_HEADER_KEY","LOGGED_USER_SESSION_KEY","CLINIC_SESSION_KEY","DEFAULT_DATE_FORMAT","CARD_APPROVED","MIN_PROFILE_UPLOAD_SIZE","MAX_PROFILE_UPLOAD_SIZE","MC","MC_FULL","SimpleSelect","customStyles","control","styles","state","border","borderColor","dirty","backgroundColor","borderRadius","lineHeight","padding","fontSize","boxShadow","cursor","controlStyles","valueContainer","singleValue","color","singleValueStyles","selectInputStyles","indicatorSeparator","display","dropdownIndicator","opacity","dropdownIndicatorContainerStyles","option","isDisabled","isFocused","isSelected","menu","zIndex","value","onChange","options","noOptionsMessage","module","exports","GET_PATIENT_CLINICS_REQUEST","GET_PATIENT_CLINICS_SUCCESS","GET_PATIENT_CLINICS_ERROR","GET_ALL_CLINICS_REQUEST","GET_ALL_CLINICS_SUCCESS","GET_ALL_CLINICS_ERROR","GET_SINGLE_CLINIC_REQUEST","GET_SINGLE_CLINIC_SUCCESS","GET_SINGLE_CLINIC_ERROR","GET_SINGLE_NOTIFICATION_CLINIC_REQUEST","GET_SINGLE_NOTIFICATION_CLINIC_SUCCESS","GET_SINGLE_NOTIFICATION_CLINIC_ERROR","ADD_PATIENT_CLINIC_REQUEST","ADD_PATIENT_CLINIC_SUCCESS","ADD_PATIENT_CLINIC_ERROR","GET_APPOINTMENTS_REQUEST","GET_APPOINTMENTS_SUCCESS","GET_APPOINTMENTS_ERROR","GET_PATIENT_CLINIC_CARDS_REQUEST","GET_PATIENT_CLINIC_CARDS_SUCCESS","GET_PATIENT_CLINIC_CARDS_ERROR","SET_PATIENT_CLINIC_CARDS_OBJECT","SET_PATIENT_CLINIC_DELETE_CARD","DELETE_PATIENT_CLINIC_CARD_REQUEST","DELETE_PATIENT_CLINIC_CARD_SUCCESS","DELETE_PATIENT_CLINIC_CARD_ERROR","ADD_PATIENT_REQUEST","ADD_PATIENT_SUCCESS","ADD_PATIENT_ERROR","getPatientClinicsRequest","payload","getPatientClinicsSuccess","data","getPatientClinicsError","getAllClinicsRequest","getAllClinicsSuccess","getAllClinicsError","getSingleClinicRequest","getSingleClinicSuccess","getSingleClinicError","getSingleClinicNotificationRequest","getSingleClinicNotificationSuccess","getSingleClinicNotificationError","addPatientClinicRequest","addPatientClinicSuccess","addPatientClinicError","getAppointmentsRequest","getAppointmentsSuccess","getAppointmentsError","getPatientClinicCardsRequest","getPatientClinicCardsSuccess","recordId","getPatientClinicCardsError","setPatientClinicCardsObject","setPatientClinicDeleteCard","clinicRecordId","ID_PaymentCard","cardNumber","baseUrl","deletePatientClinicCardRequest","deletePatientClinicCardSuccess","deletePatientClinicCardError","addPatientRequest","addPatientSuccess","addPatientError","API_CODES","SUCCESS","TOKEN_NOT_FOUND","NOT_UNIQUE_VALIDATION","INVALID_TOKEN","requiredLocation","required","MyBookingForm","categoryValidation","selectedOption","practionerValidation","backFromForm","dispatch","reset","window","$","modal","setTimeout","onSubmit","this","handleSubmit","data-dismiss","aria-label","aria-hidden","SimpleImage","src","selectedClinic","fieldData","Field","component","selectedValue","appointmentTypes","length","validate","event","getPractioner","TextField","readOnly","diaryArray","getActiveDate","to","Component","reduxForm","form","MyBooking","initHostedFields","fieldToken","savedCardToken","that","optionalOptions","cvvOnly","params","clearAcceptGetClearAcceptOptions","HostedFields","initialise","hostedFields","setState","isFormLoading","formError","on","formStatus","cardErrorContainer","document","getElementById","CLEAR_ACCEPT_CARD_ERR_WRAPPER","expdateErrorContainer","CLEAR_ACCEPT_DATE_ERR_WRAPPER","setValidationStatus","card","expDate","cvvErrorContainer","CLEAR_ACCEPT_CVV_ERR_WRAPPER","cvv","CLEAR_ACCEPT_PAY_BTN_ID","addEventListener","preventDefault","setData","accountHolderName","tokenize","token","paymentDetails","loadPaymentSchema","loadingThanyouSchema","selectedFlow","addInvoiceRequest","localStorage","getItem","selectedCategory","IdInvoice","amount","addReceiptRequest","receiptId","fieldStatus","isValid","isPristine","isNotSubmited","innerHTML","ACCESS_FORBIDDEN","backToCards","slideUp","slideDown","setTimeSlot","time","time_stramp","Date","setHours","split","setMinutes","selectedTimeSlot","getClinicAddress","clinic","fullAddress","getBillingAddress","address","getConformationData","fullBillAddress","backToDashboard","getPatientAppointments","history","routes","BASEPATH","goToAppointments","APPOINTMENTS","closeBooking3","closeBooking5","closeBooking6","formData","category","depositAmount","closeBooking7","openTimepicker","findDiaryDayData","currentIndex","checkTimeslotsRequest","query","String","selectedTime","onBooking2","selectedDate","onBooking4","onTermsAccept","findPaymentCardsRequest","onTermsClose","closePayment","onBooking5","onBooking6","createReceiptRequest","createInvoiceRequest","onBooking7","formSubmitted","openDatePicker","findAppointmentTypes","initialize","location","postRequest","JSON","parse","email","then","response","findAppointmentTypesRequest","setOpen","getAppointments","newState","map","element","index","productPrice","ID_Product","change","findDiaryRequest","setDiary","findDiaryDayRequest","getMonth","getDate","getFullYear","setActiveDates","dates","getTime","ActiveDates","chnageDate","getTimeSlotes","date","indexOf","findTimeSlots","findTimeSlotsRequest","toggleSelectSavedCard","savedCard","selectSavedCard","checkboxValue","tooltip","prevProps","findAppointmentTypesLoading","findDiaryLoading","findDiaryDayLoading","checkTimeslotsLoading","createInvoiceLoading","createReceiptLoading","initiatePaymentLoading","confirmPaymentLoading","findReceiptLoading","getConformationLoading","bookFinalSlotLoading","addAppointmentLoading","addInvoiceLoading","addReceiptLoading","findAppointmentTypesData","findTimeSlotsLoading","findDiaryData","createInvoiceData","createReceiptData","initiatePaymentData","confirmPaymentData","findReceiptData","bookFinalSlotData","addAppointmentData","addInvoiceData","addReceiptData","selectedSavedCard","PermanentToken","initiatePaymentRequest","bookFinalSlotRequest","substring","lastIndexOf","findReceiptRequest","backdrop","keyboard","addAppointmentRequest","trim","CvvToken","confirmPaymentRequest","SESSION_TIMEOUT","TokenId","getConformationRequest","tabIndex","role","aria-labelledby","inline","dateFormat","autoFocus","ref","r","dayClassName","renderDate","DAY_LIST","getDay","MONTH_LIST","findTimeSlotsData","key","TermsPage","formId","onTermsAccepted","backFromTerms","terms","MinPaymentForm","minPrice","btnId","canelId","onCancel","Visa","paymentCardsData","alt","z_clientClinicName","Card","CardNumber","style","height","disabled","CLEAR_ACCEPT_CARD_WRAPPER","ExpiryMonth","ExpiryYear","CLEAR_ACCEPT_DATE_WRAPPER","CLEAR_ACCEPT_CVV_WRAPPER","width","data-toggle","title","Help","evnt","htmlFor","cancelId","CardNotApproved","withRouter","connect","appointment","payment","get","checkTimeslotsData","paymentCardsLoading","FIND_APPOINTMENT_TYPES_REQUEST","FIND_APPOINTMENT_TYPES_SUCCESS","FIND_APPOINTMENT_TYPES_ERROR","FIND_DIARY_REQUEST","FIND_DIARY_SUCCESS","FIND_DIARY_ERROR","FIND_DIARY_DAY_REQUEST","FIND_DIARY_DAY_SUCCESS","FIND_DIARY_DAY_ERROR","FIND_TIME_SLOTS_REQUEST","FIND_TIME_SLOTS_SUCCESS","FIND_TIME_SLOTS_ERROR","FIND_PACKAGES_REQUEST","FIND_PACKAGES_SUCCESS","FIND_PACKAGES_ERROR","CHECK_TIMESLOTS_REQUEST","CHECK_TIMESLOTS_SUCCESS","CHECK_TIMESLOTS_ERROR","FIND_PAYMENT_CARDS_REQUEST","FIND_PAYMENT_CARDS_SUCCESS","FIND_PAYMENT_CARDS_ERROR","findAppointmentTypesSuccess","findAppointmentTypesError","findDiarySuccess","findDiaryError","findDiaryDaySuccess","findDiaryDayError","findTimeSlotsSuccess","findTimeSlotsError","findPackagesRequest","findPackagesSuccess","findPackagesError","checkTimeslotsSuccess","checkTimeslotsError","findPaymentCardsSuccess","findPaymentCardsError","requiredMMAMT","selector","formValueSelector","selectedMax","selected","minValueCondition","minValue","selectedMin","validateInput","test","undefined","target","Pound","enableTerms","onScroll","trackScrolling","autoHeight","autoHeightMax","autoHide","autoHideTimeout","autoHideDuration","LOGIN","FORGOT_PASSWORD","SIGNUP","PROFILE","CLINICS","PAYMENTS","PAYMENT_TOKEN","apiError","status","_data","isObject","toString","stringify","_url","authToken","BaseUrl","process","_headers","url","headers","Accept","Authorization","axios","method","catch","request","patchRequest","deleteRequest","interceptors","use","messages","code","credentails","btoa","getAuthorizedToken","config","setItem","Promise","resolve","reject","res","err","PATIENT_PROFILE_REQUEST","PATIENT_PROFILE_SUCCESS","PATIENT_PROFILE_ERROR","UPDATE_PROFILE_REQUEST","UPDATE_PROFILE_SUCCESS","UPDATE_PROFILE_ERROR","UPDATE_PROFILE_IMAGE_REQUEST","UPDATE_PROFILE_IMAGE_SUCCESS","UPDATE_PROFILE_IMAGE_ERROR","UPDATE_PASSWORD_REQUEST","UPDATE_PASSWORD_SUCCESS","UPDATE_PASSWORD_ERROR","patientPofileRequest","patientPofileSuccess","patientPofileError","updatePofileRequest","updatePofileSuccess","updatePofileError","updatePofileImageRequest","updatePofileImageSuccess","updatePofileImageError","updatePasswordRequest","updatePasswordSuccess","updatePasswordError","USER_LOGIN_REQUEST","USER_LOGIN_SUCCESS","USER_LOGIN_ERROR","USER_FP_REQUEST","USER_FP_SUCCESS","USER_FP_ERROR","USER_LOGOUT_REQUEST","USER_LOGOUT_SUCCESS","USER_LOGOUT_ERROR","SET_USER_LOGIN_TITLE","userLoginRequest","userLoginSuccess","userLoginError","userFpRequest","userFpSuccess","userFpError","userLogoutRequest","userLogoutSuccess","userLogoutError","setUserLoginTitle","desc","clinicAxios","create","getRequest","queryParams","INVALID_EMAIL_OR_PASSWORD","SOMETHING_WENT_WRONG","FORGOT_PASSWORD_SUCCESS","FORGOT_PASSWORD_EMAIL_NOT_FOUND","CONGRATULATIONS","EMAIL_ALREADY_IN_USE","CONGRATULATIONS_DESC","NO_DATA_FOUND_FROM_POSTCODE","DELETE_CARD_SUCCESS","ADD_FIRST_CLINIC","PROFILE_UPDATE_SUCCESS","IMAGE_UPLOAD_VALID_ERROR","ADD_CARD_REQUEST","ADD_CARD_SUCCESS","ADD_CARD_ERROR","UPDATE_CARD_REQUEST","UPDATE_CARD_SUCCESS","UPDATE_CARD_ERROR","DELETE_CARD_REQUEST","DELETE_CARD_ERROR","addCardSuccess","addCardError","updateCardSuccess","updateCardError","deleteCardRequest","deleteCardSuccess","deleteCardError","handleLoad","loaded","handleError","defaultimg","defaultImage","DefaultImg","imgStyles","onLoad","onError","requiredDatepicker","requiredExpirayDate","field1","field2","validEmail","validPassword","validPhone","compareValue","compareKey","caseSensitive","msg","toLocaleLowerCase","compareNewPass","isNaN","restrictAtTheRateSymbols","allowAlphaHyphenApos","restrictPipeSymbols","requiredPassword","requiredNPassword","requiredCNPassword","restrictSpecialSymbolsPassword","validNewPassword","ChangePasswordModel","prevState","new_password","old_password","GET_NOTIFICATIONS_REQUEST","GET_NOTIFICATIONS_SUCCESS","GET_NOTIFICATIONS_ERROR","getNotificationsSuccess","getNotificationsError","Header","toggleNotification","slideToggle","handleUpdatePassword","z1","Oldpassword","Newpassword","openChangePassword","getNotificatio","notification","selectedNtification","handleLogout","handleMenuLinkClick","collapse","isActive","menuLink","match","path","patientData","idPatient","getNotificationsRequest","includes","updatePasswordLoading","profileLoading","singleClinicNotificationLoading","updatePasswordData","patientProfileData","singleClinicNotificationData","logoutLoading","logoutSuccess","click","password","removeItem","profilePic","photo","Logo","data-target","aria-controls","aria-expanded","LogoBlue","getNotificationsData","BellActive","nameFirst","nameLast","UserIcon","PasswordIcon","LogoutIcon","ChangePassword","profile","notifications","clinics","auth","profileData","getNotificationsLoading","logoutError","AuthRouter","children","rest","render","pathname","from","querySelector","classList","remove","NoAuthRouter","add","BasicRouter","firebaseApp","fbConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","measurementId","firebase","initializeApp","Login","lazy","ForgotPassword","SignUp","NotFound","Dashboard","Profile","Clinices","Payment","MobilePayment","Appointments","App","analytics","fallback","exact","autoClose","loading","initialState","Map","loginLoading","loginData","loginUserDetails","loginError","loginTitle","loginDesc","fpLoading","fpData","fpError","actionMap","action","merge","settings","signUpLoading","signUpData","signUpError","USER_SIGNUP_REQUEST","USER_SIGNUP_SUCCESS","USER_SIGNUP_ERROR","USER_SIGNUP_EMAIL_DUPLICATE","patientPaymentCards","patientInvoices","patientReceipts","profileError","updateProfileLoading","updateProfileData","updateProfileError","updateProfileImageLoading","updateProfileImageData","updateProfileImageError","portalData","paymentCards","invoices","receipts","errorMsg","addCardLoading","addCardData","updateCardLoading","updateCardData","deleteCardLoading","deleteCardData","allClinicLoading","allClinicData","allClinics","allClinicError","patientClinicLoading","patientClinicData","patientClinics","patientClinicsCardsInfo","patientClinicDeleteCard","deleteStatus","patientClinicError","singleClinicLoading","singleClinicData","singleClinicError","singleClinicNotificationError","addClinicLoading","addClinicData","addClinicError","appointmentLoading","appointments","appointmentData","appointmentError","addPatientLoading","addPatientData","cardInfo","o","isOpen","cards","addCardsInfoToPatientClinics","newCards","i","removeCardFromPatientClinics","isLoaderLoading","findPackagesLoading","findPackagesData","paymentCardsError","createInvoiceError","createReceiptError","initiatePaymentError","confirmPaymentError","findReceiptError","getConformationError","bookFinalSlotError","bookSlotLoading","bookSlotData","bookSlotError","addAppointmentError","addPreviousAppointmentLoading","addPreviousAppointmentData","addPreviousAppointmentError","addInvoiceError","addReceiptError","CREATE_INVOICE_REQUEST","CREATE_INVOICE_SUCCESS","CREATE_INVOICE_ERROR","CREATE_RECEIPT_REQUEST","CREATE_RECEIPT_SUCCESS","CREATE_RECEIPT_ERROR","INITIATE_PAYMENT_REQUEST","INITIATE_PAYMENT_SUCCESS","INITIATE_PAYMENT_ERROR","CONFIRM_PAYMENT_REQUEST","CONFIRM_PAYMENT_SUCCESS","CONFIRM_PAYMENT_ERROR","FIND_RECEIPT_REQUEST","FIND_RECEIPT_SUCCESS","FIND_RECEIPT_ERROR","GET_CONFORMATION_REQUEST","GET_CONFORMATION_SUCCESS","GET_CONFORMATION_ERROR","BOOK_SLOT_FINAL_REQUEST","BOOK_SLOT_FINAL_SUCCESS","BOOK_SLOT_FINAL_ERROR","BOOK_SLOT_REQUEST","BOOK_SLOT_SUCCESS","BOOK_SLOT_ERROR","ADD_APPOINTMENT_REQUEST","ADD_APPOINTMENT_SUCCESS","ADD_APPOINTMENT_ERROR","ADD_PREVIOUS_APPOINTMENT_REQUEST","ADD_PREVIOUS_APPOINTMENT_SUCCESS","ADD_PREVIOUS_APPOINTMENT_ERROR","ADD_INVOICE_REQUEST","ADD_INVOICE_SUCCESS","ADD_INVOICE_ERROR","ADD_RECEIPT_REQUEST","ADD_RECEIPT_SUCCESS","ADD_RECEIPT_ERROR","SELECT_SAVED_CARD","combineReducers","fn","signup","formReducer","forgotPassword","authKey","userAuthWatcher","takeLatest","actions","session_payload","call","findApi","createSession","create_session","scriptError","_payload","userLogin","put","userDetails","scriptsApi","logout","recordsUri","updateProfileUri","updateCard","deleteCard","userSignUp","updateProfile","updateProfileImage","updatePassword","userSignupWatcher","phoneMobile","address1","address2","addressTown","addressCounty","addressPostcode","country","dateOfBirth","recordsApi","userSignUpDuplicateEmail","userSignUpSuccess","userSignUpError","profileAuthWatcher","patientProfile","addressCountry","idSession","sort","fieldName","sortOrder","addCard","getAllClinics","getSingleClinic","addPatient","clinicPostRequest","patientClinicAddPatient","getPatientClinics","addPatientClinic","myAppointment","deleteUri","findPaymentCards","deletePaymentCard","findPatientApi","search","recordsAddPatient","findAppiontments","patientPayload","localPayload","combineData","scriptResult","idClinic","ID_Patient","combinedPatientPayload","patientClinicAddPatientRes","findAppointments","findDiary","findTimeSlot","checkfindTimeSlots","findProductApi","diaryApi","diaryDayApi","timeSlotsApi","checkTimeSlotsApi","findCardsApi","paymentUri","createInvoice","createReceipt","initiatePayment","confirmPayment","findReceipt","getConfirmation","bookFinalSlot","bookSlot","addAppointment","addInvoice","addReceipt","payment_api","createInvoiceSuccess","createReceiptSuccess","initiatePaymentSuccess","confirmPaymentSuccess","findReceiptSuccess","getConformationSuccess","bookFinalSlotSuccess","bookSlotSuccess","addAppointmentSuccess","addPreviousAppointmentSuccess","addInvoiceSuccess","addReceiptSuccess","getNotifications","notificationsApi","rootSaga","all","createBrowserHistory","Boolean","hostname","ReactDOM","store","sagaMiddleware","createSagaMiddleware","composeEnhancers","composeWithDevTools","createStore","rootReducer","applyMiddleware","run","configureStore","navigator","serviceWorker","ready","registration","unregister","clearAcceptGetDefaultStyles","optionalStyles","logoAlignment","placeholderText","expiryDate","base","borderStyle","borderWidth","fontColor","fontWeight","textAlign","focus","hover","optionalFieldsConfig","fields","optionalConfig","containerElementId","expdate","userSignUpRequest","findUri","findEmail","bookSlotRequest","addPreviousAppointmentRequest"],"mappings":"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","file":"static/js/main.71656fbf.chunk.js","sourcesContent":["import { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n\r\nexport const Toast = props => {\r\n return toast[props.type](props.message, {\r\n position: toast.POSITION.TOP_RIGHT,\r\n closeButton: true,\r\n hideProgressBar: true,\r\n closeOnClick: true,\r\n rtl: false\r\n });\r\n};\r\n","import React, { Fragment, useState } from 'react';\r\n\r\nconst PasswordField = (props) => {\r\n const [showPassword, setShowPassword] = useState(false);\r\n const wrapperClasses = ['simple-text-field-wrapper'];\r\n const labelClasses = ['simple-text-field-label'];\r\n const fieldClasses = ['simple-text-field', 'form-control'];\r\n const errorClasses = ['error-msg'];\r\n const warningClasses = ['warning-info'];\r\n if (props.wrapperClasses) {\r\n wrapperClasses.push(props.wrapperClasses);\r\n }\r\n if(props.meta.touched && props.meta.error){\r\n wrapperClasses.push('error-wrapper');\r\n }\r\n if (props.labelClasses) {\r\n labelClasses.push(props.labelClasses);\r\n }\r\n if (props.fieldClasses) {\r\n fieldClasses.push(props.fieldClasses);\r\n }\r\n if (props.errorClasses) {\r\n errorClasses.push(props.errorClasses);\r\n }\r\n if (props.warningClasses) {\r\n warningClasses.push(props.warningClasses);\r\n }\r\n return (\r\n \r\n \r\n {props.label && \r\n {props.label}\r\n \r\n }\r\n \r\n {\r\n showPassword\r\n ?\r\n setShowPassword(false)}>\r\n :\r\n setShowPassword(true)}>\r\n }\r\n {props.meta.touched &&\r\n (\r\n (props.meta.error &&

{props.meta.error}

) ||\r\n (props.meta.warning &&

{props.meta.warning}

)\r\n )\r\n }\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default PasswordField;","export const ADDRESS_FETCH_SERVER_RESPONSE_TYPE = \"data_formatted\";\r\n\r\nexport const BAD_REQUEST = 400;\r\nexport const UNAUTHORIZED_STATUS = 401;\r\nexport const COMPONENT_DELAY = 300;\r\nexport const COMPONENT_TIMEOUT = 4000;\r\n\r\nexport const LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY = \"user-details\";\r\nexport const REMEMBER_ME_LOCAL_STORAGE_KEY = \"remember-me\";\r\nexport const TOKEN_LOCAL_STORAGE_KEY = \"access-token\";\r\nexport const CLINIC_TOKEN_LOCAL_STORAGE_KEY = \"clinic-access-token\";\r\nexport const CLINIC_BASE_URL_HEADER_KEY = \"clinic-base-url\";\r\nexport const LOGGED_USER_SESSION_KEY = \"session-key\";\r\nexport const CLINIC_SESSION_KEY = \"clinic-session-key\";\r\nexport const DEFAULT_DATE_FORMAT = \"dd/MM/yyyy\";\r\nexport const CARD_APPROVED = \"Approved\";\r\n\r\nexport const MIN_PROFILE_UPLOAD_SIZE = 10240;\r\nexport const MAX_PROFILE_UPLOAD_SIZE = 15728640;\r\n\r\nexport const VISA = \"VISA\";\r\nexport const MC = \"MC\";\r\nexport const MC_FULL = \"MasterCard\";\r\nexport const AXEP = \"AXEP\";\r\nexport const AXEP_FULL = \"American Express\";\r\n","import React, { Fragment } from 'react';\r\nimport Select from 'react-select';\r\n\r\nimport './SimpleSelect.css';\r\n\r\nconst SimpleSelect = (props) => {\r\n const wrapperClasses = ['simple-text-field-wrapper'];\r\n const labelClasses = ['simple-text-field-label'];\r\n const errorClasses = ['error-msg'];\r\n const warningClasses = ['warning-info'];\r\n if (props.wrapperClasses) {\r\n wrapperClasses.push(props.wrapperClasses);\r\n }\r\n if (props.labelClasses) {\r\n labelClasses.push(props.labelClasses);\r\n }\r\n if (props.errorClasses) {\r\n errorClasses.push(props.errorClasses);\r\n }\r\n if (props.warningClasses) {\r\n warningClasses.push(props.warningClasses);\r\n }\r\n const customStyles = {\r\n control: (styles, state) => {\r\n let border = '1px solid #6c7b8a';\r\n let borderColor = '#6c7b8a';\r\n if ((props.meta.dirty || props.meta.touched) && props.meta.error) {\r\n border = '1px solid #fe0000';\r\n borderColor = '#fe0000';\r\n }\r\n return {\r\n ...styles,\r\n backgroundColor: '#FFFFFF',\r\n border,\r\n borderRadius: '26px',\r\n lineHeight: '40px',\r\n padding: '0 20px 0 20px',\r\n fontSize: '16px',\r\n boxShadow: 'none',\r\n ':hover': {\r\n borderColor,\r\n boxShadow: 'none',\r\n cursor: 'pointer'\r\n },\r\n ':blur': {\r\n borderColor,\r\n boxShadow: 'none'\r\n },\r\n ...props.controlStyles\r\n }\r\n },\r\n valueContainer: (styles, state) => {\r\n return {\r\n ...styles,\r\n padding: 0\r\n }\r\n },\r\n singleValue: (styles, state) => {\r\n return {\r\n ...styles,\r\n color: '#2A2D30',\r\n padding: 0,\r\n ...props.singleValueStyles\r\n }\r\n },\r\n input: (styles, state) => {\r\n return {\r\n ...styles,\r\n color: '#2A2D30',\r\n ...props.selectInputStyles\r\n }\r\n },\r\n indicatorSeparator: (styles, state) => {\r\n return {\r\n ...styles,\r\n display: 'none'\r\n }\r\n },\r\n dropdownIndicator: (styles, state) => {\r\n return {\r\n ...styles,\r\n color: '#2A2D30',\r\n opacity: '0.3',\r\n ':hover': {\r\n color: '#2A2D30',\r\n opacity: '0.3',\r\n },\r\n ...props.dropdownIndicatorContainerStyles\r\n }\r\n },\r\n option: (styles, state) => {\r\n return {\r\n ...styles,\r\n backgroundColor: state.isDisabled\r\n ? null\r\n : state.isFocused\r\n ? \"#FFBC5B\"\r\n : state.isSelected\r\n ? \"#DDDDDD\"\r\n : null,\r\n color: state.isDisabled\r\n ? \"#CCC\"\r\n : state.isFocused\r\n ? \"#FFFFFF\"\r\n : \"#333333\",\r\n cursor: state.isDisabled ? 'not-allowed' : 'default',\r\n ':active': {\r\n ...styles[':active'],\r\n backgroundColor: '#FFBC5B',\r\n color: '#FFFFFF'\r\n }\r\n }\r\n },\r\n menu: (styles, state) => {\r\n return {\r\n ...styles,\r\n zIndex: 9999\r\n }\r\n }\r\n };\r\n return (\r\n \r\n \r\n {\r\n props.label && \r\n {props.label}\r\n \r\n }\r\n {\r\n props.input.onChange(value);\r\n }}\r\n options={props.options}\r\n styles={customStyles}\r\n noOptionsMessage={() => props.noOptionsMessage ? props.noOptionsMessage : \"No options...\"}\r\n isDisabled={typeof props.isDisabled !== 'undefined' ? props.isDisabled : false}\r\n />\r\n {\r\n (props.meta.dirty || props.meta.touched) &&\r\n (\r\n (props.meta.error &&

{props.meta.error}

) ||\r\n (props.meta.warning &&

{props.meta.warning}

)\r\n )\r\n }\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SimpleSelect;","module.exports = \"data:image/png;base64,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\"","const GET_PATIENT_CLINICS_ACTION = \"GET/PATIENT/CLINICS\";\r\nconst GET_ALL_CLINICS_ACTION = \"GET/ALL/CLINICS\";\r\nconst GET_SINGLE_CLINIC_ACTION = \"GET/SINGLE/CLINIC\";\r\nconst GET_SINGLE_NOTIFICATION_CLINIC_ACTION = \"GET/SINGLE/NOTIFICATION/CLINIC\";\r\nconst ADD_PATIENT_CLINIC_ACTION = \"ADD/PATIENT/CLINIC\";\r\nconst GET_APPOINTMENTS = \"GET/APPOINTMENTS\";\r\nconst GET_PATIENT_CLINIC_CARDS = \"GET/PATIENT_CLINIC/CARDS\";\r\nconst DELETE_PATIENT_CLINIC_CARD = \"DELETE/PATIENT_CLINIC/CARD\";\r\nconst ADD_PATIENT_ACTION = \"ADD/PATIENT\";\r\n\r\nexport const GET_PATIENT_CLINICS_REQUEST = `${GET_PATIENT_CLINICS_ACTION}/REQUEST`;\r\nexport const GET_PATIENT_CLINICS_SUCCESS = `${GET_PATIENT_CLINICS_ACTION}/SUCCESS`;\r\nexport const GET_PATIENT_CLINICS_ERROR = `${GET_PATIENT_CLINICS_ACTION}/ERROR`;\r\n\r\nexport const GET_ALL_CLINICS_REQUEST = `${GET_ALL_CLINICS_ACTION}/REQUEST`;\r\nexport const GET_ALL_CLINICS_SUCCESS = `${GET_ALL_CLINICS_ACTION}/SUCCESS`;\r\nexport const GET_ALL_CLINICS_ERROR = `${GET_ALL_CLINICS_ACTION}/ERROR`;\r\n\r\nexport const GET_SINGLE_CLINIC_REQUEST = `${GET_SINGLE_CLINIC_ACTION}/REQUEST`;\r\nexport const GET_SINGLE_CLINIC_SUCCESS = `${GET_SINGLE_CLINIC_ACTION}/SUCCESS`;\r\nexport const GET_SINGLE_CLINIC_ERROR = `${GET_SINGLE_CLINIC_ACTION}/ERROR`;\r\n\r\nexport const GET_SINGLE_NOTIFICATION_CLINIC_REQUEST = `${GET_SINGLE_NOTIFICATION_CLINIC_ACTION}/REQUEST`;\r\nexport const GET_SINGLE_NOTIFICATION_CLINIC_SUCCESS = `${GET_SINGLE_NOTIFICATION_CLINIC_ACTION}/SUCCESS`;\r\nexport const GET_SINGLE_NOTIFICATION_CLINIC_ERROR = `${GET_SINGLE_NOTIFICATION_CLINIC_ACTION}/ERROR`;\r\n\r\nexport const ADD_PATIENT_CLINIC_REQUEST = `${ADD_PATIENT_CLINIC_ACTION}/REQUEST`;\r\nexport const ADD_PATIENT_CLINIC_SUCCESS = `${ADD_PATIENT_CLINIC_ACTION}/SUCCESS`;\r\nexport const ADD_PATIENT_CLINIC_ERROR = `${ADD_PATIENT_CLINIC_ACTION}/ERROR`;\r\n\r\nexport const GET_APPOINTMENTS_REQUEST = `${GET_APPOINTMENTS}/REQUEST`;\r\nexport const GET_APPOINTMENTS_SUCCESS = `${GET_APPOINTMENTS}/SUCCESS`;\r\nexport const GET_APPOINTMENTS_ERROR = `${GET_APPOINTMENTS}/ERROR`;\r\n\r\nexport const GET_PATIENT_CLINIC_CARDS_REQUEST = `${GET_PATIENT_CLINIC_CARDS}/REQUEST`;\r\nexport const GET_PATIENT_CLINIC_CARDS_SUCCESS = `${GET_PATIENT_CLINIC_CARDS}/SUCCESS`;\r\nexport const GET_PATIENT_CLINIC_CARDS_ERROR = `${GET_PATIENT_CLINIC_CARDS}/ERROR`;\r\nexport const SET_PATIENT_CLINIC_CARDS_OBJECT = \"SET/PATIENT_CLINIC/CARDS/OBJECT\";\r\n\r\nexport const SET_PATIENT_CLINIC_DELETE_CARD = \"SET/PATIENT_CLINIC/DELETE/CARD\";\r\nexport const DELETE_PATIENT_CLINIC_CARD_REQUEST = `${DELETE_PATIENT_CLINIC_CARD}/REQUEST`;\r\nexport const DELETE_PATIENT_CLINIC_CARD_SUCCESS = `${DELETE_PATIENT_CLINIC_CARD}/SUCCESS`;\r\nexport const DELETE_PATIENT_CLINIC_CARD_ERROR = `${DELETE_PATIENT_CLINIC_CARD}/ERROR`;\r\n\r\nexport const ADD_PATIENT_REQUEST = `${ADD_PATIENT_ACTION}/REQUEST`;\r\nexport const ADD_PATIENT_SUCCESS = `${ADD_PATIENT_ACTION}/SUCCESS`;\r\nexport const ADD_PATIENT_ERROR = `${ADD_PATIENT_ACTION}/ERROR`;\r\n\r\n// export const CLINIC_SESSION_REQUEST = `${CLINIC_SESSION}/REQUEST`;\r\n// export const CLINIC_SESSION_SUCCESS = `${CLINIC_SESSION}/SUCCESS`;\r\n// export const CLINIC_SESSION_ERROR = `${CLINIC_SESSION}/ERROR`;\r\n\r\nexport function getPatientClinicsRequest(payload) {\r\n return {\r\n type: GET_PATIENT_CLINICS_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function getPatientClinicsSuccess(data) {\r\n return {\r\n type: GET_PATIENT_CLINICS_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function getPatientClinicsError(error) {\r\n return {\r\n type: GET_PATIENT_CLINICS_ERROR,\r\n error\r\n };\r\n}\r\n\r\nexport function getAllClinicsRequest(payload) {\r\n return {\r\n type: GET_ALL_CLINICS_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function getAllClinicsSuccess(data) {\r\n return {\r\n type: GET_ALL_CLINICS_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function getAllClinicsError(error) {\r\n return {\r\n type: GET_ALL_CLINICS_ERROR,\r\n error\r\n };\r\n}\r\n\r\n\r\nexport function getSingleClinicRequest(payload) {\r\n return {\r\n type: GET_SINGLE_CLINIC_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function getSingleClinicSuccess(data) {\r\n return {\r\n type: GET_SINGLE_CLINIC_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function getSingleClinicError(error) {\r\n return {\r\n type: GET_SINGLE_CLINIC_ERROR,\r\n error\r\n };\r\n}\r\n\r\n\r\nexport function getSingleClinicNotificationRequest(payload) {\r\n return {\r\n type: GET_SINGLE_NOTIFICATION_CLINIC_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function getSingleClinicNotificationSuccess(data) {\r\n return {\r\n type: GET_SINGLE_NOTIFICATION_CLINIC_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function getSingleClinicNotificationError(error) {\r\n return {\r\n type: GET_SINGLE_NOTIFICATION_CLINIC_ERROR,\r\n error\r\n };\r\n}\r\n\r\nexport function addPatientClinicRequest(payload) {\r\n return {\r\n type: ADD_PATIENT_CLINIC_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function addPatientClinicSuccess(data) {\r\n return {\r\n type: ADD_PATIENT_CLINIC_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function addPatientClinicError(error) {\r\n return {\r\n type: ADD_PATIENT_CLINIC_ERROR,\r\n error\r\n };\r\n}\r\n\r\nexport function getAppointmentsRequest(payload) {\r\n return {\r\n type: GET_APPOINTMENTS_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function getAppointmentsSuccess(data) {\r\n return {\r\n type: GET_APPOINTMENTS_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function getAppointmentsError(error) {\r\n return {\r\n type: GET_PATIENT_CLINICS_ERROR,\r\n error\r\n };\r\n}\r\n\r\nexport function getPatientClinicCardsRequest(payload) {\r\n return {\r\n type: GET_PATIENT_CLINIC_CARDS_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function getPatientClinicCardsSuccess(recordId, data) {\r\n return {\r\n type: GET_PATIENT_CLINIC_CARDS_SUCCESS,\r\n recordId,\r\n data\r\n };\r\n}\r\n\r\nexport function getPatientClinicCardsError(recordId, error) {\r\n return {\r\n type: GET_PATIENT_CLINIC_CARDS_ERROR,\r\n recordId,\r\n error\r\n };\r\n}\r\n\r\nexport function setPatientClinicCardsObject(recordId, payload) {\r\n return {\r\n type: SET_PATIENT_CLINIC_CARDS_OBJECT,\r\n recordId,\r\n payload\r\n };\r\n}\r\n\r\nexport function setPatientClinicDeleteCard(clinicRecordId, ID_PaymentCard, cardNumber, baseUrl) {\r\n return {\r\n type: SET_PATIENT_CLINIC_DELETE_CARD,\r\n clinicRecordId,\r\n ID_PaymentCard,\r\n cardNumber,\r\n baseUrl\r\n };\r\n}\r\n\r\nexport function deletePatientClinicCardRequest(payload) {\r\n return {\r\n type: DELETE_PATIENT_CLINIC_CARD_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function deletePatientClinicCardSuccess(clinicRecordId, ID_PaymentCard, data) {\r\n return {\r\n type: DELETE_PATIENT_CLINIC_CARD_SUCCESS,\r\n clinicRecordId,\r\n ID_PaymentCard,\r\n data\r\n };\r\n}\r\n\r\nexport function deletePatientClinicCardError(error) {\r\n return {\r\n type: DELETE_PATIENT_CLINIC_CARD_ERROR,\r\n error\r\n };\r\n}\r\n\r\nexport function addPatientRequest(payload) {\r\n return {\r\n type: ADD_PATIENT_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function addPatientSuccess(data) {\r\n return {\r\n type: ADD_PATIENT_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function addPatientError(error) {\r\n return {\r\n type: ADD_PATIENT_ERROR,\r\n error\r\n };\r\n}\r\n","const API_CODES = {\r\n SUCCESS: \"0\",\r\n TOKEN_NOT_FOUND: \"10\",\r\n NOT_UNIQUE_VALIDATION: \"504\",\r\n INVALID_TOKEN: \"952\",\r\n};\r\nexport default API_CODES;\r\n","import React, { Component } from \"react\";\r\nimport { reduxForm, Field, reset } from \"redux-form\";\r\nimport $ from \"jquery\";\r\nimport SimpleImage from \"../../../../components/SimpleImage/SimpleImage\";\r\nimport { required } from \"../../../../helpers/validators\";\r\nimport TextField from \"../../../../components/SimpleTextField/TextField\";\r\nimport SimpleSelect from \"../../../../components/SimpleSelect/SimpleSelect\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst requiredLocation = required(\"location\");\r\n\r\nclass MyBookingForm extends Component {\r\n\r\n render(){\r\n\r\n return(\r\n
\r\n
\r\n \r\n \r\n

Choose a treatment

\r\n
\r\n this.props.getPractioner(event)}\r\n />\r\n \r\n this.props.getActiveDate(event)}\r\n />\r\n
\t\r\n
\r\n
\r\n \r\n this.backFromForm()}>back\r\n
\r\n
\r\n )\r\n }\r\n\r\n\r\n categoryValidation = selectedOption =>{\r\n if (!selectedOption || !selectedOption.value) {\r\n return \"Please select category\";\r\n }\r\n \r\n return undefined;\r\n \r\n }\r\n\r\n practionerValidation = selectedOption =>{\r\n\r\n if (!selectedOption || !selectedOption.value) {\r\n return \"Please select practitioner\";\r\n }\r\n \r\n return undefined;\r\n \r\n }\r\n\r\n backFromForm = () =>{\r\n this.props.dispatch(reset(\"my-booking-form\"));\r\n window.$(\".my_booking_flow\").modal('hide');\r\n setTimeout(() => {\r\n window.$(\"#choose_appointment_card\").modal('show'); \r\n }, 500);\r\n }\r\n\r\n}\r\n\r\nMyBookingForm = reduxForm({\r\n form: \"my-booking-form\"\r\n})(MyBookingForm);\r\n \r\n\r\nexport default MyBookingForm;","import React, { Component, Fragment } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { change, initialize, reset } from \"redux-form\";\r\nimport { withRouter, Link } from \"react-router-dom\";\r\nimport { Scrollbars } from 'react-custom-scrollbars';\r\nimport DatePicker from \"react-datepicker\";\r\nimport $ from \"jquery\";\r\nimport MyBookingForm from \"../MyBookingForm/MyBookingForm\";\r\nimport MinPaymentForm from \"../MinPaymentForm/MinPaymentForm\";\r\nimport TermsPage from \"../TermsPage/TermsPage\";\r\nimport CardNotApproved from \"../CardNotApproved/CardNotApproved\"\r\nimport {\r\n findAppointmentTypesRequest,\r\n findDiaryRequest,\r\n findDiaryDayRequest,\r\n findTimeSlotsRequest,\r\n checkTimeslotsRequest,\r\n findPaymentCardsRequest\r\n} from \"../../../../actions/appointment\";\r\nimport {\r\n createInvoiceRequest,\r\n createReceiptRequest,\r\n initiatePaymentRequest,\r\n confirmPaymentRequest,\r\n findReceiptRequest,\r\n getConformationRequest,\r\n bookFinalSlotRequest,\r\n addAppointmentRequest,\r\n addInvoiceRequest,\r\n addReceiptRequest, selectSavedCard\r\n} from \"../../../../actions/payment\";\r\nimport {\r\n ACCESS_FORBIDDEN,\r\n DAY_LIST,\r\n MONTH_LIST,\r\n SESSION_TIMEOUT\r\n} from \"../../../../config/labels\";\r\nimport { CARD_APPROVED, CLINIC_SESSION_KEY, LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY, LOGGED_USER_SESSION_KEY } from \"../../../../config/constants\";\r\nimport {\r\n clearAcceptGetClearAcceptOptions,\r\n CLEAR_ACCEPT_CARD_ERR_WRAPPER,\r\n CLEAR_ACCEPT_CARD_WRAPPER,\r\n CLEAR_ACCEPT_CVV_ERR_WRAPPER,\r\n CLEAR_ACCEPT_CVV_WRAPPER,\r\n CLEAR_ACCEPT_DATE_ERR_WRAPPER,\r\n CLEAR_ACCEPT_DATE_WRAPPER,\r\n CLEAR_ACCEPT_PAY_BTN_ID\r\n} from \"../../../../config/clear-accept-payment\";\r\nimport SimpleImage from \"../../../../components/SimpleImage/SimpleImage\";\r\nimport Card from \"../../../../assets/images/card-1.png\";\r\nimport Help from \"../../../../assets/images/help.png\";\r\nimport Visa from \"../../../../assets/images/visa-logo.png\";\r\nimport MC from \"../../../../assets/images/Mastercard-logo.png\";\r\nimport { routes } from \"../../../../config/routes\";\r\nimport { postRequest } from \"../../../../api/clinics-axios\";\r\n\r\nclass MyBooking extends Component {\r\n constructor(props) { \r\n super(props);\r\n this.state = {\r\n baseUrl: '',\r\n appointmentTypes: [],\r\n diaryArray: [],\r\n ActiveDates: [],\r\n selectedClinic: {},\r\n selectedTime: {},\r\n selectedTimeSlot: null,\r\n selectedDate: null,\r\n formData: {},\r\n selectedCategory: {},\r\n amount: 0,\r\n receiptId: '',\r\n paymentDetails: {},\r\n IdInvoice: null,\r\n checkboxValue: false,\r\n isFormLoading: false,\r\n formError: null,\r\n loadPaymentSchema: false,\r\n loadingThanyouSchema: false,\r\n currentIndex: -1\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.selectedFlow === \"treatment\") {\r\n this.findAppointmentTypes(this.props.selectedClinic);\r\n this.setState({ baseUrl: this.props.selectedClinic['client|patient::filepath'] });\r\n } else {\r\n postRequest(\r\n '/layouts/access/_find',\r\n {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"createSession\",\r\n \"script.param\" : JSON.parse(localStorage.getItem(LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY)).email,\r\n },\r\n \"\",\r\n this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n ) \r\n }\r\n window.$('[data-toggle=\"tooltip\"]').tooltip(); \r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const {\r\n findAppointmentTypesLoading,\r\n findDiaryLoading,\r\n findDiaryDayLoading,\r\n checkTimeslotsLoading,\r\n createInvoiceLoading,\r\n createReceiptLoading,\r\n initiatePaymentLoading,\r\n confirmPaymentLoading,\r\n findReceiptLoading,\r\n getConformationLoading,\r\n bookFinalSlotLoading,\r\n addAppointmentLoading,\r\n addInvoiceLoading,\r\n addReceiptLoading,\r\n findTimeSlotsLoading,\r\n findAppointmentTypesData,\r\n findDiaryData,\r\n findDiaryDayData,\r\n createInvoiceData,\r\n createReceiptData,\r\n initiatePaymentData,\r\n confirmPaymentData,\r\n findReceiptData,\r\n getConformationData,\r\n bookFinalSlotData,\r\n addAppointmentData,\r\n addInvoiceData,\r\n addReceiptData\r\n } = this.props;\r\n\r\n if (this.props?.selectedClinic?.['fieldData']?.['ID_Clinic'] && this.props?.selectedClinic?.['fieldData']?.['ID_Clinic'] !== prevProps.selectedClinic?.['fieldData']?.['ID_Clinic']) {\r\n if (this.props.selectedFlow === \"treatment\") {\r\n this.setState({ baseUrl: this.props.selectedClinic['client|patient::filepath'] });\r\n this.findAppointmentTypes(this.props.selectedClinic);\r\n }\r\n }\r\n\r\n if (!findAppointmentTypesLoading && prevProps.findAppointmentTypesLoading !== findAppointmentTypesLoading) {\r\n if (this.props.selectedFlow === \"treatment\") {\r\n this.getAppointments(findAppointmentTypesData);\r\n }\r\n }\r\n if (!findDiaryLoading && prevProps.findDiaryLoading !== findDiaryLoading) {\r\n this.setDiary(findDiaryData);\r\n }\r\n if (!findDiaryDayLoading && prevProps.findDiaryDayLoading !== findDiaryDayLoading) {\r\n if (this.props.selectedFlow === \"treatment\") {\r\n this.setActiveDates(findDiaryDayData);\r\n }\r\n }\r\n if (!checkTimeslotsLoading && prevProps.checkTimeslotsLoading !== checkTimeslotsLoading) {\r\n if (this.props.selectedFlow === \"treatment\") {\r\n this.findTimeSlots();\r\n }\r\n }\r\n\r\n if (!createInvoiceLoading && prevProps.createInvoiceLoading !== createInvoiceLoading) {\r\n if (createInvoiceData && this.props.selectedFlow === \"treatment\") {\r\n\r\n this.props.dispatch(createReceiptRequest({\r\n baseUrl: this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n payload: {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"createReceipt\",\r\n \"script.param\" : `${localStorage.getItem(CLINIC_SESSION_KEY)}|${createInvoiceData?.['response']?.['scriptResult']}|${this.state.amount}|${localStorage.getItem(LOGGED_USER_SESSION_KEY)}|${this.props.selectedClinic['fieldData']['idClinic']}`\r\n }\r\n }));\r\n this.setState({ IdInvoice: createInvoiceData?.['response']?.['scriptResult'] })\r\n }\r\n }\r\n\r\n if (!createReceiptLoading && prevProps.createReceiptLoading !== createReceiptLoading) {\r\n if (createReceiptData && createReceiptData['response'] && (this.props.selectedFlow === \"treatment\" || this.props.selectedFlow === \"payment\")) {\r\n let savedCardToken = '';\r\n if (this.props.selectedSavedCard && this.props.selectedSavedCard.PermanentToken) {\r\n savedCardToken = this.props.selectedSavedCard.PermanentToken;\r\n }\r\n this.props.dispatch(initiatePaymentRequest({\r\n baseUrl: this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n payload: {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \r\n \"script\" : \"initiatePayment\",\r\n \"script.param\" : `${createReceiptData['response']['scriptResult']}|${savedCardToken}`\r\n }\r\n }))\r\n this.setState({ receiptId: createReceiptData['response']['scriptResult'] });\r\n }\r\n }\r\n\r\n if (!initiatePaymentLoading && prevProps.initiatePaymentLoading !== initiatePaymentLoading) {\r\n if (initiatePaymentData && (this.props.selectedFlow === \"treatment\" || this.props.selectedFlow === \"payment\")) {\r\n this.setState({ fieldToken: initiatePaymentData['response']['scriptResult'] })\r\n if (initiatePaymentData && initiatePaymentData['response']['scriptResult']) {\r\n let savedCardToken = '';\r\n if (this.props.selectedSavedCard && this.props.selectedSavedCard.PermanentToken) {\r\n savedCardToken = this.props.selectedSavedCard.PermanentToken;\r\n }\r\n this.initHostedFields(initiatePaymentData['response']['scriptResult'], savedCardToken);\r\n }\r\n }\r\n }\r\n\r\n if (!confirmPaymentLoading && prevProps.confirmPaymentLoading !== confirmPaymentLoading) {\r\n if (confirmPaymentData) {\r\n\r\n if(confirmPaymentData['response']['scriptResult'] === CARD_APPROVED){\r\n if (this.props.selectedFlow === \"treatment\") {\r\n this.props.dispatch(bookFinalSlotRequest({\r\n baseUrl: this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n payload: {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ], \r\n \"script\" : \"bookTimeslots\",\r\n \"script.param\" : `${localStorage.getItem(CLINIC_SESSION_KEY)}|${this.state.selectedTimeSlot?.['fieldData']?.['Date']?.split(\"/\")[1] + \"/\" + this.state.selectedTimeSlot?.['fieldData']?.['Date']?.split(\"/\")[0] + \"/\" + this.state.selectedTimeSlot?.['fieldData']?.['Date']?.split(\"/\")[2]}|${this.state.selectedTimeSlot?.['fieldData']?.['ID_Diary']}|${this.state.selectedCategory?.['ID_Product']}|${this.state.selectedCategory?.['length']}|${this.state.selectedTimeSlot?.['fieldData']?.['ID_DiaryTimeslot']}|${this.state.selectedTimeSlot?.['fieldData']?.['Time'].substring(this.state.selectedTimeSlot?.['fieldData']?.['Time']?.lastIndexOf(\":\"), 0)}|${\"\"}`\r\n }\r\n // ${this.state.formData?.category?.value}\r\n // ${this.state.selectedTreatment?.['fieldData']?.['ID_Product']}\r\n\r\n }))\r\n } else if (this.props.selectedFlow === \"payment\") {\r\n this.props.dispatch(findReceiptRequest({\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \r\n \"script\" : \"findReceipt\",\r\n \"script.param\" : `${this.props.selectedClinic['fieldData']['idClinic']}|${this.state.receiptId}`\r\n }))\r\n }\r\n } else {\r\n window.$('#card_not_approved').modal({backdrop: 'static', keyboard: false},'show');\r\n }\r\n\r\n }\r\n }\r\n if (!bookFinalSlotLoading && prevProps.bookFinalSlotLoading !== bookFinalSlotLoading) {\r\n if (bookFinalSlotData && this.props.selectedFlow === \"treatment\") {\r\n this.props.dispatch(addAppointmentRequest({\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ], \r\n \"script\" : \"createAppointment\",\r\n \"script.param\" : `${this.props.selectedClinic['fieldData']['idClinic']}|${localStorage.getItem(LOGGED_USER_SESSION_KEY)}|${this.state.selectedTimeSlot?.['fieldData']?.['Date']}|${this.state.selectedTimeSlot?.['fieldData']?.['Time'].substring(this.state.selectedTimeSlot?.['fieldData']?.['Time']?.lastIndexOf(\":\"), 0)}|${this.state.formData?.['practioner']?.['label']}|${this.state.selectedCategory?.['length']}|${this.state.selectedCategory?.label?.split(\"-\")?.[0]?.trim()}|${this.state.IdInvoice}|${this.state.selectedTimeSlot?.['fieldData']?.['ID_Appointment']}`\r\n }))\r\n }\r\n }\r\n\r\n if (!addAppointmentLoading && prevProps.addAppointmentLoading !== addAppointmentLoading) {\r\n if (addAppointmentData && this.props.selectedFlow === \"treatment\") {\r\n this.props.dispatch(findReceiptRequest({\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \r\n \"script\" : \"findReceipt\",\r\n \"script.param\" : `${this.props.selectedClinic['fieldData']['idClinic']}|${this.state.receiptId}`\r\n }))\r\n }\r\n }\r\n\r\n if (!addInvoiceLoading && prevProps.addInvoiceLoading !== addInvoiceLoading) {\r\n if (addInvoiceData && this.props.selectedFlow === \"treatment\") {\r\n this.props.dispatch(addReceiptRequest({\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \r\n \"script\" : \"createReceipt\",\r\n \"script.param\" : `${this.props.selectedClinic['fieldData']['idClinic']}|${localStorage.getItem(LOGGED_USER_SESSION_KEY)}|${this.state.amount}|${\"Visa\"}|${this.state.receiptId}|${this.state.IdInvoice}`\r\n }))\r\n }\r\n }\r\n\r\n if (!addReceiptLoading && prevProps.addReceiptLoading !== addReceiptLoading) {\r\n if (addReceiptData && (this.props.selectedFlow === \"treatment\" || this.props.selectedFlow === \"payment\")) {\r\n if (this.props.selectedSavedCard && this.props.selectedSavedCard.PermanentToken) {\r\n if (this.state.paymentDetails?.CvvToken) {\r\n this.props.dispatch(confirmPaymentRequest({\r\n baseUrl: this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n payload: {\r\n // patientId: this.state.receiptId,\r\n // authKey: '',\r\n // isSelected: 0,\r\n // cvvToken: this.state.paymentDetails?.CvvToken\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"confirmpayment\",\r\n \"script.param\" : `${this.state.receiptId}|${''}|${this.state.checkboxValue ? 1 : 0}|${this.state.paymentDetails?.CvvToken}`\r\n }\r\n }))\r\n } else {\r\n this.setState({ formError: SESSION_TIMEOUT });\r\n }\r\n } else {\r\n if (this.state.paymentDetails?.TokenId) {\r\n this.props.dispatch(confirmPaymentRequest({\r\n baseUrl: this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n payload: {\r\n // patientId: this.state.receiptId,\r\n // authKey: this.state.paymentDetails?.TokenId,\r\n // isSelected: this.state.checkboxValue ? 1 : 0,\r\n // cvvToken: ''\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"confirmpayment\",\r\n \"script.param\" : `${this.state.receiptId}|${this.state.paymentDetails?.TokenId}|${this.state.checkboxValue ? 1 : 0}|${''}`\r\n }\r\n }))\r\n } else {\r\n this.setState({ formError: SESSION_TIMEOUT });\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!findReceiptLoading && prevProps.findReceiptLoading !== this.props.findReceiptLoading) {\r\n if (findReceiptData && (this.props.selectedFlow === \"treatment\" || this.props.selectedFlow === \"payment\")) {\r\n\r\n this.props.dispatch(getConformationRequest({\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"getConfirmation\",\r\n \"script.param\" : `${findReceiptData?.['response']?.['data']?.[0]?.['fieldData']?.['idReceipt']}`\r\n }))\r\n }\r\n }\r\n if (!getConformationLoading && prevProps.getConformationLoading !== getConformationLoading) {\r\n this.onBooking7();\r\n }\r\n }\r\n\r\n initHostedFields = (fieldToken, savedCardToken = '') => {\r\n const that = this;\r\n const optionalOptions = {};\r\n if (savedCardToken) {\r\n optionalOptions.cvvOnly = true;\r\n }\r\n const params = {\r\n fieldToken: fieldToken,\r\n options: clearAcceptGetClearAcceptOptions(optionalOptions)\r\n };\r\n if (window.HostedFields) {\r\n window.HostedFields.initialise(\r\n params.fieldToken,\r\n params.options,\r\n function (error, hostedFields) {\r\n that.setState({ isFormLoading: false });\r\n if (error) {\r\n that.setState({ formError: error.message });\r\n return;\r\n \r\n }\r\n hostedFields.on(\"change\",\r\n function (formStatus) {\r\n if (!savedCardToken) {\r\n const cardErrorContainer = document.getElementById(CLEAR_ACCEPT_CARD_ERR_WRAPPER);\r\n const expdateErrorContainer = document.getElementById(CLEAR_ACCEPT_DATE_ERR_WRAPPER);\r\n setValidationStatus(formStatus, formStatus.card, cardErrorContainer);\r\n setValidationStatus(formStatus, formStatus.expDate, expdateErrorContainer);\r\n }\r\n const cvvErrorContainer = document.getElementById(CLEAR_ACCEPT_CVV_ERR_WRAPPER);\r\n // cvvErrorContainer will not be used when channel is 'MO'\r\n if (cvvErrorContainer) {\r\n setValidationStatus(formStatus, formStatus.cvv, cvvErrorContainer);\r\n }\r\n });\r\n function setValidationStatus(formStatus, fieldStatus, input) {\r\n if (fieldStatus.isValid || (fieldStatus.isPristine && formStatus.isNotSubmited)) {\r\n input.innerHTML = \"\";\r\n } else {\r\n input.innerHTML = fieldStatus.message;\r\n }\r\n }\r\n const payButton = document.getElementById(CLEAR_ACCEPT_PAY_BTN_ID);\r\n payButton.addEventListener(\"click\",\r\n function (event) {\r\n event.preventDefault();\r\n const data = {\r\n accountHolderName: \"\"\r\n };\r\n hostedFields.setData(data);\r\n hostedFields.tokenize(function (token) {\r\n that.setState({ paymentDetails: token, loadPaymentSchema: false, loadingThanyouSchema: true });\r\n\r\n if (that.props.selectedFlow === \"treatment\") {\r\n that.props.dispatch(addInvoiceRequest({\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"createInvoice\",\r\n \"script.param\" : `${that.props.selectedClinic['fieldData']['idClinic']}|${localStorage.getItem(LOGGED_USER_SESSION_KEY)}|${that.state.selectedCategory?.['productPrice']}|${that.state.IdInvoice}|${that.state.amount}|${\"\"}`\r\n }))\r\n } else if (that.props.selectedFlow === \"payment\") {\r\n that.props.dispatch(addReceiptRequest({\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"createReceipt\",\r\n \"script.param\" : `${that.props.selectedClinic['fieldData']['idClinic']}|${localStorage.getItem(LOGGED_USER_SESSION_KEY)}|${that.state.amount}|${\"Visa\"}|${that.state.receiptId}|${this.state.IdInvoice}`\r\n }))\r\n }\r\n });\r\n });\r\n });\r\n } else {\r\n that.setState({ isFormLoading: false, formError: ACCESS_FORBIDDEN });\r\n }\r\n };\r\n\r\n render() {\r\n const { loadPaymentSchema, loadingThanyouSchema, isFormLoading, formError } = this.state;\r\n const { selectedSavedCard } = this.props;\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n

Choose a date & time

\r\n
\r\n {\r\n this.component = r;\r\n }}\r\n dayClassName={(date) => `${this.state.ActiveDates.indexOf(date.getTime()) >= 0 ? 'active-date' : 'disabled-date'} `}\r\n onChange={(date) => this.getTimeSlotes(date)}\r\n />\r\n
\r\n
\r\n

Your appointment:

\r\n {this.state.selectedDate ?

{this.renderDate(this.state.selectedDate)}

: null}\r\n {this.state.formData?.category?.label}\r\n
\r\n
\r\n
\r\n \r\n this.onBooking2()}>back\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n

Choose a date & time

\r\n
\r\n

\r\n {this.state.selectedDate ?\r\n { this.chnageDate(\"-1\") }}>‹ :\r\n ‹\r\n }\r\n {this.state.selectedDate ? DAY_LIST[new Date(this.state.selectedDate).getDay()] + \" \" + this.renderDate(this.state.selectedDate).split(\",\")[1].trim().split(\" \")[0] : null}
\r\n {this.state.selectedDate ? MONTH_LIST[new Date(this.state.selectedDate).getMonth()] + \" \" + new Date(this.state.selectedDate).getFullYear() : null}\r\n {this.state.selectedDate ?\r\n { this.chnageDate(\"+1\") }}>› :\r\n ›\r\n }\r\n

\r\n
\r\n
\r\n {\r\n this.props.findTimeSlotsData.map((time, index) => {\r\n return (\r\n this.setTimeSlot(time) }\r\n className={time['fieldData']['Time'] === this.state.selectedTimeSlot?.['fieldData']?.['Time'] ? \"active\" : ''}\r\n >\r\n { time['fieldData']['Time'].substring(time['fieldData']['Time'].lastIndexOf(\":\"), 0)}\r\n \r\n )\r\n })\r\n }\r\n
\r\n { ((this.props.findTimeSlotsLoading || this.props.checkTimeslotsLoading) && !this.props.findTimeSlotsData.length) ?

Loading...

: null}\r\n { ( (!this.props.findTimeSlotsLoading && !this.props.checkTimeslotsLoading) && !this.props.findTimeSlotsData.length) ?

{ \"No time slots are available\"}

: null}\r\n
\r\n

Your appointment:

\r\n

{this.state.selectedTimeSlot?.['fieldData']?.['Time'].substring(this.state.selectedTimeSlot?.['fieldData']?.['Time'].lastIndexOf(\":\"), 0)} {this.state.selectedTimeSlot?.['fieldData']?.['Time'].substring(this.state.selectedTimeSlot?.['fieldData']?.['Time'].lastIndexOf(\":\"), 0) ? \",\" : null} {this.renderDate(this.state.selectedDate)}

\r\n {this.state.formData?.category?.label}\r\n
\r\n
\r\n
\r\n \r\n this.closeBooking3()}>back\r\n
\r\n
\r\n\r\n this.onTermsAccept()} backFromTerms={() => this.onTermsClose()} selectedClinic={this.props.selectedClinic} terms={this.props.selectedClinic?.['fieldData']?.['client|patient::terms']} />\r\n\r\n this.closeBooking5()}\r\n />\r\n\r\n
\r\n
\r\n \r\n \r\n

How would you like to pay?

\r\n
\r\n
this.toggleSelectSavedCard()}>\r\n \r\n

Credit or Debit CardVisa, Mastercard

\r\n
\r\n {this.props.paymentCardsData && this.props.paymentCardsData.length ?

Saved cards

: null}\r\n {\r\n this.props.paymentCardsData.map((card, index) => {\r\n return (
this.toggleSelectSavedCard(card['fieldData'])}>\r\n -1 ? Visa : MC } />\r\n

{card['fieldData']['CardNickname']} {card['fieldData']['CardNumber']}

\r\n
)\r\n })\r\n }\r\n
\r\n
\r\n
\r\n \r\n this.closeBooking6()}>back\r\n
\r\n
\r\n\r\n
\r\n {!loadPaymentSchema && loadingThanyouSchema &&
Loading
}\r\n {loadPaymentSchema &&\r\n \r\n
\r\n \r\n \r\n

Payment

\r\n
\r\n\r\n { this.props.selectedFlow === \"treatment\" ?\r\n
\r\n {this.state.formData?.category?.depositAmount ?\r\n

{this.state?.formData?.category?.label?.split(\"-\")[0].trim()}Paid £{this.state.amount} / £{this.state?.formData?.category?.productPrice}

:\r\n

{this.state?.formData?.category?.label?.split(\"-\")[0].trim()}Paid £{this.state.amount}

\r\n }\r\n

£{this.state.selectedCategory?.['productPrice']}{this.state.selectedCategory?.['productPrice'] > this.state.amount ? \"Part payment\" : \"Full payment\"}

\r\n
: null }\r\n { this.props.selectedFlow === \"payment\" ? \r\n
\r\n {this.props.selectedClinic?.fieldData?.depositAmount ?\r\n

{this.props.selectedClinic?.fieldData?.z_clientClinicName}Paid £{this.state.amount} / £{this.props?.selectedClinic?.fieldData?.productPrice}

:\r\n

{this.props.selectedClinic?.fieldData?.z_clientClinicName}Paid £{this.state.amount}

\r\n }\r\n

£{this.props.selectedClinic?.fieldData?.['productPrice']}{this.props?.selectedClinic?.fieldData?.['productPrice'] > this.state.amount ? \"Part payment\" : \"Full payment\"}

\r\n
: null\r\n }\r\n {isFormLoading &&
Loading
}\r\n {!isFormLoading && formError &&
{formError}
}\r\n \r\n \r\n \r\n

Primary or Debit CardVisa, Mastercard

\r\n
\r\n\r\n \r\n
\r\n \r\n {\r\n selectedSavedCard && selectedSavedCard.CardNumber\r\n ?\r\n \r\n
\r\n \r\n
\r\n
\r\n :\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n\r\n
\r\n
\r\n \r\n {\r\n selectedSavedCard && selectedSavedCard.ExpiryMonth && selectedSavedCard.ExpiryYear\r\n ?\r\n \r\n
\r\n \r\n
\r\n
\r\n :\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n {!selectedSavedCard &&\r\n
\r\n this.setState({ checkboxValue: !this.state.checkboxValue })} />\r\n \r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Pay Now\r\n this.closeBooking7()}>back\r\n
\r\n \r\n }\r\n \r\n\r\n
\r\n
\r\n \r\n

Thank you for your booking

\r\n

You will recieve an email confirmation shortly at:
{this.props.getConformationData?.['fieldData']?.['patient|receipt::email']}

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

Order number:

{this.props.getConformationData?.['fieldData']?.['ID_Invoice']}
\r\n

Ordered on:

{this.renderDate(new Date(this.props.getConformationData?.['fieldData']?.['date']))}
\r\n
\r\n
\r\n

Order summary

\r\n
\r\n

{this.props.getConformationData?.['fieldData']?.['clinic|receipt::z_clientClinicName']}

\r\n £{this.props.getConformationData?.['fieldData']?.['amount']}\r\n
\r\n
\r\n

{this.state?.formData?.category?.label?.split(\"-\")[0].trim()}

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

{this.props.getConformationData?.['fieldData']?.['clinic|receipt::z_clientClinicName']}

\r\n

{this.getClinicAddress()}

\r\n Add to calendar\r\n
\r\n
\r\n
\r\n
\r\n

Billing and payment

\r\n
\r\n

Bill to:

\r\n
\r\n {this.props.getConformationData?.['fieldData']?.[\"patient|receipt::nameFirst\"] + \" \" + this.props.getConformationData?.['fieldData']?.[\"patient|receipt::nameLast\"]}\r\n
{this.props.getConformationData?.['fieldData']?.['patient|receipt::email']}
\r\n
\r\n
\r\n

Billing address:

\r\n
{this.getBillingAddress()}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n

Order Total

\r\n

£{this.props.getConformationData?.['fieldData']?.['amount']}

\r\n \r\n \r\n
window.$('#text_reminder').modal('show')}>\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

Text reminder

\r\n

We'll send you a text reminder the day before your appointment

\r\n {this.state?.selectedClinic?.['fieldData']?.['clinic|patient::phone'] ? { }} className=\"form-control\" /> : null}\r\n

To make any changes to your booking please call the practise 48 hours before your visit on:
01202 674 354

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n this.backToCards()} />\r\n \r\n )\r\n }\r\n\r\n backToCards = () =>{\r\n $('#step-booking-7').slideUp(500);\r\n $('#step-booking-6').slideDown(500);\r\n window.$('#card_not_approved').modal('hide');\r\n }\r\n\r\n setTimeSlot = ( time ) =>{\r\n\r\n let time_stramp = new Date(time['fieldData']['Date']);\r\n time_stramp.setHours(time['fieldData']['Time'].split(\":\")[0]);\r\n time_stramp.setMinutes(time['fieldData']['Time'].split(\":\")[1]);\r\n\r\n if(+new Date() < +time_stramp ){\r\n this.setState({ selectedTimeSlot: time })\r\n } else {\r\n this.setState({ selectedTimeSlot: null })\r\n }\r\n\r\n }\r\n\r\n getClinicAddress = () => {\r\n const clinic = this.props.selectedClinic?.['fieldData'];\r\n let fullAddress = clinic?.['clinic|patient::address1'] ? clinic?.['clinic|patient::address1'] : '';\r\n fullAddress += clinic?.['clinic|patient::addressTown'] ? `, ${clinic?.['clinic|patient::addressTown']}` : '';\r\n fullAddress += clinic?.['clinic|patient::addressPostcode'] ? `, ${clinic?.['clinic|patient::addressPostcode']}` : '';\r\n return fullAddress;\r\n }\r\n\r\n getBillingAddress = () => {\r\n const address = this.props?.getConformationData?.['fieldData'];\r\n let fullBillAddress = address?.['patient|receipt::address1'] ? address?.['patient|receipt::address1'] : '';\r\n fullBillAddress += address?.['patient|receipt::addressTown'] ? `, ${address?.['patient|receipt::addressTown']}` : '';\r\n fullBillAddress += address?.['patient|receipt::addressCounty'] ? `, ${address?.['patient|receipt::addressCounty']}` : '';\r\n fullBillAddress += address?.['patient|receipt::addressPostcode'] ? `, ${address?.['patient|receipt::addressPostcode']}` : '';\r\n return fullBillAddress;\r\n }\r\n \r\n backToDashboard = () => {\r\n this.props.getPatientAppointments();\r\n window.$(\".my_booking_flow\").modal('hide');\r\n this.props.history.push(routes.BASEPATH);\r\n }\r\n\r\n goToAppointments = () => {\r\n this.props.getPatientAppointments();\r\n window.$(\".my_booking_flow\").modal('hide');\r\n this.props.history.push(routes.APPOINTMENTS);\r\n }\r\n\r\n closeBooking3 = () => {\r\n this.setState({ selectedTimeSlot: null });\r\n $('#step-booking-4').slideUp(500);\r\n $('#step-booking-3').slideDown(500);\r\n }\r\n\r\n closeBooking5 = () => {\r\n $('#step-booking-5').slideUp(500);\r\n if (this.props.selectedFlow === \"payment\") {\r\n $('#step-booking-9').slideDown(500);\r\n } else {\r\n $('#step-booking-4').slideDown(500);\r\n }\r\n this.props.dispatch(reset(\"min-payment-form\"))\r\n }\r\n\r\n closeBooking6 = () => {\r\n $('#step-booking-6').slideUp(500);\r\n if (this.props.selectedFlow === \"payment\") {\r\n if (this.props.selectedClinic?.['fieldData']?.['depositAmount']) {\r\n $('#step-booking-5').slideDown(500);\r\n } else {\r\n $('#step-booking-4').slideDown(500);\r\n }\r\n } else {\r\n if (this.state.formData?.category?.depositAmount) {\r\n $('#step-booking-5').slideDown(500);\r\n } else {\r\n $('#step-booking-3').slideDown(500);\r\n }\r\n }\r\n }\r\n\r\n closeBooking7 = () => {\r\n this.setState({ loadPaymentSchema: false, loadingThanyouSchema: false, isFormLoading: false, formError: null });\r\n $('#step-booking-7').slideUp(500);\r\n $('#step-booking-6').slideDown(500);\r\n }\r\n\r\n closeBooking3 = () => {\r\n $('#step-booking-4').slideUp(500);\r\n $('#step-booking-3').slideDown(500);\r\n }\r\n\r\n openTimepicker = () => {\r\n \r\n if(this.props.findDiaryDayData[this.state.currentIndex]){\r\n\r\n this.props.dispatch(\r\n checkTimeslotsRequest({\r\n baseUrl: this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n query: {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"AvailableTimeSetter\",\r\n \"script.param\" : String(this.props.findDiaryDayData[this.state.currentIndex]['fieldData']['ID_DiaryDay'])\r\n }\r\n })\r\n )\r\n }\r\n \r\n this.setState({ selectedTime: null });\r\n\r\n $('#step-booking-3').slideUp(500);\r\n $('#step-booking-4').slideDown(500);\r\n }\r\n\r\n onBooking2 = () => {\r\n $('#step-booking-3').slideUp(500);\r\n $('#step-booking-2').slideDown(500);\r\n this.setState({ selectedDate: null });\r\n }\r\n\r\n onBooking4 = () => {\r\n $('#step-booking-4').slideUp(500);\r\n $('#step-booking-9').slideDown(500);\r\n }\r\n\r\n onTermsAccept = () => {\r\n $('#step-booking-9').slideUp(500);\r\n\r\n if (this.props.selectedClinic?.fieldData?.['ID_Patient']) {\r\n this.props.dispatch(findPaymentCardsRequest({\r\n baseUrl: this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n query: {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \r\n \"script\" : \"findCard\",\r\n \"script.param\" : `${this.props.selectedClinic?.fieldData?.['ID_Patient']}`\r\n }\r\n }))\r\n }\r\n\r\n\r\n if (this.props.selectedFlow === \"payment\") {\r\n $('#step-booking-9').slideUp(500);\r\n if (this.props.selectedClinic?.['fieldData']?.['depositAmount']) {\r\n $('#step-booking-5').slideDown(500);\r\n } else {\r\n $('#step-booking-6').slideDown(500);\r\n this.setState({ amount: this.props.selectedClinic?.['fieldData']?.['productPrice'] })\r\n }\r\n } else {\r\n if (this.state.formData?.category?.depositAmount) {\r\n $('#step-booking-5').slideDown(500);\r\n } else {\r\n $('#step-booking-6').slideDown(500);\r\n this.setState({ amount: this.state.formData?.category?.label.split(\"£\")[1] })\r\n }\r\n }\r\n }\r\n\r\n onTermsClose = () => {\r\n if (this.props.selectedFlow === \"payment\") {\r\n window.$(\".my_booking_flow\").modal('hide');\r\n this.props.closePayment();\r\n } else {\r\n $('#step-booking-4').slideDown(500);\r\n $('#step-booking-9').slideUp(500);\r\n }\r\n }\r\n\r\n onBooking5 = (data) => {\r\n this.setState({ amount: data.amount });\r\n $('#step-booking-5').slideUp(500);\r\n $('#step-booking-6').slideDown(500);\r\n }\r\n\r\n onBooking6 = () => {\r\n this.setState({ loadPaymentSchema: true, loadingThanyouSchema: false }, () => {\r\n this.setState({ isFormLoading: true, formError: null });\r\n $('#step-booking-6').slideUp(500);\r\n $('#step-booking-7').slideDown(500);\r\n\r\n if (!this.state.baseUrl) {\r\n this.setState({ baseUrl: this.props.selectedClinic['fieldData']['client|clinic::filepath'] })\r\n }\r\n\r\n if (this.props.selectedFlow === \"payment\") {\r\n this.props.dispatch(createReceiptRequest({\r\n baseUrl: this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n payload: {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"createReceipt\",\r\n \"script.param\" : `${localStorage.getItem(CLINIC_SESSION_KEY)}|${this.props?.['selectedClinic']?.['fieldData']?.['receiptId']}|${this.state.amount}|${localStorage.getItem(LOGGED_USER_SESSION_KEY)}|${this.props.selectedClinic['fieldData']['idClinic']}`\r\n }\r\n }))\r\n this.setState({ IdInvoice: this.props?.['selectedClinic']?.['fieldData']?.['receiptId'] })\r\n } else {\r\n this.props.dispatch(createInvoiceRequest({\r\n baseUrl: this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n payload: {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"createInvoice\",\r\n \"script.param\" : `${localStorage.getItem(CLINIC_SESSION_KEY)}|${this.state.formData?.category['ID_Product']}|${this.props.selectedClinic['fieldData']['idClinic']}`\r\n }\r\n }))\r\n }\r\n });\r\n }\r\n\r\n onBooking7 = (data) => {\r\n this.setState({ loadingThanyouSchema: false });\r\n $('#step-booking-7').slideUp(500);\r\n $('#step-booking-8').slideDown(500);\r\n };\r\n\r\n renderDate(renderDate) {\r\n if (renderDate) {\r\n return DAY_LIST[renderDate.getDay()] + \", \"\r\n + renderDate.getDate() + `${renderDate.getDate() === 1 ? \"st \" : renderDate.getDate() === 2 ? \"nd \" : \"th \"}`\r\n + MONTH_LIST[renderDate.getMonth()] + \", \"\r\n + renderDate.getFullYear();\r\n }\r\n }\r\n\r\n formSubmitted = (data) => {\r\n this.setState({ formData: data, selectedDate: null });\r\n this.openDatePicker();\r\n $('#step-booking-2').slideUp(500);\r\n $('#step-booking-3').slideDown(500);\r\n }\r\n\r\n findAppointmentTypes = (data) => {\r\n\r\n let fullAddress = this.props.selectedClinic?.['fieldData']?.['clinic|patient::address1'] ? this.props.selectedClinic?.['fieldData']?.['clinic|patient::address1'] : '';\r\n fullAddress += this.props.selectedClinic?.['fieldData']?.['clinic|patient::addressTown'] ? `, ${this.props.selectedClinic?.['fieldData']?.['clinic|patient::addressTown']}` : '';\r\n fullAddress += this.props.selectedClinic?.['fieldData']?.['clinic|patient::addressPostcode'] ? `, ${this.props.selectedClinic?.['fieldData']?.['clinic|patient::addressPostcode']}` : '';\r\n this.props.dispatch(initialize(\"my-booking-form\", { location: fullAddress }));\r\n\r\n postRequest(\r\n '/layouts/access/_find',\r\n {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"createSession\",\r\n \"script.param\" : JSON.parse(localStorage.getItem(LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY)).email,\r\n },\r\n \"\",\r\n this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n ).then((response) => {\r\n\r\n if(response?.['messages']?.['0']?.['code']){\r\n\r\n this.setState({ baseUrl: data?.fieldData?.['client|patient::filepath'], selectedClinic: data })\r\n const payload = {\r\n baseUrl: this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n query: {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \r\n \"script\" : \"displayTreatments\",\r\n \"script.param\" : `${response['response']['scriptResult']}|${data?.['fieldData']['idClinic']}`\r\n }\r\n }\r\n this.props.dispatch(findAppointmentTypesRequest(payload))\r\n }\r\n })\r\n }\r\n\r\n openDatePicker = () => {\r\n this.component.setOpen(true);\r\n }\r\n\r\n getAppointments = data => {\r\n let newState = [];\r\n\r\n \r\n data.map((element, index) => {\r\n newState.push({\r\n label: element.fieldData['Product'] + \" - \" + element.fieldData['AppointmentLength'] + \" minutes - £\" + element.fieldData['UnitPrice'],\r\n value: element.fieldData['ID_ProductCategory'],\r\n depositAmount: element.fieldData['DepositAmount'],\r\n productPrice: element.fieldData['UnitPrice'],\r\n length: element.fieldData['AppointmentLength'],\r\n ID_Product: element.fieldData['ID_Product']\r\n })\r\n })\r\n this.setState({ appointmentTypes: newState });\r\n }\r\n\r\n getPractioner = (data) => {\r\n\r\n this.props.dispatch(change('my-booking-form','practioner', null ));\r\n\r\n this.setState({ selectedCategory: data })\r\n if (data) {\r\n\r\n this.props.dispatch(findDiaryRequest({\r\n baseUrl: this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n query: {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"findDiary\",\r\n \"script.param\" : `${this.state['selectedClinic']?.['fieldData']['clinic|patient::ID_Clinic']}|=${data.value}`\r\n }\r\n }))\r\n }\r\n }\r\n\r\n setDiary = (data) => {\r\n let newState = [];\r\n data.map((element) => {\r\n\r\n newState.push({\r\n label: element.fieldData[\"User|Diary::NameUserFullNoTitle\"],\r\n value: element.fieldData['ID_Diary']\r\n })\r\n })\r\n this.setState({ diaryArray: newState });\r\n }\r\n\r\n getActiveDate = data => {\r\n if (data) {\r\n this.props.dispatch(findDiaryDayRequest({\r\n baseUrl: this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n query: {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \r\n \"script\" : \"findDiaryDays\",\r\n \"script.param\" : `${\">=\" + (+new Date().getMonth() + 1) + \"/\" + (+new Date().getDate()) + \"/\" + new Date().getFullYear()}|${data.value}`\r\n }\r\n }))\r\n }\r\n }\r\n\r\n setActiveDates = dates => {\r\n let newState = []\r\n dates.map((element) => {\r\n newState.push(new Date(element.fieldData.Date).getTime())\r\n })\r\n this.setState({ ActiveDates: newState });\r\n }\r\n\r\n chnageDate = (type) => {\r\n this.setState({ selectedTimeSlot: null });\r\n if (type === \"+1\") {\r\n this.setState({ selectedDate: this.state.ActiveDates[+this.state.currentIndex + 1] ? new Date(this.state.ActiveDates[+this.state.currentIndex + 1]) : this.state.selectedDate, currentIndex: +this.state.currentIndex + 1 },\r\n () => { this.openTimepicker(); })\r\n } else {\r\n this.setState({ selectedDate: this.state.ActiveDates[+this.state.currentIndex - 1] ? new Date(this.state.ActiveDates[+this.state.currentIndex - 1]) : this.state.selectedDate, currentIndex: +this.state.currentIndex - 1 },\r\n () => { this.openTimepicker(); })\r\n }\r\n }\r\n\r\n\r\n // chnageDate = (type) => {\r\n // this.setState({ selectedTimeSlot: null });\r\n // if (type === \"+1\") {\r\n // this.setState({ selectedDate: this.state.ActiveDates[+this.state.currentIndex + 1] ? new Date(this.state.ActiveDates[+this.state.currentIndex + 1]) : this.state.selectedDate, currentIndex: +this.state.currentIndex + 1 })\r\n // this.openTimepicker();\r\n // } else {\r\n // this.setState({ selectedDate: this.state.ActiveDates[+this.state.currentIndex - 1] ? new Date(this.state.ActiveDates[+this.state.currentIndex - 1]) : this.state.selectedDate, currentIndex: +this.state.currentIndex - 1 })\r\n // this.openTimepicker();\r\n // }\r\n // }\r\n\r\n getTimeSlotes = (date) => {\r\n this.setState({ selectedDate: date , currentIndex: this.state.ActiveDates.indexOf(new Date(date).setHours(0, 0, 0, 0)) }) \r\n }\r\n\r\n findTimeSlots = () => {\r\n this.props.dispatch(\r\n findTimeSlotsRequest({\r\n baseUrl: this.props.selectedClinic?.fieldData?.['client|patient::filepath'],\r\n query: {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \r\n \"script\" : \"findTimes\",\r\n \"script.param\" : `${this.props?.findDiaryDayData?.[this.state.currentIndex]?.['fieldData']?.['ID_DiaryDay']}|>=${this.state.selectedCategory?.['length']}`\r\n }\r\n })\r\n )\r\n }\r\n\r\n toggleSelectSavedCard = (savedCard = null) => {\r\n this.props.dispatch(selectSavedCard(savedCard));\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n const { appointment, payment } = state;\r\n return {\r\n findAppointmentTypesLoading: appointment.get('findAppointmentTypesLoading'),\r\n findAppointmentTypesData: appointment.get('findAppointmentTypesData'),\r\n\r\n findDiaryLoading: appointment.get('findDiaryLoading'),\r\n findDiaryData: appointment.get('findDiaryData'),\r\n\r\n findDiaryDayLoading: appointment.get('findDiaryDayLoading'),\r\n findDiaryDayData: appointment.get('findDiaryDayData'),\r\n\r\n findTimeSlotsLoading: appointment.get('findTimeSlotsLoading'),\r\n findTimeSlotsData: appointment.get('findTimeSlotsData'),\r\n\r\n checkTimeslotsLoading: appointment.get('checkTimeslotsLoading'),\r\n checkTimeslotsData: appointment.get('checkTimeslotsData'),\r\n\r\n paymentCardsLoading: appointment.get('paymentCardsLoading'),\r\n paymentCardsData: appointment.get('paymentCardsData'),\r\n\r\n createInvoiceLoading: payment.get('createInvoiceLoading'),\r\n createInvoiceData: payment.get('createInvoiceData'),\r\n\r\n createReceiptLoading: payment.get('createReceiptLoading'),\r\n createReceiptData: payment.get('createReceiptData'),\r\n\r\n initiatePaymentLoading: payment.get('initiatePaymentLoading'),\r\n initiatePaymentData: payment.get('initiatePaymentData'),\r\n\r\n confirmPaymentLoading: payment.get('confirmPaymentLoading'),\r\n confirmPaymentData: payment.get('confirmPaymentData'),\r\n\r\n findReceiptLoading: payment.get('findReceiptLoading'),\r\n findReceiptData: payment.get('findReceiptData'),\r\n\r\n getConformationLoading: payment.get('getConformationLoading'),\r\n getConformationData: payment.get('getConformationData'),\r\n\r\n bookFinalSlotLoading: payment.get('bookFinalSlotLoading'),\r\n bookFinalSlotData: payment.get('bookFinalSlotData'),\r\n\r\n addAppointmentLoading: payment.get('addAppointmentLoading'),\r\n addAppointmentData: payment.get('addAppointmentData'),\r\n\r\n addInvoiceLoading: payment.get(\"addInvoiceLoading\"),\r\n addInvoiceData: payment.get(\"addInvoiceData\"),\r\n\r\n addReceiptLoading: payment.get(\"addReceiptLoading\"),\r\n addReceiptData: payment.get(\"addReceiptData\"),\r\n\r\n selectedSavedCard: payment.get(\"selectedSavedCard\"),\r\n }\r\n}\r\n\r\nMyBooking = withRouter(MyBooking);\r\nexport default connect(mapStateToProps)(MyBooking);\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAEFCu8CAAAAAXNSR0IArs4c6QAAA21JREFUSA2lVktoFEEQre6JazCG7Ce7oF78BM1J8BPQgxpPAU9iFCSiF71FRIgnDUTFm/HiOVFQ0BC/EPQiiYqIgkRBDSQREhBMTLK7s2uM+e60Xb3bk96Z6ZkNmcN0Vb16VT3dXdUDUHimkmYfigRfk8k0wxEfKpG8Wnijh+oF3GsIsTK09rx4JWIQ1YUSg9QX6Pk0UylzgTG2RhpxRCeCwRiw7RKYmfkHFRXrhOqaoHQqGnnoazz59KRp7pKAlpmojhKqTrW7u0eS+IelB6mtcSH7Z9pW+SrtKPpIGykIRUwVNAg94T0hQlKJWKRagJIxmUp/AAb7pO4cQ2V0azgcHkV7PmoAwRlALAEumi7L/PwCdHQ+dPLsbcY1We9E52bnYGBgGPbs3emEhE7BIAe9ECSlM1kvSNjEN2YymS0LS9aI1ksFvFYVcdxe3EXVF2Xcn1gs/Fjai7YDjXiySA5u8XNaR4CM8XXviscibZIgR5sYOF0CHxOx6P4i4pRpHmI59kYadSMhZJFnDyEuzlwpJHTG+hOnC4m4GGhUn2QyDXfudsHo6E/VnJcLR9K3BM6euwSdHe0uMp/ydW15oHdlZYWLJAwMTpZ5IwCnz1yA+/dua2C2wXeqGhbfWvJaO9WmU806HjADWkgqlTmeY9YjrZcHIOpRnD9+cD1wTxN2AQTEVLGHQAlkbLhFrUOG1k2bH+iheHW0VvrhaB9y1ShlDGQx64ZXmUkfdcQElNBWtfxUHGVXQlEoFjzhBzrmdF6RzpeMUGiMRyJvVZ6dUJRxjn1adSI1Oso8ccggdXIvxCbi0okWt9qvciZDncfE2JgDVSLuyhz7jErQgzdkf/9X2FazGX4Mj8D47wlovXIRamtrgqh53CC78Zrv4+3zcGmMZa/FxSVoPn8ZGhrqofHYkWXAR8ISxtr3vKd8ePD02Uvo7X0PV9taIB6P+rk6sb9UXAxOs49umhn49n0Q2m+2rjQZNqkxyt9dPvFd0NzsPJSvLYex8QkXFmjguURZ6O5QXYBsdhqqqip1sKedJxJdx67DoF8izyilGpWr2O77eDeLv1N+1ZYaJ8gPr22M6br3ncR817Ee6H7PnP4unX9RyKBNsruouL2kqtEpi98dC47yCRzg2CZetxvRp3DCf3HhHaPwPBGJfHFynfp/FaZ76pvmOSsAAAAASUVORK5CYII=\"","const FIND_APPOINTMENT_TYPES = \"FIND/APPOINTMENT/TYPES\";\r\nconst FIND_DIARY = \"FIND/DIARY\";\r\nconst FIND_DIARY_DAY = \"FIND/DIARY/DAY\";\r\nconst FIND_TIME_SLOTS = \"FIND/TIME/SLOTS\";\r\nconst FIND_PACKAGES = \"FIND/PACKAGES\";\r\nconst CHECK_TIMESLOTS = \"CHECK/TIMESLOTS\";\r\nconst FIND_PAYMENT_CARDS = \"FIND/PAYMENT/CARDS\";\r\n\r\nexport const FIND_APPOINTMENT_TYPES_REQUEST = `${FIND_APPOINTMENT_TYPES}/REQUEST`;\r\nexport const FIND_APPOINTMENT_TYPES_SUCCESS = `${FIND_APPOINTMENT_TYPES}/SUCCESS`;\r\nexport const FIND_APPOINTMENT_TYPES_ERROR = `${FIND_APPOINTMENT_TYPES}/ERROR`;\r\n\r\nexport const FIND_DIARY_REQUEST = `${FIND_DIARY}/REQUEST`;\r\nexport const FIND_DIARY_SUCCESS = `${FIND_DIARY}/SUCCESS`;\r\nexport const FIND_DIARY_ERROR = `${FIND_DIARY}/ERROR`;\r\n\r\nexport const FIND_DIARY_DAY_REQUEST = `${FIND_DIARY_DAY}/REQUEST`;\r\nexport const FIND_DIARY_DAY_SUCCESS = `${FIND_DIARY_DAY}/SUCCESS`;\r\nexport const FIND_DIARY_DAY_ERROR = `${FIND_DIARY_DAY}/ERROR`;\r\n\r\nexport const FIND_TIME_SLOTS_REQUEST = `${FIND_TIME_SLOTS}/REQUEST`;\r\nexport const FIND_TIME_SLOTS_SUCCESS = `${FIND_TIME_SLOTS}/SUCCESS`;\r\nexport const FIND_TIME_SLOTS_ERROR = `${FIND_TIME_SLOTS}/ERROR`;\r\n\r\nexport const FIND_PACKAGES_REQUEST = `${FIND_PACKAGES}/REQUEST`;\r\nexport const FIND_PACKAGES_SUCCESS = `${FIND_PACKAGES}/SUCCESS`;\r\nexport const FIND_PACKAGES_ERROR = `${FIND_PACKAGES}/ERROR`;\r\n\r\nexport const CHECK_TIMESLOTS_REQUEST = `${CHECK_TIMESLOTS}/REQUEST`;\r\nexport const CHECK_TIMESLOTS_SUCCESS = `${CHECK_TIMESLOTS}/SUCCESS`;\r\nexport const CHECK_TIMESLOTS_ERROR = `${CHECK_TIMESLOTS}/ERROR`;\r\n\r\nexport const FIND_PAYMENT_CARDS_REQUEST = `${FIND_PAYMENT_CARDS}/REQUEST`;\r\nexport const FIND_PAYMENT_CARDS_SUCCESS = `${FIND_PAYMENT_CARDS}/SUCCESS`;\r\nexport const FIND_PAYMENT_CARDS_ERROR = `${FIND_PAYMENT_CARDS}/ERROR`;\r\n\r\n\r\nexport function findAppointmentTypesRequest(payload) {\r\n return {\r\n type: FIND_APPOINTMENT_TYPES_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function findAppointmentTypesSuccess(data) {\r\n return {\r\n type: FIND_APPOINTMENT_TYPES_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function findAppointmentTypesError(error) {\r\n return {\r\n type: FIND_APPOINTMENT_TYPES_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function findDiaryRequest(payload) {\r\n return {\r\n type: FIND_DIARY_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function findDiarySuccess(data) {\r\n return {\r\n type: FIND_DIARY_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function findDiaryError(error) {\r\n return {\r\n type: FIND_DIARY_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function findDiaryDayRequest(payload) {\r\n return {\r\n type: FIND_DIARY_DAY_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function findDiaryDaySuccess(data) {\r\n return {\r\n type: FIND_DIARY_DAY_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function findDiaryDayError(error) {\r\n return {\r\n type: FIND_DIARY_DAY_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function findTimeSlotsRequest(payload) {\r\n return {\r\n type: FIND_TIME_SLOTS_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function findTimeSlotsSuccess(data) {\r\n return {\r\n type: FIND_TIME_SLOTS_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function findTimeSlotsError(error) {\r\n return {\r\n type: FIND_TIME_SLOTS_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function findPackagesRequest(payload) {\r\n return {\r\n type: FIND_PACKAGES_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function findPackagesSuccess(data) {\r\n return {\r\n type: FIND_PACKAGES_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function findPackagesError(error) {\r\n return {\r\n type: FIND_PACKAGES_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function checkTimeslotsRequest(payload) {\r\n return {\r\n type: CHECK_TIMESLOTS_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function checkTimeslotsSuccess(data) {\r\n return {\r\n type: CHECK_TIMESLOTS_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function checkTimeslotsError(error) {\r\n return {\r\n type: CHECK_TIMESLOTS_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function findPaymentCardsRequest(payload) {\r\n return {\r\n type: FIND_PAYMENT_CARDS_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function findPaymentCardsSuccess(data) {\r\n return {\r\n type: FIND_PAYMENT_CARDS_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function findPaymentCardsError(error) {\r\n return {\r\n type: FIND_PAYMENT_CARDS_ERROR,\r\n error,\r\n };\r\n}\r\n\r\n","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","import React, { Component } from 'react';\r\nimport { Field, reduxForm, formValueSelector, initialize } from 'redux-form';\r\nimport { connect } from 'react-redux';\r\n\r\nimport TextField from '../../../../components/SimpleTextField/TextField';\r\nimport { required, minValue } from '../../../../helpers/validators';\r\nimport Pound from \"../../../../assets/images/pound-ic.png\";\r\nimport SimpleImage from '../../../../components/SimpleImage/SimpleImage';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst requiredMMAMT = required(\"minimum amount\");\r\nconst selector = formValueSelector('min-payment-form');\r\n\r\nclass MinPaymentForm extends Component {\r\n\r\n constructor(props){\r\n super(props);\r\n this.state ={\r\n minValueCondition: minValue('Amount', 0, 0, 0),\r\n selected: 'max'\r\n }\r\n }\r\n\r\n componentDidMount(){\r\n if(this.props.productPrice){\r\n this.selectedMax()\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps){\r\n\r\n if (prevProps.amount !== this.props.amount) {\r\n this.setState({ \r\n minValueCondition: minValue( 'Amount', this.props.minPrice, this.props.productPrice, this.props.amount),\r\n })\r\n } \r\n if(this.props.productPrice !== undefined && prevProps.productPrice !== this.props.productPrice){\r\n this.selectedMax()\r\n }\r\n }\r\n\r\n selectedMax = () =>{\r\n this.setState({ \r\n selected: 'max' ,\r\n minValueCondition: minValue('Amount', this.props.minPrice, this.props.minPrice)\r\n })\r\n this.props.dispatch(initialize(\"min-payment-form\", { amount: String(this.props.productPrice) }))\r\n }\r\n\r\n selectedMin = () =>{\r\n this.setState({ \r\n selected: 'min' ,\r\n minValueCondition: minValue('Amount', this.props.minPrice, this.props.minPrice)\r\n })\r\n this.props.dispatch(initialize(\"min-payment-form\", { amount: String(this.props.minPrice) }))\r\n }\r\n\r\n validateInput = (value) =>{\r\n var regex = /^[0-9]*(\\.[0-9]{0,2})?$/;\r\n return !regex.test(value);\r\n }\r\n\r\n render(){\r\n return( \r\n\r\n
\r\n
\r\n \r\n \r\n

How much would you like to pay?

\r\n

Remaining Balance

\r\n
£{this.props.productPrice}
\r\n
\r\n this.selectedMax()}> Pay In Full £{this.props.productPrice} \r\n this.selectedMin()}> Part Payment £{this.props.minPrice}Minimum \r\n
\r\n
\r\n \r\n { this.state.selected === 'max' ?\r\n { if(this.validateInput(event.target.value)){ event.preventDefault() } }}\r\n wrapperClasses={'form-group'}\r\n /> :\r\n { if(this.validateInput(event.target.value)){ event.preventDefault() } }}\r\n wrapperClasses={'form-group'}\r\n />\r\n }\r\n \r\n
\r\n
\r\n
\r\n \r\n this.props.onCancel()}>back
\r\n
\r\n )\r\n }\r\n}\r\n\r\n\r\nMinPaymentForm = reduxForm({\r\n form: \"min-payment-form\",\r\n})(MinPaymentForm);\r\n \r\nconst mapStateToProps = state => {\r\n const amount = selector(state, 'amount');\r\n return {\r\n amount\r\n };\r\n};\r\n \r\nexport default connect(mapStateToProps)(MinPaymentForm);\r\n","import React, { Component } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport SimpleImage from \"../../../../components/SimpleImage/SimpleImage\";\r\n\r\nimport Scrollbars from \"react-custom-scrollbars\";\r\n\r\nclass TermsPage extends Component {\r\n\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n enableTerms: false\r\n }\r\n }\r\n\r\n // trackScrolling = (e) => {\r\n // if (e.target.scrollHeight - e.target.scrollTop === e.target.clientHeight) {\r\n // this.setState({ enableTerms: true })\r\n // }\r\n // };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n \r\n

Clinic Terms & Conditions

\r\n

Please read and accept the terms and conditions

\r\n
\r\n
\r\n \r\n {this.props.terms}\r\n \r\n
\r\n
\r\n {/* */}\r\n \r\n this.props.backFromTerms()}>back\r\n
\r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\nexport default TermsPage;","import React, { Component } from \"react\";\r\n\r\nclass CardNotApproved extends Component {\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Problem in processing your payment.
Please contact the clinic before trying again.

\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default CardNotApproved;\r\n\r\n","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABHNCSVQICAgIfAhkiAAAAV9JREFUSEtjZKATYKSTPQyjFpEd0oM76Ezdo1wYWBgY/vz6d+387hXPiPEmyT4y8YzbxsDA8JyR4T8HAyOj/f///5ee2b64nJBlJFlk4hXTx/Cf6c2Z7YvaYAYbe4Yrn92+8i51LfKM2/nhNr/fnTuTfxIyGF2eJB+ZesX+Ob1NmY2BoeEfTS0y8Yw7fGb7IltSLQGpJ8pHpl5xB////2/EwMDAzcDA8BVuESPjnzPbFgkSYzFRFllahnJ+ZGdg5ubi2Pbp40dvZlb2/yDDWdg4/l/atRhhMR4bibIIpF/XO0qQ4x/LndPbFwkT4wOyE4OhZ7QWCwPzqtPbF+nQ1iL3KBcmZpbAs9sWZdPUIhPPmNX///+deHbH8iM0s8jQM24aM8P/OAYGBnAiQAf/Gf9Znd229DI+BxCVGFQ8PfnYvvPgzKTXDmh/I5SJibKInKAiO9VRatmoj8gOQboFHQA12mUbtI1l6AAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/logo.b92008e0.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAXCAYAAAGT2DQLAAAAAXNSR0IArs4c6QAAAd5JREFUOBGllc0rRVEUxV1Ez0dSYiglUkwllDGZKKKE/8BQDJCBgYER/4N8DgwYmaNkoJRSSvKRiWQkuX77Ovuec+5973k4td5ee621zz3vvPcoKmKFYXgoNV4Ip6IuxooQhN1IgIx6jnGr1N1Tl+STcplv1ga+oDyqCO3gKClmEN88sbCGsQk3SV/n9j7HLfcV02F0gR7XpN8AJa4WccThlIiAfqx6sRJqeodv02aYHAdtzlCK4i+DmkAcyKxJNFD18l0eBkGwYjK2MNgBdoB9vLUtIzAHbsAZ6LaOwzBenFaOVQauXU3EKU8wDXoTsMeg2coWFA2vU6qmQ2nyLQ3my1iP7e9s5zO8i0iBPPtWuiMzJ4ddSlu+QuYt4GUGWc86At82MfmG7Rh+Yup3YSh+99B5z0w2BNZ/DOkQwT4gaxMMgmZQATrBJLgFB6BMZ3JWQg3gAfTmDBmDjNyFfCtX82YJrIHpvKGESV5O3ejKeuOq1UP0R6TaT/WRgPzg4pXcNDb+Q5KbfrJZ/PEXuHH2Ge5kDNyD1gI38mLMyR+kc1AbGZAFsOil/tiwzyuoLGX+A8iTMn/cS8fkGqpB7uvjIS3gUie0ovWDfe1/XRkeAO9gGgyBKyAr+z8k84QvO7Nf/BBdOW4AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/user.3dd3966b.svg\";","module.exports = __webpack_public_path__ + \"static/media/password.452e84f7.svg\";","module.exports = __webpack_public_path__ + \"static/media/logout.00e91575.svg\";","export const BASE_URL = \"/\";\r\nexport const routes = {\r\n BASEPATH: BASE_URL,\r\n\r\n LOGIN: `${BASE_URL}login`,\r\n\r\n FORGOT_PASSWORD: `${BASE_URL}forgot-password`,\r\n\r\n SIGNUP: `${BASE_URL}signup`,\r\n\r\n PROFILE: `${BASE_URL}profile`,\r\n\r\n CLINICS: `${BASE_URL}clinics`,\r\n\r\n APPOINTMENTS: `${BASE_URL}appointments`,\r\n\r\n PAYMENTS: `${BASE_URL}payments`,\r\n\r\n PAYMENT_TOKEN: `${BASE_URL}paymentToken`,\r\n};\r\n","import axios from \"axios\";\r\nimport API_CODES from \"../config/api-codes\";\r\nimport {\r\n BAD_REQUEST,\r\n UNAUTHORIZED_STATUS,\r\n TOKEN_LOCAL_STORAGE_KEY,\r\n} from \"../config/constants\";\r\n\r\naxios.interceptors.response.use(\r\n (response) => {\r\n return response;\r\n },\r\n (error) => {\r\n\r\n if ((\r\n error.response.status === UNAUTHORIZED_STATUS &&\r\n error.response.data.messages &&\r\n error.response.data.messages[0] &&\r\n error.response.data.messages[0].code &&\r\n error.response.data.messages[0].code === API_CODES.INVALID_TOKEN\r\n ) ||\r\n (\r\n error.response.status === BAD_REQUEST &&\r\n error.response.data.messages &&\r\n error.response.data.messages[0] &&\r\n error.response.data.messages[0].code &&\r\n error.response.data.messages[0].code === API_CODES.TOKEN_NOT_FOUND\r\n )) {\r\n return getAuthorizedToken()\r\n .then((token) => {\r\n const { config } = error;\r\n localStorage.setItem(TOKEN_LOCAL_STORAGE_KEY, token);\r\n config.headers[\"Authorization\"] = `Bearer ${token}`;\r\n\r\n if(JSON.parse(config['data'])['logout'] === true){\r\n config['url'] = process.env.REACT_APP_SERVER_BASE_URL + '/sessions/' + token;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .request(config)\r\n .then((res) => {\r\n resolve(res);\r\n })\r\n .catch((err) => {\r\n reject(err);\r\n });\r\n });\r\n })\r\n .catch((err) => {\r\n return Promise.reject(err);\r\n });\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nfunction apiError(status, message, _data) {\r\n\r\n let data = null;\r\n let isObject = false;\r\n try {\r\n data = JSON.parse(_data);\r\n isObject = true;\r\n } catch (error) {\r\n data = _data;\r\n }\r\n return {\r\n status,\r\n message,\r\n data,\r\n toString: () => {\r\n return `${message}\\nResponse:\\n${\r\n isObject ? JSON.stringify(data, null, 2) : data\r\n }`;\r\n },\r\n };\r\n}\r\n\r\nexport function getRequest(\r\n _url,\r\n authToken = \"\",\r\n queryParams = {},\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return axios({\r\n method: \"GET\",\r\n url,\r\n headers: { ...headers, ..._headers },\r\n params: queryParams,\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function postRequest(\r\n _url,\r\n data,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n\r\n return axios({\r\n method: \"POST\",\r\n url,\r\n data,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function patchRequest(\r\n _url,\r\n data,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return axios({\r\n method: \"PATCH\",\r\n url,\r\n data,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function putRequest(\r\n _url,\r\n data,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return axios({\r\n method: \"PUT\",\r\n url,\r\n data,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function getAuthorizedToken(BaseUrl = process.env.REACT_APP_SERVER_BASE_URL) {\r\n const url = `${BaseUrl}/sessions`;\r\n const credentails = btoa(\r\n `${process.env.REACT_APP_API_AUTH_TOKEN_USERNAME}:${process.env.REACT_APP_API_AUTH_TOKEN_PASSWORD}`\r\n );\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Basic ${credentails}`,\r\n };\r\n return axios({\r\n method: \"POST\",\r\n url,\r\n data: {},\r\n headers,\r\n })\r\n .then(function (response) {\r\n return response.data.response.token;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function deleteRequest(\r\n _url,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {},\r\n data = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return axios({\r\n method: \"DELETE\",\r\n url,\r\n headers: { ...headers, ..._headers },\r\n data: data\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n","const PATIENT_PROFILE_ACTION = \"PATIENT/PROFILE\";\r\nconst UPDATE_PROFILE_ACTION = \"UPDATE/PROFILE\";\r\nconst UPDATE_PROFILE_IMAGE_ACTION = \"UPDATE/PROFILE/IMAGE\";\r\nconst UPDATE_PASSWORD_ACTION = \"UPDATE/PASSWORD\";\r\n\r\nexport const PATIENT_PROFILE_REQUEST = `${PATIENT_PROFILE_ACTION}/REQUEST`;\r\nexport const PATIENT_PROFILE_SUCCESS = `${PATIENT_PROFILE_ACTION}/SUCCESS`;\r\nexport const PATIENT_PROFILE_ERROR = `${PATIENT_PROFILE_ACTION}/ERROR`;\r\n\r\nexport const UPDATE_PROFILE_REQUEST = `${UPDATE_PROFILE_ACTION}/REQUEST`;\r\nexport const UPDATE_PROFILE_SUCCESS = `${UPDATE_PROFILE_ACTION}/SUCCESS`;\r\nexport const UPDATE_PROFILE_ERROR = `${UPDATE_PROFILE_ACTION}/ERROR`;\r\n\r\nexport const UPDATE_PROFILE_IMAGE_REQUEST = `${UPDATE_PROFILE_IMAGE_ACTION}/REQUEST`;\r\nexport const UPDATE_PROFILE_IMAGE_SUCCESS = `${UPDATE_PROFILE_IMAGE_ACTION}/SUCCESS`;\r\nexport const UPDATE_PROFILE_IMAGE_ERROR = `${UPDATE_PROFILE_IMAGE_ACTION}/ERROR`;\r\n\r\nexport const UPDATE_PASSWORD_REQUEST = `${UPDATE_PASSWORD_ACTION}/REQUEST`;\r\nexport const UPDATE_PASSWORD_SUCCESS = `${UPDATE_PASSWORD_ACTION}/SUCCESS`;\r\nexport const UPDATE_PASSWORD_ERROR = `${UPDATE_PASSWORD_ACTION}/ERROR`;\r\n\r\nexport function patientPofileRequest(payload) {\r\n return {\r\n type: PATIENT_PROFILE_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function patientPofileSuccess(data) {\r\n return {\r\n type: PATIENT_PROFILE_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function patientPofileError(error) {\r\n return {\r\n type: PATIENT_PROFILE_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function updatePofileRequest(payload, recordId) {\r\n return {\r\n type: UPDATE_PROFILE_REQUEST,\r\n payload,\r\n recordId\r\n };\r\n}\r\n\r\nexport function updatePofileSuccess(data) {\r\n return {\r\n type: UPDATE_PROFILE_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function updatePofileError(error) {\r\n return {\r\n type: UPDATE_PROFILE_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function updatePofileImageRequest(payload, recordId) {\r\n return {\r\n type: UPDATE_PROFILE_IMAGE_REQUEST,\r\n payload,\r\n recordId\r\n };\r\n}\r\n\r\nexport function updatePofileImageSuccess(data) {\r\n return {\r\n type: UPDATE_PROFILE_IMAGE_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function updatePofileImageError(error) {\r\n return {\r\n type: UPDATE_PROFILE_IMAGE_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function updatePasswordRequest(payload) {\r\n return {\r\n type: UPDATE_PASSWORD_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function updatePasswordSuccess(data) {\r\n return {\r\n type: UPDATE_PASSWORD_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function updatePasswordError(error) {\r\n return {\r\n type: UPDATE_PASSWORD_ERROR,\r\n error,\r\n };\r\n}\r\n","const USER_LOGIN_ACTION = \"USER/LOGIN\";\r\nconst USER_FP_ACTION = \"USER/FP\";\r\nconst USER_LOGOUT_ACTION = \"USER/LOGOUT\";\r\n\r\nexport const USER_LOGIN_REQUEST = `${USER_LOGIN_ACTION}/REQUEST`;\r\nexport const USER_LOGIN_SUCCESS = `${USER_LOGIN_ACTION}/SUCCESS`;\r\nexport const USER_LOGIN_ERROR = `${USER_LOGIN_ACTION}/ERROR`;\r\n\r\nexport const USER_FP_REQUEST = `${USER_FP_ACTION}/REQUEST`;\r\nexport const USER_FP_SUCCESS = `${USER_FP_ACTION}/SUCCESS`;\r\nexport const USER_FP_ERROR = `${USER_FP_ACTION}/ERROR`;\r\n\r\nexport const USER_LOGOUT_REQUEST = `${USER_LOGOUT_ACTION}/REQUEST`;\r\nexport const USER_LOGOUT_SUCCESS = `${USER_LOGOUT_ACTION}/SUCCESS`;\r\nexport const USER_LOGOUT_ERROR = `${USER_LOGOUT_ACTION}/ERROR`;\r\n\r\nexport const SET_USER_LOGIN_TITLE = \"USER/LOGIN_SET_MESSAGE\";\r\n\r\nexport function userLoginRequest(payload) {\r\n return {\r\n type: USER_LOGIN_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function userLoginSuccess(data) {\r\n return {\r\n type: USER_LOGIN_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function userLoginError(error) {\r\n return {\r\n type: USER_LOGIN_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function userFpRequest(payload) {\r\n return {\r\n type: USER_FP_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function userFpSuccess(data) {\r\n return {\r\n type: USER_FP_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function userFpError(error) {\r\n return {\r\n type: USER_FP_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function userLogoutRequest(payload) {\r\n return {\r\n type: USER_LOGOUT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function userLogoutSuccess(data) {\r\n return {\r\n type: USER_LOGOUT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function userLogoutError(error) {\r\n return {\r\n type: USER_LOGOUT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function setUserLoginTitle(title, desc) {\r\n return {\r\n type: SET_USER_LOGIN_TITLE,\r\n title,\r\n desc,\r\n };\r\n}\r\n\r\n","import axios from \"axios\";\r\nimport API_CODES from \"../config/api-codes\";\r\nimport {\r\n BAD_REQUEST,\r\n UNAUTHORIZED_STATUS,\r\n CLINIC_TOKEN_LOCAL_STORAGE_KEY,\r\n CLINIC_BASE_URL_HEADER_KEY,\r\n CLINIC_SESSION_KEY,\r\n} from \"../config/constants\";\r\n\r\nconst clinicAxios = axios.create();\r\n\r\nclinicAxios.interceptors.response.use(\r\n (response) => {\r\n return response;\r\n },\r\n (error) => {\r\n\r\n if (\r\n (error.response.status === UNAUTHORIZED_STATUS &&\r\n error.response.data.messages &&\r\n error.response.data.messages[0] &&\r\n error.response.data.messages[0].code &&\r\n error.response.data.messages[0].code === API_CODES.INVALID_TOKEN) ||\r\n (error.response.status === BAD_REQUEST &&\r\n error.response.data.messages &&\r\n error.response.data.messages[0] &&\r\n error.response.data.messages[0].code &&\r\n error.response.data.messages[0].code === API_CODES.TOKEN_NOT_FOUND)\r\n ) {\r\n if (\r\n error.config.headers &&\r\n error.config.headers[CLINIC_BASE_URL_HEADER_KEY]\r\n ) {\r\n return getAuthorizedToken(error.config.headers[CLINIC_BASE_URL_HEADER_KEY])\r\n .then((token) => {\r\n const { config } = error;\r\n localStorage.setItem(CLINIC_TOKEN_LOCAL_STORAGE_KEY, token);\r\n config.headers[\"Authorization\"] = `Bearer ${token}`;\r\n return new Promise((resolve, reject) => {\r\n clinicAxios\r\n .request(config)\r\n .then((res) => {\r\n resolve(res);\r\n })\r\n .catch((err) => {\r\n reject(err);\r\n });\r\n });\r\n })\r\n .catch((err) => {\r\n return Promise.reject(err);\r\n });\r\n }\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nfunction apiError(status, message, _data) {\r\n let data = null;\r\n let isObject = false;\r\n try {\r\n data = JSON.parse(_data);\r\n isObject = true;\r\n } catch (error) {\r\n data = _data;\r\n }\r\n return {\r\n status,\r\n message,\r\n data,\r\n toString: () => {\r\n return `${message}\\nResponse:\\n${\r\n isObject ? JSON.stringify(data, null, 2) : data\r\n }`;\r\n },\r\n };\r\n}\r\n\r\nexport function getRequest(\r\n _url,\r\n authToken = \"\",\r\n queryParams = {},\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n [CLINIC_BASE_URL_HEADER_KEY]: BaseUrl,\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(CLINIC_TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n CLINIC_TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return clinicAxios({\r\n method: \"GET\",\r\n url,\r\n headers: { ...headers, ..._headers },\r\n params: queryParams,\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function postRequest(\r\n _url,\r\n data,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n [CLINIC_BASE_URL_HEADER_KEY]: BaseUrl,\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(CLINIC_TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n CLINIC_TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n\r\n return clinicAxios({\r\n method: \"POST\",\r\n url,\r\n data,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n\r\n if(data && data['script'] === \"createSession\"){\r\n localStorage.setItem(CLINIC_SESSION_KEY, response['data']['response']['scriptResult'])\r\n }\r\n\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function patchRequest(\r\n _url,\r\n data,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n [CLINIC_BASE_URL_HEADER_KEY]: BaseUrl,\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(CLINIC_TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n CLINIC_TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return clinicAxios({\r\n method: \"PATCH\",\r\n url,\r\n data,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function putRequest(\r\n _url,\r\n data,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n [CLINIC_BASE_URL_HEADER_KEY]: BaseUrl,\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(CLINIC_TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n CLINIC_TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return clinicAxios({\r\n method: \"PUT\",\r\n url,\r\n data,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function getAuthorizedToken(BaseUrl = process.env.REACT_APP_SERVER_BASE_URL) {\r\n const url = `${BaseUrl}/sessions`;\r\n const credentails = btoa(\r\n `${process.env.REACT_APP_API_AUTH_TOKEN_USERNAME}:${process.env.REACT_APP_API_AUTH_TOKEN_PASSWORD}`\r\n );\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n Authorization: `Basic ${credentails}`,\r\n };\r\n return clinicAxios({\r\n method: \"POST\",\r\n url,\r\n data: {},\r\n headers,\r\n })\r\n .then(function (response) {\r\n return response.data.response.token;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n\r\nexport function deleteRequest(\r\n _url,\r\n authToken = \"\",\r\n BaseUrl = process.env.REACT_APP_SERVER_BASE_URL,\r\n _headers = {}\r\n) {\r\n const url = `${BaseUrl}${_url}`;\r\n let headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n [CLINIC_BASE_URL_HEADER_KEY]: BaseUrl,\r\n };\r\n if (authToken) {\r\n headers.Authorization = `Bearer ${authToken}`;\r\n } else if (localStorage.getItem(CLINIC_TOKEN_LOCAL_STORAGE_KEY)) {\r\n headers.Authorization = `Bearer ${localStorage.getItem(\r\n CLINIC_TOKEN_LOCAL_STORAGE_KEY\r\n )}`;\r\n }\r\n return clinicAxios({\r\n method: \"DELETE\",\r\n url,\r\n headers: { ...headers, ..._headers },\r\n })\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (error) {\r\n if (error.response) {\r\n throw apiError(error.response.status, `Request failed.`, error);\r\n } else if (error.request) {\r\n throw apiError(error.request.status, `Request failed.`, error);\r\n } else {\r\n throw apiError(\"ERROR\", error.toString(), error);\r\n }\r\n });\r\n}\r\n","export const INVALID_EMAIL_OR_PASSWORD = \"Invalid email or password.\";\r\nexport const SOMETHING_WENT_WRONG = \"Something went wrong!\";\r\nexport const FORGOT_PASSWORD_SUCCESS = \"Password Link has been sent\";\r\nexport const FORGOT_PASSWORD_EMAIL_NOT_FOUND = \"Email doesn't exist\";\r\nexport const CONGRATULATIONS = \"Congratulations\";\r\nexport const EMAIL_ALREADY_IN_USE = \"This email is already in use.\"\r\nexport const CONGRATULATIONS_DESC =\r\n \"Your registration has been successful!
Login to book your first treatment.\";\r\nexport const NO_DATA_FOUND_FROM_POSTCODE =\r\n \"No data was found for the requested postal code\";\r\nexport const ACCESS_FORBIDDEN = \"Access Forbidden! Please try again later.\";\r\nexport const SESSION_TIMEOUT = \"Your session has timed out\";\r\n\r\nexport const NO_CARDS_ADDED = \"No cards added.\";\r\nexport const VISA_DEBIT = \"Visa Debit\";\r\nexport const MASTER_CARD = \"Mastercard\";\r\nexport const AMERICAN_EXPRESS = \"American Express\";\r\nexport const DELETE_CARD_SUCCESS = \"Card deleted successfully\";\r\n\r\nexport const NO_CLINIC_ADDED = \"No clinic was added\";\r\nexport const ADD_FIRST_CLINIC = \"Let's get started by adding your first clinic\";\r\n\r\nexport const PROFILE_UPDATE_SUCCESS = \"Profile updated successfully\";\r\nexport const IMAGE_UPLOAD_VALID_ERROR =\r\n \"Image should be .jpg, .jpeg or .png. and size should be less then 15 MB\";\r\n\r\nexport const DAY_LIST = [\r\n \"Sunday\",\r\n \"Monday\",\r\n \"Tuesday\",\r\n \"Wednesday\",\r\n \"Thursday\",\r\n \"Friday\",\r\n \"Saturday\",\r\n];\r\nexport const MONTH_LIST = [\r\n \"January\",\r\n \"February\",\r\n \"March\",\r\n \"April\",\r\n \"May\",\r\n \"June\",\r\n \"July\",\r\n \"August\",\r\n \"September\",\r\n \"October\",\r\n \"November\",\r\n \"December\",\r\n];\r\n","const ADD_CARD_ACTION = \"ADD/CARD\";\r\nconst UPDATE_CARD_ACTION = \"UPDATE/CARD\";\r\nconst DELETE_CARD_ACTION = \"DELETE/CARD\";\r\n\r\nexport const ADD_CARD_REQUEST = `${ADD_CARD_ACTION}/REQUEST`;\r\nexport const ADD_CARD_SUCCESS = `${ADD_CARD_ACTION}/SUCCESS`;\r\nexport const ADD_CARD_ERROR = `${ADD_CARD_ACTION}/ERROR`;\r\n\r\nexport const UPDATE_CARD_REQUEST = `${UPDATE_CARD_ACTION}/REQUEST`;\r\nexport const UPDATE_CARD_SUCCESS = `${UPDATE_CARD_ACTION}/SUCCESS`;\r\nexport const UPDATE_CARD_ERROR = `${UPDATE_CARD_ACTION}/ERROR`;\r\n\r\nexport const DELETE_CARD_REQUEST = `${DELETE_CARD_ACTION}/REQUEST`;\r\nexport const DELETE_CARD_SUCCESS = `${DELETE_CARD_ACTION}/SUCCESS`;\r\nexport const DELETE_CARD_ERROR = `${DELETE_CARD_ACTION}/ERROR`;\r\n\r\nexport function addCardRequest(payload) {\r\n return {\r\n type: ADD_CARD_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function addCardSuccess(data) {\r\n return {\r\n type: ADD_CARD_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function addCardError(error) {\r\n return {\r\n type: ADD_CARD_ERROR,\r\n error\r\n };\r\n}\r\n\r\nexport function updateCardRequest(payload) {\r\n return {\r\n type: UPDATE_CARD_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function updateCardSuccess(data) {\r\n return {\r\n type: UPDATE_CARD_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function updateCardError(error) {\r\n return {\r\n type: UPDATE_CARD_ERROR,\r\n error\r\n };\r\n}\r\n\r\nexport function deleteCardRequest(payload) {\r\n return {\r\n type: DELETE_CARD_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function deleteCardSuccess(data) {\r\n return {\r\n type: DELETE_CARD_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function deleteCardError(error) {\r\n return {\r\n type: DELETE_CARD_ERROR,\r\n error\r\n };\r\n}\r\n\r\n\r\n","import React, { Component, Fragment } from 'react';\r\nimport DefaultImg from '../../assets/images/user-img.png';\r\n\r\nclass SimpleImage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loaded: false,\r\n };\r\n }\r\n\r\n render() {\r\n const { src, alt, defaultimg } = this.props;\r\n const { loaded } = this.state;\r\n let defaultImage = DefaultImg;\r\n if (defaultimg) {\r\n defaultImage = defaultimg;\r\n }\r\n const imgStyles = loaded ? {} : { display: 'none' };\r\n return (\r\n \r\n {(!loaded) && \"\"}\r\n \r\n \r\n );\r\n }\r\n\r\n handleLoad = () => {\r\n this.setState({ loaded: true });\r\n }\r\n\r\n handleError = () => {\r\n this.setState({ loaded: false });\r\n }\r\n}\r\n\r\nexport default SimpleImage;","export const required = (key) => (value) => {\r\n if (!value || !value.trim()) {\r\n return `Please enter ${key}.`;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const requiredDatepicker = (key) => (value) => {\r\n if (!value) {\r\n return `Please select ${key}.`;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const requiredExpirayDate = (key) => (value) => {\r\n if (!value || !value.field1 || !value.field2 || !value.field1.trim() || !value.field2.trim()) {\r\n return `Please enter ${key}.`;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const minLength = (len) => (value) => {\r\n if (value && value.length < len) {\r\n return `Field must contain minimum ${len} or more.`;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const maxLength = (len) => (value) => {\r\n if (value && value.length > len) {\r\n return `Field must contain maximum ${len} or less.`;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const validEmail = (key) => (value) => {\r\n const regex = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i;\r\n if (value && !regex.test(value)) {\r\n return `Please enter valid ${key}.`;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const numberOnly = (key) => (value) => {\r\n const regex = /^\\d+$/;\r\n \r\n if (value && !regex.test(value)) {\r\n return `Invalid ${key}.`;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const validPassword = (key) => (value) => {\r\n // eslint-disable-next-line no-useless-escape\r\n // const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?])[A-Za-z\\d!$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]{8,}$/i;\r\n const regex = /^(?=.{8,})(?=.*[a-z])(?=.*\\d)(?=.*[A-Z])(?=.*[@#$%^&+*!=]).*$/\r\n\r\n if (value && !regex.test(value)) {\r\n return `Your ${key} must be at must be at least 8 characters and contain a capital letter, number & special character.`;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const validPhone = (key) => (value) => {\r\n const regex1 = /^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$/;\r\n const regex2 = /^\\d{10}$/;\r\n // if (value && !regex.test(value)) {\r\n if (value && (!regex1.test(value)) && !regex2.test(value)) {\r\n return `Please enter a valid UK ${key}.`;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const compareValue = (\r\n key,\r\n compareKey,\r\n compareValue,\r\n caseSensitive = true\r\n) => (value) => {\r\n const msg = `Your ${compareKey}s do not match.`;\r\n if (caseSensitive) {\r\n if (compareValue !== value) {\r\n return msg;\r\n }\r\n } else {\r\n if (compareValue.toLocaleLowerCase() !== value.toLocaleLowerCase()) {\r\n return msg;\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const compareOldPass = (\r\n key,\r\n compareKey,\r\n compareValue,\r\n caseSensitive = true\r\n) => (value) => {\r\n const msg = `The ${compareKey} you have entered is incorrect.`;\r\n if (caseSensitive) {\r\n if (compareValue !== value) {\r\n return msg;\r\n }\r\n } else {\r\n if (compareValue.toLocaleLowerCase() !== value.toLocaleLowerCase()) {\r\n return msg;\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const compareNewPass = (\r\n key,\r\n compareKey,\r\n compareValue,\r\n caseSensitive = true\r\n) => (value) => {\r\n const msg = `${compareKey} is same as old one.`;\r\n if (caseSensitive) {\r\n if (compareValue === value) {\r\n return msg;\r\n }\r\n } else {\r\n if (compareValue.toLocaleLowerCase() === value.toLocaleLowerCase()) {\r\n return msg;\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const minValue = (\r\n key,\r\n minPrice,\r\n productPrice,\r\n amount\r\n) => (value) => {\r\n\r\n const msg = 'Please enter valid amount.';\r\n\r\n // if (amount < minPrice || productPrice < amount) {\r\n if (isNaN(amount) || (amount < minPrice || productPrice < amount)) {\r\n return msg;\r\n }\r\n \r\n return undefined;\r\n};\r\n\r\nexport const fullPayment = (\r\n key,\r\n price,\r\n amount\r\n) => (value) => {\r\n\r\n const msg = 'Please enter valid amount.';\r\n\r\n if (+price !== +amount) {\r\n return msg;\r\n }\r\n \r\n return undefined;\r\n};\r\n\r\n\r\nexport const restrictAtTheRateSymbols = (key) => (value) => {\r\n const regex = /^[^@#]*$/;\r\n if (value && !regex.test(value)) {\r\n return `The ${key} cannot contain @ or #.`;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const allowAlphaHyphenApos = (key) => (value) => {\r\n const regex = /^[a-zA-Z-']*$/;\r\n if (value && !regex.test(value)) {\r\n return `The ${key} can only contain alphabets, hyphen and apostrophe.`;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const restrictPipeSymbols = (key) => (value) => {\r\n const regex = /^[^|]*$/;\r\n if (value && !regex.test(value)) {\r\n return `The ${key} cannot contain |.`;\r\n }\r\n return undefined;\r\n};\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Field, reduxForm, formValueSelector } from 'redux-form';\r\nimport PasswordField from '../../components/PasswordField/PasswordField';\r\nimport {\r\n required,\r\n restrictAtTheRateSymbols,\r\n compareValue,\r\n compareOldPass,\r\n compareNewPass,\r\n validPassword\r\n} from '../../helpers/validators';\r\n\r\nconst requiredPassword = required('password');\r\nconst requiredNPassword = required('new password');\r\nconst requiredCNPassword = required('confirm password');\r\nconst restrictSpecialSymbolsPassword = restrictAtTheRateSymbols('new password');\r\nconst selector = formValueSelector('change_password');\r\nconst validNewPassword = validPassword('password')\r\n\r\nclass ChangePasswordModel extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n compareValue: compareValue('confirm password', 'new password', ''),\r\n compareNewPass: compareNewPass('old password', 'new password', ''),\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (prevProps.new_password !== this.props.new_password) {\r\n this.setState({\r\n compareValue: compareValue('confirm Password', 'new password', this.props.new_password),\r\n compareNewPass: compareNewPass('old password', 'New password', this.props.old_password)\r\n })\r\n }\r\n if (prevProps.old_password !== this.props.old_password) {\r\n this.setState({\r\n compareNewPass: compareNewPass('old password', 'New password', this.props.old_password)\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Change Password

\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\nChangePasswordModel = reduxForm({\r\n form: \"change_password\"\r\n})(ChangePasswordModel);\r\n\r\nconst mapStateToProps = state => {\r\n const old_password = selector(state, 'Oldpassword');\r\n const new_password = selector(state, 'Newpassword');\r\n return {\r\n old_password,\r\n new_password\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(ChangePasswordModel);\r\n","const GET_NOTIFICATIONS = \"GET/NOTIFICATIONS\";\r\n\r\nexport const GET_NOTIFICATIONS_REQUEST = `${GET_NOTIFICATIONS}/REQUEST`;\r\nexport const GET_NOTIFICATIONS_SUCCESS = `${GET_NOTIFICATIONS}/SUCCESS`;\r\nexport const GET_NOTIFICATIONS_ERROR = `${GET_NOTIFICATIONS}/ERROR`;\r\n\r\nexport function getNotificationsRequest(payload) {\r\n return {\r\n type: GET_NOTIFICATIONS_REQUEST,\r\n payload\r\n };\r\n}\r\n\r\nexport function getNotificationsSuccess(data) {\r\n return {\r\n type: GET_NOTIFICATIONS_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function getNotificationsError(error) {\r\n return {\r\n type: GET_NOTIFICATIONS_ERROR,\r\n error\r\n };\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Link, withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { initialize } from 'redux-form';\r\nimport $ from 'jquery'\r\n\r\nimport MyBooking from '../../Dashboard/components/MyBooking/MyBooking';\r\n\r\nimport ChangePasswordModel from '../../ChangePassword/ChangePassword';\r\n\r\nimport { routes } from '../../../config/routes';\r\nimport { CLINIC_SESSION_KEY, CLINIC_TOKEN_LOCAL_STORAGE_KEY, LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY, LOGGED_USER_SESSION_KEY, TOKEN_LOCAL_STORAGE_KEY } from '../../../config/constants';\r\n\r\nimport { patientPofileRequest, updatePasswordRequest } from '../../../actions/profile';\r\n\r\nimport Logo from '../../../assets/images/logo.png';\r\nimport LogoBlue from '../../../assets/images/logo-blue.png';\r\nimport BellActive from '../../../assets/images/bell-active.png';\r\nimport UserIcon from '../../../assets/images/user.svg';\r\nimport PasswordIcon from '../../../assets/images/password.svg';\r\nimport LogoutIcon from '../../../assets/images/logout.svg';\r\nimport SimpleImage from '../../../components/SimpleImage/SimpleImage';\r\nimport { getNotificationsRequest } from '../../../actions/notifications';\r\nimport Scrollbars from 'react-custom-scrollbars';\r\nimport { getSingleClinicNotificationRequest } from '../../../actions/clinics';\r\nimport { userLogoutRequest } from '../../../actions/auth';\r\nimport { SOMETHING_WENT_WRONG } from '../../../config/labels';\r\nimport { Toast } from '../../../helpers/toast';\r\n\r\nclass Header extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n patientData: {},\r\n selectedNtification: {},\r\n selectedClinic: {},\r\n selectedFlow: 'payment',\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n const payload = {\r\n idPatient: localStorage.getItem(LOGGED_USER_SESSION_KEY)\r\n }\r\n dispatch(patientPofileRequest(payload));\r\n\r\n this.setState({ selectedFlow: \"payment\" });\r\n\r\n this.props.dispatch(getNotificationsRequest({\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"getNotifications\",\r\n \"script.param\" : localStorage.getItem(LOGGED_USER_SESSION_KEY)\r\n }))\r\n\r\n document.addEventListener('click', (evnt) => {\r\n\r\n if(evnt.target.className !== \"toggle-notifications-slider\"){\r\n if(!evnt.target.className.includes('notification-tab')){\r\n $(\".notification-submenu\").slideUp(\"slow\");\r\n }\r\n }\r\n\r\n if( evnt.target.className === \"cmn-btn reset-header-props\"){\r\n this.setState({ selectedClinic: {} })\r\n }\r\n // reset-header-props\r\n });\r\n\r\n }\r\n\r\n componentWillUnmount(){\r\n this.setState({ selectedClinic: {}, selectedFlow: '' })\r\n }\r\n\r\n toggleNotification = () => {\r\n $(\".notification-submenu\").slideToggle(\"slow\");\r\n }\r\n\r\n handleUpdatePassword = (data) => {\r\n this.props.dispatch(updatePasswordRequest({\r\n query: [\r\n {\r\n z1: 1\r\n }\r\n ],\r\n \r\n \"script\": \"updatePassword\",\r\n \"script.param\" : `${localStorage.getItem(LOGGED_USER_SESSION_KEY)}|${data.Oldpassword}|${data.Newpassword}`\r\n }\r\n ));\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const {\r\n updatePasswordLoading,\r\n profileLoading,\r\n singleClinicNotificationLoading,\r\n\r\n updatePasswordData,\r\n patientProfileData,\r\n singleClinicNotificationData,\r\n\r\n logoutLoading,\r\n logoutSuccess\r\n \r\n } = this.props;\r\n\r\n if (!updatePasswordLoading && prevProps.updatePasswordLoading !== updatePasswordLoading) {\r\n if (updatePasswordData) {\r\n $(\"#change_password .close\").click();\r\n Toast({ type: 'success', message: updatePasswordData['response']['scriptResult'] });\r\n } else {\r\n this.setState({ password: { password: '' }});\r\n Toast({ type: 'error', message: updatePasswordData['response']['scriptResult'] });\r\n }\r\n }\r\n\r\n if (!profileLoading && prevProps.profileLoading && prevProps.profileLoading !== profileLoading) {\r\n if (patientProfileData) {\r\n\r\n var patientData = JSON.parse(localStorage.getItem(LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY));\r\n this.setState({ patientData: { ...patientData, ...patientProfileData } })\r\n }\r\n } \r\n\r\n if (!logoutLoading && prevProps.logoutLoading !== logoutLoading) {\r\n if (logoutSuccess) {\r\n localStorage.removeItem(TOKEN_LOCAL_STORAGE_KEY);\r\n localStorage.removeItem(CLINIC_TOKEN_LOCAL_STORAGE_KEY);\r\n localStorage.removeItem(LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY);\r\n localStorage.removeItem(LOGGED_USER_SESSION_KEY);\r\n localStorage.removeItem(CLINIC_SESSION_KEY);\r\n this.props.history.push(routes.LOGIN); \r\n } else {\r\n Toast({ type: 'error', message: SOMETHING_WENT_WRONG });\r\n }\r\n }\r\n\r\n if(!singleClinicNotificationLoading && prevProps.singleClinicNotificationLoading !== singleClinicNotificationLoading){\r\n if(singleClinicNotificationData){\r\n\r\n let newState = {}\r\n \r\n newState['fieldData'] = singleClinicNotificationData;\r\n newState['fieldData']['receiptId'] = this.state.selectedNtification['fieldData']?.[\"ID_Invoice\"];\r\n newState['fieldData']['ID_Patient'] = this.state.selectedNtification?.['fieldData']?.['patientClinic|invoice::ID_Patient'];\r\n newState['fieldData']['client|patient::filepath'] = singleClinicNotificationData['client|clinic::filepath']\r\n newState['fieldData']['clinic|patient::logo'] = singleClinicNotificationData['logo'];\r\n newState['fieldData']['productPrice'] = this.state.selectedNtification['fieldData']?.['amountDue'];\r\n newState['fieldData']['client|patient::terms'] = singleClinicNotificationData['client|clinic::terms'];\r\n newState['fieldData']['depositAmount'] = 20;\r\n \r\n this.setState({ selectedClinic: newState });\r\n\r\n setTimeout(() =>{\r\n $('#step-booking-2').slideUp();\r\n $('#step-booking-3').slideUp();\r\n $('#step-booking-4').slideUp();\r\n $('#step-booking-5').slideUp();\r\n $('#step-booking-6').slideUp();\r\n $('#step-booking-7').slideUp();\r\n $('#step-booking-8').slideUp();\r\n $('#step-booking-9').slideDown();\r\n window.$(\"#book_flow\").modal({backdrop: 'static', keyboard: false}, 'show'); \r\n }, 0)\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n openChangePassword = () => {\r\n this.props.dispatch(initialize(\"change_password\", {}));\r\n }\r\n\r\n render() {\r\n const { patientProfileData } = this.props;\r\n const profilePic = patientProfileData && patientProfileData.photo ? patientProfileData.photo : '';\r\n return (\r\n
\r\n \r\n \r\n { this.state.selectedClinic && this.state.selectedClinic['fieldData'] ? : null}\r\n
\r\n );\r\n }\r\n\r\n closePayment = () => {\r\n this.setState({ selectedClinic : {} });\r\n }\r\n\r\n getNotificatio = (notification) =>{\r\n\r\n this.setState({ selectedNtification: notification });\r\n this.toggleNotification();\r\n this.setState({ selectedClinic: {} });\r\n this.props.dispatch(getSingleClinicNotificationRequest(notification['fieldData']['idClinic']));\r\n\r\n }\r\n\r\n handleLogout = () => {\r\n this.props.dispatch(userLogoutRequest(localStorage.getItem(TOKEN_LOCAL_STORAGE_KEY)));\r\n }\r\n\r\n handleMenuLinkClick = () => {\r\n setTimeout(() => {\r\n (window).$('.navbar-collapse').collapse('hide');\r\n }, 100);\r\n this.setState({ selectedClinic: {} })\r\n }\r\n\r\n isActive = (menuLink) => {\r\n if (menuLink === routes.BASEPATH) {\r\n return this.props.match.path === routes.BASEPATH ? 'active' : '';\r\n }\r\n return this.props.match.path.indexOf(menuLink) >= 0 ? 'active' : '';\r\n }\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n\r\n const { profile, notifications, clinics, auth } = state;\r\n\r\n return {\r\n\r\n updatePasswordLoading: profile.get('updatePasswordLoading'),\r\n updatePasswordData: profile.get('updatePasswordData'),\r\n updatePasswordError: profile.get('updatePasswordError'),\r\n\r\n profileLoading: profile.get('profileLoading'),\r\n profileData: profile.get('profileData'),\r\n patientProfileData: profile.get('patientProfileData'),\r\n\r\n getNotificationsLoading: notifications.get('getNotificationsLoading'),\r\n getNotificationsData: notifications.get('getNotificationsData'),\r\n\r\n singleClinicNotificationLoading: clinics.get(\"singleClinicNotificationLoading\"),\r\n singleClinicNotificationData: clinics.get(\"singleClinicNotificationData\"),\r\n\r\n logoutLoading: auth.get(\"logoutLoading\"),\r\n logoutSuccess: auth.get(\"logoutSuccess\"),\r\n logoutError: auth.get(\"logoutError\"),\r\n\r\n }\r\n}\r\n\r\nHeader = withRouter(Header);\r\nexport default connect(mapStateToProps)(Header);\r\n","import React, { Component } from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\nimport { LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY } from \"../config/constants\";\r\nimport { routes } from \"../config/routes\";\r\nimport Header from \"../Views/Templates/AuthRouter/Header\";\r\n\r\nclass AuthRouter extends Component {\r\n render() {\r\n const { children, ...rest } = this.props;\r\n return (\r\n {\r\n if (localStorage.getItem(LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY)) {\r\n return (\r\n
\r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n document.querySelector(\"body\").classList.remove(\"blue-bg\");\r\n }\r\n}\r\n\r\nexport default AuthRouter;\r\n","import React, { Component } from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\nimport { LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY } from \"../config/constants\";\r\nimport { routes } from \"../config/routes\";\r\n\r\nclass NoAuthRouter extends Component {\r\n render() {\r\n const { children, ...rest } = this.props;\r\n return (\r\n {\r\n if (!localStorage.getItem(LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY)) {\r\n return (\r\n
\r\n
{children}
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n document.querySelector(\"body\").classList.add(\"blue-bg\");\r\n }\r\n}\r\n\r\nexport default NoAuthRouter;\r\n","import React, { Component } from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\n\r\nclass BasicRouter extends Component {\r\n render() {\r\n const { children, ...rest } = this.props;\r\n return (\r\n {\r\n return (\r\n
\r\n
{children}
\r\n
\r\n );\r\n }}\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default BasicRouter;\r\n","import firebase from \"firebase/app\";\r\nimport \"firebase/analytics\";\r\n\r\nconst initializeFirebase = (config) => {\r\n const fbConfig = {\r\n apiKey: process.env.REACT_APP_FIREBASE_API_KEY,\r\n authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,\r\n databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,\r\n projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,\r\n storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,\r\n messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,\r\n appId: process.env.REACT_APP_FIREBASE_APP_ID,\r\n measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID,\r\n ...config,\r\n };\r\n return firebase.initializeApp(fbConfig);\r\n};\r\n\r\nexport const firebaseApp = {\r\n initializeFirebase,\r\n};\r\n","import React, { Component, lazy, Suspense, Fragment } from \"react\";\r\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\r\n\r\nimport { routes } from \"./config/routes\";\r\n\r\nimport \"./App.css\";\r\nimport { ToastContainer } from \"react-toastify\";\r\nimport AuthRouter from \"./routers/AuthRouter\";\r\nimport NoAuthRouter from \"./routers/NoAuthRouter\";\r\nimport BasicRouter from \"./routers/BasicRouter\";\r\nimport { connect } from \"react-redux\";\r\n\r\n// import Loader from \"./assets/images/loader-small.gif\";\r\nimport { firebaseApp } from \"./helpers/firebase\";\r\n\r\nconst Login = lazy(() => import(\"./Views/Login/Login\"));\r\nconst ForgotPassword = lazy(() =>\r\n import(\"./Views/ForgotPassword/ForgotPassword\")\r\n);\r\nconst SignUp = lazy(() => import(\"./Views/Signup/SignUp\"));\r\nconst NotFound = lazy(() => import(\"./Views/NotFound/NotFound\"));\r\nconst Dashboard = lazy(() => import(\"./Views/Dashboard/Dashboard\"));\r\nconst Profile = lazy(() => import(\"./Views/Profile/Profile\"));\r\nconst Clinices = lazy(() => import(\"./Views/Clinics/Clinics\"));\r\nconst Payment = lazy(() => import(\"./Views/Payment/Payment\"));\r\nconst MobilePayment = lazy(() => import(\"./Views/MobilePayment/MobilePayment\"));\r\nconst Appointments = lazy(() => import(\"./Views/Appointments/Appointments\"));\r\n\r\nclass App extends Component {\r\n\r\n componentDidMount() {\r\n // window.$('#loader').modal('show');\r\n const firebaseAppObj = firebaseApp.initializeFirebase();\r\n firebaseAppObj.analytics();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n Loading... }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* { this.props.loading ?
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
: null} */}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n const { appointment } = state;\r\n\r\n return {\r\n loading: appointment.get(\"isLoaderLoading\"),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(App);\r\n","import { Map } from \"immutable\";\r\n\r\nimport {\r\n USER_LOGIN_REQUEST,\r\n USER_LOGIN_SUCCESS,\r\n USER_LOGIN_ERROR,\r\n USER_LOGOUT_REQUEST,\r\n USER_LOGOUT_SUCCESS,\r\n USER_LOGOUT_ERROR,\r\n USER_FP_REQUEST,\r\n USER_FP_SUCCESS,\r\n USER_FP_ERROR,\r\n SET_USER_LOGIN_TITLE,\r\n\r\n} from \"../actions/auth\";\r\n\r\nconst initialState = Map({\r\n loginLoading: false,\r\n loginData: null,\r\n loginUserDetails: null,\r\n loginError: null,\r\n\r\n loginTitle: \"\",\r\n loginDesc: \"\",\r\n\r\n fpLoading: false,\r\n fpData: null,\r\n fpError: null,\r\n\r\n logoutLoading: false,\r\n logoutSuccess: false,\r\n logoutError: false,\r\n \r\n updatePasswordLoading: false,\r\n updatePasswordData: null,\r\n updatePasswordError: null,\r\n\r\n});\r\n\r\nconst actionMap = {\r\n [USER_LOGIN_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n loginLoading: true,\r\n loginData: null,\r\n loginUserDetails: null,\r\n loginError: null,\r\n })\r\n );\r\n },\r\n [USER_LOGIN_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n loginLoading: false,\r\n loginData: action.data,\r\n loginUserDetails: action.data?.response?.data[0]?.fieldData,\r\n })\r\n );\r\n },\r\n [USER_LOGIN_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n loginLoading: false,\r\n loginError: action.error && action.error.data ? action.error.data : {},\r\n })\r\n );\r\n },\r\n\r\n [USER_LOGOUT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n logoutLoading: true,\r\n logoutSuccess: false,\r\n logoutError: false,\r\n \r\n })\r\n );\r\n },\r\n [USER_LOGOUT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n logoutLoading: false,\r\n logoutSuccess: true,\r\n logoutError: false, \r\n })\r\n );\r\n },\r\n [USER_LOGOUT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n logoutLoading: false,\r\n logoutSuccess: false,\r\n logoutError: true, \r\n })\r\n );\r\n },\r\n\r\n [USER_FP_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n fpLoading: true,\r\n fpData: null,\r\n fpError: null,\r\n })\r\n );\r\n },\r\n [USER_FP_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n fpLoading: false,\r\n fpData: action.data,\r\n })\r\n );\r\n },\r\n [USER_FP_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n fpLoading: false,\r\n fpError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n [SET_USER_LOGIN_TITLE]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n loginTitle: action.title,\r\n loginDesc: action.desc,\r\n })\r\n );\r\n },\r\n}\r\nexport default function reducer(state = initialState, action) {\r\n const fn = actionMap[action.type];\r\n return fn ? fn(state, action) : state;\r\n}\r\n","import { Map } from \"immutable\";\r\n\r\nimport {\r\n USER_SIGNUP_REQUEST,\r\n USER_SIGNUP_SUCCESS,\r\n USER_SIGNUP_ERROR,\r\n USER_SIGNUP_EMAIL_DUPLICATE\r\n} from \"../actions/signup\";\r\nimport { EMAIL_ALREADY_IN_USE } from \"../config/labels\";\r\n\r\nconst initialState = Map({\r\n signUpLoading: false,\r\n signUpData: null,\r\n signUpError: null,\r\n\r\n});\r\n\r\nconst actionMap = {\r\n [USER_SIGNUP_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n signUpLoading: true,\r\n signUpData: null,\r\n signUpError: null\r\n })\r\n );\r\n },\r\n [USER_SIGNUP_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n signUpLoading: false,\r\n signUpData: action.data\r\n })\r\n );\r\n },\r\n [USER_SIGNUP_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n signUpLoading: false,\r\n signUpError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\"\r\n })\r\n );\r\n },\r\n\r\n [USER_SIGNUP_EMAIL_DUPLICATE]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n signUpLoading: false,\r\n signUpError: EMAIL_ALREADY_IN_USE\r\n })\r\n );\r\n }\r\n\r\n\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n const fn = actionMap[action.type];\r\n return fn ? fn(state, action) : state;\r\n}\r\n","import { Map } from \"immutable\";\r\n\r\nimport {\r\n \r\n PATIENT_PROFILE_REQUEST,\r\n PATIENT_PROFILE_SUCCESS,\r\n PATIENT_PROFILE_ERROR,\r\n\r\n UPDATE_PROFILE_REQUEST,\r\n UPDATE_PROFILE_SUCCESS,\r\n UPDATE_PROFILE_ERROR,\r\n\r\n UPDATE_PROFILE_IMAGE_REQUEST,\r\n UPDATE_PROFILE_IMAGE_SUCCESS,\r\n UPDATE_PROFILE_IMAGE_ERROR,\r\n\r\n UPDATE_PASSWORD_REQUEST,\r\n UPDATE_PASSWORD_SUCCESS,\r\n UPDATE_PASSWORD_ERROR\r\n \r\n\r\n} from \"../actions/profile\";\r\nimport API_CODES from \"../config/api-codes\";\r\nimport { SOMETHING_WENT_WRONG } from \"../config/labels\";\r\n\r\nconst initialState = Map({\r\n \r\n profileLoading: false,\r\n profileData: null,\r\n patientProfileData: {},\r\n patientPaymentCards: [],\r\n patientInvoices: [],\r\n patientReceipts: [],\r\n profileError: null,\r\n\r\n updateProfileLoading: false,\r\n updateProfileData: null,\r\n updateProfileError: null,\r\n\r\n updatePasswordLoading: false,\r\n updatePasswordData: null,\r\n updatePasswordError: null,\r\n\r\n updateProfileImageLoading: false,\r\n updateProfileImageData: null,\r\n updateProfileImageError: null,\r\n\r\n});\r\n\r\nconst actionMap = {\r\n\r\n [PATIENT_PROFILE_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n profileLoading: true,\r\n profileData: null,\r\n patientProfileData: null,\r\n patientInvoices: [],\r\n patientReceipts: [],\r\n profileError: null,\r\n })\r\n );\r\n },\r\n [PATIENT_PROFILE_SUCCESS]: (state, action) => {\r\n \r\n return state.merge(\r\n Map({\r\n profileLoading: false,\r\n profileData: action.data,\r\n patientProfileData: action.data?.response?.data[0]?.fieldData,\r\n patientPaymentCards: action.data?.response?.data[0]?.portalData?.paymentCards,\r\n patientInvoices: action.data?.response?.data[0]?.portalData?.invoices,\r\n patientReceipts: action.data?.response?.data[0]?.portalData?.receipts,\r\n })\r\n );\r\n },\r\n [PATIENT_PROFILE_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n profileLoading: false,\r\n patientInvoices: [],\r\n patientReceipts: [],\r\n profileError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [UPDATE_PROFILE_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n updateProfileLoading: true,\r\n updateProfileData: null,\r\n updateProfileError: null,\r\n })\r\n );\r\n },\r\n [UPDATE_PROFILE_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n updateProfileLoading: false,\r\n updateProfileData: action.data,\r\n })\r\n );\r\n },\r\n [UPDATE_PROFILE_ERROR]: (state, action) => {\r\n const { error } = action;\r\n let errorMsg = SOMETHING_WENT_WRONG;\r\n if(error && error.messages && error.messages[0] && error.messages[0].message) {\r\n errorMsg = error.messages[0].message;\r\n if(error.messages[0].code && error.messages[0].code === API_CODES.NOT_UNIQUE_VALIDATION) {\r\n errorMsg = 'This email is already in use';\r\n }\r\n }\r\n return state.merge(\r\n Map({\r\n updateProfileLoading: false,\r\n updateProfileError: errorMsg\r\n })\r\n );\r\n },\r\n\r\n [UPDATE_PROFILE_IMAGE_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n updateProfileImageLoading: true,\r\n updateProfileImageData: null,\r\n updateProfileImageError: null,\r\n })\r\n );\r\n },\r\n [UPDATE_PROFILE_IMAGE_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n updateProfileImageLoading: false,\r\n updateProfileImageData: action.data,\r\n })\r\n );\r\n },\r\n [UPDATE_PROFILE_IMAGE_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n updateProfileImageLoading: false,\r\n updateProfileImageError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [UPDATE_PASSWORD_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n updatePasswordLoading: true,\r\n updatePasswordData: null,\r\n updatePasswordError: null,\r\n })\r\n );\r\n },\r\n [UPDATE_PASSWORD_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n updatePasswordLoading: false,\r\n updatePasswordData: action.data,\r\n })\r\n );\r\n },\r\n [UPDATE_PASSWORD_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n updatePasswordLoading: false,\r\n updatePasswordError: SOMETHING_WENT_WRONG\r\n })\r\n );\r\n },\r\n\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n const fn = actionMap[action.type];\r\n return fn ? fn(state, action) : state;\r\n}\r\n","import { Map } from \"immutable\";\r\n\r\nimport {\r\n \r\n ADD_CARD_REQUEST,\r\n ADD_CARD_SUCCESS,\r\n ADD_CARD_ERROR,\r\n\r\n UPDATE_CARD_REQUEST,\r\n UPDATE_CARD_SUCCESS,\r\n UPDATE_CARD_ERROR,\r\n\r\n DELETE_CARD_REQUEST,\r\n DELETE_CARD_SUCCESS,\r\n DELETE_CARD_ERROR\r\n\r\n} from \"../actions/card\";\r\n\r\nconst initialState = Map({\r\n \r\n addCardLoading: false,\r\n addCardData: null,\r\n addCardError: null,\r\n\r\n updateCardLoading: false,\r\n updateCardData: null,\r\n updateCardError: null,\r\n\r\n deleteCardLoading: false,\r\n deleteCardData: null,\r\n deleteCardError: null\r\n\r\n});\r\n\r\nconst actionMap = {\r\n\r\n [ADD_CARD_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addCardLoading: true,\r\n addCardData: null,\r\n addCardError: null,\r\n })\r\n );\r\n },\r\n [ADD_CARD_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addCardLoading: false,\r\n addCardData: action.data,\r\n })\r\n );\r\n },\r\n [ADD_CARD_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addCardLoading: false,\r\n addCardError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [UPDATE_CARD_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n updateCardLoading: true,\r\n updateCardData: null,\r\n updateCardError: null,\r\n })\r\n );\r\n },\r\n [UPDATE_CARD_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n updateCardLoading: false,\r\n updateCardData: action.data,\r\n })\r\n );\r\n },\r\n [UPDATE_CARD_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n updateCardLoading: false,\r\n updateCardError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [DELETE_CARD_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n deleteCardLoading: true,\r\n deleteCardData: null,\r\n deleteCardError: null,\r\n })\r\n );\r\n },\r\n [DELETE_CARD_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n deleteCardLoading: false,\r\n deleteCardData: action.data,\r\n })\r\n );\r\n },\r\n [DELETE_CARD_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n deleteCardLoading: false,\r\n deleteCardError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n const fn = actionMap[action.type];\r\n return fn ? fn(state, action) : state;\r\n}\r\n","import { Map } from \"immutable\";\r\n\r\nimport {\r\n \r\n GET_PATIENT_CLINICS_REQUEST,\r\n GET_PATIENT_CLINICS_SUCCESS,\r\n GET_PATIENT_CLINICS_ERROR,\r\n\r\n GET_ALL_CLINICS_REQUEST,\r\n GET_ALL_CLINICS_SUCCESS,\r\n GET_ALL_CLINICS_ERROR,\r\n\r\n GET_SINGLE_CLINIC_REQUEST,\r\n GET_SINGLE_CLINIC_SUCCESS,\r\n GET_SINGLE_CLINIC_ERROR,\r\n\r\n GET_SINGLE_NOTIFICATION_CLINIC_REQUEST,\r\n GET_SINGLE_NOTIFICATION_CLINIC_SUCCESS,\r\n GET_SINGLE_NOTIFICATION_CLINIC_ERROR,\r\n\r\n ADD_PATIENT_CLINIC_REQUEST,\r\n ADD_PATIENT_CLINIC_SUCCESS,\r\n ADD_PATIENT_CLINIC_ERROR,\r\n\r\n GET_APPOINTMENTS_REQUEST,\r\n GET_APPOINTMENTS_SUCCESS,\r\n GET_APPOINTMENTS_ERROR,\r\n\r\n GET_PATIENT_CLINIC_CARDS_REQUEST,\r\n GET_PATIENT_CLINIC_CARDS_SUCCESS,\r\n GET_PATIENT_CLINIC_CARDS_ERROR,\r\n \r\n SET_PATIENT_CLINIC_CARDS_OBJECT, \r\n SET_PATIENT_CLINIC_DELETE_CARD, \r\n DELETE_PATIENT_CLINIC_CARD_REQUEST, \r\n DELETE_PATIENT_CLINIC_CARD_SUCCESS, \r\n DELETE_PATIENT_CLINIC_CARD_ERROR,\r\n\r\n ADD_PATIENT_REQUEST,\r\n ADD_PATIENT_SUCCESS,\r\n ADD_PATIENT_ERROR\r\n\r\n} from \"../actions/clinics\";\r\nimport { SOMETHING_WENT_WRONG } from \"../config/labels\";\r\n\r\nconst initialState = Map({\r\n \r\n allClinicLoading: false,\r\n allClinicData: {},\r\n allClinics: [],\r\n allClinicError: null,\r\n\r\n patientClinicLoading: false,\r\n patientClinicData: {},\r\n patientClinics: [],\r\n patientClinicsCardsInfo: {},\r\n patientClinicDeleteCard: {\r\n clinicRecordId: 0,\r\n ID_PaymentCard: 0,\r\n cardNumber: '',\r\n baseUrl: '',\r\n loading: false,\r\n deleteStatus: false,\r\n error: null\r\n },\r\n patientClinicError: null,\r\n\r\n singleClinicLoading: false,\r\n singleClinicData: {},\r\n singleClinicError: null,\r\n\r\n singleClinicNotificationLoading: false,\r\n singleClinicNotificationData: {},\r\n singleClinicNotificationError: null,\r\n\r\n addClinicLoading: false,\r\n addClinicData: {},\r\n addClinicError: null,\r\n\r\n appointmentLoading: false,\r\n appointments: [],\r\n appointmentData: {},\r\n appointmentError: false,\r\n\r\n addPatientLoading: false,\r\n addPatientData: null,\r\n addPatientError: null\r\n\r\n});\r\n\r\nconst actionMap = {\r\n\r\n [GET_PATIENT_CLINICS_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n patientClinicLoading: true,\r\n patientClinicData: {},\r\n patientClinics: [],\r\n patientClinicError: null\r\n })\r\n );\r\n },\r\n [GET_PATIENT_CLINICS_SUCCESS]: (state, action) => {\r\n const patientClinicsCardsInfo = addCardsInfoToPatientClinics(action.data['response']['data']);\r\n return state.merge(\r\n Map({\r\n patientClinicLoading: false,\r\n patientClinics: action.data['response']['data'],\r\n patientClinicsCardsInfo,\r\n patientClinicData: action.data,\r\n })\r\n );\r\n },\r\n [GET_PATIENT_CLINICS_ERROR]: (state, action) => {\r\n\r\n return state.merge(\r\n Map({\r\n patientClinicLoading: false,\r\n patientClinicData: {},\r\n patientClinicError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : SOMETHING_WENT_WRONG,\r\n })\r\n );\r\n },\r\n\r\n [GET_ALL_CLINICS_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n allClinicLoading: true,\r\n allClinicData: null,\r\n allClinics: [],\r\n allClinicError: null\r\n })\r\n );\r\n },\r\n [GET_ALL_CLINICS_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n allClinicLoading: false,\r\n allClinics: action.data['response']['data'],\r\n allClinicData: action.data,\r\n })\r\n );\r\n },\r\n [GET_ALL_CLINICS_ERROR]: (state, action) => {\r\n\r\n return state.merge(\r\n Map({\r\n allClinicLoading: false,\r\n allClinicData: null,\r\n allClinics: [],\r\n allClinicError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : SOMETHING_WENT_WRONG,\r\n })\r\n );\r\n },\r\n\r\n [GET_SINGLE_CLINIC_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n singleClinicLoading: true,\r\n singleClinicData: {}\r\n })\r\n );\r\n },\r\n [GET_SINGLE_CLINIC_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n singleClinicLoading: false,\r\n singleClinicData: action.data['response']['data'][0]['fieldData'],\r\n })\r\n );\r\n },\r\n [GET_SINGLE_CLINIC_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n singleClinicLoading: false,\r\n singleClinicError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : SOMETHING_WENT_WRONG,\r\n })\r\n );\r\n },\r\n\r\n\r\n [GET_SINGLE_NOTIFICATION_CLINIC_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n singleClinicNotificationLoading: true,\r\n singleClinicNotificationData: {}\r\n })\r\n );\r\n },\r\n [GET_SINGLE_NOTIFICATION_CLINIC_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n singleClinicNotificationLoading: false,\r\n singleClinicNotificationData: action.data['response']['data'][0]['fieldData'],\r\n })\r\n );\r\n },\r\n [GET_SINGLE_NOTIFICATION_CLINIC_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n singleClinicNotificationLoading: false,\r\n singleClinicNotificationError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : SOMETHING_WENT_WRONG,\r\n })\r\n );\r\n },\r\n\r\n [ADD_PATIENT_CLINIC_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addClinicLoading: true,\r\n addClinicData: {},\r\n })\r\n );\r\n },\r\n [ADD_PATIENT_CLINIC_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addClinicLoading: false,\r\n addClinicData: action.data,\r\n })\r\n );\r\n },\r\n [ADD_PATIENT_CLINIC_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addClinicLoading: false,\r\n addClinicError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : SOMETHING_WENT_WRONG,\r\n })\r\n );\r\n },\r\n\r\n [GET_APPOINTMENTS_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n appointmentLoading: true,\r\n appointments: [],\r\n appointmentData: {}\r\n })\r\n );\r\n },\r\n [GET_APPOINTMENTS_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n appointmentLoading: false,\r\n appointmentData: action.data,\r\n appointments: action.data['response']['data']\r\n })\r\n );\r\n },\r\n [GET_APPOINTMENTS_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n appointmentLoading: false,\r\n appointmentError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : SOMETHING_WENT_WRONG,\r\n })\r\n );\r\n },\r\n\r\n// ADD PATIENT\r\n\r\n [ADD_PATIENT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addPatientLoading: true,\r\n addPatientData: null,\r\n addPatientError: null\r\n })\r\n );\r\n },\r\n [ADD_PATIENT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addPatientLoading: false,\r\n addPatientData: action.data,\r\n })\r\n );\r\n },\r\n [ADD_PATIENT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addPatientLoading: false,\r\n addPatientData: null,\r\n addPatientError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : SOMETHING_WENT_WRONG,\r\n })\r\n );\r\n },\r\n\r\n\r\n [GET_PATIENT_CLINIC_CARDS_REQUEST]: (state, action) => {\r\n const { recordId, isOpen } = action.payload;\r\n const patientClinicsCardsInfo = state.get('patientClinicsCardsInfo');\r\n patientClinicsCardsInfo[recordId] = {\r\n isOpen: isOpen, loading:true, cards: [], error:null\r\n };\r\n return state.merge(\r\n Map({\r\n patientClinicsCardsInfo: { ...patientClinicsCardsInfo }\r\n })\r\n );\r\n },\r\n [GET_PATIENT_CLINIC_CARDS_SUCCESS]: (state, action) => {\r\n const { recordId, data } = action;\r\n const cards = data.response.data;\r\n const patientClinicsCardsInfo = state.get('patientClinicsCardsInfo');\r\n patientClinicsCardsInfo[recordId] = {\r\n ...patientClinicsCardsInfo[recordId],\r\n loading:false, cards, error:null\r\n };\r\n return state.merge(\r\n Map({\r\n patientClinicsCardsInfo: { ...patientClinicsCardsInfo }\r\n })\r\n );\r\n },\r\n [GET_PATIENT_CLINIC_CARDS_ERROR]: (state, action) => {\r\n const errorMsg = action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"No card found!\";\r\n const patientClinicsCardsInfo = state.get('patientClinicsCardsInfo');\r\n patientClinicsCardsInfo[action.recordId] = {\r\n ...patientClinicsCardsInfo[action.recordId],\r\n loading:false, cards: [], error:errorMsg\r\n };\r\n return state.merge(\r\n Map({\r\n patientClinicsCardsInfo: { ...patientClinicsCardsInfo }\r\n })\r\n );\r\n },\r\n [SET_PATIENT_CLINIC_CARDS_OBJECT]: (state, action) => {\r\n const { recordId, payload } = action;\r\n const patientClinicsCardsInfo = state.get('patientClinicsCardsInfo');\r\n patientClinicsCardsInfo[recordId] = {\r\n ...patientClinicsCardsInfo[recordId],\r\n ...payload\r\n };\r\n return state.merge(\r\n Map({\r\n ...patientClinicsCardsInfo\r\n })\r\n );\r\n },\r\n [SET_PATIENT_CLINIC_DELETE_CARD]: (state, action) => {\r\n const {clinicRecordId, ID_PaymentCard, cardNumber, baseUrl} = action;\r\n const patientClinicDeleteCard = state.get('patientClinicDeleteCard');\r\n return state.merge(\r\n Map({\r\n patientClinicDeleteCard: {\r\n ...patientClinicDeleteCard,\r\n clinicRecordId,\r\n ID_PaymentCard,\r\n cardNumber,\r\n baseUrl\r\n }\r\n })\r\n );\r\n },\r\n [DELETE_PATIENT_CLINIC_CARD_REQUEST]: (state, action) => {\r\n const patientClinicDeleteCard = state.get('patientClinicDeleteCard');\r\n return state.merge(\r\n Map({\r\n patientClinicDeleteCard: {\r\n ...patientClinicDeleteCard,\r\n loading: true,\r\n deleteStatus: false,\r\n error: null\r\n }\r\n })\r\n );\r\n },\r\n [DELETE_PATIENT_CLINIC_CARD_SUCCESS]: (state, action) => {\r\n const { clinicRecordId, ID_PaymentCard } = action;\r\n const patientClinicsCardsInfo = state.get('patientClinicsCardsInfo');\r\n const newCards = removeCardFromPatientClinics(patientClinicsCardsInfo[clinicRecordId].cards, ID_PaymentCard);\r\n patientClinicsCardsInfo[clinicRecordId] = {\r\n ...patientClinicsCardsInfo[clinicRecordId],\r\n cards: newCards\r\n };\r\n return state.merge(\r\n Map({\r\n patientClinicsCardsInfo: { ...patientClinicsCardsInfo },\r\n patientClinicDeleteCard: {\r\n clinicRecordId: 0,\r\n ID_PaymentCard: 0,\r\n cardNumber: '',\r\n baseUrl: '',\r\n loading: false,\r\n deleteStatus: true,\r\n error: null\r\n }\r\n })\r\n );\r\n },\r\n [DELETE_PATIENT_CLINIC_CARD_ERROR]: (state, action) => {\r\n const errorMsg = action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : SOMETHING_WENT_WRONG;\r\n return state.merge(\r\n Map({\r\n patientClinicDeleteCard: {\r\n clinicRecordId: 0,\r\n ID_PaymentCard: 0,\r\n cardNumber: '',\r\n baseUrl: '',\r\n loading: false,\r\n deleteStatus: false,\r\n error: errorMsg\r\n }\r\n })\r\n );\r\n },\r\n};\r\n\r\nfunction addCardsInfoToPatientClinics(patientClinics) {\r\n const cardInfo = {};\r\n patientClinics.map(o => {\r\n cardInfo[o.recordId] = {\r\n isOpen: false, loading:false, cards: [], error:null\r\n }\r\n return o;\r\n });\r\n return cardInfo;\r\n}\r\n\r\nfunction removeCardFromPatientClinics(cards, ID_PaymentCard) {\r\n const newCards = [];\r\n const length = cards.length;\r\n for (let i = 0; i < length; i++) {\r\n const card = cards[i];\r\n if(card.fieldData.ID_PaymentCard !== ID_PaymentCard){\r\n newCards.push(card);\r\n }\r\n }\r\n return newCards;\r\n}\r\n\r\n\r\nexport default function reducer(state = initialState, action) {\r\n const fn = actionMap[action.type];\r\n return fn ? fn(state, action) : state;\r\n}\r\n","import { Map } from \"immutable\";\r\n\r\nimport {\r\n\r\n FIND_APPOINTMENT_TYPES_REQUEST,\r\n FIND_APPOINTMENT_TYPES_SUCCESS,\r\n FIND_APPOINTMENT_TYPES_ERROR,\r\n\r\n FIND_DIARY_REQUEST,\r\n FIND_DIARY_SUCCESS,\r\n FIND_DIARY_ERROR,\r\n\r\n FIND_DIARY_DAY_REQUEST,\r\n FIND_DIARY_DAY_SUCCESS,\r\n FIND_DIARY_DAY_ERROR,\r\n\r\n FIND_TIME_SLOTS_REQUEST,\r\n FIND_TIME_SLOTS_SUCCESS,\r\n FIND_TIME_SLOTS_ERROR,\r\n\r\n FIND_PACKAGES_REQUEST,\r\n FIND_PACKAGES_SUCCESS,\r\n FIND_PACKAGES_ERROR,\r\n\r\n CHECK_TIMESLOTS_REQUEST,\r\n CHECK_TIMESLOTS_SUCCESS,\r\n CHECK_TIMESLOTS_ERROR,\r\n\r\n FIND_PAYMENT_CARDS_REQUEST,\r\n FIND_PAYMENT_CARDS_SUCCESS,\r\n FIND_PAYMENT_CARDS_ERROR\r\n\r\n\r\n} from \"../actions/appointment\";\r\n\r\nconst initialState = Map({\r\n\r\n\r\n isLoaderLoading: false, \r\n\r\n findAppointmentTypesLoading: false,\r\n findAppointmentTypesData: [],\r\n findAppointmentTypesError: null,\r\n\r\n findDiaryLoading: false,\r\n findDiaryData: [],\r\n findDiaryError: false,\r\n\r\n findDiaryDayLoading: false,\r\n findDiaryDayData: [],\r\n findDiaryDayError: false,\r\n\r\n findTimeSlotsLoading: false,\r\n findTimeSlotsData: [],\r\n findTimeSlotsError: false,\r\n\r\n findPackagesLoading: false,\r\n findPackagesData: [],\r\n findPackagesError: false,\r\n\r\n checkTimeslotsLoading: false,\r\n checkTimeslotsData: [],\r\n checkTimeslotsError: false,\r\n\r\n paymentCardsLoading: false,\r\n paymentCardsData: [],\r\n paymentCardsError: false,\r\n\r\n\r\n});\r\n\r\nconst actionMap = {\r\n\r\n [FIND_APPOINTMENT_TYPES_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findAppointmentTypesLoading: true,\r\n findAppointmentTypesData: [],\r\n loginError: null,\r\n isLoaderLoading: true\r\n })\r\n );\r\n },\r\n [FIND_APPOINTMENT_TYPES_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findAppointmentTypesLoading: false,\r\n findAppointmentTypesData: action.data?.response?.data,\r\n isLoaderLoading: false\r\n })\r\n );\r\n },\r\n [FIND_APPOINTMENT_TYPES_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findAppointmentTypesLoading: false,\r\n findAppointmentTypesError: action.error && action.error.data ? action.error.data : {},\r\n findAppointmentTypesData: [],\r\n isLoaderLoading: false\r\n })\r\n );\r\n },\r\n [FIND_DIARY_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findDiaryLoading: true,\r\n findDiaryData: [],\r\n findDiaryError: null,\r\n isLoaderLoading: true\r\n })\r\n );\r\n },\r\n [FIND_DIARY_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findDiaryLoading: false,\r\n findDiaryData: action.data?.response?.data,\r\n isLoaderLoading: false\r\n })\r\n );\r\n },\r\n [FIND_DIARY_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findDiaryLoading: false,\r\n findDiaryError: action.error && action.error.data ? action.error.data : {},\r\n findDiaryData: [],\r\n isLoaderLoading: false\r\n })\r\n );\r\n },\r\n [FIND_DIARY_DAY_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findDiaryDayLoading: true,\r\n findDiaryDayData: [],\r\n findDiaryDayError: null,\r\n isLoaderLoading: true\r\n })\r\n );\r\n },\r\n [FIND_DIARY_DAY_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findDiaryDayLoading: false,\r\n findDiaryDayData: action.data?.response?.data,\r\n isLoaderLoading: false\r\n })\r\n );\r\n },\r\n [FIND_DIARY_DAY_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findDiaryDayLoading: false,\r\n findDiaryDayError: action.error && action.error.data ? action.error.data : {},\r\n findDiaryDayData: [],\r\n isLoaderLoading: false\r\n })\r\n );\r\n },\r\n\r\n [FIND_TIME_SLOTS_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findTimeSlotsLoading: true,\r\n findTimeSlotsData: [], \r\n findTimeSlotsError: null,\r\n isLoaderLoading: true\r\n })\r\n );\r\n },\r\n [FIND_TIME_SLOTS_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findTimeSlotsLoading: false,\r\n findTimeSlotsData: action.data?.response?.data,\r\n isLoaderLoading: false\r\n })\r\n );\r\n },\r\n [FIND_TIME_SLOTS_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findTimeSlotsLoading: false,\r\n findTimeSlotsError: action.error && action.error.data ? action.error.data : {},\r\n findTimeSlotsData: [],\r\n isLoaderLoading: false\r\n })\r\n );\r\n },\r\n\r\n [FIND_PACKAGES_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findPackagesLoading: true,\r\n findPackagesData: [],\r\n findPackagesError: null,\r\n isLoaderLoading: true\r\n })\r\n );\r\n },\r\n [FIND_PACKAGES_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findPackagesLoading: false,\r\n findPackagesData: action.data?.response?.data,\r\n isLoaderLoading: false\r\n })\r\n );\r\n },\r\n [FIND_PACKAGES_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findPackagesLoading: false,\r\n findPackagesError: action.error && action.error.data ? action.error.data : {},\r\n findPackagesData: [],\r\n isLoaderLoading: false\r\n })\r\n );\r\n },\r\n\r\n [CHECK_TIMESLOTS_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n checkTimeslotsLoading: true,\r\n checkTimeslotsData: [],\r\n checkTimeslotsError: null,\r\n findTimeSlotsData: [],\r\n isLoaderLoading: true\r\n })\r\n );\r\n },\r\n [CHECK_TIMESLOTS_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n checkTimeslotsLoading: false,\r\n checkTimeslotsData: action.data?.response?.data,\r\n isLoaderLoading: false\r\n })\r\n );\r\n },\r\n [CHECK_TIMESLOTS_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n checkTimeslotsLoading: false,\r\n checkTimeslotsError: action.error && action.error.data ? action.error.data : {},\r\n checkTimeslotsData: [],\r\n isLoaderLoading: false\r\n })\r\n );\r\n },\r\n\r\n [FIND_PAYMENT_CARDS_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n paymentCardsLoading: true,\r\n paymentCardsData: [],\r\n paymentCardsError: null,\r\n isLoaderLoading: true\r\n })\r\n );\r\n },\r\n [FIND_PAYMENT_CARDS_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n paymentCardsLoading: false,\r\n paymentCardsData: action.data?.response?.data,\r\n isLoaderLoading: false\r\n })\r\n );\r\n },\r\n [FIND_PAYMENT_CARDS_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n paymentCardsLoading: false,\r\n paymentCardsError: action.error && action.error.data ? action.error.data : {},\r\n paymentCardsData: [],\r\n isLoaderLoading: false\r\n })\r\n );\r\n },\r\n\r\n\r\n}\r\nexport default function reducer(state = initialState, action) {\r\n const fn = actionMap[action.type];\r\n return fn ? fn(state, action) : state;\r\n}\r\n","import { Map } from \"immutable\";\r\nimport { \r\n \r\n CREATE_INVOICE_REQUEST, \r\n CREATE_INVOICE_SUCCESS, \r\n CREATE_INVOICE_ERROR, \r\n \r\n CREATE_RECEIPT_REQUEST, \r\n CREATE_RECEIPT_SUCCESS, \r\n CREATE_RECEIPT_ERROR, \r\n \r\n CONFIRM_PAYMENT_REQUEST, \r\n CONFIRM_PAYMENT_SUCCESS, \r\n CONFIRM_PAYMENT_ERROR, \r\n \r\n GET_CONFORMATION_SUCCESS, \r\n GET_CONFORMATION_REQUEST, \r\n GET_CONFORMATION_ERROR, \r\n \r\n FIND_RECEIPT_REQUEST, \r\n FIND_RECEIPT_SUCCESS, \r\n FIND_RECEIPT_ERROR, \r\n\r\n INITIATE_PAYMENT_REQUEST,\r\n INITIATE_PAYMENT_SUCCESS,\r\n INITIATE_PAYMENT_ERROR,\r\n\r\n BOOK_SLOT_FINAL_REQUEST,\r\n BOOK_SLOT_FINAL_SUCCESS,\r\n BOOK_SLOT_FINAL_ERROR,\r\n\r\n BOOK_SLOT_REQUEST,\r\n BOOK_SLOT_SUCCESS,\r\n BOOK_SLOT_ERROR,\r\n\r\n ADD_APPOINTMENT_REQUEST,\r\n ADD_APPOINTMENT_SUCCESS,\r\n ADD_APPOINTMENT_ERROR,\r\n\r\n ADD_PREVIOUS_APPOINTMENT_REQUEST,\r\n ADD_PREVIOUS_APPOINTMENT_SUCCESS,\r\n ADD_PREVIOUS_APPOINTMENT_ERROR,\r\n\r\n ADD_INVOICE_REQUEST,\r\n ADD_INVOICE_SUCCESS,\r\n ADD_INVOICE_ERROR,\r\n\r\n ADD_RECEIPT_REQUEST,\r\n ADD_RECEIPT_SUCCESS,\r\n ADD_RECEIPT_ERROR,\r\n\r\n SELECT_SAVED_CARD\r\n} from \"../actions/payment\";\r\n\r\nconst initialState = Map({\r\n \r\n createInvoiceLoading: false,\r\n createInvoiceData: {},\r\n createInvoiceError: null,\r\n\r\n createReceiptLoading: false,\r\n createReceiptData: {},\r\n createReceiptError: null,\r\n\r\n initiatePaymentLoading: false,\r\n initiatePaymentData: {},\r\n initiatePaymentError: null,\r\n\r\n confirmPaymentLoading: false,\r\n confirmPaymentData: {},\r\n confirmPaymentError: null,\r\n\r\n findReceiptLoading: false,\r\n findReceiptData: {},\r\n findReceiptError: null,\r\n\r\n getConformationLoading: false,\r\n getConformationData: {},\r\n getConformationError: null,\r\n\r\n bookFinalSlotLoading: false,\r\n bookFinalSlotData: {},\r\n bookFinalSlotError: null,\r\n\r\n bookSlotLoading: false,\r\n bookSlotData: {},\r\n bookSlotError: null,\r\n\r\n addAppointmentLoading: false,\r\n addAppointmentData: {},\r\n addAppointmentError: null,\r\n\r\n addPreviousAppointmentLoading: false,\r\n addPreviousAppointmentData: {},\r\n addPreviousAppointmentError: null,\r\n\r\n\r\n addInvoiceLoading: false,\r\n addInvoiceData: {},\r\n addInvoiceError: null,\r\n\r\n addReceiptLoading: false,\r\n addReceiptData: {},\r\n addReceiptError: null,\r\n\r\n selectedSavedCard: null\r\n});\r\n\r\nconst actionMap = {\r\n\r\n [CREATE_INVOICE_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n createInvoiceLoading: true,\r\n createInvoiceData: {},\r\n createInvoiceError: null\r\n })\r\n );\r\n },\r\n [CREATE_INVOICE_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n createInvoiceLoading: false,\r\n createInvoiceData: action.data\r\n })\r\n );\r\n },\r\n [CREATE_INVOICE_ERROR]: (state, action) => {\r\n\r\n return state.merge(\r\n Map({\r\n createInvoiceLoading: false,\r\n createInvoiceData: {},\r\n createInvoiceError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n \r\n [CREATE_RECEIPT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n createReceiptLoading: true,\r\n createReceiptData: {},\r\n createReceiptError: null\r\n })\r\n );\r\n },\r\n [CREATE_RECEIPT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n createReceiptLoading: false,\r\n createReceiptData: action.data\r\n })\r\n );\r\n },\r\n [CREATE_RECEIPT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n createReceiptLoading: false,\r\n createReceiptData: {},\r\n createReceiptError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [INITIATE_PAYMENT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n initiatePaymentLoading: true,\r\n initiatePaymentData: {},\r\n initiatePaymentError: null\r\n })\r\n );\r\n },\r\n [INITIATE_PAYMENT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n initiatePaymentLoading: false,\r\n initiatePaymentData: action.data\r\n })\r\n );\r\n },\r\n [INITIATE_PAYMENT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n initiatePaymentLoading: false,\r\n initiatePaymentData: {},\r\n initiatePaymentError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n\r\n [CONFIRM_PAYMENT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n confirmPaymentLoading: true,\r\n confirmPaymentData: {},\r\n confirmPaymentError: null\r\n })\r\n );\r\n },\r\n [CONFIRM_PAYMENT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n confirmPaymentLoading: false,\r\n confirmPaymentData: action.data\r\n })\r\n );\r\n },\r\n [CONFIRM_PAYMENT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n confirmPaymentLoading: false,\r\n confirmPaymentData: {},\r\n confirmPaymentError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [FIND_RECEIPT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findReceiptLoading: true,\r\n findReceiptData: {},\r\n findReceiptError: null\r\n })\r\n );\r\n },\r\n [FIND_RECEIPT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findReceiptLoading: false,\r\n findReceiptData: action?.data\r\n })\r\n );\r\n },\r\n [FIND_RECEIPT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n findReceiptLoading: false,\r\n findReceiptData: {},\r\n findReceiptError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [GET_CONFORMATION_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n getConformationLoading: true,\r\n getConformationData: {},\r\n getConformationError: null\r\n })\r\n );\r\n },\r\n [GET_CONFORMATION_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n getConformationLoading: false,\r\n getConformationData: action?.data?.['response']?.['data'][0]\r\n })\r\n );\r\n },\r\n [GET_CONFORMATION_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n getConformationLoading: false,\r\n getConformationData: {},\r\n getConformationError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [BOOK_SLOT_FINAL_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n bookFinalSlotLoading: true,\r\n bookFinalSlotData: {},\r\n bookFinalSlotError: null\r\n })\r\n );\r\n },\r\n [BOOK_SLOT_FINAL_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n bookFinalSlotLoading: false,\r\n bookFinalSlotData: action?.data?.['response']?.['data'][0]\r\n })\r\n );\r\n },\r\n [BOOK_SLOT_FINAL_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n bookFinalSlotLoading: false,\r\n bookFinalSlotData: {},\r\n bookFinalSlotError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [BOOK_SLOT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n bookSlotLoading: true,\r\n bookSlotData: {},\r\n bookSlotError: null\r\n })\r\n );\r\n },\r\n [BOOK_SLOT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n bookSlotLoading: false,\r\n bookSlotData: action?.data?.['response']?.['data'][0]\r\n })\r\n );\r\n },\r\n [BOOK_SLOT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n bookSlotLoading: false,\r\n bookSlotData: {},\r\n bookSlotError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [ADD_APPOINTMENT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addAppointmentLoading: true,\r\n addAppointmentData: {},\r\n addAppointmentError: null\r\n })\r\n );\r\n },\r\n [ADD_APPOINTMENT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addAppointmentLoading: false,\r\n addAppointmentData: action?.data?.['response']?.['data'][0]\r\n })\r\n );\r\n },\r\n [ADD_APPOINTMENT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addAppointmentLoading: false,\r\n addAppointmentData: {},\r\n addAppointmentError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n [ADD_PREVIOUS_APPOINTMENT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addPreviousAppointmentLoading: true,\r\n addPreviousAppointmentData: {},\r\n addPreviousAppointmentError: null\r\n })\r\n );\r\n },\r\n [ADD_PREVIOUS_APPOINTMENT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addPreviousAppointmentLoading: false,\r\n addPreviousAppointmentData: action?.data?.['response']?.['data'][0]\r\n })\r\n );\r\n },\r\n [ADD_PREVIOUS_APPOINTMENT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addPreviousAppointmentLoading: false,\r\n addPreviousAppointmentData: {},\r\n addPreviousAppointmentError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n\r\n [ADD_INVOICE_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addInvoiceLoading: true,\r\n addInvoiceData: {},\r\n addInvoiceError: null\r\n })\r\n );\r\n },\r\n [ADD_INVOICE_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addInvoiceLoading: false,\r\n addInvoiceData: action?.data?.['response']?.['data'][0]\r\n })\r\n );\r\n },\r\n [ADD_INVOICE_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addInvoiceLoading: false,\r\n addInvoiceData: {},\r\n addInvoiceError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n\r\n \r\n [ADD_RECEIPT_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addReceiptLoading: true,\r\n addReceiptData: {},\r\n addReceiptError: null\r\n })\r\n );\r\n },\r\n [ADD_RECEIPT_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addReceiptLoading: false,\r\n addReceiptData: action?.data?.['response']?.['data'][0]\r\n })\r\n );\r\n },\r\n [ADD_RECEIPT_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n addReceiptLoading: false,\r\n addReceiptData: {},\r\n addReceiptError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n [SELECT_SAVED_CARD]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n selectedSavedCard: action.card,\r\n })\r\n );\r\n }\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n const fn = actionMap[action.type];\r\n return fn ? fn(state, action) : state;\r\n}\r\n","import { Map } from \"immutable\";\r\n\r\nimport {\r\n \r\n GET_NOTIFICATIONS_REQUEST,\r\n GET_NOTIFICATIONS_SUCCESS,\r\n GET_NOTIFICATIONS_ERROR\r\n\r\n} from \"../actions/notifications\";\r\n\r\nconst initialState = Map({\r\n \r\n getNotificationsLoading: false,\r\n getNotificationsData: [],\r\n getNotificationsError: null,\r\n\r\n});\r\n\r\nconst actionMap = {\r\n\r\n [GET_NOTIFICATIONS_REQUEST]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n getNotificationsLoading: true,\r\n getNotificationsData: [],\r\n getNotificationsError: null,\r\n })\r\n );\r\n },\r\n [GET_NOTIFICATIONS_SUCCESS]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n getNotificationsLoading: false,\r\n getNotificationsData: action.data['response']['data'],\r\n })\r\n );\r\n },\r\n [GET_NOTIFICATIONS_ERROR]: (state, action) => {\r\n return state.merge(\r\n Map({\r\n getNotificationsLoading: false,\r\n getNotificationsError:\r\n action.error && action.error.settings && action.error.settings.message\r\n ? action.error.settings.message\r\n : \"Something went wrong!\",\r\n })\r\n );\r\n },\r\n\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n const fn = actionMap[action.type];\r\n return fn ? fn(state, action) : state;\r\n}\r\n","import { combineReducers } from \"redux\";\r\nimport { reducer as formReducer } from \"redux-form\";\r\nimport auth from \"./auth\";\r\nimport signup from \"./signup\";\r\nimport profile from \"./profile\";\r\nimport card from \"./card\";\r\nimport clinics from './clinics';\r\nimport appointment from \"./appointment\";\r\nimport payment from \"./payment\";\r\nimport notifications from \"./notifications\";\r\n\r\nexport default combineReducers({\r\n auth,\r\n signup,\r\n profile,\r\n card,\r\n clinics,\r\n appointment,\r\n payment,\r\n notifications,\r\n form: formReducer\r\n});\r\n","import { postRequest } from \".\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction forgotPassword(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\nexport default {\r\n forgotPassword,\r\n};\r\n","import { takeLatest, call, put } from \"redux-saga/effects\";\r\nimport {\r\n USER_LOGIN_REQUEST,\r\n userLoginSuccess,\r\n userLoginError,\r\n USER_FP_REQUEST,\r\n userFpSuccess,\r\n userFpError,\r\n USER_LOGOUT_REQUEST,\r\n userLogoutSuccess,\r\n userLogoutError,\r\n} from \"../actions/auth\";\r\nimport scriptsApi from \"../api/patient-api-scripts\";\r\nimport findApi from \"../api/patient-api-find\";\r\nimport API_CODES from \"../config/api-codes\";\r\nimport {\r\n LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY,\r\n LOGGED_USER_SESSION_KEY\r\n} from \"../config/constants\";\r\n\r\nfunction userLogin() {\r\n return function* (actions) {\r\n const { payload } = actions;\r\n\r\n try {\r\n\r\n const session_payload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"createSession\",\r\n \"script.param\" : `${payload.email}|${payload.password}`\r\n }\r\n \r\n const create_session = yield call(() => findApi.createSession(session_payload));\r\n \r\n if (\r\n create_session &&\r\n create_session.messages &&\r\n create_session.messages[0] &&\r\n create_session.messages[0].code === API_CODES.SUCCESS &&\r\n create_session.response &&\r\n create_session.response.scriptError === API_CODES.SUCCESS\r\n ) {\r\n\r\n localStorage.setItem(\r\n LOGGED_USER_SESSION_KEY,\r\n create_session?.['response']?.['scriptResult']\r\n );\r\n\r\n\r\n const _payload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"findPatient\",\r\n \"script.param\" : create_session?.['response']?.['scriptResult']\r\n }\r\n const data = yield call(() => findApi.userLogin(_payload));\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n\r\n if(\r\n data &&\r\n data['response'] &&\r\n data['response']['scriptResult'] === \"No Matches\"\r\n ) {\r\n yield put(userLoginError(data));\r\n } else {\r\n \r\n yield put(userLoginSuccess(data));\r\n const userDetails = JSON.parse(data?.['response']?.['scriptResult']).response['data'][0]['fieldData']\r\n \r\n userDetails['idPatient'] = create_session?.['response']?.['scriptResult'];\r\n\r\n localStorage.setItem(\r\n LOGGED_USER_DETAILS_LOCAL_STORAGE_KEY,\r\n JSON.stringify(userDetails)\r\n );\r\n }\r\n\r\n } else {\r\n yield put(userLoginError(JSON.parse(data?.['response']?.['scriptResult'])));\r\n }\r\n } else {\r\n yield put(userLoginError(create_session));\r\n }\r\n } catch (error) {\r\n yield put(userLoginError(error));\r\n }\r\n } \r\n};\r\n\r\nfunction forgotPassword() {\r\n return function* (actions) {\r\n try { \r\n const { payload } = actions;\r\n const data = yield call(() => scriptsApi.forgotPassword(payload)); \r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(userFpSuccess(data));\r\n } else {\r\n yield put(userFpError(data));\r\n }\r\n } catch (error) {\r\n yield put(userFpError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction userLogout() {\r\n return function* (actions) {\r\n\r\n try {\r\n\r\n const { payload } = actions;\r\n const data = yield call(() => findApi.logout(payload)) \r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(userLogoutSuccess(data));\r\n } else {\r\n yield put(userLogoutError(data));\r\n }\r\n } catch (error) {\r\n yield put(userFpError(error));\r\n }\r\n };\r\n}\r\n\r\n\r\nexport function* userAuthWatcher() {\r\n yield takeLatest(USER_LOGIN_REQUEST, userLogin());\r\n yield takeLatest(USER_FP_REQUEST, forgotPassword());\r\n yield takeLatest(USER_LOGOUT_REQUEST, userLogout());\r\n}\r\n\r\nexport default [userAuthWatcher()];\r\n","import { postRequest, patchRequest, deleteRequest } from \".\";\r\n\r\nconst recordsUri = \"/layouts/patientapi/records\";\r\nconst updateProfileUri = '/layouts/access/_find'\r\nconst uploadImgUri = \"/layouts/photo/records\"\r\n\r\nfunction updateCard(payload, recordId, authKey = \"\") {\r\n return patchRequest(`${recordsUri}/${recordId}`, payload, authKey);\r\n}\r\n\r\nfunction deleteCard(recordId, authKey = \"\") {\r\n return deleteRequest(`${recordsUri}/${recordId}`, authKey);\r\n}\r\n\r\nfunction userSignUp(payload, authKey = \"\") {\r\n return postRequest(updateProfileUri, payload, authKey);\r\n}\r\n\r\nfunction updateProfile(payload, authKey = \"\") {\r\n return postRequest(updateProfileUri, payload, authKey);\r\n}\r\n\r\nfunction updatePassword(payload, authKey = \"\"){\r\n return postRequest(updateProfileUri, payload, authKey);\r\n}\r\n\r\nfunction updateProfileImage(payload, recordId, authKey = \"\") {\r\n const _headers = { \r\n \"Content-Type\": \"multipart/form-data\" \r\n };\r\n return postRequest(\r\n `${uploadImgUri}/${recordId}/containers/photo/1`,\r\n payload,\r\n authKey,\r\n undefined,\r\n _headers\r\n );\r\n}\r\n\r\nexport default {\r\n updateCard,\r\n deleteCard,\r\n userSignUp,\r\n updateProfile,\r\n updateProfileImage,\r\n updatePassword\r\n};\r\n","import { takeLatest, call, put } from \"redux-saga/effects\";\r\nimport {\r\n userSignUpSuccess,\r\n userSignUpError,\r\n USER_SIGNUP_REQUEST,\r\n userSignUpDuplicateEmail,\r\n} from \"../actions/signup\";\r\nimport recordsApi from \"../api/patient-api-records\";\r\nimport API_CODES from \"../config/api-codes\";\r\n\r\nfunction userSignUp() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n let _payload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ], \r\n \"script\" : \"createPatient\",\r\n \"script.param\" : `${payload.nameFirst}|${payload.nameLast}|${payload.email}|${payload.phoneMobile}|${payload.address1}|${payload.address2}|${payload.addressTown}|${payload.addressCounty}|${payload.addressPostcode}|${payload.country}|${payload.password}|${payload.dateOfBirth}`\r\n }\r\n\r\n const data = yield call(() => recordsApi.userSignUp(_payload));\r\n if(\r\n data &&\r\n data['response'] &&\r\n data['response']['scriptResult'] === \"This email is already in use.\"\r\n ) {\r\n yield put(userSignUpDuplicateEmail(data));\r\n }\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(userSignUpSuccess(data));\r\n } else {\r\n yield put(userSignUpError(data));\r\n }\r\n } catch (error) {\r\n if(\r\n error &&\r\n error['data']['response'] &&\r\n error['data']['response'] &&\r\n error['data']['response']['data'] &&\r\n error['data']['response']['data']['messages'][0] &&\r\n error['data']['response']['data']['messages'][0].code === \"1\"\r\n ){\r\n yield put(userSignUpError(error));\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport function* userSignupWatcher() {\r\n yield takeLatest(USER_SIGNUP_REQUEST, userSignUp());\r\n}\r\n\r\nexport default [userSignupWatcher()];\r\n","import { takeLatest, call, put } from \"redux-saga/effects\";\r\nimport {\r\n PATIENT_PROFILE_REQUEST,\r\n patientPofileSuccess,\r\n patientPofileError,\r\n UPDATE_PROFILE_REQUEST,\r\n updatePofileSuccess,\r\n updatePofileError,\r\n UPDATE_PROFILE_IMAGE_REQUEST,\r\n updatePofileImageSuccess,\r\n updatePofileImageError,\r\n UPDATE_PASSWORD_REQUEST,\r\n updatePasswordSuccess,\r\n updatePasswordError\r\n} from \"../actions/profile\";\r\nimport findApi from \"../api/patient-api-find\";\r\nimport recordsApi from \"../api/patient-api-records\";\r\nimport API_CODES from \"../config/api-codes\";\r\n\r\nfunction patientProfile() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n\r\n const _payload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \r\n \"script\" : \"findPatient\",\r\n \"script.param\" : payload?.['idPatient']\r\n }\r\n \r\n const data = yield call(() => findApi.patientProfile(_payload));\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(patientPofileSuccess(JSON.parse(data?.['response']?.['scriptResult'])));\r\n } else {\r\n yield put(patientPofileError(JSON.parse(data?.['response']?.['scriptResult'])));\r\n }\r\n } catch (error) {\r\n yield put(patientPofileError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction updateProfile() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n\r\n const _payload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \r\n \"script\" : \"editPatient\",\r\n \"script.param\" : `${payload.nameFirst}|${payload.nameLast}|${payload.email}|${payload.phoneMobile}|${payload.address1}|${payload.address2}|${payload.addressTown}|${payload.addressCounty}|${payload.addressPostcode}|${payload.addressCountry}|${payload.password}|${payload.idSession}`\r\n }\r\n\r\n const data = yield call(() =>\r\n recordsApi.updateProfile(_payload)\r\n );\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(updatePofileSuccess(data));\r\n } else {\r\n yield put(updatePofileError(data));\r\n }\r\n } catch (error) {\r\n const { data } = error.data.response;\r\n yield put(updatePofileError(data));\r\n }\r\n };\r\n}\r\n\r\nfunction updateProfileImage() {\r\n return function* (actions) {\r\n try {\r\n const { payload, recordId } = actions;\r\n const data = yield call(() =>\r\n recordsApi.updateProfileImage(payload, recordId)\r\n );\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(updatePofileImageSuccess(data));\r\n } else {\r\n yield put(updatePofileImageError(data));\r\n }\r\n } catch (error) {\r\n yield put(updatePofileImageError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction updatePassword() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() =>\r\n recordsApi.updatePassword(payload)\r\n );\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(updatePasswordSuccess(data));\r\n } else {\r\n yield put(updatePasswordError(data));\r\n }\r\n } catch (error) {\r\n yield put(updatePasswordError(error));\r\n }\r\n };\r\n}\r\n\r\n\r\nexport function* profileAuthWatcher() {\r\n yield takeLatest(PATIENT_PROFILE_REQUEST, patientProfile());\r\n yield takeLatest(UPDATE_PROFILE_REQUEST, updateProfile());\r\n yield takeLatest(UPDATE_PROFILE_IMAGE_REQUEST, updateProfileImage());\r\n yield takeLatest(UPDATE_PASSWORD_REQUEST, updatePassword());\r\n}\r\n\r\nexport default [profileAuthWatcher()];\r\n","import { takeLatest, call, put } from \"redux-saga/effects\";\r\nimport {\r\n ADD_CARD_REQUEST,\r\n addCardSuccess,\r\n addCardError,\r\n UPDATE_CARD_REQUEST,\r\n updateCardSuccess,\r\n updateCardError,\r\n DELETE_CARD_REQUEST,\r\n deleteCardSuccess,\r\n deleteCardError,\r\n} from \"../actions/card\";\r\nimport findApi from \"../api/patient-api-find\";\r\nimport recordsApi from \"../api/patient-api-records\";\r\nimport API_CODES from \"../config/api-codes\";\r\n\r\nfunction addCard() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const _payload = {\r\n query: [payload],\r\n sort: [\r\n {\r\n fieldName: \"nameLast\",\r\n sortOrder: \"ascend\",\r\n },\r\n ],\r\n };\r\n const data = yield call(() => findApi.addCard(_payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(addCardSuccess(data));\r\n } else {\r\n yield put(addCardError(data));\r\n }\r\n } catch (error) {\r\n yield put(addCardError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction updateCard() {\r\n return function* (actions) {\r\n try {\r\n const { payload, recordId } = actions;\r\n const _payload = {\r\n fieldData: payload,\r\n };\r\n const data = yield call(() =>\r\n recordsApi.updateCard(_payload, recordId)\r\n );\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(updateCardSuccess(data));\r\n } else {\r\n yield put(updateCardError(data));\r\n }\r\n } catch (error) {\r\n yield put(updateCardError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction deleteCard() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => recordsApi.deleteCard(payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(deleteCardSuccess(data));\r\n } else {\r\n yield put(deleteCardError(data));\r\n }\r\n } catch (error) {\r\n yield put(deleteCardError(error));\r\n }\r\n };\r\n}\r\n\r\nexport function* profileAuthWatcher() {\r\n yield takeLatest(ADD_CARD_REQUEST, addCard());\r\n yield takeLatest(UPDATE_CARD_REQUEST, updateCard());\r\n yield takeLatest(DELETE_CARD_REQUEST, deleteCard());\r\n}\r\n\r\nexport default [profileAuthWatcher()];\r\n","import { getRequest, postRequest } from \".\";\r\nimport { getRequest as clinicGetRequest, postRequest as clinicPostRequest } from \"./clinics-axios\";\r\n\r\nconst findUri = \"/layouts/access/_find\"\r\n\r\nfunction getAllClinics(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nfunction getSingleClinic(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nfunction addPatient(payload, authKey = \"\") {\r\n return clinicPostRequest( \r\n findUri,\r\n payload.payload,\r\n authKey,\r\n payload.baseUrl,\r\n {},\r\n );\r\n}\r\n\r\nfunction patientClinicAddPatient(payload, authKey = \"\") {\r\n return postRequest(findUri,payload, authKey);\r\n}\r\n\r\nexport default {\r\n getAllClinics,\r\n getSingleClinic,\r\n addPatient,\r\n patientClinicAddPatient\r\n};\r\n","import { postRequest } from \".\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction getPatientClinics(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nexport default {\r\n getPatientClinics,\r\n};\r\n","import { postRequest } from \".\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction addPatientClinic(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\nexport default {\r\n addPatientClinic,\r\n};\r\n","import { postRequest } from \".\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction myAppointment(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nexport default {\r\n myAppointment,\r\n};\r\n","import { postRequest, getRequest } from \"./clinics-axios\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\nconst deleteUri = \"/layouts/paymentcard_api/script/deletecard\";\r\n\r\nfunction findPaymentCards(payload, authKey = \"\") {\r\n return postRequest(findUri, payload.query, authKey, payload.baseUrl);\r\n}\r\n\r\nfunction deletePaymentCard(payload, authKey = \"\") {\r\n return getRequest(deleteUri, authKey, payload.queryParams, payload.baseUrl);\r\n}\r\n\r\nexport default {\r\n findPaymentCards,\r\n deletePaymentCard,\r\n};\r\n","import { takeLatest, call, put } from \"redux-saga/effects\";\r\nimport {\r\n GET_PATIENT_CLINICS_REQUEST,\r\n getPatientClinicsSuccess,\r\n getPatientClinicsError,\r\n GET_ALL_CLINICS_REQUEST,\r\n getAllClinicsSuccess,\r\n getAllClinicsError,\r\n GET_SINGLE_CLINIC_REQUEST,\r\n getSingleClinicSuccess,\r\n getSingleClinicError,\r\n ADD_PATIENT_CLINIC_REQUEST,\r\n addPatientClinicSuccess,\r\n addPatientClinicError,\r\n GET_APPOINTMENTS_REQUEST,\r\n getAppointmentsSuccess,\r\n getAppointmentsError,\r\n GET_PATIENT_CLINIC_CARDS_REQUEST,\r\n getPatientClinicCardsSuccess,\r\n getPatientClinicCardsError,\r\n DELETE_PATIENT_CLINIC_CARD_REQUEST,\r\n deletePatientClinicCardSuccess,\r\n deletePatientClinicCardError,\r\n ADD_PATIENT_REQUEST,\r\n addPatientSuccess,\r\n addPatientError,\r\n GET_SINGLE_NOTIFICATION_CLINIC_REQUEST,\r\n getSingleClinicNotificationSuccess,\r\n getSingleClinicNotificationError,\r\n} from \"../actions/clinics\";\r\nimport findApi from \"../api/clinic-api-find\";\r\nimport findPatientApi from \"../api/patient-clinic-api-find\";\r\nimport recordsAddPatient from \"../api/patient-clinic-api-records\";\r\nimport findAppiontments from \"../api/patient-appointment-find\";\r\nimport findPaymentCards from \"../api/find-payment-cards-api\";\r\nimport API_CODES from \"../config/api-codes\";\r\nimport { LOGGED_USER_SESSION_KEY } from \"../config/constants\";\r\n\r\nfunction getPatientsClinics() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n \r\n // const _payload = {\r\n // query: [\r\n // {\r\n // idPatient: payload,\r\n // },\r\n // ],\r\n // };\r\n\r\n const _payload = {\r\n query: [{ \"z1\": \"1\" }],\r\n \"script\" : \"getPatientClinics\",\r\n \"script.param\" : localStorage.getItem(LOGGED_USER_SESSION_KEY)\r\n };\r\n\r\n const data = yield call(() => findPatientApi.getPatientClinics(_payload));\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(getPatientClinicsSuccess(JSON.parse(data?.['response']?.['scriptResult'])));\r\n } else {\r\n yield put(getPatientClinicsError(JSON.parse(data?.['response']?.['scriptResult'])));\r\n }\r\n } catch (error) {\r\n yield put(getPatientClinicsError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction getAllClinics() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n\r\n const _payload = {\r\n query: [{ \"z1\": \"1\" }],\r\n \"script\" : \"clinicWildcard\",\r\n \"script.param\" : `${localStorage.getItem(LOGGED_USER_SESSION_KEY)}|${payload.search || '*'}`\r\n };\r\n\r\n const _data = yield call(() => findApi.getAllClinics(_payload));\r\n const data = JSON.parse(_data['response']['scriptResult'])\r\n \r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(getAllClinicsSuccess(data));\r\n } else {\r\n yield put(getAllClinicsError(data));\r\n }\r\n } catch (error) {\r\n yield put(getAllClinicsError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction getSingleClinic() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n\r\n const _payload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"getClinic\",\r\n \"script.param\" : payload\r\n };\r\n const _data = yield call(() => findApi.getSingleClinic(_payload));\r\n const data = JSON.parse(_data['response']['scriptResult'])\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(getSingleClinicSuccess(data));\r\n } else {\r\n yield put(getSingleClinicError(data));\r\n }\r\n } catch (error) {\r\n yield put(getAllClinicsError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction getSinleNotificationClinic() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n \r\n const _payload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \"script\" : \"getClinic\",\r\n \"script.param\" : payload\r\n };\r\n const _data = yield call(() => findApi.getSingleClinic(_payload));\r\n const data = JSON.parse(_data['response']['scriptResult'])\r\n \r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(getSingleClinicNotificationSuccess(data));\r\n } else {\r\n yield put(getSingleClinicNotificationError(data));\r\n }\r\n } catch (error) {\r\n yield put(getSingleClinicNotificationError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction addPatientClinic() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() =>\r\n recordsAddPatient.addPatientClinic(payload)\r\n );\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(addPatientClinicSuccess(data));\r\n } else {\r\n yield put(getSingleClinicError(data));\r\n }\r\n } catch (error) {\r\n yield put(addPatientClinicError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction getAppointments() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => findAppiontments.myAppointment(payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(getAppointmentsSuccess(JSON.parse(data?.['response']?.['scriptResult'])));\r\n } else {\r\n yield put(getAppointmentsError(JSON.parse(data?.['response']?.['scriptResult'])));\r\n }\r\n } catch (error) {\r\n yield put(getAppointmentsError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction getPatientClinicCardsRequest() {\r\n return function* (actions) {\r\n try {\r\n const { recordId, patientPayload, baseUrl } = actions.payload;\r\n const localPayload = {\r\n query: patientPayload,\r\n baseUrl,\r\n };\r\n const _data = yield call(() =>\r\n findPaymentCards.findPaymentCards(localPayload)\r\n );\r\n\r\n const data = JSON.parse(_data?.['response']?.['scriptResult'])\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(getPatientClinicCardsSuccess(recordId, data));\r\n } else {\r\n yield put(getPatientClinicCardsError(recordId, data));\r\n }\r\n } catch (error) {\r\n yield put(getPatientClinicCardsError(actions.payload.recordId, error));\r\n }\r\n };\r\n}\r\n\r\nfunction deletePatientClinicCardRequest() {\r\n return function* (actions) {\r\n try {\r\n const { clinicRecordId, ID_PaymentCard, baseUrl } = actions.payload;\r\n const localPayload = {\r\n queryParams: {\r\n \"script.param\": ID_PaymentCard,\r\n },\r\n baseUrl,\r\n };\r\n const data = yield call(() =>\r\n findPaymentCards.deletePaymentCard(localPayload)\r\n );\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(\r\n deletePatientClinicCardSuccess(clinicRecordId, ID_PaymentCard, data)\r\n );\r\n } else {\r\n yield put(deletePatientClinicCardError(data));\r\n }\r\n } catch (error) {\r\n yield put(deletePatientClinicCardError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction addPatientRequest() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n\r\n const _payload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \r\n \"script\" : \"createPatient\",\r\n \"script.param\" : `${payload[\"payload\"][\"nameFirst\"]}|${payload[\"payload\"][\"nameLast\"]}|${payload[\"payload\"][\"email\"]}|${payload[\"payload\"][\"phoneMobile\"]}|${payload[\"payload\"][\"dateOfBirth\"]}|${payload[\"payload\"][\"address1\"]}|${payload[\"payload\"][\"address2\"]}|${payload[\"payload\"][\"addressTown\"]}|${payload[\"payload\"][\"addressCounty\"]}|${payload[\"payload\"][\"addressPostcode\"]}|${payload[\"payload\"][\"idPatient\"]}|${payload[\"payload\"][\"ID_Clinic\"]}`\r\n }\r\n\r\n const combineData = { payload: _payload, baseUrl: payload.baseUrl }\r\n\r\n const data = yield call(() => findApi.addPatient(combineData));\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n const {\r\n response: { scriptResult },\r\n } = data;\r\n const {\r\n payload: { idPatient, idClinic }, \r\n } = payload;\r\n const ID_Patient = scriptResult;\r\n\r\n const combinedPatientPayload = {\r\n \"query\": [\r\n {\r\n \"z1\": \"1\"\r\n }\r\n ],\r\n \r\n \"script\" : \"updatePatientID\",\r\n \"script.param\" : `${localStorage.getItem(LOGGED_USER_SESSION_KEY)}|${idClinic}|${ID_Patient}`\r\n }\r\n\r\n const patientClinicAddPatientRes = yield call(() => findApi.patientClinicAddPatient(combinedPatientPayload));\r\n\r\n if (\r\n patientClinicAddPatientRes &&\r\n patientClinicAddPatientRes.messages &&\r\n patientClinicAddPatientRes.messages[0] &&\r\n patientClinicAddPatientRes.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(addPatientSuccess(data));\r\n } else {\r\n yield put(addPatientError(data));\r\n }\r\n } else {\r\n yield put(addPatientError(data));\r\n }\r\n } catch (error) {\r\n yield put(addPatientError(error));\r\n }\r\n };\r\n}\r\n\r\nexport function* profileAuthWatcher() {\r\n yield takeLatest(GET_PATIENT_CLINICS_REQUEST, getPatientsClinics());\r\n yield takeLatest(GET_ALL_CLINICS_REQUEST, getAllClinics());\r\n yield takeLatest(GET_SINGLE_CLINIC_REQUEST, getSingleClinic());\r\n yield takeLatest(ADD_PATIENT_CLINIC_REQUEST, addPatientClinic());\r\n yield takeLatest(GET_APPOINTMENTS_REQUEST, getAppointments());\r\n yield takeLatest(\r\n GET_PATIENT_CLINIC_CARDS_REQUEST,\r\n getPatientClinicCardsRequest()\r\n );\r\n yield takeLatest(\r\n DELETE_PATIENT_CLINIC_CARD_REQUEST,\r\n deletePatientClinicCardRequest()\r\n );\r\n yield takeLatest(ADD_PATIENT_REQUEST, addPatientRequest());\r\n yield takeLatest(\r\n GET_SINGLE_NOTIFICATION_CLINIC_REQUEST,\r\n getSinleNotificationClinic()\r\n );\r\n}\r\n\r\nexport default [profileAuthWatcher()];\r\n","import { postRequest } from \"./clinics-axios\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction findAppointments(payload, authKey = \"\") {\r\n return postRequest(findUri, payload.query, authKey, payload.baseUrl);\r\n}\r\n\r\nexport default {\r\n findAppointments,\r\n};\r\n","import { postRequest } from \"./clinics-axios\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction findDiary(payload, authKey = \"\") {\r\n return postRequest(findUri, payload.query, authKey, payload.baseUrl);\r\n}\r\n\r\nexport default {\r\n findDiary,\r\n};\r\n","import { postRequest } from \"./clinics-axios\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction findDiary(payload, authKey = \"\") {\r\n return postRequest(findUri, payload.query, authKey, payload.baseUrl);\r\n}\r\n\r\nexport default {\r\n findDiary,\r\n};\r\n","import { postRequest } from \"./clinics-axios\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction findTimeSlot(payload, authKey = \"\") {\r\n return postRequest(findUri, payload.query, authKey, payload.baseUrl);\r\n}\r\n\r\nexport default {\r\n findTimeSlot,\r\n};\r\n","import { postRequest } from \"./clinics-axios\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction checkfindTimeSlots(payload, authKey = \"\") {\r\n return postRequest(findUri, payload.query, authKey, payload.baseUrl);\r\n}\r\n\r\nexport default {\r\n checkfindTimeSlots,\r\n};\r\n","import { takeLatest, call, put } from \"redux-saga/effects\";\r\nimport {\r\n FIND_APPOINTMENT_TYPES_REQUEST,\r\n findAppointmentTypesSuccess,\r\n findAppointmentTypesError,\r\n FIND_DIARY_REQUEST,\r\n findDiarySuccess,\r\n findDiaryError,\r\n FIND_DIARY_DAY_REQUEST,\r\n findDiaryDaySuccess,\r\n findDiaryDayError,\r\n FIND_TIME_SLOTS_REQUEST,\r\n findTimeSlotsSuccess,\r\n findTimeSlotsError,\r\n FIND_PACKAGES_REQUEST,\r\n findPackagesSuccess,\r\n findPackagesError,\r\n CHECK_TIMESLOTS_REQUEST,\r\n checkTimeslotsSuccess,\r\n checkTimeslotsError,\r\n FIND_PAYMENT_CARDS_REQUEST,\r\n findPaymentCardsSuccess,\r\n findPaymentCardsError,\r\n} from \"../actions/appointment\";\r\nimport findProductApi from \"../api/product-api-find\";\r\nimport diaryApi from \"../api/diary-api-find\";\r\nimport diaryDayApi from \"../api/diary-day-api-find\";\r\nimport timeSlotsApi from \"../api/time-slots-api\";\r\nimport checkTimeSlotsApi from \"../api/check-time-slots-api\";\r\nimport findCardsApi from \"../api/find-payment-cards-api\";\r\nimport API_CODES from \"../config/api-codes\";\r\n\r\nfunction findAppointment() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const _data = yield call(() =>\r\n findProductApi.findAppointments(payload)\r\n );\r\n\r\n const data = JSON.parse(_data['response']['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(findAppointmentTypesSuccess(data));\r\n } else {\r\n yield put(findAppointmentTypesError(data));\r\n }\r\n } catch (error) {\r\n yield put(findAppointmentTypesError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction findDiary() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n\r\n const _data = yield call(() => diaryApi.findDiary(payload));\r\n const data = JSON.parse(_data['response']['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(findDiarySuccess(data));\r\n } else {\r\n yield put(findDiaryError(data));\r\n }\r\n } catch (error) {\r\n yield put(findDiaryError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction findDiaryDay() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const _data = yield call(() => diaryDayApi.findDiary(payload));\r\n const data = JSON.parse(_data['response']['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(findDiaryDaySuccess(data));\r\n } else {\r\n yield put(findDiaryDayError(data));\r\n }\r\n } catch (error) {\r\n yield put(findDiaryDayError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction findTimeSlots() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const _data = yield call(() => timeSlotsApi.findTimeSlot(payload));\r\n const data = JSON.parse(_data['response']['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(findTimeSlotsSuccess(data));\r\n } else {\r\n yield put(findTimeSlotsError(data));\r\n }\r\n } catch (error) {\r\n yield put(findTimeSlotsError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction findPackages() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const _data = yield call(() =>\r\n findProductApi.findAppointments(payload)\r\n );\r\n\r\n const data = JSON.parse(_data['response']['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(findPackagesSuccess(data));\r\n } else {\r\n yield put(findPackagesError(data));\r\n }\r\n } catch (error) {\r\n yield put(findPackagesError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction checkTimeSlots() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const _data = yield call(() =>\r\n checkTimeSlotsApi.checkfindTimeSlots(payload)\r\n );\r\n\r\n const data = JSON.parse(_data['response']['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(checkTimeslotsSuccess(data));\r\n } else {\r\n yield put(checkTimeslotsError(data));\r\n }\r\n } catch (error) {\r\n yield put(checkTimeslotsError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction findPaymentCards() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const _data = yield call(() =>\r\n findCardsApi.findPaymentCards(payload)\r\n );\r\n\r\n const data = JSON.parse(_data['response']['scriptResult']);\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(findPaymentCardsSuccess(data));\r\n } else {\r\n yield put(findPaymentCardsError(data));\r\n }\r\n } catch (error) {\r\n yield put(findPaymentCardsError(error));\r\n }\r\n };\r\n}\r\n\r\nexport function* userAuthWatcher() {\r\n yield takeLatest(FIND_APPOINTMENT_TYPES_REQUEST, findAppointment());\r\n yield takeLatest(FIND_DIARY_REQUEST, findDiary());\r\n yield takeLatest(FIND_DIARY_DAY_REQUEST, findDiaryDay());\r\n yield takeLatest(FIND_TIME_SLOTS_REQUEST, findTimeSlots());\r\n yield takeLatest(FIND_PACKAGES_REQUEST, findPackages());\r\n yield takeLatest(CHECK_TIMESLOTS_REQUEST, checkTimeSlots());\r\n yield takeLatest(FIND_PAYMENT_CARDS_REQUEST, findPaymentCards());\r\n}\r\n\r\nexport default [userAuthWatcher()];","import { postRequest } from \".\";\r\nimport { getRequest, postRequest as clinicPostRequest } from \"./clinics-axios\";\r\n\r\nconst paymentUri = \"/layouts/access/_find\"\r\n\r\nfunction createInvoice(payload, authKey = \"\") {\r\n return clinicPostRequest(\r\n paymentUri,\r\n payload.payload,\r\n authKey,\r\n payload.baseUrl,\r\n {},\r\n );\r\n}\r\n\r\nfunction createReceipt(payload, authKey = \"\") {\r\n return clinicPostRequest(\r\n paymentUri,\r\n payload.payload,\r\n authKey,\r\n payload.baseUrl,\r\n {},\r\n );\r\n}\r\n\r\nfunction initiatePayment(payload, authKey = \"\") {\r\n return clinicPostRequest(\r\n paymentUri,\r\n payload.payload,\r\n authKey,\r\n payload.baseUrl,\r\n {},\r\n );\r\n}\r\n\r\nfunction confirmPayment(payload, authKey = \"\") {\r\n return clinicPostRequest(\r\n paymentUri,\r\n payload.payload,\r\n authKey,\r\n payload.baseUrl,\r\n {},\r\n );\r\n}\r\n\r\nfunction findReceipt(payload, authKey = \"\") {\r\n return postRequest(paymentUri, payload, authKey);\r\n}\r\n\r\nfunction getConfirmation(payload, authKey = \"\") {\r\n return postRequest(paymentUri, payload, authKey);\r\n}\r\n\r\nfunction bookFinalSlot(payload, authKey = \"\") {\r\n return clinicPostRequest(\r\n paymentUri,\r\n payload.payload,\r\n authKey,\r\n payload.baseUrl,\r\n {},\r\n );\r\n}\r\n\r\nfunction bookSlot(payload, authKey = \"\") {\r\n return clinicPostRequest(\r\n paymentUri,\r\n payload.payload,\r\n authKey,\r\n payload.baseUrl,\r\n {},\r\n );\r\n}\r\n\r\nfunction addAppointment(payload, authKey = \"\") {\r\n return postRequest(paymentUri, payload, authKey);\r\n}\r\n\r\nfunction addInvoice(payload, authKey = \"\") {\r\n return postRequest(paymentUri, payload, authKey);\r\n}\r\n\r\nfunction addReceipt(payload, authKey = \"\") {\r\n return postRequest(paymentUri, payload, authKey);\r\n}\r\n\r\nexport default {\r\n createInvoice,\r\n createReceipt,\r\n initiatePayment,\r\n confirmPayment,\r\n findReceipt,\r\n getConfirmation,\r\n bookFinalSlot,\r\n bookSlot,\r\n addAppointment,\r\n addInvoice,\r\n addReceipt,\r\n};\r\n","import { takeLatest, call, put } from \"redux-saga/effects\";\r\nimport {\r\n CREATE_INVOICE_REQUEST,\r\n createInvoiceSuccess,\r\n createInvoiceError,\r\n CREATE_RECEIPT_REQUEST,\r\n createReceiptSuccess,\r\n createReceiptError,\r\n INITIATE_PAYMENT_REQUEST,\r\n initiatePaymentSuccess,\r\n initiatePaymentError,\r\n CONFIRM_PAYMENT_REQUEST,\r\n confirmPaymentSuccess,\r\n confirmPaymentError,\r\n FIND_RECEIPT_REQUEST,\r\n findReceiptSuccess,\r\n findReceiptError,\r\n GET_CONFORMATION_REQUEST,\r\n getConformationSuccess,\r\n getConformationError,\r\n BOOK_SLOT_FINAL_REQUEST,\r\n bookFinalSlotSuccess,\r\n bookFinalSlotError,\r\n BOOK_SLOT_REQUEST,\r\n bookSlotSuccess,\r\n bookSlotError,\r\n ADD_APPOINTMENT_REQUEST,\r\n addAppointmentSuccess,\r\n addAppointmentError,\r\n ADD_PREVIOUS_APPOINTMENT_REQUEST,\r\n addPreviousAppointmentSuccess,\r\n addPreviousAppointmentError,\r\n ADD_INVOICE_REQUEST,\r\n addInvoiceSuccess,\r\n addInvoiceError,\r\n ADD_RECEIPT_REQUEST,\r\n addReceiptSuccess,\r\n addReceiptError,\r\n} from \"../actions/payment\";\r\nimport payment_api from \"../api/payment-api\";\r\nimport API_CODES from \"../config/api-codes\";\r\n\r\nfunction createInvoice() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() =>\r\n payment_api.createInvoice(payload)\r\n );\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(createInvoiceSuccess(data));\r\n } else {\r\n yield put(createInvoiceError(data));\r\n }\r\n } catch (error) {\r\n yield put(createInvoiceError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction createReceipt() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() =>\r\n payment_api.createReceipt(payload)\r\n );\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(createReceiptSuccess(data));\r\n } else {\r\n yield put(createReceiptError(data));\r\n }\r\n } catch (error) {\r\n yield put(createReceiptError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction initiatePayment() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() =>\r\n payment_api.initiatePayment(payload)\r\n );\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(initiatePaymentSuccess(data));\r\n } else {\r\n yield put(initiatePaymentError(data));\r\n }\r\n } catch (error) {\r\n yield put(initiatePaymentError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction confirmPayment() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => payment_api.confirmPayment(payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(confirmPaymentSuccess(data));\r\n } else {\r\n yield put(confirmPaymentError(data));\r\n }\r\n } catch (error) {\r\n yield put(confirmPaymentError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction findReceipt() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const _data = yield call(() => payment_api.findReceipt(payload));\r\n const data = JSON.parse(_data?.['response']?.['scriptResult']);\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(findReceiptSuccess(data));\r\n } else {\r\n yield put(findReceiptError(data));\r\n }\r\n } catch (error) {\r\n yield put(findReceiptError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction getConfirmation() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const _data = yield call(() => payment_api.getConfirmation(payload));\r\n const data = JSON.parse(_data?.['response']?.['scriptResult']);\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(getConformationSuccess(data));\r\n } else {\r\n yield put(getConformationError(data));\r\n }\r\n } catch (error) {\r\n yield put(getConformationError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction bookFinalSlots() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => payment_api.bookFinalSlot(payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(bookFinalSlotSuccess(data));\r\n } else {\r\n yield put(bookFinalSlotError(data));\r\n }\r\n } catch (error) {\r\n yield put(bookFinalSlotError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction bookSlots() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => payment_api.bookSlot(payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(bookSlotSuccess(data));\r\n } else {\r\n yield put(bookSlotError(data));\r\n }\r\n } catch (error) {\r\n yield put(bookSlotError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction addAppointment() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => payment_api.addAppointment(payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(addAppointmentSuccess(data));\r\n } else {\r\n yield put(addAppointmentError(data));\r\n }\r\n } catch (error) {\r\n yield put(addAppointmentError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction addPreviousAppointment(){\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => payment_api.addAppointment(payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(addPreviousAppointmentSuccess(data));\r\n } else {\r\n yield put(addPreviousAppointmentError(data));\r\n }\r\n } catch (error) {\r\n yield put(addPreviousAppointmentError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction addInvoice() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => payment_api.addInvoice(payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(addInvoiceSuccess(data));\r\n } else {\r\n yield put(addInvoiceError(data));\r\n }\r\n } catch (error) {\r\n yield put(addInvoiceError(error));\r\n }\r\n };\r\n}\r\n\r\nfunction addReceipt() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => payment_api.addReceipt(payload));\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(addReceiptSuccess(data));\r\n } else {\r\n yield put(addReceiptError(data));\r\n }\r\n } catch (error) {\r\n yield put(addReceiptError(error));\r\n }\r\n };\r\n}\r\n\r\nexport function* profileAuthWatcher() {\r\n yield takeLatest(CREATE_INVOICE_REQUEST, createInvoice());\r\n yield takeLatest(CREATE_RECEIPT_REQUEST, createReceipt());\r\n yield takeLatest(INITIATE_PAYMENT_REQUEST, initiatePayment());\r\n yield takeLatest(CONFIRM_PAYMENT_REQUEST, confirmPayment());\r\n yield takeLatest(FIND_RECEIPT_REQUEST, findReceipt());\r\n yield takeLatest(GET_CONFORMATION_REQUEST, getConfirmation());\r\n yield takeLatest(BOOK_SLOT_FINAL_REQUEST, bookFinalSlots());\r\n yield takeLatest(BOOK_SLOT_REQUEST, bookSlots());\r\n yield takeLatest(ADD_APPOINTMENT_REQUEST, addAppointment());\r\n yield takeLatest(ADD_PREVIOUS_APPOINTMENT_REQUEST, addPreviousAppointment());\r\n yield takeLatest(ADD_INVOICE_REQUEST, addInvoice());\r\n yield takeLatest(ADD_RECEIPT_REQUEST, addReceipt());\r\n}\r\n\r\nexport default [profileAuthWatcher()];\r\n","import { postRequest } from \".\";\r\n\r\nconst findUri = \"/layouts/access/_find\";\r\n\r\nfunction getNotifications(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nexport default {\r\n getNotifications,\r\n};\r\n","import { takeLatest, call, put } from \"redux-saga/effects\";\r\nimport {\r\n\r\n GET_NOTIFICATIONS_REQUEST,\r\n getNotificationsSuccess,\r\n getNotificationsError\r\n\r\n} from \"../actions/notifications\";\r\nimport notificationsApi from '../api/get-notifications';\r\nimport API_CODES from \"../config/api-codes\";\r\n\r\nfunction getNotifications() {\r\n return function* (actions) {\r\n try {\r\n const { payload } = actions;\r\n const data = yield call(() => notificationsApi.getNotifications(payload));\r\n\r\n if (\r\n data &&\r\n data.messages &&\r\n data.messages[0] &&\r\n data.messages[0].code === API_CODES.SUCCESS\r\n ) {\r\n yield put(getNotificationsSuccess(JSON.parse(data?.['response']?.['scriptResult'])));\r\n } else {\r\n yield put(getNotificationsError(JSON.parse(data?.['response']?.['scriptResult'])));\r\n }\r\n } catch (error) {\r\n yield put(getNotificationsError(error));\r\n }\r\n };\r\n}\r\n\r\n\r\nexport function* profileAuthWatcher() {\r\n yield takeLatest(GET_NOTIFICATIONS_REQUEST, getNotifications());\r\n}\r\n\r\nexport default [profileAuthWatcher()];\r\n","import { all } from \"redux-saga/effects\";\r\nimport auth from \"./auth\";\r\nimport signup from \"./signup\";\r\nimport profile from \"./profile\";\r\nimport card from \"./card\";\r\nimport clinics from \"./clinics\";\r\nimport appointment from \"./appointment\";\r\nimport payment from \"./payment\";\r\nimport notifications from \"./notifications\";\r\n\r\nexport default function* rootSaga() {\r\n yield all([\r\n ...auth,\r\n ...signup,\r\n ...profile,\r\n ...card,\r\n ...clinics,\r\n ...appointment,\r\n ...payment,\r\n ...notifications,\r\n ]);\r\n}\r\n","import { createBrowserHistory } from \"history\";\r\nexport default createBrowserHistory();\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n// import './index.css';\r\nimport { Router, Switch } from \"react-router-dom\";\r\nimport { Provider } from \"react-redux\";\r\nimport App from \"./App\";\r\nimport configureStore from \"./config/store\";\r\nimport history from \"./config/history\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import createSagaMiddleware from \"redux-saga\";\r\nimport { createStore, applyMiddleware } from \"redux\";\r\nimport rootReducer from \"../reducers\";\r\nimport rootSaga from \"../sagas\";\r\nimport { composeWithDevTools } from \"redux-devtools-extension\";\r\n\r\nexport default function configureStore() {\r\n const sagaMiddleware = createSagaMiddleware();\r\n let store = null;\r\n if (process.env.REACT_APP_ENV === \"dev\") {\r\n const composeEnhancers = composeWithDevTools({});\r\n store = createStore(\r\n rootReducer,\r\n composeEnhancers(applyMiddleware(sagaMiddleware))\r\n );\r\n } else {\r\n store = createStore(rootReducer, applyMiddleware(sagaMiddleware));\r\n }\r\n sagaMiddleware.run(rootSaga);\r\n return store;\r\n}\r\n","export const CLEAR_ACCEPT_CARD_WRAPPER = \"card-wrapper\";\r\nexport const CLEAR_ACCEPT_DATE_WRAPPER = \"expdate-wrapper\";\r\nexport const CLEAR_ACCEPT_CVV_WRAPPER = \"cvv-wrapper\";\r\nexport const CLEAR_ACCEPT_CARD_ERR_WRAPPER = \"card-errors\";\r\nexport const CLEAR_ACCEPT_DATE_ERR_WRAPPER = \"expdate-errors\";\r\nexport const CLEAR_ACCEPT_CVV_ERR_WRAPPER = \"cvv-errors\";\r\nexport const CLEAR_ACCEPT_PAY_BTN_ID = \"pay\";\r\n\r\nexport const CLEAR_ACCEPT_CARD_PLACEHOLDER = \"Card Number\";\r\nexport const CLEAR_ACCEPT_DATE_PLACEHOLDER = \"MM / YY\";\r\nexport const CLEAR_ACCEPT_CVV_PLACEHOLDER = \"CVV\";\r\nexport const CLEAR_ACCEPT_CARD_LOGO_ALIGNMENT = \"right\";\r\n\r\nexport const clearAcceptGetFieldsConfig = (optionalConfig) => {\r\n return {\r\n card: {\r\n containerElementId: CLEAR_ACCEPT_CARD_WRAPPER,\r\n },\r\n expdate: {\r\n containerElementId: CLEAR_ACCEPT_DATE_WRAPPER,\r\n },\r\n cvv: {\r\n containerElementId: CLEAR_ACCEPT_CVV_WRAPPER,\r\n },\r\n ...optionalConfig,\r\n };\r\n};\r\n\r\nexport const clearAcceptGetDefaultStyles = (optionalStyles) => {\r\n return {\r\n logoAlignment: CLEAR_ACCEPT_CARD_LOGO_ALIGNMENT,\r\n placeholderText: {\r\n cardNumber: CLEAR_ACCEPT_CARD_PLACEHOLDER,\r\n expiryDate: CLEAR_ACCEPT_DATE_PLACEHOLDER,\r\n cvv: CLEAR_ACCEPT_CVV_PLACEHOLDER,\r\n },\r\n base: {\r\n borderColor: \"#eaecee\",\r\n borderStyle: \"solid\",\r\n borderWidth: \"1px\",\r\n borderRadius: \"25px\",\r\n backgroundColor: \"white\",\r\n fontSize: \"16px\",\r\n fontColor: \"#23313e\",\r\n fontWeight: \"normal\",\r\n textAlign: \"left\",\r\n padding: \"10px 20px\",\r\n focus: {\r\n borderColor: \"#eaecee\",\r\n },\r\n hover: {\r\n borderColor: \"#eaecee\",\r\n },\r\n },\r\n ...optionalStyles,\r\n };\r\n};\r\n\r\nexport const clearAcceptGetClearAcceptOptions = (\r\n optionalOptions,\r\n optionalFieldsConfig,\r\n optionalStyles\r\n) => {\r\n return {\r\n fields: clearAcceptGetFieldsConfig(optionalFieldsConfig),\r\n style: clearAcceptGetDefaultStyles(optionalStyles),\r\n ...optionalOptions,\r\n };\r\n};\r\n","const USER_SIGNUP_ACTION = \"USER/SIGNUP\";\r\n\r\nexport const USER_SIGNUP_REQUEST = `${USER_SIGNUP_ACTION}/REQUEST`;\r\nexport const USER_SIGNUP_SUCCESS = `${USER_SIGNUP_ACTION}/SUCCESS`;\r\nexport const USER_SIGNUP_ERROR = `${USER_SIGNUP_ACTION}/ERROR`;\r\nexport const USER_SIGNUP_EMAIL_DUPLICATE = `${USER_SIGNUP_ACTION}/EMAIL/DUPLICATE`;\r\n\r\nexport function userSignUpRequest(payload){\r\n return{\r\n type: USER_SIGNUP_REQUEST,\r\n payload\r\n }\r\n}\r\n\r\nexport function userSignUpSuccess(data) {\r\n return {\r\n type: USER_SIGNUP_SUCCESS,\r\n data\r\n };\r\n}\r\n\r\nexport function userSignUpError(error) {\r\n return {\r\n type: USER_SIGNUP_ERROR,\r\n error\r\n };\r\n}\r\n\r\nexport function userSignUpDuplicateEmail(error) {\r\n return {\r\n type: USER_SIGNUP_EMAIL_DUPLICATE,\r\n error\r\n };\r\n}\r\n\r\n","import { postRequest, logoutRequest, deleteRequest } from \".\";\r\n\r\n// const findUri = \"/layouts/patientapi/_find\";\r\nconst findUri = \"/layouts/access/_find\";\r\nconst logoutUri = \"/sessions/\"\r\n\r\nfunction userLogin(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nexport function findEmail(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nfunction addCard(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nfunction patientProfile(payload, authKey = \"\") {\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nfunction createSession(payload, authKey = \"\"){\r\n return postRequest(findUri, payload, authKey);\r\n}\r\n\r\nfunction logout(payload, authKey = \"\"){\r\n return deleteRequest(logoutUri + payload, authKey, undefined, undefined, { logout: true });\r\n}\r\n\r\nexport default {\r\n userLogin,\r\n findEmail,\r\n addCard,\r\n patientProfile,\r\n createSession, \r\n logout\r\n};\r\n","import React, { Fragment } from 'react';\r\n\r\nimport './TextField.css';\r\n\r\nconst TextField = (props) => {\r\n const wrapperClasses = ['simple-text-field-wrapper'];\r\n const labelClasses = ['simple-text-field-label'];\r\n const fieldClasses = ['simple-text-field', 'form-control'];\r\n const errorClasses = ['error-msg'];\r\n const warningClasses = ['warning-info'];\r\n if (props.wrapperClasses) {\r\n wrapperClasses.push(props.wrapperClasses);\r\n }\r\n if(props.meta.touched && props.meta.error){\r\n wrapperClasses.push('error-wrapper');\r\n }\r\n if (props.labelClasses) {\r\n labelClasses.push(props.labelClasses);\r\n }\r\n if (props.fieldClasses) {\r\n fieldClasses.push(props.fieldClasses);\r\n }\r\n if (props.errorClasses) {\r\n errorClasses.push(props.errorClasses);\r\n }\r\n if (props.warningClasses) {\r\n warningClasses.push(props.warningClasses);\r\n }\r\n return (\r\n \r\n \r\n {props.label && \r\n {props.label}\r\n \r\n }\r\n \r\n {props.meta.touched &&\r\n (\r\n (props.meta.error &&

{props.meta.error}

) ||\r\n (props.meta.warning &&

{props.meta.warning}

)\r\n )\r\n }\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default TextField;","const CREATE_INVOICE = \"CREATE/INVOICE\";\r\nconst CREATE_RECEIPT = \"CREATE/RECEIPT\";\r\nconst INITIATE_PAYMENT = \"INITIATE/PAYMENT\";\r\nconst CONFIRM_PAYMENT = \"CONFIRM/PAYMENT\";\r\nconst BOOK_SLOT = \"BOOK/SLOT\";\r\nconst BOOK_SLOT_FINAL = \"BOOK/SLOT/FINAL\";\r\nconst ADD_APPOINTMENT = \"ADD/APPOINTMENT\";\r\nconst ADD_PREVIOUS_APPOINTMENT = \"ADD/PREVIOUS/APPOINTMENT\";\r\nconst ADD_INVOICE = \"ADD/INVOICE\";\r\nconst ADD_RECEIPT = \"ADD/RECEIPT\";\r\nconst FIND_RECEIPT = \"FIND/RECEIPT\";\r\nconst GET_CONFORMATION = \"GET/CONFORMATION\";\r\n\r\nexport const CREATE_INVOICE_REQUEST = `${CREATE_INVOICE}/REQUEST`;\r\nexport const CREATE_INVOICE_SUCCESS = `${CREATE_INVOICE}/SUCCESS`;\r\nexport const CREATE_INVOICE_ERROR = `${CREATE_INVOICE}/ERROR`;\r\n\r\nexport const CREATE_RECEIPT_REQUEST = `${CREATE_RECEIPT}/REQUEST`;\r\nexport const CREATE_RECEIPT_SUCCESS = `${CREATE_RECEIPT}/SUCCESS`;\r\nexport const CREATE_RECEIPT_ERROR = `${CREATE_RECEIPT}/ERROR`;\r\n\r\nexport const INITIATE_PAYMENT_REQUEST = `${INITIATE_PAYMENT}/REQUEST`;\r\nexport const INITIATE_PAYMENT_SUCCESS = `${INITIATE_PAYMENT}/SUCCESS`;\r\nexport const INITIATE_PAYMENT_ERROR = `${INITIATE_PAYMENT}/ERROR`;\r\n\r\nexport const CONFIRM_PAYMENT_REQUEST = `${CONFIRM_PAYMENT}/REQUEST`;\r\nexport const CONFIRM_PAYMENT_SUCCESS = `${CONFIRM_PAYMENT}/SUCCESS`;\r\nexport const CONFIRM_PAYMENT_ERROR = `${CONFIRM_PAYMENT}/ERROR`;\r\n\r\nexport const FIND_RECEIPT_REQUEST = `${FIND_RECEIPT}/REQUEST`;\r\nexport const FIND_RECEIPT_SUCCESS = `${FIND_RECEIPT}/SUCCESS`;\r\nexport const FIND_RECEIPT_ERROR = `${FIND_RECEIPT}/ERROR`;\r\n\r\nexport const GET_CONFORMATION_REQUEST = `${GET_CONFORMATION}/REQUEST`;\r\nexport const GET_CONFORMATION_SUCCESS = `${GET_CONFORMATION}/SUCCESS`;\r\nexport const GET_CONFORMATION_ERROR = `${GET_CONFORMATION}/ERROR`;\r\n\r\nexport const BOOK_SLOT_REQUEST = `${BOOK_SLOT}/REQUEST`;\r\nexport const BOOK_SLOT_SUCCESS = `${BOOK_SLOT}/SUCCESS`;\r\nexport const BOOK_SLOT_ERROR = `${BOOK_SLOT}/ERROR`;\r\n\r\nexport const BOOK_SLOT_FINAL_REQUEST = `${BOOK_SLOT_FINAL}/REQUEST`;\r\nexport const BOOK_SLOT_FINAL_SUCCESS = `${BOOK_SLOT_FINAL}/SUCCESS`;\r\nexport const BOOK_SLOT_FINAL_ERROR = `${BOOK_SLOT_FINAL}/ERROR`;\r\n\r\nexport const ADD_APPOINTMENT_REQUEST = `${ADD_APPOINTMENT}/REQUEST`;\r\nexport const ADD_APPOINTMENT_SUCCESS = `${ADD_APPOINTMENT}/SUCCESS`;\r\nexport const ADD_APPOINTMENT_ERROR = `${ADD_APPOINTMENT}/ERROR`;\r\n\r\nexport const ADD_PREVIOUS_APPOINTMENT_REQUEST = `${ADD_PREVIOUS_APPOINTMENT}/REQUEST`;\r\nexport const ADD_PREVIOUS_APPOINTMENT_SUCCESS = `${ADD_PREVIOUS_APPOINTMENT}/SUCCESS`;\r\nexport const ADD_PREVIOUS_APPOINTMENT_ERROR = `${ADD_PREVIOUS_APPOINTMENT}/ERROR`;\r\n\r\nexport const ADD_INVOICE_REQUEST = `${ADD_INVOICE}/REQUEST`;\r\nexport const ADD_INVOICE_SUCCESS = `${ADD_INVOICE}/SUCCESS`;\r\nexport const ADD_INVOICE_ERROR = `${ADD_INVOICE}/ERROR`;\r\n\r\nexport const ADD_RECEIPT_REQUEST = `${ADD_RECEIPT}/REQUEST`;\r\nexport const ADD_RECEIPT_SUCCESS = `${ADD_RECEIPT}/SUCCESS`;\r\nexport const ADD_RECEIPT_ERROR = `${ADD_RECEIPT}/ERROR`;\r\n\r\nexport const SELECT_SAVED_CARD = \"SELECT/SAVED/CARD\"\r\n\r\n\r\nexport function createInvoiceRequest(payload) {\r\n return {\r\n type: CREATE_INVOICE_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function createInvoiceSuccess(data) {\r\n return {\r\n type: CREATE_INVOICE_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function createInvoiceError(error) {\r\n return {\r\n type: CREATE_INVOICE_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function createReceiptRequest(payload) {\r\n return {\r\n type: CREATE_RECEIPT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function createReceiptSuccess(data) {\r\n return {\r\n type: CREATE_RECEIPT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function createReceiptError(error) {\r\n return {\r\n type: CREATE_RECEIPT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function initiatePaymentRequest(payload) {\r\n return {\r\n type: INITIATE_PAYMENT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function initiatePaymentSuccess(data) {\r\n return {\r\n type: INITIATE_PAYMENT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function initiatePaymentError(error) {\r\n return {\r\n type: INITIATE_PAYMENT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function confirmPaymentRequest(payload) {\r\n return {\r\n type: CONFIRM_PAYMENT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function confirmPaymentSuccess(data) {\r\n return {\r\n type: CONFIRM_PAYMENT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function confirmPaymentError(error) {\r\n return {\r\n type: CONFIRM_PAYMENT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function findReceiptRequest(payload) {\r\n return {\r\n type: FIND_RECEIPT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function findReceiptSuccess(data) {\r\n return {\r\n type: FIND_RECEIPT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function findReceiptError(error) {\r\n return {\r\n type: FIND_RECEIPT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function getConformationRequest(payload) {\r\n return {\r\n type: GET_CONFORMATION_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function getConformationSuccess(data) {\r\n return {\r\n type: GET_CONFORMATION_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function getConformationError(error) {\r\n return {\r\n type: GET_CONFORMATION_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function bookFinalSlotRequest(payload) {\r\n return {\r\n type: BOOK_SLOT_FINAL_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function bookFinalSlotSuccess(data) {\r\n return {\r\n type: BOOK_SLOT_FINAL_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function bookFinalSlotError(error) {\r\n return {\r\n type: BOOK_SLOT_FINAL_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function bookSlotRequest(payload) {\r\n return {\r\n type: BOOK_SLOT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function bookSlotSuccess(data) {\r\n return {\r\n type: BOOK_SLOT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function bookSlotError(error) {\r\n return {\r\n type: BOOK_SLOT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function addPreviousAppointmentRequest(payload) {\r\n return {\r\n type: ADD_PREVIOUS_APPOINTMENT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function addPreviousAppointmentSuccess(data) {\r\n return {\r\n type: ADD_PREVIOUS_APPOINTMENT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function addPreviousAppointmentError(error) {\r\n return {\r\n type: ADD_PREVIOUS_APPOINTMENT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function addAppointmentRequest(payload) {\r\n return {\r\n type: ADD_APPOINTMENT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function addAppointmentSuccess(data) {\r\n return {\r\n type: ADD_APPOINTMENT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function addAppointmentError(error) {\r\n return {\r\n type: ADD_APPOINTMENT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function addInvoiceRequest(payload) {\r\n return {\r\n type: ADD_INVOICE_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function addInvoiceSuccess(data) {\r\n return {\r\n type: ADD_INVOICE_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function addInvoiceError(error) {\r\n return {\r\n type: ADD_INVOICE_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function addReceiptRequest(payload) {\r\n return {\r\n type: ADD_RECEIPT_REQUEST,\r\n payload,\r\n };\r\n}\r\n\r\nexport function addReceiptSuccess(data) {\r\n return {\r\n type: ADD_RECEIPT_SUCCESS,\r\n data,\r\n };\r\n}\r\n\r\nexport function addReceiptError(error) {\r\n return {\r\n type: ADD_RECEIPT_ERROR,\r\n error,\r\n };\r\n}\r\n\r\nexport function selectSavedCard(card = null) {\r\n return {\r\n type: SELECT_SAVED_CARD,\r\n card,\r\n };\r\n}\r\n"],"sourceRoot":""}