{"version":3,"sources":["utils/request/index.js","utils/user/index.js","constants.js","i18n.js","components/ProtectedRoute/ProtectedRoute.jsx","containers/ForgotPassword/Components.js","components/SelectLangs/SelectLangs.jsx","components/Header/Components.js","components/SideMenu/Components.js","components/SideMenu/SideMenu.jsx","components/Header/Header.jsx","components/ForgotPasswordForm/Components.js","components/ForgotPasswordForm/ForgotPasswordForm.jsx","containers/ForgotPassword/ForgotPassword.jsx","containers/Index/Components.js","components/Dialog/Dialog.jsx","components/JivoButton/index.jsx","components/LoginForm/Components.js","components/InstallPWAiOSModal/Components.js","components/InstallPWAiOSModal/InstallPWAiOSModal.jsx","components/AcceptanceModal/Components.js","components/LoginForm/LoginForm.jsx","containers/Index/Index.jsx","containers/NotFound/NotFound.jsx","context/passeverde.jsx","containers/Home/Components.js","components/AcceptanceModal/index.jsx","containers/Home/FamilyModal.jsx","containers/Home/Home.jsx","containers/MyCard/Components.js","components/Modal/Components.js","components/Modal/Modal.jsx","components/SearchInput/SearchInput.jsx","components/VaccineTable/Components.js","components/VaccineTable/VaccineTable.jsx","components/CodeContainer/Components.js","components/Code/Components.js","components/Code/Code.jsx","components/Timer/Components.js","components/Timer/Timer.jsx","utils/accessCode/index.js","components/CodeContainer/CodeContainer.jsx","components/VaccineCodeAccordion/index.jsx","containers/MyCard/MyCard.jsx","containers/ShareDocumentInformation/Components.js","containers/ShareDocumentInformation/ShareDocumentInformation.jsx","containers/PasseVerde/Components.js","containers/PasseVerde/PasseVerde.jsx","utils/event/index.js","containers/NewPasseVerde/Components.js","components/BottomSlider/BottomSlider.jsx","components/PasseVerdeItem/Components.js","components/PasseVerdeItem/PasseVerdeItem.jsx","containers/NewPasseVerde/NewPasseVerde.jsx","containers/PasseVerdeUpload/Components.js","components/SliderPasseVerde/SliderPasseVerde.jsx","components/SelectInput/SelectInput.jsx","components/DateInput/DateInput.jsx","components/BoxUploadFile/BoxUploadFile.jsx","components/FeedbackModal/Components.js","components/FeedbackModal/FeedbackModal.jsx","containers/PasseVerdeUpload/PasseVerdeUpload.jsx","containers/DigitalCertificates/Components.js","components/HealthDigitalReccord/Components.js","components/HealthDigitalReccord/HealthDigitalReccord.jsx","components/RedirectButton/Components.js","components/RedirectButton/index.jsx","containers/DigitalCertificates/DigitalCertificates.jsx","utils/hasPasseVerde/index.js","utils/dateConfig/index.js","containers/Profile/Components.js","components/AccordionIcon/AccordionIcon.jsx","components/AccordionSummary/AccordionSummary.jsx","components/AccordionDetails/AccordionDetails.jsx","components/FormEntryText/FormEntryText.jsx","components/FormEntrySelect/FormEntrySelect.jsx","components/FormEntryDate/FormEntryDate.jsx","components/FormEntryOptions/index.jsx","containers/Profile/data/index.js","containers/Profile/Profile.jsx","containers/MyData/Components.js","components/MyDataDownloadButton/MyDataDownloadButton.jsx","containers/MyData/MyData.jsx","containers/PrivacyAndSecurity/Component.js","containers/PrivacyAndSecurity/PrivacyAndSecurity.jsx","containers/Faq/Components.js","containers/Faq/Faq.jsx","containers/FaqSelectedQuestion/Components.js","containers/FaqSelectedQuestion/FaqSelectedQuestion.jsx","components/SelectRegion/SelectRegion.jsx","components/GenerateRegionContent/GenerateRegionContent.jsx","containers/TermsAndConditions/Components.js","containers/TermsAndConditions/data/index.js","containers/TermsAndConditions/TermsAndConditions.jsx","containers/PrivacyPolicy/Components.js","containers/PrivacyPolicy/data/index.js","containers/PrivacyPolicy/PrivacyPolicy.jsx","containers/Calendar/Components.js","components/VaccinationTimeline/VaccinationTimeline.jsx","containers/Calendar/Calendar.jsx","containers/MyHealth/Components.js","components/HealthForm/Components.js","components/FormEntryTextarea/FormEntryTextarea.jsx","components/FormEntryCheckbox/FormEntryCheckbox.jsx","components/FormEntryAutocomplete/index.jsx","components/HealthForm/data/index.js","components/HealthForm/HealthForm.jsx","components/HealthEmergencyInfoForm/Components.js","components/HealthEmergencyInfoForm/HealthEmergencyInfoForm.jsx","containers/MyHealth/MyHealth.jsx","containers/MyVaccinationsCard/Components.js","containers/MyVaccinationsCard/MyVaccinationsCard.jsx","containers/UploadVaccinationsCard/Components.js","components/TOCModal/Components.js","components/TOCModal/index.jsx","components/SpecialCaseModal/SpecialCase.jsx","components/SpecialCaseModal/index.jsx","containers/UploadVaccinationsCard/UserConfirmationModal.jsx","containers/UploadVaccinationsCard/UploadVaccinationsCard.jsx","containers/ConsultVaccinationsCardStatus/Components.js","components/VaccinationCardAccordion/Components.js","components/VaccinationCardAccordion/VaccinationCardAccordion.jsx","containers/ConsultVaccinationsCardStatus/ConsultVaccinationsCardStatus.jsx","containers/MedicalCertificate/Components.js","containers/MedicalCertificate/MedicalCertificate.jsx","containers/UploadMedicalCertificate/Components.js","components/FormEntryRadio/FormEntryRadio.jsx","components/ChooseOption/ChooseOption.jsx","components/FormEntryAutocompleteFreesolo/index.jsx","containers/UploadMedicalCertificate/UploadMedicalCertificate.jsx","containers/ConsultMedicalCertificate/Components.js","components/SickNote/Components.js","components/SickNote/SickNote.jsx","components/SickNoteAccordion/Components.js","components/SickNoteAccordion/SickNoteAccordion.jsx","containers/ConsultMedicalCertificate/ConsultMedicalCertificate.jsx","containers/SiteMap/Components.js","components/ItemList/ItemList.jsx","containers/SiteMap/data/index.js","containers/SiteMap/SiteMap.jsx","components/BottomMenu/BottomMenu.jsx","containers/Checkout/Components.js","components/StripeInput/StripeInput.js","containers/Checkout/Checkout.jsx","containers/CheckoutSub/Components.js","containers/CheckoutSub/CheckoutSub.jsx","containers/AccountsManager/Components.js","containers/AccountsManager/AccountsManager.jsx","containers/AccountsManager/RegistrationForm/Components.js","containers/AccountsManager/RegistrationForm/RegistrationForm.jsx","containers/AccountsManager/CreateSubAccount.jsx","containers/Secure/Secure.jsx","containers/Loading/Loading.jsx","containers/ConfirmNewPassword/Components.js","components/NewPasswordForm/Components.js","components/NewPasswordForm/NewPasswordForm.jsx","containers/ConfirmNewPassword/ConfirmNewPassword.jsx","containers/Register/Components.js","utils/validator/index.js","containers/Register/RegistrationForm/Components.js","containers/Register/RegistrationForm/RegistrationForm.jsx","containers/Register/Register.jsx","containers/RegisterBlendway/Components.js","containers/RegisterBlendway/RegistrationForm/Components.js","containers/RegisterBlendway/RegistrationForm/RegistrationForm.jsx","containers/RegisterBlendway/Register.jsx","containers/RegisterSchools/Components.js","containers/RegisterSchools/RegistrationForm/Components.js","containers/RegisterSchools/RegistrationForm/RegistrationForm.jsx","containers/RegisterSchools/Register.jsx","containers/ResetLoginData/Components.js","components/ResetLoginDataForm/Components.js","components/ResetLoginDataForm/index.jsx","containers/ResetLoginData/ResetLoginData.jsx","containers/VoegolRegisterUpdate/Components.js","components/VoegolRegisterUpdateForm/Components.js","components/VoegolRegisterUpdateForm/index.jsx","containers/VoegolRegisterUpdate/VoegolRegisterUpdate.jsx","Website.jsx","serviceWorker.js","index.js"],"names":["generateHeaders","Authorization","localStorage","getItem","replace","request","get","path","options","axios","headers","post","body","put","patch","delete","setUser","user","serializedUser","JSON","stringify","setItem","getUser","parse","AVAILABLE_LANGUAGES","i18n","use","Backend","LanguageDetector","initReactI18next","init","debug","fallbackLng","supportedLngs","interpolation","escapeValue","react","useSuspense","backend","loadPath","ProtectedRoute","auth","protectedComponent","Component","to","ImageContainer","styled","div","useStyles","makeStyles","theme","container","zIndex","cursor","display","flexDirection","alignItems","color","absoluteContainer","position","top","right","label","paddingTop","select","marginTop","selectWhite","borderBottom","SelectLangs","notAbsoluteContainer","whiteColor","useTranslation","classes","selectedLang","setSelectedLang","useState","useEffect","language","changeLanguage","FormControl","className","InputLabel","id","Language","style","Select","disableUnderline","labelId","value","onChange","event","target","map","lang","MenuItem","key","toUpperCase","Container","section","props","image","home","AvatarBorder","MenuHeader","StyledLink","Link","close","list","width","sideMenuLogo","height","listItemText","fontSize","fontWeight","lineHeight","paddingLeft","subscriptionInfo","margin","opacity","subscriptionDate","marginBottom","bottomInfo","bottomInfoText","textAlign","SideMenu","t","state","setState","toggleDrawer","open","type","Button","onClick","marginLeft","htmlColor","Drawer","onClose","role","onKeyDown","Close","List","alt","src","ListItem","button","Typography","multiAccountAllowed","removeItem","sessionStorage","window","location","reload","moment","createdAt","format","topContainer","justifyContent","bottomContainer","padding","profilePhotoContainer","borderRadius","textContainer","title","subtitle","Header","backgroundStyle","isHome","greeting","firstName","setFirstName","background","setBackground","name","split","approvedSelfie","Avatar","selfieFile","url","variant","FormContainer","Text","FieldContainer","TextFieldContainer","ButtonsContainer","MainButton","Title","h4","CenterColumn","input","ForgotPasswordForm","loading","setLoading","submitted","setSubmitted","email","setEmail","TextField","disabled","CircularProgress","async","preventDefault","console","log","error","ForgotPassword","scrollTo","TextButton","p","DialogPopup","closeDialogHandler","onClickModal","children","hideClose","handleClose","Dialog","aria-labelledby","aria-describedby","DialogTitle","DialogContent","DialogActions","bottom","link","backgroundColor","transition","closeButton","border","JivoButton","onClickCloseButton","Box","rel","href","Cancel","ModalContainer","modalContainerActive","modalContainerDisabled","buttonContainer","marginRight","transform","boxSizing","paddingRight","img","InstallPWAiOSModal","setOpen","userAgent","navigator","toLowerCase","test","isIos","standalone","Set","RELEVANT_EMAIL_DOMAINS","Index","setAuth","history","useHistory","userData","setUserData","logged","setLogged","password","setPassword","feedback","setFeedback","dialogOpen","setDialogOpen","showPassword","setShowPassword","showJivoButton","setShowJivoButton","openRecoveryAccountModal","setOpenRecoveryAccountModal","openGeolocationModal","setOpenGeolocationModal","orderByNewestTravelHistory","a","b","Date","getTime","handleSubmitForm","result","geolocationData","data","birthday","descSortedTravelHistory","travelHistory","sort","temporaryJwt","jwt","destination","nextTripDate","push","emailDomain","has","axiosError","response","message","startsWith","infoArray","dateString","userId","userUpdatedAt","diff","handleError","ip","city","country_name","state_prov","zipcode","provider","err","showPosition","lat","coords","latitude","lon","longitude","address","road","suburb","country","postcode","commercial","centered","closable","footer","geolocation","getCurrentPosition","inputProps","autocomplete","htmlFor","Input","endAdornment","InputAdornment","IconButton","aria-label","onMouseDown","NotFound","PasseVerdeContext","createContext","PasseVerdeProvider","passeVerde","setPasseVerde","loadingPasse","setLoadingPasse","isNewUser","setIsNewUser","fetchPasseVerde","Provider","CardsContainer","RoundedCard","startColor","endColor","MainContent","SubscriptionContainer","Card","CardSubscription","HistoryContainer","HistoryCard","HistoryRow","modal","maxWidth","paper","palette","gap","boxShadow","shadows","spacing","checkboxContainer","AcceptanceModal","isSubmitting","termsAndConditionsChecked","setTermsAndConditionsChecked","privacyPolicyChecked","setPrivacyPolicyChecked","Modal","closeAfterTransition","disableBackdropClick","BackdropComponent","Backdrop","BackdropProps","timeout","Fade","in","Checkbox","checked","modalPaper","modalTitle","modalDescription","modalButtonContainer","FamilyModal","description","onClickExtraBtn","extraButton","userName","userBirthdate","text","roundedCardText","maxHeight","modalHeader","paddingBottom","textTransform","modalContent","cardText","cardTextPlus","cardContent","middleSeparator","divider","addContainer","subscriptionTitle","subscriptionSubtitle","subscriptionValue","subscriptionButton","historyCardTitleContainer","historyCardTitle","historyCardSeeAllText","historyContent","historyContentNoVaccine","historyContentNoVaccineText","noPlansAvailableText","syringeIcon","minWidth","minHeight","backgroundPosition","backgroundSize","backgroundRepeat","backgroundImage","chatButtonLink","Home","useContext","redirect","isOpenAcceptanceModal","setIsOpenAcceptanceModal","isOpenFamilyModal","setIsOpenFamilyModal","isSubmittingAcceptance","setIsSubmittingAcceptance","openPvUpdateModal","setOpenPvUpdateModal","vaccinesHistory","setVaccinesHistory","loadingPaymentData","setLoadingPaymentData","loadingAllVaccines","setLoadingAllVaccines","seeAll","setSeeAll","userHasPlan","setUserHasPlan","availablePlansToBuy","setAvailablePlansToBuy","handleCloseModal","handleClickNewPasseVerde","status","validUntil","isAfter","alert","plan","allowMultiplePv","bind","handleCloseFamilyModal","ns","scrollToRef","ref","current","offsetTop","myRef","useRef","familyPlan","hasReadFamilyModal","hasReadTOCandPolicy","isDependant","planStatus","dueDate","countryId","_id","currentPlans","plans","getUserHistory","textDecoration","Divider","length","displayName","subscriptionHeaderSubtitle","currency","price","fullWidth","size","stripePriceId","stripePriceID","checkoutUrl","createCheckout","getAllUserHistory","vac","index","tmp","applicationDate","date","especialCaseType","vaccine","h3","LogoFrame","modalBackButton","filter","leftButtonTitle","rightButtonTitle","onClickLeftButton","onClickRightButton","containerWithoutStartIcon","SearchInput","startIcon","endIcon","placeholder","Paper","component","InputBase","startAdornment","Search","Subtitle","Row","VaccineDetails","VaccineTitle","VaccineNotAdministrateTitle","VaccineSubtitle","VaccineDate","VaccineIcon","SyringeIcon","isApplicationPastDate","startDays","birthdayMoment","nowMoment","add","isBefore","accordion","details","detailsWithCode","summary","VaccineTable","vaccines","search","vaccinesToRender","vaccinesComponent","forEach","lotNumber","producer","administrated","applicationEndDays","userProfileCreationDate","isNoInfo","userBD","applicationStartDays","adminDetails","tz","pharma","Accordion","AccordionSummary","expandIcon","content","wasTranscribed","transcribedBy","hcpFullName","AccordionDetails","alignText","hcpRegistryNumber","hcpClinicName","mt","mb","mx","createRows","vaccineFiltered","useMemo","lowerSearch","includes","Content","mainColor","Img","CodeWrapper","Digit","Code","code","onCodeColor","codeArr","digit","Time","Timer","time","setTime","expireMoment","getRemainingTime","translations","ID","setTimeout","remainingTime","clearTimeout","Math","floor","removeAccessCode","calculateFinishMoment","expireAfterSeconds","calculateRemainingTime","finishMoment","now","utc","CodeContainer","documentMetadata","explanatoryTextOffCode","explanatoryTextOnCode","generateCodeText","terminateCodeText","btnColor","onCodeTextColor","storedCodeDetails","serializedCode","getAccessCode","isStoredCodeValid","codeDetails","accessCode","isExpired","hasSixDigits","isAccessCodeValid","initialCodeDetails","qrCodeUrl","setQrCodeUrl","undefined","accessCodeDetails","setNewCodeDetails","setExpireMoment","initTimer","setInitTimer","isLoading","setIsLoading","idleTimeout","setIdleTimeout","showDialog","setShowDialog","reset","useIdleTimer","onIdle","onAction","e","debounce","handleTime","newCode","QRCode","toDataURL","version","setAccessCode","VaccineCodeAccordion","codeType","imgLinkIcon","textUpdatedAt","textDate","MyCard","userVaccines","setUserVaccines","userAntibodies","setUserAntibodies","optionalVaccines","setOptionalVaccines","lastVaccineDate","setLastVaccineDate","logoUrl","setLogoUrl","clinicUrl","setClinicUrl","setBirthday","setSearch","isOpenNoVacAdministratedModal","setIsOpenNoVacAdministratedModal","officials","optional","optionals","hasSomeAdministratedVaccine","find","antibodies","logo","clinic","clinicWebsite","getUserVaccines","dates","lastDate","max","apply","dateFormated","isValid","calculateLastUpdateDate","Image","ShareDocumentInformation","documentData","LoadingContainer","ButtonContainer","RedoButton","AddToWalletButton","LoadingIndicatorContainer","newUserContainer","newUserText","userProfileContainer","avatarContainer","avatar","firstContentContainer","userNameContainer","userInfoContainer","userInfo","userInfoSeparator","statusContainer","statusText","userInfoSeparatorStatus","statusUpdated","validateText","badgeContainer","badge","badgeName","vaccineInfoContainer","vaccineType","vaccineText","wordBreak","observationContainer","observationText","vaccineInformationContainer","examsTitle","PasseVerde","isLoadingGetGoogleWalletUrl","setIsLoadingGetGoogleWalletUrl","isLoadingGetAppleWalletPass","setIsLoadingGetAppleWalletPass","userFullName","surname","isIPad","match","isIPhone","isMac","isIOS","addToAppleWallet","responseType","blob","Blob","fileURL","URL","createObjectURL","fileLink","document","createElement","fileName","setAttribute","appendChild","click","remove","addToGoogleWallet","saveToGoogleWalletUrl","statusData","PENDING","subColor","subText","icon","HourglassEmpty","REDO","Replay","INCONSISTENT","QuestionAnswer","DENIED","Warning","EXPIRED","ALERT","APPROVED","userSelfie","documentNumber","checkpointPinCode","updatedAt","validFrom","badges","Grid","item","xs","crossOrigin","approvedMetadata","protocolName","validations","validation","registryId","producerName","datetime","clinicName","addToGoogleWalletButton","observation","resultToRender","sliderContainer","slider","sliderIconsContainer","left","imgContainer","imgText","imgTextGreen","BottomSlider","Label","span","ProtocolContainer","ProtocolText","radioInput","passeVerdeImg","accordionSummary","accordionDetails","protocolImg","PasseVerdeItem","eventName","eventDate","eventPlace","availableProtocols","expanded","setExpanded","panel","isExpanded","aria-controls","Radio","protocol","buttonDisabled","NewPasseVerde","events","setEvents","selectedOption","setSelectedOption","hideTravelEvents","setHideTravelEvents","disableButton","orderEventsAlphabetically","orderValidationRuleAlphabetically","handleChangeOption","serializedEvent","setEvent","eventId","eventsToRender","eventsList","validationRuleList","contract","Object","keys","protocols","validationRules","rule","ruleName","createEventsList","eventsFiltered","isSameOrAfter","subtract","days","verifyUserTravelCondition","travelEvents","otherEvents","formatedJwt","eventsToSet","concat","getData","TitleContainer","DottedDivider","BoxUploadContainer","ApprovedDocContainer","ApprovedDocTitle","h6","SliderNoronhaWithExam","selectInput","SelectInput","initialValue","optionsToShow","option","datePicker","dialog","DateInput","locale","pt","utils","DateFnsUtils","disableFuture","inputVariant","helperText","KeyboardButtonProps","InputProps","DialogProps","titleContainer","titleIcon","uploadContainer","frame","sendStatus","letterSpacing","overflow","whiteSpace","textOverflow","buttonOutlined","blueTitle","blueTitleIcon","blueSendStatus","blueButton","blueButtonOutlined","trashIconContainer","iconButton","trashIcon","BoxUploadFile","dateComponent","componentType","onlyPdf","onlyImage","displayOnly","documentUploadedText","buttonText","buttonTextWhenDocumentUploaded","reUpload","showTrashIcon","onClickTrashIcon","secondaryColor","setFileName","imageAfterUpload","file","getElementById","files","accept","FeedbackModal","checkIcon","tocModalContent","tocModalFormControlLabel","confirmationModalPaper","confirmationModalHeader","confirmationModalContent","confirmationModalFormControlLabel","finalModalContent","finalModalButtonContainer","PasseVerdeUpload","setIsSubmitting","requiredDocuments","setRequiredDocuments","noDocumentRequired","setNoDocumentsRequired","availableRules","setAvailableRules","setProtocols","selectedValidationRules","setSelectedValidationRules","covidCertImages","setCovidCertImages","uploadedRequiredFiles","setUploadedRequiredFiles","examOrCertificationDate","setExamOrCertificationDate","loadingCovidImage","setLoadingCovidImage","currentSliderPosition","setCurrentSliderPosition","openTCModal","setOpenTCModal","openCOVID19ModalDataVerification","setOpenCOVID19ModalDataVerification","openCOVID19ModalFinal","setOpenCOVID19ModalFinal","modalState","setModalState","termsAndConditions","firstChecked","secondChecked","isOpenSubmitErrorModal","setIsOpenSubmitErrorModal","isOpenSelfieErrorModal","setIsOpenSelfieErrorModal","requiredExamOrCertificates","required","cantSubmit","handleChange","validationRulesGroupId","requiredDocs","approvedDocs","doc","protocolRule","approved","rules","availableRule","handleUpload","documentType","formData","FormData","append","imageResult","newCertImages","fileId","newUploadedRequiredFiles","getStorageEvent","getEvent","contractType","protocolId","requiredSelfie","shouldRequestIDDocUpload","shouldRequestSelfieUpload","requiredDocId","requiredIDDoc","locatorForm","availableRulesList","protocolRules","sortedRules","textA","textB","imagesToUpload","assign","defineProperty","enumerable","needSelfie","needIdentificationDocument","moveSlider","oldModalState","SliderPasseVerde","ruleDescription","newExamOrCertificationDate","handleChangeDate","referenceType","approvedID","FormControlLabel","control","sampleCollectionTime","locatorFormId","RedirectContainer","CardWrapper","DocumentDescription","ButtonWrapper","docName","overflowX","covidCertificateStatusText","covidCertificateStatusIcon","HealthDigitalReccord","documentId","documentName","uploadDate","colormap","handleShareDocument","pathname","handleDownloadDocument","documentInfoArray","documentExtension","then","res","FileDownload","Share","RedirectButton","titleColor","DigitalCertificates","userExams","exams","documents","setDocuments","hasEnterprise","setHasEnterprise","certificatesToRender","useCallback","checkedDocuments","certificatesList","alreadyHasThisDoc","checkedDocument","indexOf","exam","formattedExam","collectDate","fileUrl","exam_name","currentPasseVerde","userAvailableCertificates","certificatesFiltered","promises","Promise","all","responses","userEnterprises","catch","finally","getUserDocuments","setHasPasseVerde","passeverde","serializedPasse","monthMap","dateConfig","caption","step","getMonth","AccordionContainer","AccordionIcon","expandedPanel","transitionDuration","isOpen","visibility","labelContent","FormEntryText","onBlur","form","FormEntrySelect","FormEntryDate","defaultValue","readOnly","radioGroup","FormEntryOptions","FormLabel","RadioGroup","DOCUMENT_TYPE_OPTIONS","GENDER_OPTIONS","datepickerModal","datepicker","Profile","setData","countriesList","setCountriesList","setExpandedPanel","isPasseVerdeUser","setIsPasseVerdeUser","openDatePicker","setOpenDatePicker","updateData","field","newData","order","x","y","orderedCountries","getCountriesList","username","mobile","telephone","nationality","gender","prefix","_d","documentIssuedBy","documentFile","vaccinationCard","addressLineOne","addressLineTwo","borough","town","postalCode","getUserProfile","LinearProgress","dataFormatted","isAxiosError","onSelect","onCancel","isPopup","showHeader","headerFormat","min","confirmText","cancelText","TextAreaContainer","TextArea","textarea","SecondaryButton","DeleteAccountTextContainer","ModalButton","disabledContainer","MyDataDownloadButton","fileType","csvLink","rectifyInfoText","deleteAccountText","modalFormControlLabel","MyData","hasReadDeleteWarning","setHasReadDeleteWarning","processing","setProcessing","downloadProfileData","setDownloadProfileData","emailMessage","setEmailMessage","handleClick","handleDownloadImage","Error","splitedUrlString","fileExtension","fetch","r","download","removeChild","profileData","getProfileDownloadData","filename","context","disableEscapeKeyDown","LinkContainer","disabledButton","PrivacyAndSecurity","isPasswordSubmitting","setIsPasswordSubmitting","passwordData","setPasswordData","updatePasswordData","newPassData","repeatPassword","Body","FaqContainer","FaqTitle","FaqContent","Faq","faqsToRender","faqs","renderFaqs","faqsFiltered","faq","RateContainer","Rate","rateText","FaqSelectedQuestion","useParams","goBack","formControl","SelectRegion","region","chapterContainer","sectionContainer","subheaderContainer","h5","paragraph","GenerateRegionContent","header","headerContent","subheader","availableRegions","tocRegion1","tocRegion2","province","regionDescription","TermsAndConditions","setProvince","contentToShow","setContentToShow","privacyPolicyRegion1","privacyPolicyRegion2","PrivacyPolicy","secondaryTail","secondary","main","VaccinationTimeline","getVaccinesByTime","unit","vaccinesByWeek","timeUnit","items","timeUnitFound","findIndex","timeNumber","number","Number","finalVaccinesArray","weeksVaccine","monthsVaccine","yearsVaccine","mergedVaccines","mergeAndSortVaccines","Timeline","align","isFinal","TimelineItem","TimelineOppositeContent","TimelineSeparator","TimelineConnector","TimelineContent","elevation","vacIndex","join","renderVaccinesByTimeline","renderTimeLine","imgContainerUpdatedAt","imgContainerDate","optionalsContainer","daysByUnit","week","month","year","Calendar","selectedCountry","setSelectedCountry","countries","setCountries","hasImage","splitVaccines","normal","applicationStartTimeUnit","applicationStart","sortedVaccines","normalizedVaccines","reduce","normalizeAndSortVaccines","userCountryId","healthAuthorities","userCountry","healthAuthorityLogo","getCountries","resize","FormEntryTextarea","subtext","FormEntryCheckbox","selectedOptions","FormGroup","borderWidth","FormEntryAutocomplete","onInputChange","getOptionLabel","filterOptions","loadingText","noOptionsText","renderOption","Autocomplete","renderInput","params","popupIcon","DOCTOR_TYPE_OPTIONS","SPECIAL_NEEDS_OPTIONS","ALLERGIES_OPTIONS","BLOOD_TYPE_OPTIONS","RH_FACTOR_OPTIONS","HealthForm","userHealthForm","countryDiseases","doctorType","setDoctorType","healthData","doctorName","setDoctorName","doctorMobile","setDoctorMobile","clinicAddress","setClinicAddress","clinicPhone","setClinicPhone","specialNeeds","setSpecialNeeds","allergicTo","setAllergicTo","feverAllowedMedication","setFeverAllowedMedication","congenitalDisease","setCongenitalDisease","ongoingTreatments","setOngoingTreatments","specificMedication","setSpecificMedication","diseases","setDiseases","disease","bloodType","setBloodType","rhFactor","setRhFactor","setHeight","weight","setWeight","cndSearchQuery","setCndSearchQuery","isLoadingCnd","setIsLoadingCnd","cndOptions","setCndOptions","getCndsOptionsDelayed","query","callback","loweredQuery","queryResult","getCndsOptionsAsync","_","updatedDiseases","healthFormId","HealthEmergencyInfoForm","healthInsuranceName","setHealthInsuranceName","emergencyData","healthInsuranceNumber","setHealthInsuranceNumber","healthInsuranceCategory","setHealthInsuranceCategory","preferredEmergencyHospital","setPreferredEmergencyHospital","preferredEmergencyHospitalPhone","setPreferredEmergencyHospitalPhone","emergencyContacts","setEmergencyContacts","MyHealth","setCountryDiseases","setUserHealthForm","healthForm","MyVaccinationsCard","AddButtonContainer","AddButton","AddButtonText","TOCModal","checkboxLabel","backButtonTitle","confirmButtonTitle","alignSelf","SpecialCase","buttonTitle","rest","SpecialCaseModal","UserConfirmationModal","flexGrow","specialCaseButtonContainer","specialCase","UploadVaccinationsCard","setSpecialCase","isOpenTOCModal","setIsOpenTOCModal","isTOCChecked","setIsTOCChecked","isOpenSpecialCaseTOCModal","setIsOpenSpecialCaseTOCModal","isSpecialCaseTOCChecked","setIsSpecialCaseTOCChecked","isOpenSubmitSuccessModal","setIsOpenSubmitSuccessModal","isOpenUploadUnavailableModal","setIsOpenUploadUnavailableModal","isOpenSpecialCaseModal","setIsOpenSpecialCaseModal","isOpenUserConfirmationModal","setIsOpenUserConfirmationModal","isLoadingVaccinationCardStatus","setIsLoadingVaccinationCardStatus","isUploadingVaccinationCard","setIsUploadingVaccinationCard","isSubmittingVaccinationsCardFiles","setIsSubmittingVaccinationsCardFiles","vaccinationCardFiles","setVaccinationCardFiles","extraUploadBoxQuantity","setExtraUploadBoxQuantity","handleCloseSpecialCaseModal","handleRedirectModalButton","modalName","handleUploadFile","newVaccinationCard","allowNewUpload","statusCode","getUserVaccinationCardStatus","uploadBox","updatedExtraUploadBoxQuantity","updatedVaccinationCardFiles","handleClickRemoveUploadBox","Add","vaccinationRecords","values","accordionSummaryContent","fileIcon","docInfo","statusIcon","observationTitle","filesTitle","downloadButton","downloadIcon","VERIFIED","VaccinationCardAccordion","uploadDateLabel","analystObservationLabel","analystObservation","isDownloading","setIsDownloading","splittedRemovedUrl","hash","newFileNameWithoutHash","ConsultMedicalCertificate","isLoadingUserVaccinationsCard","setIsLoadingUserVaccinationsCard","userVaccinationsCard","setUserVaccinationsCard","orderByLatestUploadedFile","uploadDatetime","vaccinationsCardToRender","vaccinationsCardList","newIndex","userAvailableVaccinationsCard","vaccinationsCardFiltered","sortedVaccinationsCard","getUserVaccinationsCard","MedicalCertificate","PaddingLeft","FormEntryRadio","ChooseOption","toCheckData","firstOptionId","firstOptionValue","firstOptionLabel","secondOptionId","secondOptionValue","secondOptionLabel","FormEntryAutocompleteFreesolo","freeSolo","disableClearable","AntdTitle","AntdTypography","DEPENDANT_TYPE_OPTIONS","UploadMedicalCertificate","enterpriseList","setEnterpriseList","telephoneModalOptions","medicalCertificateData","setMedicalCertificateData","enterprise","doctorRegistry","intDiseaseClassification","daysOff","isAttendanceDeclaration","attendanceDeclarationDates","dependantInformation","setDependantInformation","dependantCompanion","dependantCompanionType","dependantName","dependantDegreeOfKinship","dependantTaxRelated","isLoadingUserEnterprises","setIsLoadingUserEnterprises","isSubmittingMedicalCertificateData","setIsSubmittingMedicalCertificateData","isUploadingMedicalCertificate","setIsUploadingMedicalCertificate","searchQuery","setSearchQuery","searchDoctorCrm","setSearchDoctorCrm","searchDoctorName","setSearchDoctorName","icdsOptions","setIcdsOptions","doctorCrmOptions","setDoctorCrmOptions","doctorNameOptions","setDoctorNameOptions","isLoadingIcds","setIsLoadingIcds","isLoadingDocCrm","setIsLoadingDocCrm","isLoadingDocName","setIsLoadingDocName","isBRFUser","setIsBRFUser","enterpriseClinics","setEnterpriseClinics","selectedEnterprises","setSelectedEnterprises","isOpenNoEnterpriseFoundModal","setIsOpenNoEnterpriseFoundModal","isOpenErrorModal","setIsOpenErrorModal","isOpenSuccessSubmitModal","setIsOpenSuccessSubmitModal","openConfirmTelephoneModal","setOpenConfirmTelephoneModal","selectedTelephoneModalOption","setSelectedTelephoneModalOption","selectedDocumentRelatedToWorkOption","setSelectedDocumentRelatedToWorkOption","newTelephoneNumberValue","setNewTelephoneNumberValue","setGeolocationData","telephoneNumberWasChecked","setTelephoneNumberWasChecked","isSubmitingNewNumber","setIsSubmitingNewNumber","selectedDocumentType","setSelectedDocumentType","messageApi","contextHolder","useMessage","notificationApi","contextHolderNotification","notification","useNotification","updateMedicalCertificateData","duration","destroy","updatedMedicalCertificateData","updateDependantInformation","updatedDependantInformation","filterIcdsOptions","getIcdsOptionsDelayed","getIcdsOptionsAsync","getDoctorNameOptionsDelayed","getDoctorNameOptionsAsync","getDoctorCrmOptionsDelayed","getDoctorCrmOptionsAsync","handleSubmitMedicalCertificateData","trim","some","ent","currentlyLongTermSickLeave","userPreviousSickNotes","userPreviousSickNotesFiltered","sickNote","info","placement","closeIcon","showProgress","crm","kindInformedByUser","isRelatedToWorkIncident","resultEnterprises","sortedClinics","clinics","commercialName","filteredEnterprises","features","getUserEnterprises","selectDaysOffOptions","Array","from","components","paddingLG","Spin","colorPrimary","colorBorder","hoverBorderColor","updatedSelectedEnterprises","selectedEnterprise","showSearch","optionFilterProp","filterSort","optionA","optionB","localeCompare","RangePicker","needConfirm","dependantType","uploadMedicalCertificateFile","shape","bordered","Group","block","optionType","buttonStyle","level","val","newNumber","success","handleNewTelephoneButtonClick","fullWidtd","SickNote","enterpriseName","enterpriseNameLabel","certificateDate","certificateDateLabel","verifiedDaysOff","SickNoteAccordion","userSickNotes","setUserSickNotes","sickNotesToRender","sickNotesList","userAvailableSickNotes","sickNotesFiltered","sortedData","getUserSickNotes","listItem","svg","ItemList","icons","Backup","Policy","source","ArrowForwardIos","servicesLinks","myDataLinks","informationLinks","SiteMap","ArrowBack","root","buttonRoot","selected","styledLink","iconOnly","magicButton","magicButtonImg","imgIcon","BottomMenu","pathIndex","getClassesByIndex","buttonIndex","BottomNavigation","BottomNavigationAction","showLabel","StripeInput","inputRef","elementRef","useImperativeHandle","focus","onReady","element","CheckoutForm","paymentIntent","stripe","useStripe","elements","useElements","onSubmit","payResponse","confirmCardPayment","client_secret","payment_method","card","getElement","CardNumberElement","paymentIntentID","go","toFixed","InputLabelProps","shrink","inputComponent","CardExpiryElement","CardCvcElement","justify","Checkout","paymentInt","h1","accountContainer","accountName","AccountsManager","accounts","setAccounts","fetchAccounts","handleAccountSwitch","account","acc","GroupAdd","keyboardDatePicker","RegistrationForm","eventCode","setName","touched","handleRequest","registerType","newBirthday","changeBirthday","CreateSubAccount","Secure","useRouteMatch","BottomFixedSection","exact","render","ConsultVaccinationsCardStatus","CheckoutSub","Loading","class","NewPasswordForm","useLocation","slice","token","recovered","setRecovered","confirmPassword","setConfirmPassword","handleClickShowPassword","handleMouseDownPassword","validateEmail","String","registered","setRegistered","isPassport","setIsPassport","docNumber","setDocNumber","AlternateEmail","toLocaleLowerCase","AssignmentInd","mask","Register","RegisterSpecial","isSchoolRegistry","plansOptions","setPlansOptions","setPlan","fetchPlans","School","RegisterSchools","ResetLoginDataForm","config","ResetLoginData","menuItem","menuItemImg","VoegolRegisterUpdateForm","countryDestination","openBirthDatePicker","setOpenBirthDatePicker","openTravelDatePicker","setOpenTravelDatePicker","flightNumber","setFlightNumber","flightOptions","setFlightOptions","travelDate","setTravelDate","availableFlightsByCountryDestination","flight","allFlights","travel","flights","getFlightList","FlightTakeoff","flightOption","flightNr","EventNote","minDate","selectedFlight","stringifyTravelDate","flightDatetime","departureTime","updatedTravelData","dateOfArrival","VoegolRegisterUpdate","Wrapper","Website","isAuth","getUserFromAPI","securePath","ConfirmNewPassword","isLocalhost","Boolean","hostname","registerValidSW","swUrl","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","onUpdate","onSuccess","stripePromise","loadStripe","process","require","ReactDOM","origin","addEventListener","contentType","ready","unregister","checkValidServiceWorker"],"mappings":"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pF,MAAO,qBACPoF,KAAM,kBAER,CACEpF,MAAO,6BACPoF,KAAM,sBAER,CACEpF,MAAO,sBACPoF,KAAM,kBAER,CACEpF,MAAO,sBACPoF,KAAM,iBAER,CACEpF,MAAO,cACPoF,KAAM,eAER,CACEpF,MAAO,iCACPoF,KAAM,0BAER,CACEpF,MAAO,8BACPoF,KAAM,+BAER,CACEpF,MAAO,iCACPoF,KAAM,8BAER,CACEpF,MAAO,sBACPoF,KAAM,qBAIJ6mC,GAAoB,CACxB,CACEjsC,MAAO,gBACPoF,KAAM,eAER,CACEpF,MAAO,+CACPoF,KAAM,gDAER,CACEpF,MAAO,yCACPoF,KAAM,0CAER,CACEpF,MAAO,4CACPoF,KAAM,6CAER,CACEpF,MAAO,4CACPoF,KAAM,6CAER,CACEpF,MAAO,2CACPoF,KAAM,4CAER,CACEpF,MAAO,0CACPoF,KAAM,2CAER,CACEpF,MAAO,yDACPoF,KAAM,0DAER,CACEpF,MAAO,+CACPoF,KAAM,gDAER,CACEpF,MAAO,gDACPoF,KAAM,iDAER,CACEpF,MAAO,6BACPoF,KAAM,8BAER,CACEpF,MAAO,+BACPoF,KAAM,gCAER,CACEpF,MAAO,mCACPoF,KAAM,oCAER,CACEpF,MAAO,oCACPoF,KAAM,qCAER,CACEpF,MAAO,4BACPoF,KAAM,6BAER,CACEpF,MAAO,4BACPoF,KAAM,6BAER,CACEpF,MAAO,2BACPoF,KAAM,4BAER,CACEpF,MAAO,4BACPoF,KAAM,6BAER,CACEpF,MAAO,+BACPoF,KAAM,gCAER,CACEpF,MAAO,kCACPoF,KAAM,mCAER,CACEpF,MAAO,gCACPoF,KAAM,iCAER,CACEpF,MAAO,6CACPoF,KAAM,8CAER,CACEpF,MAAO,+CACPoF,KAAM,gDAER,CACEpF,MAAO,mCACPoF,KAAM,oCAER,CACEpF,MAAO,8BACPoF,KAAM,+BAER,CACEpF,MAAO,sCACPoF,KAAM,uCAER,CACEpF,MAAO,sCACPoF,KAAM,uCAER,CACEpF,MAAO,iCACPoF,KAAM,kCAER,CACEpF,MAAO,mCACPoF,KAAM,oCAER,CACEpF,MAAO,i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","file":"static/js/main.fd099265.chunk.js","sourcesContent":["import axios from 'axios';\n\nconst getJwtToken = () => {\n const jwt = localStorage.getItem('__session');\n return (jwt || '').replace(/['\"]+/g, '');\n};\n\nconst generateHeaders = () => {\n return {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${getJwtToken()}`,\n };\n};\n\nclass Request {\n get = (path = '/', options = {}) =>\n axios(`${process.env.REACT_APP_API_URL}${path}`, {\n headers: generateHeaders(),\n ...options,\n });\n post = (path = '/', body = {}, options = {}) =>\n axios.post(`${process.env.REACT_APP_API_URL}${path}`, body, {\n headers: generateHeaders(),\n ...options,\n });\n put = (path = '/', body = {}, options = {}) =>\n axios.put(`${process.env.REACT_APP_API_URL}${path}`, body, {\n headers: generateHeaders(),\n ...options,\n });\n patch = (path = '/', body = {}, options = {}) =>\n axios.patch(`${process.env.REACT_APP_API_URL}${path}`, body, {\n headers: generateHeaders(),\n ...options,\n });\n delete = (path = '/', options = {}) =>\n axios.delete(`${process.env.REACT_APP_API_URL}${path}`, {\n headers: generateHeaders(),\n ...options,\n });\n}\n\nconst request = new Request();\n\nexport { request };\n","const setUser = (user) => {\n const serializedUser = JSON.stringify(user);\n localStorage.setItem('__user', serializedUser);\n}\n\nconst getUser = () => {\n const serializedUser = localStorage.getItem('__user');\n const deserializedUser = JSON.parse(serializedUser);\n return deserializedUser;\n}\n\nexport {\n setUser,\n getUser,\n};","export const AVAILABLE_LANGUAGES = ['de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ro', 'ru', 'th', 'uk', 'zh'];\nexport const FALLBACK_LANGUAGE = 'pt';\nexport const VERSION = '2.0.13';","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\n\nimport Backend from 'i18next-http-backend';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport { FALLBACK_LANGUAGE, AVAILABLE_LANGUAGES } from './constants';\n\ni18n\n .use(Backend)\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n debug: false,\n\n fallbackLng: FALLBACK_LANGUAGE,\n supportedLngs: AVAILABLE_LANGUAGES,\n\n interpolation: {\n escapeValue: false,\n },\n react: {\n useSuspense: false,\n },\n backend: {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n },\n });\n\nexport default i18n;","import React from \"react\";\nimport { Redirect } from \"react-router-dom\";\n\nconst ProtectedRoute = ({ auth, protectedComponent }) => {\n if ((typeof protectedComponent === 'function') && auth === true) {\n const Component = protectedComponent;\n return \n } else if (auth === false) {\n return \n } else {\n return null;\n }\n}\n\nexport default ProtectedRoute;","import styled from \"styled-components\";\n\nconst ImageContainer = styled.div`\n display: flex;\n justify-content: center;\n padding: 15px;\n margin-top: 35px;\n box-sizing: border-box;\n`;\n\n\nexport {\n ImageContainer,\n};","import React, { useEffect, useState } from 'react';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport FormControl from '@material-ui/core/FormControl';\nimport { Language } from '@material-ui/icons';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { AVAILABLE_LANGUAGES } from '../../constants';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n zIndex: 3,\n cursor: 'pointer',\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n color: 'white'\n },\n absoluteContainer: {\n position: 'absolute',\n top: 0,\n right: 12,\n zIndex: 3,\n cursor: 'pointer',\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n label: {\n position: 'relative',\n paddingTop: '16px',\n },\n select: {\n marginTop: '0 !important',\n },\n selectWhite: {\n marginTop: '0 !important',\n borderBottom: '1px solid #FFFFFF',\n\n '& .MuiSelect-icon': {\n color: 'white'\n },\n },\n}));\n\nconst SELECTED_LANG = 'immunie-app-selectedLang';\n\nconst SelectLangs = ({ notAbsoluteContainer, whiteColor }) => {\n const { i18n } = useTranslation();\n const classes = useStyles();\n\n const [selectedLang, setSelectedLang] = useState('pt');\n\n const changeLanguage = (value) => {\n i18n.changeLanguage(value);\n localStorage.setItem(SELECTED_LANG, value);\n setSelectedLang(value);\n };\n\n useEffect(() => {\n const language = localStorage.getItem(SELECTED_LANG);\n if (language) {\n i18n.changeLanguage(language);\n setSelectedLang(language);\n } else {\n localStorage.setItem(SELECTED_LANG, 'pt');\n }\n //eslint-disable-next-line\n }, []);\n\n return (\n \n \n \n \n changeLanguage(event.target.value)}\n >\n {AVAILABLE_LANGUAGES.map(lang => (\n {lang.toUpperCase()}\n ))}\n \n \n )\n}\n\nexport default SelectLangs;","import styled from \"styled-components\";\n\nconst Container = styled.section`\n width: 100%;\n display: flex;\n align-items: center;\n flex-direction: column;\n background-image: url(${(props) => props.image});\n background-repeat: no-repeat;\n background-size: contain;\n height: ${(props) => (props.home ? \"220px\" : \"130px\")};\n position: relative;\n z-index: 0;\n`;\n\nconst AvatarBorder = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 53.594px;\n height: 54.594px;\n position: relative;\n &:before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border-radius: 50%;\n padding: 5px;\n background: linear-gradient(135deg, #ffffff, #ffffff);\n background: -webkit-linear-gradient(310deg, #ffffff, #ffffff);\n -webkit-mask: linear-gradient(#fff 0 0) content-box,\n linear-gradient(#fff 0 0);\n -webkit-mask-composite: destination-out;\n mask-composite: exclude;\n }\n`;\n\nexport { Container, AvatarBorder };\n","import styled from 'styled-components';\nimport { Link } from \"react-router-dom\";\n\nconst MenuHeader = styled.div`\n margin-bottom: 42px;\n display: flex;\n justify-content: center;\n`\nconst StyledLink = styled(Link)`\n text-decoration: none;\n`\n\nexport {\n MenuHeader,\n StyledLink,\n}","import React, { useState } from \"react\";\nimport { getUser } from \"../../utils/user\";\nimport { MenuHeader, StyledLink } from \"./Components\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { Drawer, Button, List, ListItem, Typography } from \"@material-ui/core\";\nimport { Close as CloseIcon } from \"@material-ui/icons\";\nimport MenuIcon from \"@material-ui/icons/Menu\";\nimport { VERSION } from \"../../constants\";\nimport { useTranslation } from \"react-i18next\";\nimport moment from \"moment\";\n\nconst useStyles = makeStyles({\n close: {\n position: \"absolute\",\n top: \"15px\",\n right: \"15px\",\n color: \"#3893D0\",\n cursor: \"pointer\",\n zIndex: 100,\n },\n\n list: {\n width: 292,\n paddingTop: 0,\n },\n\n sideMenuLogo: {\n width: 120,\n height: 120,\n },\n\n listItemText: {\n fontSize: \"20px\",\n fontWeight: \"bold\",\n color: \"#3893D0\",\n lineHeight: \"55px\",\n paddingLeft: \"10px\",\n },\n\n subscriptionInfo: {\n margin: \"0 auto\",\n marginTop: \"auto\",\n fontWeight: \"bold\",\n fontSize: 16,\n opacity: 0.6,\n },\n\n subscriptionDate: {\n margin: \"0 auto\",\n marginBottom: 20,\n fontSize: 12,\n opacity: 0.6,\n },\n\n bottomInfo: {\n margin: \"0 auto\",\n marginTop: \"auto\",\n marginBottom: 10,\n opacity: 0.6,\n },\n\n bottomInfoText: {\n textAlign: \"center\",\n fontSize: 14,\n },\n});\n\nexport default function SideMenu() {\n const { t } = useTranslation(\"common\");\n const classes = useStyles();\n const [state, setState] = useState(false);\n const user = getUser();\n\n const toggleDrawer = (open) => (event) => {\n if (\n event.type === \"keydown\" &&\n (event.key === \"Tab\" || event.key === \"Shift\")\n ) {\n return;\n }\n\n setState(open);\n };\n\n const logoutHandler = () => {\n localStorage.removeItem(\"__session\");\n localStorage.removeItem(\"__user\");\n sessionStorage.removeItem(\"access_code\");\n localStorage.removeItem(\"__user_passeverde\");\n window.location.reload(true);\n };\n\n return (\n
\n \n \n \n \n \n
\n \n
\n \n \n \n \n \n \n \n {t(\"SIDEBAR_PROFILE\")}\n \n \n \n \n \n \n {t(\"SIDEBAR_FAQS\")}\n \n \n \n \n \n \n {t(\"SIDEBAR_TOC\")}\n \n \n \n \n \n \n {t(\"SIDEBAR_PRIVACY_POLICY\")}\n \n \n \n {user?.multiAccountAllowed ? (\n \n \n \n Dependentes\n \n \n \n ) : null}\n {user && (\n
\n \n \n {t(\"SIDEBAR_LOGOUT\")}\n \n \n
\n )}\n
\n
\n
\n {user && (\n <>\n \n {t(\"SIDEBAR_USER_SINCE\")}:\n \n \n {`${moment(user?.createdAt).format(\"DD/MM/YYYY\")} -\n ${moment(user?.createdAt).format(\"HH:mm\")}`}\n \n \n )}\n \n {t(\"APP_VERSION_TEXT\")}: {VERSION}\n \n
\n \n \n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport SelectLangs from \"../../components/SelectLangs/SelectLangs\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { Container, AvatarBorder } from \"./Components\";\nimport SideMenu from \"../SideMenu/SideMenu\";\nimport { Avatar, Typography } from \"@material-ui/core\";\nimport { Link } from \"react-router-dom\";\n\nconst useStyles = makeStyles(() => ({\n topContainer: {\n paddingTop: 20,\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-around\",\n },\n\n bottomContainer: {\n padding: 5,\n marginTop: 10,\n width: \"90%\",\n display: \"flex\",\n alignItems: \"center\",\n },\n\n profilePhotoContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 60,\n height: 60,\n borderRadius: \"50%\",\n },\n\n textContainer: {\n paddingLeft: 15,\n height: 60,\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-evenly\",\n },\n\n title: {\n fontSize: 23,\n color: \"#FFF\",\n fontWeight: \"bold\",\n },\n\n subtitle: {\n color: \"#FFF\",\n },\n}));\n\nconst Header = ({ backgroundStyle, user, isHome, greeting, subtitle }) => {\n const [firstName, setFirstName] = useState(null);\n const [background, setBackground] = useState(\"/assets/rectangle-home.svg\");\n const classes = useStyles();\n\n useEffect(() => {\n if (backgroundStyle) {\n if (backgroundStyle === \"BLUE\") {\n setBackground(\"/assets/rectangle-blue.svg\");\n }\n if (backgroundStyle === \"GREEN\") {\n setBackground(\"/assets/rectangle-green.svg\");\n }\n if (backgroundStyle === \"PURPLE\") {\n setBackground(\"/assets/rectangle-purple.svg\");\n }\n if (backgroundStyle === \"ORANGE\") {\n setBackground(\"/assets/rectangle-orange.svg\");\n }\n if (backgroundStyle === \"PINK\") {\n setBackground(\"/assets/rectangle-pink.svg\");\n }\n }\n }, [backgroundStyle]);\n\n useEffect(() => {\n if (isHome && user) {\n setFirstName(user.name.split(\" \")[0]);\n }\n }, [isHome, user]);\n\n return (\n \n
\n \n \n \n \n \n
\n {isHome && (\n
\n {user?.approvedSelfie ? (\n \n \n \n ) : (\n \n )}\n {user ? (\n
\n \n {greeting}, {firstName}!\n \n {subtitle}\n
\n ) : (\n
\n \n {greeting}\n \n {subtitle}\n
\n )}\n
\n )}\n
\n );\n};\n\nexport default Header;\n","import styled from \"styled-components\";\n\nconst FormContainer = styled.div`\n width: 80%;\n margin: 0 auto;\n`;\n\nconst Text = styled.div`\n width: 100%;\n padding: 32px 0;\n text-align: center;\n font-size: 14px;\n line-height: 20px;\n`\n\nconst FieldContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : '0px'};\n`;\n\nconst TextFieldContainer = styled.div`\n margin-bottom: 15px;\n margin-left: 10px;\n width: 100%;\n`;\n\nconst ButtonsContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\n\nconst MainButton = styled.button`\n background-color: #4AB6FF;\n border: 1px solid #3893d0;\n border-radius: 23px;\n color: white;\n font-weight: bold;\n width: 100%;\n height: 40px;\n text-transform: uppercase;\n transition: all 350ms cubic-bezier(.175, .885, .32, 1.275);\n margin-top: 20px;\n cursor: pointer;\n\n &:hover {\n background-color: #4AA6FF;\n }\n`;\n\nconst SecondaryButton = styled.button`\n background-color: #FFFFFF;\n border: 1px solid #7B7B7B;\n border-radius: 8px;\n color: black;\n width: 100%;\n height: 40px;\n margin-top: ${props => props.marginTop ? props.marginTop : '0px'};\n cursor: pointer;\n`;\n\nconst Title = styled.h4`\n color: #5D5D5D;\n font-size: 16px;\n margin: 0;\n margin-bottom: 10px; \n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: 20%;\n`;\n\nexport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n SecondaryButton,\n Title,\n Text,\n CenterColumn\n};","import React, { useState } from 'react';\nimport axios from 'axios';\nimport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n Title,\n Text,\n CenterColumn,\n} from './Components';\nimport TextField from '@material-ui/core/TextField';\nimport AccountCircle from '@material-ui/icons/AccountCircle';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport FormControl from '@material-ui/core/FormControl';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles((theme) => ({\n input: {\n width: '95%',\n },\n}));\n\nconst ForgotPasswordForm = (props) => {\n const { t } = useTranslation('forgetPasswordPage');\n const classes = useStyles();\n\n const [loading, setLoading] = useState(false);\n const [submitted, setSubmitted] = useState(false);\n\n const selectedLang = localStorage.getItem('immunie-app-selectedLang');\n\n // Fields\n const [email, setEmail] = useState('');\n\n const onSubmit = async (event) => {\n try {\n event.preventDefault();\n setLoading(true);\n\n await axios.post(\n `${process.env.REACT_APP_API_URL}/client-app/forgot-password?lang=${selectedLang ? selectedLang.toUpperCase() : 'PT'}`,\n {\n email: email,\n }\n );\n\n console.log(selectedLang);\n setLoading(false);\n setSubmitted(true);\n } catch (error) {\n setLoading(false);\n console.log('[RegistrationForm] Error:', error);\n }\n };\n\n return (\n
\n \n \n {t('RECOVERY_PASSWORD')}\n \n {submitted ? (\n {t('SUBMIT_SUCCESS_RESPONSE')}\n ) : (\n \n \n \n \n setEmail(event.target.value)}\n disabled={loading}\n />\n \n \n \n )}\n {loading ? (\n \n \n \n ) : (\n \n {!submitted && (\n \n {t('SUBMIT')}\n \n )}\n \n )}\n \n
\n );\n};\n\nexport default ForgotPasswordForm;\n","import React, { useEffect } from \"react\";\nimport { ImageContainer } from './Components';\nimport Header from \"../../components/Header/Header\";\nimport ForgotPasswordForm from \"../../components/ForgotPasswordForm/ForgotPasswordForm\";\nimport { useTranslation } from 'react-i18next';\n\nconst ForgotPassword = (props) => {\n const { t } = useTranslation('forgetPasswordPage');\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n return (\n <>\n \n \n \n \n \n \n );\n}\n\nexport default ForgotPassword;\n","import styled from \"styled-components\";\n\nconst ImageContainer = styled.div`\n display: flex;\n justify-content: center;\n padding: 15px;\n margin-top: 15px;\n box-sizing: border-box;\n`;\n\nconst FormContainer = styled.div`\n width: 80%;\n margin: 0 auto;\n position: relative;\n`;\n\nconst Title = styled.h4`\n color: #5d5d5d;\n font-size: 16px;\n margin: 0;\n margin-bottom: 10px;\n`;\n\nconst FieldContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: ${(props) =>\n props.marginBottom ? props.marginBottom : \"0px\"};\n`;\n\nconst TextFieldContainer = styled.div`\n margin-bottom: 15px;\n margin-left: 10px;\n width: 100%;\n`;\n\nconst ButtonsContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\n\nconst MainButton = styled.button`\n background-color: #4ab6ff;\n border: 1px solid #3893d0;\n border-radius: 23px;\n color: white;\n font-weight: bold;\n width: 100%;\n height: 40px;\n text-transform: uppercase;\n transition: all 350ms cubic-bezier(0.175, 0.885, 0.32, 1.275);\n margin-top: 10px;\n cursor: pointer;\n\n &:hover {\n background-color: #4aa6ff;\n }\n`;\n\nconst SecondaryButton = styled.button`\n background-color: #ffffff;\n border: 1px solid #7b7b7b;\n border-radius: 8px;\n color: black;\n width: 100%;\n height: 40px;\n margin-top: ${(props) => (props.marginTop ? props.marginTop : \"0px\")};\n cursor: pointer;\n`;\n\nconst TextButton = styled.p`\n color: #3297db;\n font-weight: bold;\n text-align: center;\n text-decoration: none !important;\n width: 100%;\n margin-top: ${(props) => (props.marginTop ? props.marginTop : \"0px\")};\n cursor: pointer;\n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`;\n\nexport {\n Title,\n MainButton,\n TextButton,\n CenterColumn,\n FormContainer,\n ImageContainer,\n FieldContainer,\n SecondaryButton,\n ButtonsContainer,\n TextFieldContainer,\n};\n","import React from 'react';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\n\nexport default function DialogPopup({ open, closeDialogHandler, onClickModal, children, hideClose = false }) {\n\n const handleClose = () => {\n closeDialogHandler && closeDialogHandler(false);\n };\n\n return (\n { }}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n {\"Immunie Alert\"}\n \n {children}\n \n \n {!hideClose && }\n \n \n );\n}","import React from \"react\";\nimport { makeStyles, Box, Link } from \"@material-ui/core\";\nimport { Cancel } from \"@material-ui/icons\";\n\nconst useStyles = makeStyles({\n container: {\n position: \"fixed\",\n bottom: 84,\n right: 20,\n },\n\n link: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 60,\n height: 60,\n borderRadius: 30,\n backgroundColor: \"#159343\",\n transition: \"0.2s\",\n \"&:hover\": {\n opacity: 0.8,\n },\n },\n\n closeButton: {\n position: \"absolute\",\n right: 54,\n bottom: -12,\n backgroundColor: \"transparent\",\n border: \"none\",\n cursor: \"pointer\",\n transition: \"0.2s\",\n \"&:hover\": {\n opacity: 0.8,\n },\n },\n});\n\nconst JivoButton = ({ onClickCloseButton }) => {\n const classes = useStyles();\n\n return (\n \n \n \"Jivo\n \n\n \n \n \n \n );\n};\n\nexport default JivoButton;\n","import styled from \"styled-components\";\n\nconst FormContainer = styled.div`\n width: 80%;\n margin: 0 auto;\n position: relative;\n`;\n\nconst Title = styled.h4`\n color: #5D5D5D;\n font-size: 16px;\n margin: 0;\n margin-bottom: 10px; \n`;\n\nconst FieldContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : '0px'};\n`;\n\nconst TextFieldContainer = styled.div`\n margin-bottom: 15px;\n margin-left: 10px;\n width: 100%;\n`;\n\nconst ButtonsContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\n\nconst MainButton = styled.button`\n background-color: #4AB6FF;\n border: 1px solid #3893d0;\n border-radius: 23px;\n color: white;\n font-weight: bold;\n width: 100%;\n height: 40px;\n text-transform: uppercase;\n transition: all 350ms cubic-bezier(.175, .885, .32, 1.275);\n margin-top: 10px;\n cursor: pointer;\n\n &:hover {\n background-color: #4AA6FF;\n }\n`;\n\nconst SecondaryButton = styled.button`\n background-color: #FFFFFF;\n border: 1px solid #7B7B7B;\n border-radius: 8px;\n color: black;\n width: 100%;\n height: 40px;\n margin-top: ${props => props.marginTop ? props.marginTop : '0px'};\n cursor: pointer;\n`;\n\nconst TextButton = styled.p`\n color: #3297DB;\n font-weight: bold;\n text-align: center;\n text-decoration: none !important;\n width: 100%;\n margin-top: ${props => props.marginTop ? props.marginTop : '0px'};\n cursor: pointer;\n`;\n\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`;\n\nexport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n SecondaryButton,\n TextButton,\n Title,\n CenterColumn,\n};","import styled from \"styled-components\";\n\nconst ModalContainer = styled.div`\n width: 310px;\n top: 350px;\n left: 0px;\n position: absolute;\n margin: auto;\n background-color: #f2f8ff;\n border-radius: 10px;\n z-index: 2000;\n`;\n\nexport {\n ModalContainer,\n};","import React, { useState, useEffect } from 'react';\nimport { ModalContainer } from './Components';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) => ({\n modalContainerActive: {\n display: 'block',\n },\n modalContainerDisabled: {\n display: 'none',\n },\n buttonContainer: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end'\n },\n close: {\n padding: 5,\n marginRight: 20,\n fontSize: '12px',\n fontWeight: 'bold',\n textAlign: 'right',\n backgroundColor: 'transparent',\n border: 'transparent',\n transform: ('translateY(30%)')\n },\n container: {\n display: 'flex',\n boxSizing: 'border-box',\n paddingLeft: 5,\n paddingRight: 5,\n textAlign: 'center'\n },\n img: {\n width: '20px',\n height: '20px',\n marginLeft: 5,\n marginRight: 5\n }\n}));\n\nexport default function InstallPWAiOSModal() {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n\n const isIos = () => {\n const userAgent = window.navigator.userAgent.toLowerCase();\n return /iphone|ipad|ipod/.test(userAgent);\n }\n // Detects if device is in standalone mode\n const isInStandaloneMode = () => ('standalone' in window.navigator) && (window.navigator.standalone);\n\n useEffect(() => {\n if (isIos() && !isInStandaloneMode()) {\n setOpen(true);\n }\n }, [])\n\n return (\n \n
\n setOpen(false)}\n >\n X\n \n
\n
\n

Install this webapp on your iOS, tap\n \n and then 'Add to Home Screen'\n

\n
\n \n );\n}","import styled from 'styled-components';\n\nconst Button = styled.button`\n width: 140px;\n height: 30px;\n color: #FFFFFF;\n font-size: 14px;\n font-weight: bold;\n text-transform: uppercase;\n background-color: #00A859;\n letter-spacing: -0.5px;\n border: none;\n border-radius: 15px;\n margin-top: 20px;\n transition: .2s;\n cursor: pointer;\n`;\n\nexport {\n Button\n}","import React, { useState } from 'react';\nimport { Redirect, Link, useHistory } from 'react-router-dom';\nimport axios from 'axios';\nimport { setUser } from '../../utils/user';\nimport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n TextButton,\n Title,\n CenterColumn,\n} from './Components';\nimport TextField from '@material-ui/core/TextField';\nimport Input from '@material-ui/core/Input';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport IconButton from '@material-ui/core/IconButton';\nimport Visibility from '@material-ui/icons/Visibility';\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\nimport AccountCircle from '@material-ui/icons/AccountCircle';\nimport LockIcon from '@material-ui/icons/Lock';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport FormControl from '@material-ui/core/FormControl';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Dialog from '../Dialog/Dialog';\nimport InstallPWAiOSModal from '../InstallPWAiOSModal/InstallPWAiOSModal';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\nimport { Box, Typography } from '@material-ui/core';\nimport { Button } from '../AcceptanceModal/Components';\n\nconst useStyles = makeStyles(() => ({\n input: {\n width: '95%',\n },\n}));\n\nconst RELEVANT_EMAIL_DOMAINS = new Set([\n 'substituirinterne.com',\n 'substituirunimed.com',\n 'substituir.com',\n]);\n\nconst LoginForm = ({ setAuth }) => {\n const { t } = useTranslation('loginPage');\n const history = useHistory();\n\n const [loading, setLoading] = useState(false);\n const [logged, setLogged] = useState(false);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [openRecoveryAccountModal, setOpenRecoveryAccountModal] = useState(false);\n const [userData, setUserData] = useState()\n\n const [feedback, setFeedback] = useState(null);\n const classes = useStyles();\n\n // Fields\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n\n // Configuration\n const [showPassword, setShowPassword] = useState(false);\n\n const handleClickShowPassword = () => {\n setShowPassword(!showPassword);\n };\n\n const handleMouseDownPassword = (event) => {\n event.preventDefault();\n };\n\n const orderByNewestTravelHistory = (a, b) => {\n return new Date(a.createdAt).getTime() > new Date(b.createdAt).getTime()\n ? - 1\n : new Date(a.createdAt).getTime() < new Date(b.createdAt).getTime()\n ? 1\n : 0\n };\n\n const handleRecovery = async (event) => {\n setOpenRecoveryAccountModal(false)\n try {\n event.preventDefault();\n setLoading(true);\n\n await axios.post(\n `${process.env.REACT_APP_API_URL}/client-app/recovery`,\n {\n userId: userData\n }\n );\n\n setFeedback(\"Conta foi restabelecida com sucesso, por favor efetuar o login\")\n setDialogOpen(true)\n } catch (error) {\n console.log(error)\n } finally {\n setLoading(false)\n }\n };\n\n const onSubmit = async (event) => {\n if (!email || !password) {\n setFeedback(t('VALIDATION_COMPLETE_ALL_FIELDS_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n try {\n event.preventDefault();\n setLoading(true);\n\n const result = await axios.post(\n `${process.env.REACT_APP_API_URL}/client-app/login`,\n {\n email: email,\n password: password,\n }\n );\n\n const userBirthDate = result.data?.user?.birthday;\n\n if (!userBirthDate) {\n const descSortedTravelHistory = result.data?.user?.travelHistory\n .sort(orderByNewestTravelHistory);\n\n const state = {\n temporaryJwt: result.data?.jwt,\n destination: descSortedTravelHistory[0]?.destination,\n nextTripDate: result.data?.user?.nextTripDate,\n };\n\n history.push('/voegol-register-update', state)\n return;\n }\n\n const userEmail = result.data?.user?.email;\n const emailDomain = userEmail.split('@')[1];\n\n const redirectToUpdate = RELEVANT_EMAIL_DOMAINS.has(emailDomain);\n\n if (redirectToUpdate) {\n const state = {\n temporaryJwt: result.data?.jwt,\n };\n\n history.push('/reset-login-data', state)\n return;\n }\n\n localStorage.setItem('__session', result.data.jwt);\n setUser(result.data.user);\n setAuth(true);\n setLogged(true);\n } catch (error) {\n setLoading(false);\n\n const axiosError = error.response?.data\n if (axiosError.message?.startsWith(\"user blocked\")) {\n // Deal with blocked user\n const infoArray = axiosError.message.split(\" - \");\n const dateString = infoArray[1];\n const userId = infoArray[2];\n const userUpdatedAt = moment(dateString)\n const diff = moment().diff(userUpdatedAt, 'days');\n if (diff > 30) {\n setFeedback(\"Conta excluída pelo usuário há mais de 30 dias\");\n } else {\n setUserData(userId)\n setFeedback(`Você solicitou a exclusão de sua conta há ${diff} dias`)\n setOpenRecoveryAccountModal(true)\n }\n return\n }\n\n setFeedback(t('SUBMIT_VALIDATION_ERROR_RESPONSE'));\n setDialogOpen(true);\n console.log('[LoginForm] Error:', error);\n }\n };\n\n return (\n
\n {logged && }\n \n \n {t('INSERT_LOGIN_INFORMATIONS')}\n \n \n \n \n setEmail(event.target.value)}\n disabled={loading}\n inputProps={{\n autocomplete: 'off',\n 'aria-autocomplete': 'off',\n }}\n />\n \n \n \n\n \n \n \n \n \n {t('PASSWORD_PLACEHOLDER')}\n \n setPassword(event.target.value)}\n disabled={loading}\n endAdornment={\n \n \n {showPassword ? : }\n \n \n }\n inputProps={{\n autocomplete: 'off',\n 'aria-autocomplete': 'off',\n }}\n />\n \n \n \n {loading ? (\n \n \n \n ) : (\n \n \n {t('SUBMIT')}\n \n
\n \n \n {t('FORGET_PASSWORD')}\n \n \n
\n
\n )}\n
\n \n {feedback}\n \n \n \n {feedback}\n \n \n \n \n \n
\n );\n};\n\nexport default LoginForm;\n","import React, { useEffect, useState } from \"react\";\nimport { Redirect, Link, useHistory } from \"react-router-dom\";\n\nimport axios from \"axios\";\nimport moment from \"moment\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Button as AntDButton, Modal } from \"antd\";\n\nimport Input from \"@material-ui/core/Input\";\nimport LockIcon from \"@material-ui/icons/Lock\";\nimport TextField from \"@material-ui/core/TextField\";\nimport { Box, Typography } from \"@material-ui/core\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Visibility from \"@material-ui/icons/Visibility\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\nimport AccountCircle from \"@material-ui/icons/AccountCircle\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\n\nimport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n TextButton,\n Title,\n CenterColumn,\n ImageContainer,\n} from \"./Components\";\nimport { setUser } from \"../../utils/user\";\nimport Header from \"../../components/Header/Header\";\nimport Dialog from \"../../components/Dialog/Dialog\";\nimport JivoButton from \"../../components/JivoButton\";\nimport LoginForm from \"../../components/LoginForm/LoginForm\";\nimport { Button } from \"../../components/AcceptanceModal/Components\";\nimport InstallPWAiOSModal from \"../../components/InstallPWAiOSModal/InstallPWAiOSModal\";\n\nconst useStyles = makeStyles(() => ({\n input: {\n width: \"95%\",\n },\n}));\n\nconst RELEVANT_EMAIL_DOMAINS = new Set([\n \"substituirinterne.com\",\n \"substituirunimed.com\",\n \"substituir.com\",\n]);\n\nconst Index = ({ setAuth }) => {\n const classes = useStyles();\n const history = useHistory();\n const { t } = useTranslation(\"loginPage\");\n\n const [email, setEmail] = useState(\"\");\n const [userData, setUserData] = useState();\n const [logged, setLogged] = useState(false);\n const [password, setPassword] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [feedback, setFeedback] = useState(null);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [showPassword, setShowPassword] = useState(false);\n const [showJivoButton, setShowJivoButton] = useState(true);\n // const [geolocationData, setGeolocationData] = useState(false);\n const [openRecoveryAccountModal, setOpenRecoveryAccountModal] =\n useState(false);\n const [openGeolocationModal, setOpenGeolocationModal] = useState(false);\n\n const handleHideJivoButton = () => {\n setShowJivoButton(false);\n };\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n const handleClickShowPassword = () => {\n setShowPassword(!showPassword);\n };\n\n const handleMouseDownPassword = (event) => {\n event.preventDefault();\n };\n\n const orderByNewestTravelHistory = (a, b) => {\n return new Date(a.createdAt).getTime() > new Date(b.createdAt).getTime()\n ? -1\n : new Date(a.createdAt).getTime() < new Date(b.createdAt).getTime()\n ? 1\n : 0;\n };\n\n const handleRecovery = async (event) => {\n setOpenRecoveryAccountModal(false);\n try {\n event.preventDefault();\n setLoading(true);\n\n await axios.post(`${process.env.REACT_APP_API_URL}/client-app/recovery`, {\n userId: userData,\n });\n\n setFeedback(\n \"Conta foi restabelecida com sucesso, por favor efetuar o login\"\n );\n setDialogOpen(true);\n } catch (error) {\n console.log(error);\n } finally {\n setLoading(false);\n }\n };\n\n const onSubmit = async (event) => {\n if (!email || !password) {\n setFeedback(t(\"VALIDATION_COMPLETE_ALL_FIELDS_ERROR\"));\n setDialogOpen(true);\n return;\n }\n\n event.preventDefault();\n setOpenGeolocationModal(true);\n };\n\n const handleSubmitForm = async (geolocationData) => {\n try {\n setLoading(true);\n\n const result = await axios.post(\n `${process.env.REACT_APP_API_URL}/client-app/login`,\n {\n email: email,\n geolocationData,\n password: password,\n }\n );\n\n const userBirthDate = result.data?.user?.birthday;\n\n if (!userBirthDate) {\n const descSortedTravelHistory = result.data?.user?.travelHistory.sort(\n orderByNewestTravelHistory\n );\n\n const state = {\n temporaryJwt: result.data?.jwt,\n destination: descSortedTravelHistory[0]?.destination,\n nextTripDate: result.data?.user?.nextTripDate,\n };\n\n history.push(\"/voegol-register-update\", state);\n return;\n }\n\n const userEmail = result.data?.user?.email;\n const emailDomain = userEmail.split(\"@\")[1];\n\n const redirectToUpdate = RELEVANT_EMAIL_DOMAINS.has(emailDomain);\n\n if (redirectToUpdate) {\n const state = {\n temporaryJwt: result.data?.jwt,\n };\n\n history.push(\"/reset-login-data\", state);\n return;\n }\n\n localStorage.setItem(\"__session\", result.data.jwt);\n setUser(result.data.user);\n setAuth(true);\n setLogged(true);\n } catch (error) {\n setLoading(false);\n\n const axiosError = error.response?.data;\n if (axiosError.message?.startsWith(\"user blocked\")) {\n // Deal with blocked user\n const infoArray = axiosError.message.split(\" - \");\n const dateString = infoArray[1];\n const userId = infoArray[2];\n const userUpdatedAt = moment(dateString);\n const diff = moment().diff(userUpdatedAt, \"days\");\n if (diff > 30) {\n setFeedback(\"Conta excluída pelo usuário há mais de 30 dias\");\n } else {\n setUserData(userId);\n setFeedback(`Você solicitou a exclusão de sua conta há ${diff} dias`);\n setOpenRecoveryAccountModal(true);\n }\n return;\n }\n\n setFeedback(t(\"SUBMIT_VALIDATION_ERROR_RESPONSE\"));\n setDialogOpen(true);\n console.log(\"[LoginForm] Error:\", error);\n }\n };\n\n const handleError = async (error) => {\n try {\n setLoading(true);\n\n const { data: ip } = await axios.get(\n `https://whats-my-ip-delta.vercel.app/`\n );\n\n if (ip) {\n const {\n data: { city, country_name, state_prov, zipcode },\n } = await axios.get(\n `https://api.ipgeolocation.io/ipgeo?apiKey=${process.env.REACT_APP_IPGEOLOCATION_API_KEY}&ip=${ip}`\n );\n\n handleSubmitForm({\n provider: \"IP\",\n location: `${city}, ${state_prov}, ${country_name} - ${zipcode}`,\n });\n }\n } catch (err) {\n setLoading(false);\n console.log(err);\n }\n };\n\n const showPosition = async (position) => {\n const lat = position.coords.latitude;\n const lon = position.coords.longitude;\n\n if (lat && lon) {\n try {\n setLoading(true);\n\n const {\n data: {\n address: {\n city,\n road,\n state,\n suburb,\n country,\n postcode,\n commercial,\n },\n },\n } = await axios.get(\n `https://geocode.maps.co/reverse?lat=${lat}&lon=${lon}&api_key=${process.env.REACT_APP_GEOCODE_API_KEY}`\n );\n\n handleSubmitForm({\n provider: \"GPS\",\n location: `${road}, ${suburb}, ${city}, ${state}, ${country} - ${postcode}`,\n });\n } catch (error) {\n setLoading(false);\n console.log(error);\n }\n }\n };\n\n return (\n <>\n \n Acesso à localização\n

\n }\n footer={[\n {\n navigator.geolocation.getCurrentPosition(\n showPosition,\n handleError\n );\n\n setLoading(true);\n setOpenGeolocationModal(false);\n }}\n >\n Prosseguir\n ,\n ]}\n // onOk={() => setOpenGeolocationModal(false)}\n >\n
\n

\n A Immunie requer acesso à localização para garantir a sua segurança\n e integridade dos processos.\n

\n

\n Todos os dados são criptografados e armazenados em conformidade com\n as diretrizes da LGPD, garantindo a privacidade das informações.\n

\n
\n \n \n {/* */}\n\n
\n {logged && }\n \n \n {t(\"INSERT_LOGIN_INFORMATIONS\")}\n \n \n \n \n setEmail(event.target.value)}\n disabled={loading}\n inputProps={{\n autocomplete: \"off\",\n \"aria-autocomplete\": \"off\",\n }}\n />\n \n \n \n\n \n \n \n \n \n {t(\"PASSWORD_PLACEHOLDER\")}\n \n setPassword(event.target.value)}\n disabled={loading}\n endAdornment={\n \n \n {showPassword ? : }\n \n \n }\n inputProps={{\n autocomplete: \"off\",\n \"aria-autocomplete\": \"off\",\n }}\n />\n \n \n \n {loading ? (\n \n \n \n ) : (\n \n {t(\"SUBMIT\")}\n
\n \n \n {t(\"FORGET_PASSWORD\")}\n \n \n
\n
\n )}\n
\n \n {feedback}\n \n \n \n {feedback}\n \n \n \n \n \n
\n\n \n \"logo\n \n\n {showJivoButton && (\n \n )}\n \n );\n};\n\nexport default Index;\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nconst NotFound = (props) => {\n return (\n
\n

Sorry (404)

\n

Page not found!

\n Go to Index\n
\n );\n}\n\nexport default NotFound;\n","import React, {\n createContext,\n useState,\n useEffect,\n} from 'react';\nimport { getUser } from '../utils/user';\nimport { request } from '../utils/request';\n\nexport const PasseVerdeContext = createContext();\n\nexport const PasseVerdeProvider = ({ children }) => {\n const [passeVerde, setPasseVerde] = useState(null);\n const [loadingPasse, setLoadingPasse] = useState(true);\n const [isNewUser, setIsNewUser] = useState(false);\n\n const user = getUser();\n\n useEffect(() => {\n const fetchPasseVerde = async () => {\n try {\n setLoadingPasse(true);\n const { data: result } = await request.get(\n `/client-app/passe-verde-certificate?id=${user.id}`\n );\n setPasseVerde(result);\n } catch (error) {\n setIsNewUser(true);\n } finally {\n setLoadingPasse(false);\n }\n };\n\n fetchPasseVerde();\n //eslint-disable-next-line\n }, []);\n\n return (\n \n {children}\n \n );\n}\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-image: linear-gradient(#F6F9FE, #FFFFFF);\n min-height: 100vh;\n padding-bottom: 75px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`\n\nconst Button = styled.button`\n width: 140px;\n height: 30px;\n color: #FFFFFF;\n font-size: 14px;\n font-weight: bold;\n text-transform: uppercase;\n background-color: #2D80C6;\n letter-spacing: -0.5px;\n border: none;\n border-radius: 15px;\n margin-top: 20px;\n transition: .2s;\n cursor: pointer;\n align-self: center;\n margin-top: 90px;\n\n &:hover {\n background-color: #49aad6;\n };\n\n &:disabled {\n background-color: #CCCCCC;\n cursor: not-allowed;\n };\n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: 20px;\n margin-bottom: 30px;\n`;\n\nconst CardsContainer = styled.div`\n width: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-evenly;\n margin-bottom: 30px;\n`;\n\nconst RoundedCard = styled.div`\n background-image: linear-gradient(${props => props.startColor}, ${props => props.endColor});\n display: flex;\n width: 165px;\n height: 150px;\n flex-direction: column;\n color: white;\n border-radius: 35px;\n box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);\n justify-content: center;\n align-items: center;\n cursor: pointer;\n`;\n\nconst MainContent = styled.div`\n width: 100%; \n display: flex; \n align-items: center; \n flex-direction: column;\n`;\n\nconst SubscriptionContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 10px;\n`;\n\nconst Card = styled.div`\n position: relative;\n background-color: #FFF;\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n width: 165px;\n height: 170px;\n flex-direction: column;\n color: #999999;\n border-radius: 35px 35px 0 0;\n box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.05);\n cursor: pointer;\n`;\n\nconst CardSubscription = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n width: 80%;\n height: 220px;\n flex-direction: column;\n background-color: #FFF;\n color: #5D5D5D;\n border-radius: 13px;\n box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.05);\n padding: 10px;\n cursor: pointer;\n`\nconst HistoryContainer = styled.div`\n width: 95%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 30px;\n box-sizing: border-box;\n`;\n\nconst HistoryCard = styled.div`\n display: flex;\n align-items: center;\n width: 95%;\n max-width: 380px;\n flex-direction: column;\n background-color: #FFF;\n color: #5D5D5D;\n box-sizing: border-box;\n border-radius: 5px 5px 0px 0px;\n box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.05);\n margin-top: 20px;\n margin-bottom: 30px;\n`\n\nconst HistoryRow = styled.div`\n box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);\n border-radius: 6px;\n min-height: 20px;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 5px 10px;\n justify-content: space-between;\n margin-bottom: 10px;\n`;\n\n\nexport {\n Container,\n CenterColumn,\n CardsContainer,\n RoundedCard,\n MainContent,\n SubscriptionContainer,\n Card,\n CardSubscription,\n HistoryContainer,\n HistoryCard,\n Button,\n HistoryRow,\n};\n","import React, { useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport {\n Backdrop,\n Box,\n Checkbox,\n Fade,\n Modal,\n makeStyles,\n} from '@material-ui/core';\nimport { Button } from './Components';\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '95%',\n maxWidth: '420px',\n margin: '0 auto',\n },\n\n paper: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: 10,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n gap: '10px',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n\n checkboxContainer: {\n display: 'flex',\n },\n}));\n\nexport const AcceptanceModal = ({\n id,\n onClick,\n open,\n isSubmitting,\n}) => {\n const { t } = useTranslation('common');\n const classes = useStyles();\n\n const [termsAndConditionsChecked, setTermsAndConditionsChecked] = useState(false);\n const [privacyPolicyChecked, setPrivacyPolicyChecked] = useState(false);\n\n const disabled = !privacyPolicyChecked || !termsAndConditionsChecked || isSubmitting;\n\n return (\n \n \n \n \n \n \n\n \n setTermsAndConditionsChecked(!termsAndConditionsChecked)}\n name=\"terms-and-conditions-acceptance\"\n />\n\n \n \n\n \n setPrivacyPolicyChecked(!privacyPolicyChecked)}\n name=\"privacy-policy-acceptance\"\n />\n\n \n \n\n \n {\n isSubmitting\n ? t('ACCEPTANCE_MODAL_SUBMITTING_TEXT')\n : t('ACCEPTANCE_MODAL_CONFIRM_BUTTON')\n }\n \n \n \n \n )\n};","import React from 'react';\nimport {\n makeStyles,\n Backdrop,\n Fade,\n Modal,\n Typography\n} from \"@material-ui/core\";\nimport { Button } from './Components';\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '90%',\n maxWidth: '420px',\n margin: '0 auto',\n boxSizing: 'border-box',\n },\n\n modalPaper: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: 10,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n\n modalTitle: {\n textAlign: \"center\",\n width: '100%',\n marginTop: 10,\n marginBottom: 20,\n fontWeight: \"bold\",\n },\n\n modalDescription: {\n marginBottom: 20,\n fontSize: '16px',\n fontWeight: 'bold',\n textAlign: 'justify'\n },\n\n modalButtonContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-around\",\n flexDirection: \"column\",\n width: \"100%\",\n },\n}));\n\nexport const FamilyModal = ({\n id,\n title,\n description,\n button,\n open,\n disabled = false,\n onClick,\n onClickExtraBtn,\n extraButton = \"\",\n userName,\n userBirthdate,\n}) => {\n const classes = useStyles();\n\n return (\n \n \n
\n \n {title?.text}\n \n \n {description?.text}\n \n
\n {userName}\n {userBirthdate}\n
\n
\n \n {button?.text}\n \n {\n extraButton ?\n \n {extraButton}\n \n : null\n }\n
\n
\n
\n \n )\n};","import React, { useEffect, useState, useRef, useContext } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\nimport { getUser } from \"../../utils/user\";\nimport { request } from \"../../utils/request\";\nimport {\n Container,\n CenterColumn,\n CardsContainer,\n RoundedCard,\n MainContent,\n SubscriptionContainer,\n Card,\n CardSubscription,\n HistoryContainer,\n HistoryCard,\n HistoryRow,\n} from \"./Components.js\";\nimport Header from \"../../components/Header/Header\";\nimport JivoButton from \"../../components/JivoButton\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport moment from \"moment-timezone\";\nimport { Box, Link } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport {\n Typography,\n Button,\n Divider,\n Modal,\n Backdrop,\n Fade,\n} from \"@material-ui/core\";\nimport { PasseVerdeContext } from \"../../context/passeverde\";\nimport { AcceptanceModal } from \"../../components/AcceptanceModal\";\nimport { FamilyModal } from \"./FamilyModal\";\n\nconst useStyles = makeStyles((theme) => ({\n roundedCardText: {\n fontSize: \"18px\",\n fontWeight: \"bold\",\n textAlign: \"center\",\n },\n\n modal: {\n width: \"95%\",\n maxWidth: \"410px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n margin: \"auto\",\n boxSizing: \"border-box\",\n },\n\n modalPaper: {\n maxHeight: \"95%\",\n backgroundColor: theme.palette.background.paper,\n borderRadius: 10,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexDirection: \"column\",\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n boxSizing: \"border-box\",\n },\n\n modalHeader: {\n textAlign: \"center\",\n width: 290,\n paddingTop: 10,\n paddingBottom: 20,\n fontSize: \"18px\",\n fontWeight: \"bold\",\n color: \"#FF0066\",\n textTransform: \"uppercase\",\n },\n\n modalContent: {\n paddingBottom: 20,\n fontSize: \"14px\",\n fontWeight: \"bold\",\n color: \"#808080\",\n textAlign: \"justify\",\n },\n\n cardText: {\n fontSize: \"14px\",\n fontWeight: \"bold\",\n marginLeft: \"5px\",\n },\n\n cardTextPlus: {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginLeft: \"5px\",\n },\n\n cardContent: {\n position: \"absolute\",\n top: \"-15px\",\n display: \"flex\",\n alignItems: \"center\",\n },\n\n middleSeparator: {\n height: \"65px\",\n width: \"100%\",\n marginTop: \"45px\",\n },\n\n divider: {\n width: \"95%\",\n height: \"2px\",\n color: \"#CCCCCC\",\n },\n\n addContainer: {\n width: \"95%\",\n display: \"flex\",\n justifyContent: \"space-between\",\n },\n\n subscriptionTitle: {\n fontSize: \"23px\",\n fontWeight: \"bold\",\n },\n\n subscriptionSubtitle: {\n fontSize: \"17px\",\n },\n\n subscriptionValue: {\n fontSize: \"30px\",\n },\n\n subscriptionButton: {\n borderRadius: \"35px\",\n fontWeight: \"bold\",\n },\n\n historyCardTitleContainer: {\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n backgroundColor: \"#FE9201\",\n borderRadius: \"5px 5px 0px 0px\",\n color: \"#FFF\",\n boxSizing: \"border-box\",\n },\n\n historyCardTitle: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n padding: \"2px\",\n marginLeft: \"10px\",\n },\n\n historyCardSeeAllText: {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n padding: \"2px\",\n marginRight: \"10px\",\n cursor: \"pointer\",\n },\n\n historyContent: {\n width: \"95%\",\n display: \"flex\",\n flexDirection: \"column\",\n paddingTop: 10,\n },\n\n historyContentNoVaccine: {\n height: \"70px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n\n historyContentNoVaccineText: {\n color: \"#B1B1B1\",\n fontSize: \"12px\",\n fontWeight: \"bold\",\n },\n\n noPlansAvailableText: {\n color: \"#808080\",\n fontWeight: \"bold\",\n fontSize: \"14px\",\n width: \"250px\",\n textAlign: \"center\",\n marginBottom: 30,\n marginTop: 20,\n },\n\n syringeIcon: {\n minWidth: 30,\n minHeight: 30,\n width: 30,\n height: 30,\n marginRight: 10,\n borderRadius: \"50%\",\n backgroundPosition: \"center\",\n backgroundSize: \"55%\",\n backgroundRepeat: \"no-repeat\",\n backgroundImage: \"url('/assets/syringe_white.svg')\",\n },\n\n chatButtonLink: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 68,\n height: 30,\n borderRadius: 30,\n backgroundColor: \"#159343\",\n transition: \"0.2s\",\n \"&:hover\": {\n opacity: 0.8,\n },\n },\n}));\n\nconst Home = (props) => {\n const classes = useStyles();\n const { t } = useTranslation([\"homePage\", \"common\"]);\n const { loadingPasse, passeVerde } = useContext(PasseVerdeContext);\n\n const history = useHistory();\n\n const redirect = (to) => {\n history.push(to);\n };\n\n const [isOpenAcceptanceModal, setIsOpenAcceptanceModal] = useState(false);\n const [isOpenFamilyModal, setIsOpenFamilyModal] = useState(false);\n const [isSubmittingAcceptance, setIsSubmittingAcceptance] = useState(false);\n\n const [openPvUpdateModal, setOpenPvUpdateModal] = useState(false);\n const [vaccinesHistory, setVaccinesHistory] = useState(null);\n const [loading, setLoading] = useState(true);\n const [loadingPaymentData, setLoadingPaymentData] = useState(false);\n const [loadingAllVaccines, setLoadingAllVaccines] = useState(false);\n const [seeAll, setSeeAll] = useState(false);\n const [userHasPlan, setUserHasPlan] = useState(false);\n const [availablePlansToBuy, setAvailablePlansToBuy] = useState([]);\n const [showJivoButton, setShowJivoButton] = useState(true);\n\n const user = getUser();\n\n const handleHideJivoButton = () => {\n setShowJivoButton(false);\n };\n\n const handleOpenModal = () => {\n setOpenPvUpdateModal(true);\n };\n\n const handleCloseModal = () => {\n setOpenPvUpdateModal(false);\n };\n\n const handleClickNewPasseVerde = () => {\n if (!userHasPlan) {\n alert(t(\"MISSING_PLAN\"));\n return;\n }\n\n if (passeVerde?.status === \"ALERT\" || passeVerde?.status === \"PENDING\") {\n alert(t(\"USER_ALREADY_HAVE_A_PASSE_VERDE_ACTIVE_ERROR_DESCRIPTION\"));\n return;\n }\n\n if (passeVerde?.status === \"APPROVED\") {\n if (moment(passeVerde?.validUntil).isAfter()) {\n alert(t(\"USER_ALREADY_HAVE_A_PASSE_VERDE_ACTIVE_ERROR_DESCRIPTION\"));\n return;\n }\n\n if (user?.plan?.allowMultiplePv) {\n handleOpenModal();\n return;\n } else {\n alert(t(\"USER_ALREADY_HAVE_A_PASSE_VERDE_ACTIVE_ERROR_DESCRIPTION\"));\n return;\n }\n }\n\n redirect.bind(this, \"/secure/passe-verde/new\")();\n };\n\n const getAllUserHistory = async (limit) => {\n try {\n setSeeAll(true);\n setLoadingAllVaccines(true);\n const { data: result } = await request.get(\n `/client-app/history?id=${user.id}`\n );\n setVaccinesHistory(result);\n scrollToRef(myRef);\n } catch (error) {\n console.log(`[Home getAllUserHistory Error]: ${error}`);\n } finally {\n setLoadingAllVaccines(false);\n }\n };\n\n const disableCurrentPvAndCreateNew = async () => {\n // REDIRECT - se o user criar um PV ele automaticamente desativa todos os outros PVs\n redirect.bind(this, \"/secure/passe-verde/new\")();\n };\n\n const createCheckout = async (plan) => {\n setLoadingPaymentData(true);\n\n try {\n const { data: result } = await request.post(\n `/client-app/create-checkout-session`,\n {\n stripePriceId: plan.stripePriceID,\n }\n );\n window.location.replace(result.checkoutUrl);\n } catch (error) {\n console.log(error);\n } finally {\n setLoadingPaymentData(false);\n }\n };\n\n const handleSubmitAcceptance = async () => {\n try {\n setIsSubmittingAcceptance(true);\n await request.patch(`/client-app/privacy-toc-read`);\n\n window.location.reload();\n setIsOpenAcceptanceModal(false);\n } catch (err) {\n console.error(err);\n alert(t(\"ACCEPTANCE_MODAL_ERROR_DESCRIPTION\", { ns: \"common\" }));\n } finally {\n setIsSubmittingAcceptance(false);\n }\n };\n\n const handleCloseFamilyModal = async () => {\n try {\n setIsSubmittingAcceptance(true);\n await request.patch(`/client-app/family-modal-read`);\n window.location.reload();\n setIsOpenFamilyModal(false);\n } catch (err) {\n console.error(err);\n alert(t(\"ACCEPTANCE_MODAL_ERROR_DESCRIPTION\", { ns: \"common\" }));\n } finally {\n setIsSubmittingAcceptance(false);\n }\n };\n\n const scrollToRef = (ref) => window.scrollTo(0, ref.current.offsetTop);\n const myRef = useRef(null);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n if (\n user.plan?.familyPlan &&\n !user.hasReadFamilyModal &&\n user.hasReadTOCandPolicy &&\n !user.isDependant\n ) {\n setIsOpenFamilyModal(true);\n }\n //eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n const getUserHistory = async () => {\n try {\n const user = getUser();\n if (user.plan || user?.planStatus?.dueDate) {\n setUserHasPlan(true);\n } else {\n // Get all available plans to buy\n let countryId = user.country;\n if (typeof countryId === \"object\") {\n countryId = countryId._id;\n }\n const { data: result } = await request.get(\n `/client-app/country-plans/${countryId}`\n );\n setAvailablePlansToBuy((currentPlans) => result.plans);\n }\n const { data: result } = await request.get(\n `/client-app/history?id=${user.id}&limit=3`\n );\n\n setVaccinesHistory(result);\n } catch (error) {\n console.log(`[Home getUserHistory Error]: ${error}`);\n } finally {\n setLoading(false);\n }\n };\n getUserHistory();\n\n if (!user.hasReadTOCandPolicy) {\n setIsOpenAcceptanceModal(true);\n }\n //eslint-disable-next-line\n }, []);\n\n return (\n \n \n {loading || loadingPasse ? (\n \n \n \n ) : (\n <>\n
\n \n \n Em caso de dúvidas, entre em contato pelo{\" \"}\n \n \n \n \n \n Chat\n

\n \n \n
\n \n \n \n \n \n {t(\"VACCINES\")}\n \n \n\n handleClickNewPasseVerde()}\n >\n \n \n {t(\"PASSE_VERDE\")}\n \n \n \n \n \n
\n \n \n {t(\"CALENDARS\")}\n \n
\n
\n \n 37 {t(\"COUNTRIES\")}\n \n
\n \n
\n \n {t(\"CONSULT\")}\n \n
\n
\n\n \n
\n \n \n {t(\"HEALTH\")}\n \n
\n
\n \n
\n \n {t(\"UPDATE\")}\n \n +\n
\n
\n
\n \n \n
\n \n {t(\"MODAL_UPDATE_PASSE_VERDE_TITLE\")}\n \n \n {t(\"MODAL_UPDATE_PASSE_VERDE_DESCRIPTION\")}\n \n\n \n \n \n {t(\"MODAL_UPDATE_PASSE_VERDE_CONFIRM_BUTTON\")}\n \n
\n \n
\n \n \n {userHasPlan ? (\n \"\"\n ) : availablePlansToBuy.length > 0 ? (\n availablePlansToBuy.map((plan) => (\n \n \n \n {plan.displayName}\n \n \n {plan.description || t(\"UNAVAILABLE_PLAN_DESCRIPTION\")}\n \n \n \n {`${plan.currency} ${plan.price}`}\n \n \n createCheckout(plan)}\n className={classes.subscriptionButton}\n >\n {t(\"BUY_NOW\")}\n \n \n \n ))\n ) : (\n \n {t(\"UNAVAILABLE_PLANS\")}\n \n )}\n\n {(vaccinesHistory || []).length !== 0 ? (\n \n \n
\n \n {t(\"HISTORY\")}\n \n {(vaccinesHistory || []).length >= 3 && !seeAll && (\n getAllUserHistory()}\n >\n {t(\"SEE_ALL\")}\n \n )}\n {loadingAllVaccines && (\n
\n \n
\n )}\n
\n
\n {(vaccinesHistory || []).map((vac, index) => {\n if (vac) {\n const tmp = vac.applicationDate\n ? moment(vac.applicationDate).format(\"DD/MM/YYYY\")\n : moment(vac.date).format(\"DD/MM/YYYY\");\n return (\n \n \n \n {/* */}\n \n {vac.type === \"vaccine\"\n ? t(\"VACCINE\")\n : t(\"ANTIBODY\")}{\" \"}\n {vac.vaccine}\n

\n
\n \n {tmp.split(\"T\")[0]}
\n {tmp.split(\"T\")[1]}\n

\n \n );\n } else {\n return null;\n }\n })}\n \n
\n
\n ) : (\n \n \n
\n \n {t(\"HISTORY\")}\n \n
\n
\n \n {t(\"NO_HISTORY_AVAILABLE\")}\n \n
\n
\n
\n )}\n
\n {\n await handleCloseFamilyModal();\n window.location.replace(\"/secure/accounts\");\n }}\n onClickExtraBtn={handleCloseFamilyModal}\n />\n \n {!loading && !loadingPasse && showJivoButton && (\n \n )}\n \n )}\n
\n );\n};\n\nexport default Home;\n","import styled from 'styled-components';\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 75px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #FE9201;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n margin-top: 50px;\n`;\n\nconst LogoFrame = styled.div`\n width: 115px;\n height: 115px;\n border-radius: 50%;\n background-color: white;\n box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n position: relative;\n background-image: url('${(props) => props.backgroundImage}');\n`;\n\nexport {\n Container,\n Title,\n CenterColumn,\n LogoFrame,\n};\n","import styled from 'styled-components';\n\nconst Button = styled.button`\n width: 120px;\n padding: 5px;\n color: #FFFFFF;\n font-size: 12px;\n font-weight: bold;\n text-transform: uppercase;\n background-color: #00A859;\n letter-spacing: -0.5px;\n border: none;\n border-radius: 15px;\n margin-top: 20px;\n transition: .2s;\n cursor: pointer;\n`;\n\nexport {\n Button,\n}","import React from 'react';\nimport {\n makeStyles,\n Backdrop,\n Fade,\n Modal as MUIModal,\n Typography\n} from \"@material-ui/core\";\nimport { Button } from './Components';\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '90%',\n maxWidth: '420px',\n margin: '0 auto',\n boxSizing: 'border-box',\n },\n\n modalPaper: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: 10,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n\n modalTitle: {\n textAlign: \"center\",\n width: '100%',\n marginTop: 10,\n marginBottom: 20,\n fontWeight: \"bold\",\n color: '#00A859',\n },\n\n modalDescription: {\n marginBottom: 20,\n fontSize: '16px',\n fontWeight: 'bold',\n color: '#808080',\n textAlign: 'justify'\n },\n\n modalButtonContainer: {\n display: \"flex\",\n justifyContent: \"space-around\",\n width: \"100%\",\n },\n\n modalBackButton: {\n backgroundColor: '#2D80C6',\n color: '#FFFFFF',\n transition: '.2s',\n '&:hover': {\n filter: 'brightness(.9)',\n }\n },\n}));\n\nexport const Modal = ({\n id,\n title,\n description,\n open,\n disabled = false,\n leftButtonTitle,\n rightButtonTitle,\n onClickLeftButton,\n onClickRightButton,\n}) => {\n const classes = useStyles();\n\n return (\n \n \n
\n \n {title}\n \n \n {description}\n \n
\n \n {leftButtonTitle}\n \n \n {rightButtonTitle}\n \n
\n
\n
\n \n )\n};","import React from 'react';\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport {\n Paper,\n InputBase,\n IconButton\n} from '@material-ui/core';\nimport {\n Search as SearchIcon,\n ArrowBackIos as ArrowBackIcon\n} from '@material-ui/icons';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: 'calc(100% - 40px)',\n display: 'flex',\n alignItems: 'center',\n boxSizing: 'border-box',\n borderRadius: '23px',\n padding: '5px 20px 5px 11px',\n },\n\n containerWithoutStartIcon: {\n width: 'calc(100% - 40px)',\n display: 'flex',\n alignItems: 'center',\n boxSizing: 'border-box',\n borderRadius: '23px',\n padding: '5px 20px 5px 30px',\n }\n}));\n\nconst SearchInput = ({ startIcon, endIcon, onChange, onClick, value, placeholder }) => {\n const classes = useStyles();\n\n return (\n \n \n \n \n }\n endAdornment={\n endIcon &&\n \n }\n />\n \n );\n}\n\nexport default SearchInput;","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #FFFFFF;\n width: calc(100% - 40px);\n height: auto;\n padding: 10px;\n margin: 20px 0px;\n border-radius: 8px;\n box-sizing: border-box;\n box-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%);\n`;\n\nconst Subtitle = styled.h3`\n width: calc(100% - 40px);\n font-size: 20px;\n font-weight: bold;\n color: #FE9201;\n margin-top: 20px;\n margin-bottom: 0px;\n`;\n\nconst Row = styled.div`\n display: flex;\n flex-direction: row;\n margin: 10px 0px;\n align-items: center;\n width: 100%;\n`;\n\nconst VaccineDetails = styled.div`\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n`;\n\nconst VaccineTitle = styled.h4`\n margin: 0;\n padding: 0;\n font-size: 14px;\n`;\n\nconst VaccineNotAdministrateTitle = styled.h4`\n margin: 0;\n padding: 0;\n font-size: 14px;\n color: #A4A4A4;\n`;\n\nconst VaccineSubtitle = styled.p`\n margin: 0;\n padding: 0;\n font-size: 11px;\n color: #A4A4A4;\n`;\n\nconst VaccineDate = styled.div`\n width: 100%;\n`;\n\nconst VaccineIcon = styled.div`\n margin-right: 10px;\n`;\n\nconst SyringeIcon = styled.div`\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background-color: ${props => props.status};\n background-position: center;\n background-size: 55%;\n background-repeat: no-repeat;\n background-image: url('/assets/syringe_white.svg');\n`\n\nexport {\n Container,\n Subtitle,\n Row,\n VaccineDetails,\n VaccineTitle,\n VaccineNotAdministrateTitle,\n VaccineSubtitle,\n VaccineDate,\n VaccineIcon,\n SyringeIcon\n};","import React, { useMemo } from 'react';\nimport {\n Container,\n Subtitle,\n Row,\n VaccineDetails,\n VaccineTitle,\n VaccineNotAdministrateTitle,\n VaccineSubtitle,\n VaccineDate,\n VaccineIcon,\n SyringeIcon,\n} from './Components';\nimport { Box, Typography, makeStyles } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\nimport Accordion from '@material-ui/core/Accordion';\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\nimport moment from 'moment-timezone';\nimport { useTranslation } from 'react-i18next';\n\nconst isApplicationPastDate = (birthday, startDays) => {\n const birthdayMoment = moment(birthday, \"DD/MM/YYYY\");\n const nowMoment = moment();\n const shoudHaveBeenApplied = birthdayMoment\n .add(startDays || 0, 'days')\n .isBefore(nowMoment);\n return shoudHaveBeenApplied;\n};\n\nconst isNoInfo = (birthday, userProfileCreationDate, applicationEndDays) => {\n return (\n moment(userProfileCreationDate).diff(birthday, 'd') >= applicationEndDays\n );\n};\n\nconst useStyles = makeStyles((theme) => ({\n accordion: {\n border: 'none',\n padding: '0',\n boxShadow: 'none',\n '&::before': {\n backgroundColor: 'transparent',\n },\n\n '& .MuiAccordionSummary-content.Mui-expanded': {\n margin: '0px',\n },\n },\n\n details: {\n padding: '0px 32px',\n },\n\n detailsWithCode: {\n padding: '0px',\n },\n\n summary: {\n margin: '0px',\n },\n}));\n\nconst YELLOW_GROUP = '#F9E708';\nconst RED_GROUP = '#DB0623';\nconst GREY_GROUP = '#A4A4A4';\nconst GREEN_GROUP = '#00A859';\nconst BLUE_GROUP = '#ACD7FE';\n\nconst VaccineTable = ({\n vaccines,\n birthday,\n type,\n search,\n}) => {\n const { t } = useTranslation('vaccinesPage');\n const classes = useStyles();\n\n const createRows = () => {\n const vaccinesComponent = [];\n (vaccines || []).forEach((vaccine, index) => {\n let status;\n if (type === 'vaccine') {\n if (vaccine.administrated) {\n status = GREEN_GROUP;\n } else {\n if (isApplicationPastDate(birthday, vaccine.applicationEndDays)) {\n status = isNoInfo(\n vaccine.userBD,\n vaccine.userProfileCreationDate,\n vaccine.applicationEndDays\n )\n ? BLUE_GROUP\n : RED_GROUP;\n } else if (\n isApplicationPastDate(birthday, vaccine.applicationStartDays)\n ) {\n status = YELLOW_GROUP;\n } else {\n status = GREY_GROUP;\n }\n }\n // Antibody or tests\n } else {\n status = vaccine.administrated ? GREEN_GROUP : GREY_GROUP;\n }\n\n let date, lotNumber, producer;\n\n if (vaccine.administrated) {\n date = moment(vaccine.adminDetails.date).tz(\"America/Recife\").format(\"DD/MM/YYYY\");\n lotNumber = vaccine.adminDetails.lotNumber;\n producer = vaccine.adminDetails.pharma;\n }\n\n vaccinesComponent.push(\n \n }\n classes={{ content: classes.summary }}\n >\n \n \n \n \n \n {vaccine.administrated ? (\n {vaccine.name}\n ) : (\n {vaccine.name}\n )}\n\n {vaccine.administrated && (\n \n {vaccine.adminDetails.wasTranscribed ? (\n <>\n \n {t('TRANSCRIBED_BY')}:\n \n {' '}\n {vaccine.adminDetails.transcribedBy}\n \n ) : (\n <>\n {t('APPLIED_BY')}\n {' '}\n {vaccine.adminDetails.hcpFullName}\n \n )}\n \n )}\n \n \n \n {vaccine.administrated ?\n vaccine.adminDetails.wasTranscribed ? (\n \n
\n \n \n \n {t('TRANSCRIPTION_DATE_TEXT')}:\n {' '}\n \n {date}\n \n {/* \n \n {t('DATE')}:\n {' '}\n \n {vaccine.adminDetails.transcription.date\n ? vaccine.adminDetails.transcription.date\n : t('NOT_AVAILABLE_INFO')}\n */}\n \n \n {t('CARD_LOT_NUMBER')}:\n {' '}\n \n {\n vaccine.adminDetails.lotNumber\n ? vaccine.adminDetails.lotNumber\n : t('NOT_AVAILABLE_INFO')\n }\n \n \n
\n
\n ) : (\n \n
\n \n \n \n {t('CARD_REGISTRY')}:\n {' '}\n \n {vaccine.adminDetails.hcpRegistryNumber}\n \n \n {vaccine.adminDetails.hcpClinicName}\n \n \n \n {t('CARD_APPLIED_ON')}:\n {' '}\n \n {date}\n \n \n \n {t('CARD_LOT_NUMBER')}:\n {' '}\n \n {lotNumber}\n \n \n \n {t('CARD_PRODUCED_BY')}:\n {' '}\n \n {producer}\n \n \n \n {t('CARD_LOT_NUMBER')}:\n {' '}\n \n {\n vaccine.adminDetails.lotNumber\n ? vaccine.adminDetails.lotNumber\n : t('NOT_AVAILABLE_INFO')\n }\n \n \n
\n
\n ) :\n \n \n \n {t('VACCINE_NOT_REGISTRATED')}\n \n \n \n }\n
\n );\n });\n return vaccinesComponent;\n };\n\n const vaccinesToRender = createRows();\n\n const vaccineFiltered = useMemo(() => {\n const lowerSearch = search?.toLowerCase();\n return vaccinesToRender\n .filter((vaccine) => vaccine.key.toLowerCase().includes(lowerSearch));\n }, [vaccinesToRender, search]);\n\n return (\n vaccineFiltered.length > 0 &&\n <>\n {\n type === 'antibody' &&\n \n {t('OPTIONALS')}\n \n }\n \n {vaccineFiltered}\n \n \n );\n};\n\nexport default VaccineTable;\n","import styled from 'styled-components';\n\nconst Container = styled.div`\n width: calc(100% - 40px);\n box-sizing: border-box;\n`\n\nconst Content = styled.div`\n box-sizing: border-box;\n padding: 0px 32px;\n`\n\nconst Text = styled.p`\n min-height: 39px;\n font-size: 12px;\n font-weight: bold;\n line-height: 13px;\n color: #808080;\n margin: 0 auto;\n margin-top: 20px;\n text-align: center;\n`\n\nconst Button = styled.button`\n background-color: ${props => props.mainColor};\n display: block;\n width: 130px;\n max-width: 150px;\n height: 30px;\n font-size: 10px;\n color: #FFFFFF;\n text-align: center;\n line-height: 20px;\n margin: 0 auto;\n margin-bottom: 20px;\n border: none;\n border-radius: 30px;\n opacity: ${props => props.disabled ? '0.5' : '1'};\n text-transform: uppercase;\n cursor: pointer;\n`\n\nconst Img = styled.div`\n width: 210px;\n height: 170px;\n margin: auto;\n margin-bottom: 24px;\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n background-image: url('${props => props.src}');\n`\n\nexport {\n Container,\n Content,\n Text,\n Button,\n Img\n}","import styled from 'styled-components';\n\n\nconst CodeWrapper = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-evenly;\n`\nconst Digit = styled.div`\n height: 41px;\n border-radius: 5px;\n color: #808080;\n font-size: 14px;\n font-weight: bold;\n line-height: 41px;\n background-color: #D4D4D4;\n text-align: center;\n width: 100%;\n max-width: 41px;\n margin: 0 2px;\n`\n\nexport {\n Digit,\n CodeWrapper\n}","import React from 'react';\nimport {\n CodeWrapper,\n Digit\n} from './Components';\n\nconst Code = ({\n code,\n onCodeColor,\n}) => {\n\n const codeArr = (code || 'XXXXXX').split('');\n\n return (\n \n {codeArr[0] !== 'X' ?\n codeArr.map((digit, index) => {\n return \n {digit}\n \n }) :\n codeArr.map((digit, index) => {\n return \n {digit}\n \n })\n }\n \n )\n\n}\n\nexport default Code;","import styled from 'styled-components';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 10px; \n`\n\nconst Text = styled.p`\n font-size: 12px;\n`\n\nconst Time = styled.p`\n font-size: 12px;\n font-weight: bold;\n margin-left: 5px;\n`\n\nexport { Container, Text, Time }","import React, { useEffect } from 'react';\nimport { Container, Text, Time } from './Components';\n\nconst Timer = ({ time, setTime, init, expireMoment, getRemainingTime, translations }) => {\n\n let ID;\n\n if (init) {\n ID = setTimeout(() => {\n if (time) {\n const remainingTime = getRemainingTime(expireMoment);\n setTime(remainingTime);\n }\n }, 1000);\n } else {\n clearTimeout(ID);\n }\n\n useEffect(() => {\n return () => clearTimeout(ID);\n }, [ID]);\n\n return (\n \n \n {init && time\n ? `${translations('EXPIRES_IN')}:`\n : translations('NO_CODE_YET')}\n \n \n \n );\n};\n\nexport default Timer;\n","import moment from 'moment-timezone';\n\nconst setAccessCode = (code, type = 'hcp') => {\n const serializedCode = JSON.stringify(code);\n sessionStorage.setItem(`access_code_${type}`, serializedCode);\n};\nconst setIcvAccessCode = (code) => {\n const serializedCode = JSON.stringify(code);\n sessionStorage.setItem('access_icv_code', serializedCode);\n};\n\nconst getAccessCode = (type) => {\n const serializedCode = sessionStorage.getItem(`access_code_${type}`);\n const deserializedCode = JSON.parse(serializedCode);\n return deserializedCode;\n};\n\nconst getIcvAccessCode = () => {\n const serializedCode = sessionStorage.getItem('access_icv_code');\n const deserializedCode = JSON.parse(serializedCode);\n return deserializedCode;\n};\n\nconst isAccessCodeValid = (codeDetails) => {\n if (!codeDetails) return false;\n\n const { expireAfterSeconds, createdAt, code: accessCode } = codeDetails;\n\n if (!accessCode) return false;\n\n const isExpired = moment\n .tz(createdAt, 'UTC')\n .add(expireAfterSeconds, 'seconds')\n .isBefore(moment.utc());\n\n const hasSixDigits = accessCode.length === 6;\n\n return !isExpired && hasSixDigits;\n};\n\nconst removeAccessCode = () => {\n sessionStorage.removeItem('access_code');\n};\nconst removeIcvAccessCode = () => {\n sessionStorage.removeItem('access_icv_code');\n};\n\nexport {\n setAccessCode,\n getAccessCode,\n isAccessCodeValid,\n setIcvAccessCode,\n getIcvAccessCode,\n removeAccessCode,\n removeIcvAccessCode,\n};\n","import React, { useState } from 'react';\nimport moment from 'moment-timezone';\nimport {\n Container,\n Content,\n Text,\n Button,\n Img\n} from './Components';\nimport { Box } from '@material-ui/core';\nimport Code from '../Code/Code';\nimport Timer from '../Timer/Timer';\nimport { request } from '../../utils/request';\nimport { getUser } from '../../utils/user';\nimport {\n getAccessCode,\n isAccessCodeValid,\n setAccessCode,\n removeAccessCode\n} from '../../utils/accessCode';\nimport Dialog from \"../Dialog/Dialog\";\nimport { useIdleTimer } from 'react-idle-timer';\nimport QRCode from 'qrcode';\n\nconst calculateFinishMoment = ({ createdAt, expireAfterSeconds }) => {\n const finishMoment = moment.tz(createdAt, 'UTC').add(expireAfterSeconds, 'seconds');\n return finishMoment;\n}\n\nconst calculateRemainingTime = (finishMoment) => {\n const now = moment.utc();\n const remainingTime = finishMoment.diff(now, 'seconds');\n return remainingTime > 0 ? remainingTime : 0;\n}\n\nconst CodeContainer = ({\n documentMetadata,\n explanatoryTextOffCode,\n explanatoryTextOnCode,\n generateCodeText,\n terminateCodeText,\n btnColor,\n onCodeTextColor,\n marginTop,\n translations,\n}) => {\n\n // Perform initial calculation for stored code\n const user = getUser();\n const storedCodeDetails = getAccessCode();\n const isStoredCodeValid = isAccessCodeValid(storedCodeDetails)\n const initialCodeDetails = isStoredCodeValid ? storedCodeDetails : {};\n const finishMoment = isStoredCodeValid ? calculateFinishMoment(storedCodeDetails) : null;\n const remainingTime = isStoredCodeValid ? calculateRemainingTime(finishMoment) : null;\n\n //QRCode\n const [qrCodeUrl, setQrCodeUrl] = useState(undefined);\n\n //Timer of the code\n const [accessCodeDetails, setNewCodeDetails] = useState(initialCodeDetails);\n const [expireMoment, setExpireMoment] = useState(finishMoment)\n const [time, setTime] = useState(remainingTime);\n const [initTimer, setInitTimer] = useState(true);\n\n const [isLoading, setIsLoading] = useState(false);\n\n // Timer to check if user is idle\n const [idleTimeout, setIdleTimeout] = useState(isStoredCodeValid ? 1 * 60 * 1000 : 100 * 60 * 1000);\n const [showDialog, setShowDialog] = useState(false);\n\n const handleOnAction = (e) => {\n //reset idle timer\n showDialog && window.location.reload(false)\n reset();\n }\n\n const handleOnIdle = event => {\n setShowDialog(true)\n }\n\n const { reset } = useIdleTimer({\n timeout: idleTimeout,\n onIdle: handleOnIdle,\n onAction: handleOnAction,\n debounce: 500,\n })\n\n const generateQRCode = (data) => {\n QRCode.toDataURL(data, { version: 5 }, (err, url) => {\n if (err) {\n console.error(err);\n return;\n }\n\n setQrCodeUrl(url);\n })\n };\n\n const handleCode = async () => {\n try {\n setIsLoading(true)\n if (accessCodeDetails.code === undefined) {\n const { data: newCode } = await request.post('/client-app/generate-code', { userId: user._id, documentMetadata });\n\n generateQRCode(newCode.code);\n setAccessCode(newCode);\n const expireMoment = calculateFinishMoment(newCode);\n const remainingTime = calculateRemainingTime(expireMoment)\n setExpireMoment(expireMoment)\n setTime(remainingTime);\n setInitTimer(true)\n setNewCodeDetails(newCode);\n setIdleTimeout(1 * 60 * 1000)\n } else {\n await request.delete(`/client-app/delete-code/${accessCodeDetails._id}`);\n setExpireMoment(null)\n removeAccessCode()\n setTime(null);\n setInitTimer(false)\n setNewCodeDetails({});\n setQrCodeUrl(undefined);\n setIdleTimeout(100 * 60 * 1000)\n }\n setIsLoading(false)\n } catch (e) {\n setExpireMoment(null)\n removeAccessCode();\n setTime(null);\n setInitTimer(false)\n setNewCodeDetails({});\n setIsLoading(false);\n setIdleTimeout(100 * 60 * 1000)\n }\n }\n\n const handleTime = (initTimer, time) => {\n if (time < 0) {\n setTime(0);\n return;\n };\n if (!initTimer) {\n setTime(null);\n return;\n };\n setTime(time)\n }\n\n return (\n \n \n\n {qrCodeUrl && (\n \n \n \n )}\n\n \n {\n !accessCodeDetails.code ?\n \n {explanatoryTextOffCode}\n \n :\n \n {explanatoryTextOnCode}\n \n }\n handleTime(initTimer, time)}\n init={initTimer}\n translations={translations}\n />\n \n {!accessCodeDetails.code ?\n generateCodeText :\n terminateCodeText}\n \n {\n window.location.reload(false)\n }}>\n \n \n \n \n )\n\n}\n\nexport default CodeContainer;","import React from 'react';\nimport {\n Card,\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Box,\n makeStyles,\n Typography\n} from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport CodeContainer from '../CodeContainer/CodeContainer';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: 'calc(100% - 40px)',\n borderRadius: 8,\n marginTop: 10,\n },\n\n accordion: {\n border: 'none',\n padding: '2px 8px',\n boxShadow: 'none',\n '&::before': {\n backgroundColor: 'transparent',\n },\n\n '& .MuiAccordionSummary-content.Mui-expanded': {\n margin: '0px',\n },\n },\n\n title: {\n fontWeight: 'bold',\n fontSize: '.9rem',\n color: '#FE9201',\n },\n\n details: {\n padding: '0px 32px',\n },\n\n detailsWithCode: {\n padding: '0px',\n },\n\n summary: {\n margin: '0px',\n },\n}));\n\nexport const VaccineCodeAccordion = ({ t }) => {\n const classes = useStyles();\n\n return (\n \n \n }\n classes={{ content: classes.summary }}\n >\n \n {t('IMMUNIZATION_TEXT')}\n \n \n \n \n \n \n \n \n \n );\n};","import React, { useEffect, useState } from \"react\";\nimport { request } from \"../../utils/request\";\nimport { getUser } from \"../../utils/user\";\nimport { Container, Title, CenterColumn, LogoFrame } from \"./Components\";\nimport Header from \"../../components/Header/Header\";\nimport { Modal } from \"../../components/Modal/Modal\";\nimport SearchInput from \"../../components/SearchInput/SearchInput\";\nimport VaccineTable from \"../../components/VaccineTable/VaccineTable\";\nimport { VaccineCodeAccordion } from \"../../components/VaccineCodeAccordion\";\nimport moment from \"moment-timezone\";\nimport { Box, makeStyles, Typography } from \"@material-ui/core\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport LinkIcon from \"@material-ui/icons/Link\";\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = makeStyles(() => ({\n imgLinkIcon: {\n position: \"absolute\",\n right: \"5px\",\n bottom: \"0px\",\n color: \"#7dcef3\",\n },\n\n textUpdatedAt: {\n fontSize: 12,\n color: \"#808080\",\n marginTop: 10,\n },\n\n textDate: {\n fontSize: 10,\n color: \"#000000\",\n fontWeight: \"bold\",\n marginBottom: 20,\n },\n}));\n\nconst MyCard = (props) => {\n const { t } = useTranslation(\"vaccinesPage\");\n const classes = useStyles();\n\n const [userVaccines, setUserVaccines] = useState(null);\n const [userAntibodies, setUserAntibodies] = useState(null);\n const [optionalVaccines, setOptionalVaccines] = useState(null);\n const [lastVaccineDate, setLastVaccineDate] = useState(\"\");\n const [loading, setLoading] = useState(true);\n const [logoUrl, setLogoUrl] = useState(null);\n const [clinicUrl, setClinicUrl] = useState(null);\n const [birthday, setBirthday] = useState(\"\");\n const [search, setSearch] = useState(\"\");\n const [isOpenNoVacAdministratedModal, setIsOpenNoVacAdministratedModal] =\n useState(false);\n\n const handleChange = (event) => {\n setSearch(event.target.value);\n };\n\n const handleCloseModal = () => {\n setIsOpenNoVacAdministratedModal(false);\n };\n\n const handleClickConfirmModal = () => {\n setIsOpenNoVacAdministratedModal(false);\n window.location.replace(\n \"/secure/my-health/my-vaccinations-card/upload-vaccinations-card\"\n );\n };\n\n useEffect(() => {\n const getUserVaccines = async () => {\n try {\n const user = getUser();\n const { data: result } = await request.get(\n `/client-app/find-user-vaccines?id=${user.id}`\n );\n\n const officials = (result.vaccines || []).filter(\n (vaccine) => vaccine.optional === false\n );\n const optionals = (result.vaccines || []).filter(\n (vaccine) => vaccine.optional === true\n );\n\n const hasSomeAdministratedVaccine = result.vaccines.find(\n (vaccine) => vaccine.administrated === true\n );\n\n setUserVaccines(officials);\n setOptionalVaccines(optionals || []);\n setUserAntibodies(result.antibodies);\n\n const logo = user.clinic?.logo?.url || null;\n const clinicWebsite = user.clinic?.url || null;\n\n setLogoUrl(logo);\n setClinicUrl(clinicWebsite);\n\n setBirthday(result.birthday);\n\n if (!hasSomeAdministratedVaccine) {\n setIsOpenNoVacAdministratedModal(true);\n }\n } catch (error) {\n console.error(`[MyCard getUserVaccines] ${error}`);\n } finally {\n setLoading(false);\n }\n };\n getUserVaccines();\n }, []);\n\n useEffect(() => {\n const calculateLastUpdateDate = () => {\n if (!userVaccines) return;\n\n let dates = [];\n\n userVaccines.forEach((vaccine) => {\n if (vaccine.administrated) {\n dates.push(new Date(vaccine.adminDetails.date));\n }\n });\n\n const lastDate = new Date(Math.max.apply(null, dates));\n\n const dateFormated =\n (moment(lastDate).isValid() &&\n moment(lastDate).tz(\"America/Recife\").format(\"DD/MM/YYYY, HH:mm\")) ||\n \"\";\n\n setLastVaccineDate(dateFormated);\n };\n calculateLastUpdateDate();\n }, [userVaccines]);\n\n return (\n \n
\n {t(\"TITLE\")}\n {loading ? (\n \n \n \n ) : (\n <>\n {logoUrl && (\n \n \n \n \n \n )}\n {lastVaccineDate && (\n <>\n \n {t(\"VACCINATION_CARD_UPDATED_ON\")}\n \n \n {lastVaccineDate}\n \n \n )}\n\n \n \n \n\n \n\n \n {((userAntibodies || []).length > 0 ||\n (optionalVaccines || []).length > 0) && (\n \n )}\n \n )}\n\n \n \n );\n};\n\nexport default MyCard;\n","import styled from 'styled-components';\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 75px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst Image = styled.div`\n background-image: url('/assets/travel_information.svg');\n width: 100%;\n height: 200px;\n background-size: auto 100%;\n background-repeat: no-repeat;\n background-position: center;\n margin-top: -50px;\n position: relative;\n`;\n\nconst Title = styled.h3`\n text-align: center;\n margin-bottom: 0px;\n`;\n\nexport { Container, Image, Title };\n","import React from 'react';\nimport Header from '../../components/Header/Header';\nimport CodeContainer from '../../components/CodeContainer/CodeContainer';\nimport { Container, Image, Title } from './Components.js';\nimport { useTranslation } from 'react-i18next';\n\nconst ShareDocumentInformation = (props) => {\n const { t } = useTranslation('shareDocumentPage');\n\n const documentData = props.history.location?.state;\n\n return (\n \n
\n \n {t('TITLE')}\n {documentData.name}\n\n \n \n );\n};\n\nexport default ShareDocumentInformation;\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 90px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst PdfContainer = styled.div`\n background-color: #F6F9FE;\n padding-bottom: 20px;\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #00A859;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst LoadingContainer = styled.div`\n width: calc(100% - 40px);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n margin-top: 50px;\n`;\n\nconst CenterColumn = styled.div`\n width: calc(100% - 40px);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n`;\n\nconst Content = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n`;\n\nconst ButtonContainer = styled.div`\n background-color: #F6F9FE;\n padding-top: 30px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst Button = styled.button`\n min-width: 145px;\n font-size: 13px;\n font-weight: bold;\n padding: 6px 20px;\n border: none;\n border-radius: 15px;\n background-color: #00A859;\n color: #FFFFFF;\n letter-spacing: -.5px;\n cursor: pointer;\n transition: .2s;\n text-transform: uppercase;\n box-sizing: border-box;\n :hover {\n background-color: #54b488;\n };\n :disabled {\n background-color: #808080;\n cursor: default;\n }\n`;\n\nconst RedoButton = styled.button`\n min-width: 145px;\n font-size: 13px;\n font-weight: bold;\n padding: 6px 20px;\n border: none;\n border-radius: 15px;\n background-color: #F69103;\n color: #FFFFFF;\n letter-spacing: -.5px;\n cursor: pointer;\n transition: .2s;\n text-transform: uppercase;\n box-sizing: border-box;\n margin: 20px 0px;\n :hover {\n background-color: #E8B56E;\n };\n :disabled {\n background-color: #808080;\n cursor: default;\n }\n`;\n\nconst AvatarBorder = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width:96px;\n height: 96px;\n position: relative;\n &:before {\n content:\"\";\n position:absolute;\n top:0;\n left:0;\n right:0;\n bottom:0;\n border-radius:50%; \n padding:5px; \n background: linear-gradient(135deg, #00A859, #808080); \n background: -webkit-linear-gradient(310deg, #00A859, #808080); \n -webkit-mask: \n linear-gradient(#fff 0 0) content-box, \n linear-gradient(#fff 0 0);\n -webkit-mask-composite: destination-out; \n mask-composite: exclude; \n }\n`;\n\nconst AddToWalletButton = styled.button`\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n margin-top: 20px;\n background-color: transparent;\n border: none;\n padding: 0;\n cursor: pointer;\n`;\n\nconst LoadingIndicatorContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 280px;\n height: 36px;\n border-radius: 4px;\n margin-top: 3px;\n`;\n\nexport {\n Container,\n PdfContainer,\n Title,\n LoadingContainer,\n CenterColumn,\n Content,\n ButtonContainer,\n Button,\n RedoButton,\n AvatarBorder,\n AddToWalletButton,\n LoadingIndicatorContainer\n};","import React, {\n useContext,\n useState,\n} from \"react\";\nimport { Link } from \"react-router-dom\";\nimport {\n Container,\n LoadingContainer,\n CenterColumn,\n Content,\n ButtonContainer,\n Button,\n RedoButton,\n AvatarBorder,\n AddToWalletButton,\n LoadingIndicatorContainer,\n} from \"./Components.js\";\nimport {\n Avatar,\n Divider,\n Grid,\n makeStyles,\n Typography,\n IconButton,\n Link as ExternLink\n} from \"@material-ui/core\";\nimport {\n HourglassEmpty as HourglassEmptyIcon,\n Replay as ReplayIcon,\n Warning as WarningIcon,\n QuestionAnswer as QuestionAnswerIcon,\n InsertDriveFile as FileIcon\n} from \"@material-ui/icons\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport Header from \"../../components/Header/Header\";\nimport { getUser } from \"../../utils/user\";\nimport moment from \"moment\";\nimport { PasseVerdeContext } from \"../../context/passeverde\";\nimport { useHistory } from \"react-router-dom\";\nimport { useTranslation } from 'react-i18next';\nimport { request } from \"../../utils/request\";\n\nconst useStyles = makeStyles(() => ({\n newUserContainer: {\n width: '80%',\n margin: '40px auto',\n },\n\n newUserText: {\n color: '#808080',\n fontSize: '18px',\n fontWeight: 'bold',\n textAlign: 'center',\n },\n\n userProfileContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n marginBottom: 10,\n },\n\n avatarContainer: {\n width: 96,\n marginRight: 15,\n },\n\n avatar: {\n width: 80,\n height: 80,\n },\n\n firstContentContainer: {\n width: 'calc(100% - 40px)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n\n userNameContainer: {\n width: '100%',\n },\n\n userName: {\n fontSize: 20,\n fontWeight: 'bold',\n color: '#808080',\n textAlign: 'left',\n },\n\n userInfoContainer: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n },\n\n userInfo: {\n fontSize: 12,\n fontWeight: 'bold',\n color: '#808080',\n },\n\n userInfoSeparator: {\n display: 'inline-block',\n width: 4,\n height: 4,\n backgroundColor: '#808080',\n borderRadius: '50%',\n margin: '1.7px 5px',\n },\n\n divider: {\n width: 'calc(100% - 40px)',\n height: 2,\n marginTop: 10\n },\n\n statusContainer: {\n display: 'flex',\n alignItems: 'center',\n marginTop: 10,\n },\n\n statusText: {\n fontSize: 20,\n fontWeight: 'bold',\n },\n\n userInfoSeparatorStatus: {\n display: 'inline-block',\n width: 6,\n height: 6,\n borderRadius: '50%',\n marginTop: 6,\n marginLeft: 7,\n marginRight: 7,\n },\n\n statusUpdated: {\n fontSize: 12,\n fontWeight: 'bold',\n color: '#5D5D5D',\n },\n\n validateText: {\n fontSize: 13,\n fontWeight: 'bold',\n color: '#5D5D5D',\n },\n\n badgeContainer: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n marginTop: 20,\n },\n\n badge: {\n width: 65,\n height: 65,\n },\n\n badgeName: {\n fontSize: 12,\n fontWeight: 'bold',\n color: '#5D5D5D',\n },\n\n vaccineInfoContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n marginTop: 10,\n marginBottom: 30,\n },\n\n vaccineType: {\n fontSize: 18,\n fontWeight: 'bold',\n color: '#5D5D5D',\n },\n\n vaccineText: {\n fontSize: 14,\n fontWeight: 'bold',\n color: '#5D5D5D',\n wordBreak: 'break-word',\n },\n\n observationContainer: {\n width: '90%',\n padding: 30,\n backgroundColor: '#eeeeee',\n boxSizing: 'border-box',\n marginTop: 20,\n },\n\n observationText: {\n color: '#808080',\n fontWeight: 'bold',\n },\n\n vaccineInformationContainer: {\n border: '1px solid #d0cccc',\n padding: '10px',\n margin: '10px 0px',\n display: 'flex',\n },\n\n examsTitle: {\n fontSize: 14,\n fontWeight: 'bold',\n color: '#5D5D5D',\n wordBreak: 'break-word',\n marginTop: 10,\n },\n}));\n\nconst PasseVerde = () => {\n const classes = useStyles();\n const user = getUser();\n const { t, i18n } = useTranslation('passeVerdePages');\n\n const { loadingPasse, passeVerde, isNewUser } = useContext(PasseVerdeContext);\n\n const [isLoadingGetGoogleWalletUrl, setIsLoadingGetGoogleWalletUrl] = useState(false);\n const [isLoadingGetAppleWalletPass, setIsLoadingGetAppleWalletPass] = useState(false);\n\n const redoRedirect = '/secure/passe-verde/new';\n const history = useHistory();\n\n const userFullName = user?.surname ? `${user.name} ${user.surname}` : user?.name;\n\n const redirect = (to) => {\n history.push(to);\n };\n\n const userAgent = window.navigator.userAgent;\n const isIPad = !!userAgent.match(/iPad/i);\n const isIPhone = !!userAgent.match(/iPhone/i);\n const isMac = !!userAgent.match(/Mac/i);\n const isIOS = isIPad || isIPhone || isMac;\n\n const addToAppleWallet = async () => {\n try {\n setIsLoadingGetAppleWalletPass(true);\n const response = await request.get('/client-app/add-to-apple-wallet', {\n responseType: 'blob'\n });\n\n const blob = new Blob([response.data], { type: 'application/vnd.apple.pkpass' });\n\n const fileURL = window.URL.createObjectURL(blob);\n const fileLink = document.createElement('a');\n fileLink.href = fileURL;\n const username = user.name.replace(' ', '_');\n const fileName = `${username}.pkpass`;\n fileLink.setAttribute('download', fileName);\n document.body.appendChild(fileLink);\n fileLink.click();\n fileLink.remove();\n } catch (err) {\n console.error(`[PasseVerde - AddToAppleWallet] ${err}`)\n } finally {\n setIsLoadingGetAppleWalletPass(false);\n }\n };\n\n const addToGoogleWallet = async () => {\n try {\n setIsLoadingGetGoogleWalletUrl(true);\n const { data: result } = await request.get('/client-app/add-to-google-wallet');\n window.open(result.saveToGoogleWalletUrl, '_blank');\n } catch (err) {\n console.error(`[PasseVerde - AddToGoogleWallet] ${err}`)\n } finally {\n setIsLoadingGetGoogleWalletUrl(false);\n }\n };\n\n const statusData = {\n PENDING: {\n color: '#F69103',\n subColor: '#2F6DE0',\n text: 'PASSE_VERDE_STATUS_PENDING',\n subText: 'PASSE_VERDE_STATUS_PENDING_SUB',\n icon: \n },\n REDO: {\n color: '#F69103',\n subColor: '#F69103',\n text: 'PASSE_VERDE_STATUS_REDO',\n subText: 'PASSE_VERDE_STATUS_REDO_SUB',\n icon: \n },\n INCONSISTENT: {\n color: '#F69103',\n subColor: '#F69103',\n text: 'PASSE_VERDE_STATUS_INCONSISTENT',\n subText: 'PASSE_VERDE_STATUS_INCONSISTENT_SUB',\n icon: \n },\n DENIED: {\n color: '#F60E31',\n subColor: '#F60E31',\n text: 'PASSE_VERDE_STATUS_DENIED',\n subText: 'PASSE_VERDE_STATUS_DENIED_SUB',\n icon: \n },\n EXPIRED: {\n color: \"#F69103\",\n subColor: \"#F69103\",\n text: \"PASSE_VERDE_STATUS_EXPIRED\",\n subText: \"PASSE_VERDE_STATUS_EXPIRED_SUB\",\n icon: \n },\n ALERT: {\n color: '#F60E31',\n subColor: '#F60E31',\n text: 'PASSE_VERDE_STATUS_ALERT',\n subText: 'PASSE_VERDE_STATUS_ALERT_SUB',\n icon: \n },\n APPROVED: {\n color: '#00A859',\n text: 'PASSE_VERDE_STATUS_APPROVED',\n },\n };\n\n const resultToRender = () => {\n return (\n \n
\n
\n
\n \n \n \n
\n
\n
\n \n {userFullName}\n \n
\n
\n \n {user.birthday}\n \n
\n \n {t('PASSE_VERDE_DOCUMENT_ID')}: {user.documentNumber}\n \n
\n
\n
\n
\n\n \n\n \n {passeVerde?.status === \"APPROVED\" ?\n
\n \n {t(statusData[passeVerde?.status]?.text)}\n \n \n \n \n {passeVerde?.checkpointPinCode}\n \n \n
\n :\n passeVerde?.status === \"EXPIRED\" ?\n
\n \n {t(statusData[passeVerde?.status]?.text)}\n \n \n \n {passeVerde?.checkpointPinCode}\n \n
\n :\n
\n \n {t(statusData[passeVerde?.status]?.text)}\n \n
\n }\n\n \n {t('PASSE_VERDE_STATUS_AT')}: {moment(passeVerde?.updatedAt).format('DD/MM/YYYY, h:mm:ss A - UTC')}\n \n\n {(passeVerde?.status === \"APPROVED\" || passeVerde?.status === \"EXPIRED\") &&\n \n {t('PASSE_VERDE_VALID')}: {\n passeVerde.validFrom ?\n `${moment(passeVerde.validFrom).format('DD/MM/YYYY')} ${t('PASSE_VERDE_UNTIL')} ${moment(passeVerde.validUntil).format('DD/MM/YYYY')}`\n : `${t('PASSE_VERDE_UNTIL')} ${moment(passeVerde.validUntil).format('DD/MM/YYYY')}`}\n \n }\n\n {(passeVerde?.status === \"APPROVED\" || passeVerde?.status === \"EXPIRED\") &&\n passeVerde?.badges?.length > 0 &&\n \n {\n passeVerde?.badges?.map((badge, index) => {\n return (\n \n
\n \n \n {badge.name}\n \n
\n
\n )\n })\n }\n
\n }\n
\n\n \n\n \n {\n passeVerde?.status === \"APPROVED\" &&\n \"qr\n }\n\n {\n passeVerde?.status === \"EXPIRED\" &&\n \"qr\n }\n\n
\n {\n passeVerde?.status === \"REDO\" &&\n \n {statusData[passeVerde?.status]?.icon}\n \n }\n\n {\n passeVerde?.status !== \"APPROVED\" && passeVerde?.status !== \"REDO\"\n && statusData[passeVerde?.status]?.icon\n }\n\n {\n (passeVerde?.status === \"APPROVED\" || passeVerde?.status === \"EXPIRED\") &&\n
\n {\n passeVerde?.approvedMetadata?.protocolName !== undefined &&\n \n {t('PASSE_VERDE_VACCINES_AND_EXAMS')}\n \n }\n {\n passeVerde?.approvedMetadata?.validations &&\n //eslint-disable-next-line\n passeVerde?.approvedMetadata?.validations.map(validation => {\n if (validation.type === 'VACCINE') {\n return (\n \n \n \n \n \n \n
\n \n {t('PASSE_VERDE_VACCINE')}: {validation.name}\n \n \n {t('PASSE_VERDE_MANUFACTURER')}: {validation.producerName}\n \n \n {t('PASSE_VERDE_DATE')}: {moment(validation.datetime).format('DD/MM/YYYY, h:mm:ss A - UTC')}\n \n
\n
\n )\n }\n if (validation.type === 'ANTIBODIES_AND_TESTS') {\n return (\n \n \n \n \n \n \n
\n \n {t('PASSE_VERDE_TEST_OR_EXAM')}: {validation.name}\n \n \n {t('PASSE_VERDE_CLINIC')}: {validation.clinicName}\n \n \n {t('PASSE_VERDE_DATE')}: {moment(validation.datetime).format('DD/MM/YYYY, h:mm:ss A - UTC')}\n \n
\n
\n )\n }\n })\n }\n\n {\n passeVerde?.status === \"APPROVED\" &&\n <>\n {\n isIOS ?\n \n {\n !isLoadingGetAppleWalletPass ?\n \n :\n \n \n \n }\n \n :\n \n {\n !isLoadingGetGoogleWalletUrl ?\n \n :\n \n \n \n }\n \n }\n \n }\n
\n }\n\n {\n passeVerde?.status === \"REDO\" &&\n <>\n \n
\n \n {t(statusData[passeVerde?.status]?.subText)}\n \n
\n
\n \n {passeVerde?.observation}\n \n
\n \n {t('PASSE_VERDE_STATUS_REDO')}\n \n \n }\n\n {\n passeVerde?.status !== \"APPROVED\" &&\n passeVerde?.status !== \"REDO\" &&\n <>\n \n
\n \n {t(statusData[passeVerde?.status]?.subText)}\n \n
\n \n }\n \n \n
\n )\n };\n\n if (isNewUser) {\n return (\n \n
\n
\n \n {t('PASSE_VERDE_PAGE_NEW_USER')}\n \n \n {\n user?.plan ?\n \n :\n \n }\n \n
\n \n )\n }\n\n return (\n <>\n \n
\n {loadingPasse ? (\n \n \n \n ) : (\n <>\n {resultToRender()}\n \n )}\n \n \n );\n};\n\nexport default PasseVerde;\n","const setEvent = (event) => {\n const serializedEvent = JSON.stringify(event);\n sessionStorage.setItem('__event', serializedEvent);\n}\n\nconst getEvent = () => {\n const serializedEvent = sessionStorage.getItem('__event');\n const deserializedEvent = JSON.parse(serializedEvent);\n return deserializedEvent;\n}\n\nexport {\n setEvent,\n getEvent,\n};","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 75px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst Content = styled.div`\n background-color: #FFFFFF;\n width: calc(100% - 40px);\n height: auto;\n padding: 10px;\n margin: 20px 0px;\n border-radius: 8px;\n box-sizing: border-box;\n box-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%);\n`\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #00A859;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n margin-top: 50px;\n`;\n\nconst Text = styled.p`\n color: #505050;\n font-weight: bold;\n`;\n\nconst Button = styled.button`\n width: 140px;\n height: 30px;\n color: #FFFFFF;\n font-size: 14px;\n font-weight: bold;\n text-transform: uppercase;\n background-color: #00A859;\n letter-spacing: -0.5px;\n border: none;\n border-radius: 15px;\n margin-top: 20px;\n margin-bottom: 20px;\n transition: .2s;\n cursor: pointer;\n`;\n\nexport {\n Container,\n Content,\n CenterColumn,\n Title,\n Text,\n Button,\n};","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles(() => ({\n sliderContainer: {\n width: '50%',\n height: '4px',\n borderRadius: '4px',\n background: '#808080',\n margin: '0 1.5rem',\n marginTop: '30px',\n marginBottom: '70px',\n position: 'relative',\n },\n\n slider: {\n height: '4px',\n borderRadius: '4px',\n background: '#00A859',\n },\n\n sliderIconsContainer: {\n width: '130%',\n position: 'absolute',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n transform: 'translateX(-8%)',\n left: 0,\n right: 0,\n top: -20,\n },\n\n imgContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n\n imgText: {\n fontSize: 8,\n color: '#808080',\n marginTop: 5,\n },\n\n imgTextGreen: {\n fontSize: 8,\n color: '#00A859',\n marginTop: 5,\n },\n}));\n\nconst BottomSlider = () => {\n const { t } = useTranslation('passeVerdePages');\n const classes = useStyles();\n\n return (\n
\n
\n
\n
\n \"Green\n \n {t('NEW_PASSE_VERDE_BOTTOM_SLIDER_1')}\n \n
\n
\n \n \n {t('NEW_PASSE_VERDE_BOTTOM_SLIDER_2')}\n \n
\n
\n
\n )\n}\n\nexport default BottomSlider;","\nimport styled from \"styled-components\";\n\nconst Container = styled.div`\n display: flex; \n box-sizing: border-box;\n`;\n\nconst Label = styled.label`\n width: 120%;\n cursor: pointer;\n box-sizing: border-box;\n`;\n\nconst Title = styled.span`\n display: block;\n font-weight: bold; \n font-size: 14px;\n box-sizing: border-box;\n`;\n\nconst Text = styled.span`\n display: block;\n color: #808080; \n font-size: 13px;\n box-sizing: border-box;\n`;\n\nconst ProtocolContainer = styled.div`\n width: 77%;\n display: flex;\n align-items: center;\n`\n\nconst ProtocolText = styled.span`\n display: block;\n color: #808080; \n font-size: 13px;\n box-sizing: border-box;\n overflow-x: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`\n\nexport {\n Container,\n Label,\n Title,\n Text,\n ProtocolContainer,\n ProtocolText,\n};\n","import React, { useState } from \"react\";\nimport {\n Container,\n Label,\n Title,\n Text,\n ProtocolContainer,\n ProtocolText,\n} from \"./Components.js\";\nimport {\n Radio,\n makeStyles,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n} from \"@material-ui/core\";\nimport { ExpandMore as ExpandMoreIcon } from \"@material-ui/icons\";\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles(() => ({\n radioInput: {\n width: 15,\n height: 15,\n color: '#bebebe',\n '&.Mui-checked': {\n color: '#00A859',\n },\n },\n\n passeVerdeImg: {\n width: 30,\n height: 30,\n paddingRight: 9,\n paddingLeft: 5,\n },\n\n accordion: {\n width: '100%',\n boxShadow: 'none',\n\n '& .MuiAccordionSummary-root': {\n padding: '0 8px'\n },\n\n '& .MuiIconButton-root': {\n padding: 6,\n },\n\n '& .MuiIconButton-edgeEnd': {\n marginRight: -5\n },\n\n '& .MuiAccordionSummary-root.Mui-expanded': {\n minHeight: '0',\n },\n\n '& .MuiCollapse-container': {\n width: '75%',\n marginLeft: '80px',\n }\n },\n\n accordionSummary: {\n '& .MuiAccordionSummary-content': {\n alignItems: 'center',\n margin: 0,\n },\n },\n\n accordionDetails: {\n display: 'flex',\n padding: 0,\n },\n\n protocolImg: {\n width: 10,\n height: 10,\n marginRight: 5,\n }\n}));\n\nconst PasseVerdeItem = ({\n index,\n eventName,\n eventDate,\n eventPlace,\n url,\n availableProtocols,\n value,\n checked,\n onChange,\n size,\n}) => {\n const classes = useStyles();\n const { t } = useTranslation('passeVerdePages');\n const [expanded, setExpanded] = useState(false);\n\n const handleChange = (panel) => (event, isExpanded) => {\n setExpanded(isExpanded ? panel : false);\n };\n\n return (\n \n \n }\n aria-controls={`panel${index}bh-content`}\n id={`panel${index}bh-header`}\n className={classes.accordionSummary}\n >\n \n \n {eventName}\n \n \n \n \n \n \n )\n};\n\nexport default PasseVerdeItem;","import React, {\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { getUser } from \"../../utils/user/index.js\";\nimport { setEvent } from \"../../utils/event/index.js\";\nimport {\n Container,\n Content,\n CenterColumn,\n Title,\n Text,\n Button,\n} from \"./Components.js\";\nimport { makeStyles, CircularProgress } from \"@material-ui/core\";\nimport Header from \"../../components/Header/Header\";\nimport SearchInput from \"../../components/SearchInput/SearchInput\";\nimport BottomSlider from \"../../components/BottomSlider/BottomSlider.jsx\";\nimport PasseVerdeItem from \"../../components/PasseVerdeItem/PasseVerdeItem.jsx\";\nimport moment from 'moment';\nimport axios from 'axios';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles(() => ({\n button: {\n '&:hover': {\n backgroundColor: '#54b488',\n },\n },\n\n buttonDisabled: {\n cursor: 'not-allowed',\n backgroundColor: '#808080',\n '&:hover': {\n backgroundColor: '#808080',\n },\n },\n}));\n\nconst NewPasseVerde = () => {\n const classes = useStyles();\n const history = useHistory();\n const { t } = useTranslation('passeVerdePages');\n\n const [isLoading, setIsLoading] = useState(false);\n const [events, setEvents] = useState([]);\n const [search, setSearch] = useState('');\n const [selectedOption, setSelectedOption] = useState('');\n const [hideTravelEvents, setHideTravelEvents] = useState(true);\n\n const disableButton = selectedOption === '';\n\n const verifyUserTravelCondition = () => {\n const user = getUser();\n const nextTripDate = user.nextTripDate;\n\n if (nextTripDate) {\n if (moment(nextTripDate).isSameOrAfter(moment().subtract({ days: 1 }))) {\n setHideTravelEvents(false);\n }\n }\n }\n\n const redirect = (to) => {\n history.push(to);\n };\n\n const orderEventsAlphabetically = (a, b) => {\n return a.eventName.toUpperCase() > b.eventName.toUpperCase()\n ? 1\n : a.eventName.toUpperCase() < b.eventName.toUpperCase() ? -1\n : 0\n };\n\n\n const orderValidationRuleAlphabetically = (a, b) => {\n return a.toUpperCase() > b.toUpperCase()\n ? 1\n : a.toUpperCase() < b.toUpperCase() ? -1\n : 0\n };\n\n const handleChangeSearch = (event) => {\n setSearch(event.target.value);\n setSelectedOption('');\n };\n\n const handleChangeOption = (event) => {\n const id = event.target.value\n const selectedEvent = events.find(event => event.eventId === id);\n\n setEvent(selectedEvent);\n setSelectedOption(id);\n };\n\n const handleClick = () => {\n redirect(`new/${selectedOption}`)\n };\n\n const createEventsList = () => {\n const eventsList = [];\n\n if (events.length < 1) {\n return eventsList;\n }\n\n events.forEach((event, index) => {\n let validationRuleList = [];\n\n if (hideTravelEvents && event.contract === \"TRAVEL\") {\n return null\n }\n let date = moment(event.datetime).format('DD/MM/YYYY');\n\n if (event.contract === \"TRAVEL\") {\n date = 'travel'\n }\n\n if (!!Object.keys(event.protocols).length) {\n event.protocols.validationRules.map(rule => {\n return validationRuleList.push(rule.ruleName);\n });\n\n validationRuleList.sort(orderValidationRuleAlphabetically);\n }\n\n eventsList.push(\n \n )\n });\n\n return eventsList;\n };\n\n const eventsToRender = createEventsList();\n\n const eventsFiltered = useMemo(() => {\n const lowerSearch = search.toLowerCase();\n return eventsToRender\n .filter((event) => event.key.toLowerCase().includes(lowerSearch));\n }, [eventsToRender, search]);\n\n useEffect(() => {\n const getData = async () => {\n try {\n setIsLoading(true);\n\n sessionStorage.removeItem('__event');\n\n verifyUserTravelCondition();\n\n const travelEvents = [];\n const otherEvents = [];\n\n const jwt = localStorage.getItem('__session');\n const formatedJwt = (jwt || '').replace(/['\"]+/g, '');\n const { data: result } = await axios.get(`${process.env.REACT_APP_API_URL}/available-events`, {\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${formatedJwt}`,\n }\n });\n\n result.map((event) => {\n if (event.contract === \"TRAVEL\") {\n return travelEvents.push(event);\n }\n return otherEvents.push(event);\n });\n\n const concatEvents = travelEvents.concat(otherEvents);\n const eventsToSet = concatEvents.sort(orderEventsAlphabetically);\n setEvents(eventsToSet);\n } catch (error) {\n console.log(`[NewPasseVerde getData Error]: ${error}`)\n } finally {\n setIsLoading(false);\n }\n }\n getData();\n }, []);\n\n return (\n \n
\n \n {t('NEW_PASSE_VERDE')}\n \n \n {isLoading ? (\n \n \n \n ) : (\n eventsFiltered.length > 0 ?\n <>\n \n {eventsFiltered}\n \n\n \n {t('NEW_PASSE_VERDE_BUTTON_CONTINUE')}\n \n\n \n \n :\n \n \n {t('NEW_PASSE_VERDE_NO_EVENTS_FOUND')}\n \n \n )}\n \n );\n};\n\nexport default NewPasseVerde;\n","import styled from 'styled-components';\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 115px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst TitleContainer = styled.h3`\n width: calc(100% - 40px);\n text-align: center;\n margin-bottom: 20px;\n margin-top: 90px;\n`;\n\nconst Title = styled.h3`\n margin-bottom: 0px;\n margin-top: 0px;\n font-size: 23px;\n font-weight: bold;\n color: #00A859;\n`;\n\nconst DottedDivider = styled.div`\n width: calc(100% - 40px);\n border-top: 1px dotted #808080;\n margin-top: 30px;\n margin-bottom: 10px;\n`;\n\nconst BoxUploadContainer = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n`\nconst Button = styled.button`\n width: 140px;\n height: 30px;\n color: #FFFFFF;\n font-size: 14px;\n font-weight: bold;\n text-transform: uppercase;\n background-color: #00A859;\n letter-spacing: -0.5px;\n border: none;\n border-radius: 15px;\n margin-top: 20px;\n transition: .2s;\n cursor: pointer;\n`;\n\nconst ApprovedDocContainer = styled.div`\n width: calc(100% - 50px);\n display: flex;\n align-items: center;\n margin-top: 20px;\n`;\n\nconst ApprovedDocTitle = styled.h6`\n font-size: 22px;\n color: #00A859;\n margin: 0px;\n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: 20px;\n margin-bottom: 30px;\n`;\n\nexport {\n Container,\n TitleContainer,\n Title,\n CenterColumn,\n DottedDivider,\n BoxUploadContainer,\n Button,\n ApprovedDocContainer,\n ApprovedDocTitle,\n}","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\n\nconst useStyles = makeStyles(() => ({\n sliderContainer: {\n width: 'calc(100% - 100px)',\n height: '4px',\n borderRadius: '4px',\n background: '#808080',\n margin: '0 1.5rem',\n position: 'relative',\n },\n\n slider: {\n height: '4px',\n borderRadius: '4px',\n background: '#00A859',\n },\n\n sliderIconsContainer: {\n width: '110%',\n position: 'absolute',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n transform: 'translateX(-5%)',\n left: 0,\n right: 0,\n top: -20,\n },\n\n imgContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n\n imgText: {\n fontSize: 8,\n color: '#808080',\n marginTop: 5,\n maxWidth: 50,\n textAlign: 'center',\n height: 30\n },\n\n imgTextGreen: {\n fontSize: 8,\n color: '#00A859',\n marginTop: 5,\n maxWidth: 50,\n textAlign: 'center',\n height: 30,\n },\n}));\n\nconst SliderNoronhaWithExam = ({ position }) => {\n const { t } = useTranslation('passeVerdePages');\n const classes = useStyles();\n\n const move = () => {\n if (position === 2) {\n return 82\n }\n\n if (position >= 3) {\n return 100\n }\n\n return 52\n }\n\n return (\n
\n
\n
\n
\n \"Circle\n \n {t('UPLOAD_PASSE_VERDE_DOCS_TOP_SLIDER_1')}\n \n
\n
\n = 2 ?\n \"/assets/document-pos-uploaded.svg\"\n : \"/assets/document-pre-upload.svg\"\n }\n alt=\"PDF Document\" />\n = 2 ? classes.imgTextGreen : classes.imgText}>\n {t('UPLOAD_PASSE_VERDE_DOCS_TOP_SLIDER_2')}\n \n
\n
\n = 3 ?\n \"/assets/document-pos-uploaded.svg\"\n : \"/assets/document-pre-upload.svg\"\n }\n alt=\"PDF Document\" />\n = 3 ? classes.imgTextGreen : classes.imgText}>\n {t('UPLOAD_PASSE_VERDE_DOCS_TOP_SLIDER_3')}\n \n
\n
\n = 3 ?\n \"/assets/self-green.svg\"\n : \"/assets/self-pre-upload.svg\"\n }\n alt=\"Selfie Upload\" />\n \n {t('UPLOAD_PASSE_VERDE_DOCS_TOP_SLIDER_4')}\n \n
\n
\n
\n )\n}\n\nexport default SliderNoronhaWithExam;","import React from 'react';\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport {\n Paper,\n} from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: 'calc(100% - 40px)',\n height: '32px',\n display: 'flex',\n alignItems: 'center',\n boxSizing: 'border-box',\n padding: '20px',\n },\n\n selectInput: {\n width: '100%',\n height: '32px',\n border: 'none',\n backgroundColor: '#FFFFFF !important',\n },\n}));\n\nconst SelectInput = ({\n id,\n onChange,\n value,\n initialValue,\n isLoading,\n isSubmitting,\n options,\n marginTop,\n marginBottom,\n borderRadius,\n color\n}) => {\n const classes = useStyles();\n const optionsToShow = options || [];\n\n return (\n \n \n {initialValue && }\n {optionsToShow.map((option, index) => {\n return \n })}\n \n \n );\n}\n\nexport default SelectInput;","import React from 'react';\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport DateFnsUtils from \"@date-io/date-fns\";\nimport pt from \"date-fns/locale/pt\";\nimport {\n MuiPickersUtilsProvider,\n KeyboardDatePicker,\n} from \"@material-ui/pickers\";\n\nconst useStyles = makeStyles(() => ({\n container: {\n marginTop: '-10px',\n marginBottom: 15,\n },\n\n datePicker: {\n '& .MuiInputLabel-outlined': {\n transform: 'translate(23px, 14px) scale(1)',\n color: '#000000',\n fontSize: 13,\n },\n '& .MuiInputLabel-outlined.MuiInputLabel-shrink': {\n transform: 'translate(14px, -11px) scale(.75)',\n },\n '& .MuiFormLabel-root.Mui-error': {\n color: '#f44336',\n },\n '& .MuiIconButton-root': {\n padding: 0\n },\n '& .MuiSvgIcon-root': {\n color: '#000000',\n },\n },\n\n input: {\n backgroundColor: '#FFFFFF',\n borderRadius: '8px',\n boxShadow: '0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%)',\n height: 32,\n padding: '20px',\n\n '& fieldset': {\n border: 'none',\n },\n '& .MuiInputBase-input': {\n padding: 0,\n },\n },\n\n dialog: {\n '& .MuiPickersToolbar-toolbar': {\n backgroundColor: '#00A859',\n },\n\n '& .MuiPickersDay-daySelected': {\n backgroundColor: '#00A859',\n }\n },\n}));\n\nconst DateInput = ({\n onChange,\n value,\n label,\n isSubmitting,\n width,\n}) => {\n const classes = useStyles();\n\n return (\n
\n \n \n \n
\n );\n}\n\nexport default DateInput;","import React, {\n useRef,\n useState\n} from \"react\";\nimport {\n Typography,\n makeStyles,\n IconButton\n} from '@material-ui/core';\nimport {\n CheckCircle as CheckIcon,\n Delete as TrashIcon,\n} from \"@material-ui/icons\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: 'calc(100% - 50px)',\n },\n\n titleContainer: {\n display: 'flex',\n alignItems: 'center',\n marginTop: 40,\n marginBottom: 10,\n },\n\n title: {\n fontSize: 22,\n color: '#00A859',\n margin: 0,\n },\n\n titleIcon: {\n width: '22px',\n color: '#00A859',\n transform: 'translateY(7%)',\n marginLeft: 5\n },\n\n uploadContainer: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n gap: '30px',\n },\n\n frame: {\n width: '100%',\n height: '100%',\n maxWidth: '85px',\n minHeight: '85px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n\n img: {\n width: '85px',\n height: '85px',\n },\n\n fileName: {\n fontSize: 12,\n textAlign: 'center',\n color: '#808080',\n marginBottom: 5,\n },\n\n sendStatus: {\n fontSize: 13,\n fontWeight: 'bold',\n textAlign: 'center',\n color: '#00A859',\n marginBottom: 5,\n },\n\n button: {\n width: 210,\n fontSize: 13,\n fontWeight: 'bold',\n padding: '6px 20px',\n border: 'none',\n borderRadius: '15px',\n backgroundColor: '#00A859',\n color: '#FFFFFF',\n letterSpacing: '-.5px',\n cursor: 'pointer',\n transition: '.2s',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n textTransform: 'uppercase',\n boxSizing: 'border-box',\n '&:hover': {\n backgroundColor: '#54b488',\n },\n '&:disabled': {\n backgroundColor: '#808080',\n cursor: 'not-allowed',\n }\n },\n\n buttonOutlined: {\n width: 225,\n fontSize: 12,\n fontWeight: 'bold',\n padding: '6px 10px',\n border: '1px solid #00A859',\n borderRadius: '15px',\n backgroundColor: '#FFFFFF',\n color: '#00A859',\n cursor: 'pointer',\n transition: '.2s',\n textTransform: 'uppercase',\n boxSizing: 'border-box',\n '&:hover': {\n color: '#0ccf78',\n },\n '&:disabled': {\n cursor: 'not-allowed',\n }\n },\n\n blueTitle: {\n fontSize: 22,\n color: '#2D80C6',\n margin: 0,\n },\n\n blueTitleIcon: {\n width: '22px',\n color: '#2D80C6',\n transform: 'translateY(7%)',\n marginLeft: 5\n },\n\n blueSendStatus: {\n fontSize: 13,\n fontWeight: 'bold',\n textAlign: 'center',\n color: '#2D80C6',\n marginBottom: 5,\n },\n\n blueButton: {\n width: 190,\n fontSize: 13,\n fontWeight: 'bold',\n padding: '6px 20px',\n border: 'none',\n borderRadius: '15px',\n backgroundColor: '#2D80C6',\n color: '#FFFFFF',\n letterSpacing: '-.5px',\n cursor: 'pointer',\n transition: '.2s',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n textTransform: 'uppercase',\n boxSizing: 'border-box',\n '&:hover': {\n backgroundColor: '#49aad6',\n },\n '&:disabled': {\n backgroundColor: '#808080',\n cursor: 'not-allowed',\n }\n },\n\n blueButtonOutlined: {\n width: 190,\n fontSize: 12,\n fontWeight: 'bold',\n padding: '6px 10px',\n border: '1px solid #2D80C6',\n borderRadius: '15px',\n backgroundColor: '#FFFFFF',\n color: '#2D80C6',\n cursor: 'pointer',\n transition: '.2s',\n textTransform: 'uppercase',\n boxSizing: 'border-box',\n '&:hover': {\n color: '#49aad6',\n },\n '&:disabled': {\n cursor: 'not-allowed',\n }\n },\n\n trashIconContainer: {\n display: 'flex',\n alignItems: 'flex-end',\n justifyContent: 'right',\n },\n\n iconButton: {\n padding: 5,\n },\n\n trashIcon: {\n color: '#F60E31'\n },\n}));\n\nconst BoxUploadFile = ({\n id,\n dateComponent,\n componentType,\n title,\n onChange,\n onlyPdf,\n onlyImage,\n displayOnly,\n isLoading,\n isSubmitting,\n documentUploadedText,\n buttonText,\n buttonTextWhenDocumentUploaded,\n reUpload,\n marginTop,\n showTrashIcon,\n onClickTrashIcon,\n secondaryColor,\n}) => {\n const input = useRef(null);\n const [fileName, setFileName] = useState(\"\");\n\n let image = '';\n let imageAfterUpload = '';\n\n if (secondaryColor) {\n if (componentType === 'photo') {\n image = '/assets/rounded-grey-send-selfie.svg'\n imageAfterUpload = '/assets/rounded-blue-send-selfie.svg';\n } else {\n image = '/assets/rounded-grey-pdf.svg'\n imageAfterUpload = '/assets/rounded-blue-pdf.svg';\n }\n } else {\n if (componentType === 'photo') {\n image = '/assets/rounded-grey-send-selfie.svg'\n imageAfterUpload = '/assets/rounded-green-send-selfie.svg';\n } else {\n image = '/assets/rounded-grey-pdf.svg'\n imageAfterUpload = '/assets/rounded-green-pdf.svg';\n }\n }\n\n const classes = useStyles();\n\n const onClick = () => {\n try {\n const { current } = input;\n current.click();\n } catch (err) {\n console.log(err)\n }\n };\n\n const handleChange = () => {\n if (id) {\n const target = document.getElementById(id);\n const file = target.files[0];\n setFileName(file?.name);\n if (onChange) onChange(file);\n }\n };\n\n return (\n
\n
\n {secondaryColor ?\n <>\n
{title}
\n {title && displayOnly && }\n \n :\n <>\n
{title}
\n {title && displayOnly && }\n \n }\n
\n\n {dateComponent}\n\n
\n
\n {isLoading ? (\n \n ) : (\n \n )}\n
\n\n
\n {displayOnly && (\n reUpload ? (\n \n Re-upload file\n \n ) : (\n <>\n \n {fileName}\n \n {\n secondaryColor ?\n \n {documentUploadedText}\n \n :\n \n {documentUploadedText}\n \n }\n \n ))}\n {\n secondaryColor ?\n \n {\n displayOnly\n ? buttonTextWhenDocumentUploaded\n : buttonText\n }\n \n :\n \n {\n displayOnly\n ? buttonTextWhenDocumentUploaded\n : buttonText\n }\n \n }\n
\n
\n\n {\n showTrashIcon &&\n
\n \n \n \n
\n }\n\n \n
\n );\n};\n\nexport default BoxUploadFile;","import styled from 'styled-components';\n\nconst Button = styled.button`\n width: 120px;\n padding: 5px;\n color: #FFFFFF;\n font-size: 12px;\n font-weight: bold;\n text-transform: uppercase;\n background-color: #00A859;\n letter-spacing: -0.5px;\n border: none;\n border-radius: 15px;\n margin-top: 20px;\n transition: .2s;\n cursor: pointer;\n`;\n\nexport {\n Button,\n}","import React from 'react';\nimport {\n makeStyles,\n Backdrop,\n Fade,\n Modal as MUIModal,\n Typography\n} from \"@material-ui/core\";\nimport { Button } from './Components';\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '90%',\n maxWidth: '420px',\n margin: '0 auto',\n boxSizing: 'border-box',\n },\n\n modalPaper: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: 10,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n\n modalTitle: {\n textAlign: \"center\",\n width: '100%',\n marginTop: 10,\n marginBottom: 20,\n fontWeight: \"bold\",\n },\n\n modalDescription: {\n marginBottom: 20,\n fontSize: '16px',\n fontWeight: 'bold',\n textAlign: 'justify'\n },\n\n modalButtonContainer: {\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"column\",\n justifyContent: \"space-around\",\n width: \"100%\",\n },\n}));\n\nexport const FeedbackModal = ({\n id,\n title,\n description,\n button,\n open,\n disabled = false,\n onClick,\n extraButton = \"\"\n}) => {\n const classes = useStyles();\n\n return (\n \n \n
\n \n {title?.text}\n \n \n {description?.text}\n \n
\n \n {button?.text}\n \n {\n extraButton ?\n \n {extraButton}\n \n : null\n }\n
\n
\n
\n \n )\n};","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport moment from \"moment\";\nimport { request } from '../../utils/request';\nimport { getUser } from '../../utils/user';\nimport { getEvent } from '../../utils/event';\nimport {\n makeStyles,\n Typography,\n Checkbox,\n Fade,\n Backdrop,\n FormControlLabel,\n Modal,\n CircularProgress,\n} from \"@material-ui/core\";\nimport {\n CheckCircle as CheckIcon,\n} from \"@material-ui/icons\";\nimport {\n Container,\n TitleContainer,\n Title,\n CenterColumn,\n DottedDivider,\n BoxUploadContainer,\n Button,\n ApprovedDocContainer,\n ApprovedDocTitle,\n} from './Components';\nimport Header from '../../components/Header/Header';\nimport SliderPasseVerde from '../../components/SliderPasseVerde/SliderPasseVerde';\nimport SelectInput from '../../components/SelectInput/SelectInput';\nimport DateInput from '../../components/DateInput/DateInput';\nimport BoxUploadFile from '../../components/BoxUploadFile/BoxUploadFile';\nimport { FeedbackModal } from '../../components/FeedbackModal/FeedbackModal';\n\nconst useStyles = makeStyles((theme) => ({\n checkIcon: {\n width: '22px',\n color: '#00A859',\n transform: 'translateY(7%)',\n marginLeft: 5\n },\n\n button: {\n '&:hover': {\n backgroundColor: '#54b488',\n }\n },\n\n buttonDisabled: {\n cursor: 'not-allowed',\n backgroundColor: '#808080',\n '&:hover': {\n backgroundColor: '#808080',\n },\n },\n\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '95%',\n maxWidth: '420px',\n margin: '0 auto',\n },\n\n modalPaper: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: 10,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n\n modalHeader: {\n textAlign: \"center\",\n width: 290,\n marginTop: 10,\n marginBottom: 20,\n fontWeight: \"bold\",\n color: '#00A859',\n },\n\n modalButtonContainer: {\n display: \"flex\",\n justifyContent: \"space-around\",\n width: \"100%\",\n },\n\n modalBackButton: {\n backgroundColor: '#2D80C6',\n color: '#FFFFFF',\n transition: '.2s',\n '&:hover': {\n filter: 'brightness(.9)',\n }\n },\n\n tocModalContent: {\n marginBottom: 20,\n fontSize: '16px',\n fontWeight: 'bold',\n color: '#808080',\n textAlign: 'justify'\n },\n\n tocModalFormControlLabel: {\n marginBottom: 20,\n '& .MuiTypography-body1': {\n fontWeight: 'bold',\n },\n },\n\n confirmationModalPaper: {\n backgroundColor: '#00A859',\n borderRadius: 10,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n\n confirmationModalHeader: {\n textAlign: \"center\",\n width: 290,\n marginTop: 10,\n marginBottom: 20,\n fontWeight: \"bold\",\n color: '#FFFFFF',\n },\n\n confirmationModalContent: {\n marginBottom: 20,\n fontSize: '16px',\n fontWeight: 'bold',\n color: '#FFFFFF',\n textAlign: 'justify'\n },\n\n confirmationModalFormControlLabel: {\n marginBottom: 20,\n '& .MuiTypography-body1': {\n color: '#FFFFFF',\n fontWeight: 'bold',\n },\n '& .MuiCheckbox-colorSecondary.Mui-checked': {\n color: '#FFFFFF'\n }\n },\n\n finalModalContent: {\n marginBottom: 20,\n fontSize: '16px',\n fontWeight: 'bold',\n color: '#808080',\n textAlign: 'center'\n },\n\n finalModalButtonContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n width: \"100%\",\n marginTop: 10,\n },\n}));\n\nconst PasseVerdeUpload = () => {\n const classes = useStyles();\n const { t } = useTranslation('passeVerdePages');\n const user = getUser();\n\n const [isLoading, setIsLoading] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [event, setEvent] = useState({});\n const [requiredDocuments, setRequiredDocuments] = useState(undefined);\n const [noDocumentRequired, setNoDocumentsRequired] = useState(false);\n const [availableRules, setAvailableRules] = useState([]);\n const [protocols, setProtocols] = useState([]);\n const [selectedValidationRules, setSelectedValidationRules] = useState('');\n const [covidCertImages, setCovidCertImages] = useState({});\n const [uploadedRequiredFiles, setUploadedRequiredFiles] = useState({});\n const [examOrCertificationDate, setExamOrCertificationDate] = useState({});\n const [loadingCovidImage, setLoadingCovidImage] = useState(false);\n const [currentSliderPosition, setCurrentSliderPosition] = useState(1);\n const [openTCModal, setOpenTCModal] = useState(false);\n const [\n openCOVID19ModalDataVerification,\n setOpenCOVID19ModalDataVerification,\n ] = useState(false);\n const [openCOVID19ModalFinal, setOpenCOVID19ModalFinal] = useState(false);\n const [modalState, setModalState] = useState({\n termsAndConditions: false,\n firstChecked: false,\n secondChecked: false,\n });\n\n //Errors Modal\n const [isOpenSubmitErrorModal, setIsOpenSubmitErrorModal] = useState(false);\n const [isOpenSelfieErrorModal, setIsOpenSelfieErrorModal] = useState(false);\n\n const requiredExamOrCertificates = () => {\n const required = [];\n if (requiredDocuments?.required) {\n requiredDocuments.required.forEach(document => {\n if (document.name !== 'userSelfie'\n && document.name !== 'userDocId'\n && document.name !== 'locatorForm') {\n required.push(document);\n }\n });\n return required;\n }\n\n return undefined;\n }\n\n const required = requiredExamOrCertificates();\n const cantSubmit = !required ||\n Object.keys(uploadedRequiredFiles).length !== requiredDocuments?.required.length ||\n Object.keys(examOrCertificationDate).length !== required.length;\n\n const handleChange = async (value) => {\n try {\n setIsSubmitting(true);\n setIsLoading(true);\n\n setCovidCertImages({});\n setUploadedRequiredFiles({});\n setExamOrCertificationDate({});\n setProtocols([]);\n setSelectedValidationRules(value);\n\n if (value === \"\") {\n setRequiredDocuments(undefined);\n setNoDocumentsRequired(false);\n }\n\n const body = {\n eventId: event._id,\n validationRulesGroupId: value\n }\n\n const { data: result } = await request.post(`/client-app/verify-user-protocol`, body);\n\n const requiredDocs = [];\n const approvedDocs = [];\n\n result.forEach(doc => {\n let name = doc.protocolRule;\n\n if (doc.protocolRule === 'PROTOCOL REQUIRE APPROVED SELFIE') {\n name = 'userSelfie';\n }\n\n if (doc.protocolRule === 'PROTOCOL REQUIRE APPROVED ID DOC') {\n name = 'userDocId';\n }\n\n const document = {\n name: name,\n error: doc.error,\n }\n\n if (doc.approved === false) {\n requiredDocs.push(document);\n } else {\n approvedDocs.push(document);\n }\n });\n\n setRequiredDocuments({\n required: requiredDocs,\n approved: approvedDocs,\n });\n\n const rules = availableRules\n .find((availableRule) => availableRule.id === value)?.protocols\n setProtocols(rules);\n setCurrentSliderPosition(1);\n } catch (error) {\n console.error(`[PasseVerdeUpload handleChange]: ${error}`);\n } finally {\n setIsSubmitting(false);\n setIsLoading(false);\n }\n };\n\n const handleUpload = async (file, documentType) => {\n try {\n setLoadingCovidImage(true);\n const formData = new FormData();\n formData.append(`file.${documentType}`, file);\n const imageResult = await request.post(\n `/client-app/upload-covid-document?documentType=${documentType}`,\n formData\n );\n\n const newCertImages = { ...covidCertImages };\n newCertImages[documentType] = imageResult?.data?.fileId;\n setCovidCertImages(newCertImages);\n\n const isRequired = requiredDocuments?.required\n .find(document => document.name === documentType);\n\n if (isRequired) {\n const newUploadedRequiredFiles = { ...uploadedRequiredFiles };\n newUploadedRequiredFiles[documentType] = imageResult?.data?.fileId;\n setUploadedRequiredFiles(newUploadedRequiredFiles);\n }\n } catch (error) {\n console.error(error);\n } finally {\n setLoadingCovidImage(false);\n }\n };\n\n const handleChangeDate = (value, documentType) => {\n const newExamOrCertificationDate = { ...examOrCertificationDate };\n newExamOrCertificationDate[documentType] = moment(value).format();\n setExamOrCertificationDate(newExamOrCertificationDate);\n };\n\n const handleSubmit = async () => {\n if (cantSubmit) {\n alert(\n t('UPLOAD_PASSE_VERDE_SUBMIT_VALIDATION_MESSAGE_ERROR')\n );\n } else {\n try {\n setIsSubmitting(true);\n const rule = availableRules\n .find(rule => rule.id === selectedValidationRules);\n\n const body = {\n user: user.id,\n eventId: event.id,\n validationRulesGroupId: selectedValidationRules,\n covidCertImages: covidCertImages,\n sampleCollectionTime: examOrCertificationDate,\n protocolId: event.protocolId,\n ruleName: rule.name,\n locatorFormId: event?.locatorForm?.id,\n };\n\n await request.post(`/client-app/create-new-covid-cert-v2`, body);\n\n setOpenCOVID19ModalDataVerification(false);\n setOpenCOVID19ModalFinal(true);\n\n } catch (error) {\n setOpenCOVID19ModalDataVerification(false);\n\n const axiosError = error?.response?.data?.message;\n if (axiosError && axiosError === 'User with approved selfie cannot upload new PV with selfie') {\n setIsOpenSelfieErrorModal(true);\n return;\n }\n\n setIsOpenSubmitErrorModal(true);\n console.error(error);\n } finally {\n setIsSubmitting(false);\n }\n }\n };\n\n const moveSlider = () => {\n if (requiredDocuments?.required.length === 0) {\n setNoDocumentsRequired(true);\n } else {\n setNoDocumentsRequired(false);\n }\n\n if (selectedValidationRules !== '' &&\n requiredDocuments?.required.length > 0\n && !noDocumentRequired) {\n\n const required = requiredExamOrCertificates();\n const imagesToUpload = {};\n Object.assign(imagesToUpload, covidCertImages);\n Object.defineProperty(imagesToUpload, \"userDocId\", { enumerable: false });\n Object.defineProperty(imagesToUpload, \"userSelfie\", { enumerable: false });\n\n const needSelfie = requiredDocuments.required\n .find(document => document.name === 'PROTOCOL REQUIRE APPROVED SELFIE');\n\n const needIdentificationDocument = requiredDocuments.required\n .find(document => document.name === 'PROTOCOL REQUIRE APPROVED ID DOC');\n\n if (currentSliderPosition === 1 &&\n required.length === Object.keys(imagesToUpload).length) {\n setCurrentSliderPosition(2)\n }\n\n if (currentSliderPosition === 2\n && (event.requiredDocId || needIdentificationDocument)) {\n if (covidCertImages[\"userDocId\"]) {\n setCurrentSliderPosition(3)\n }\n } else if (currentSliderPosition === 2 &&\n !event.requiredDocId &&\n !needIdentificationDocument) {\n setCurrentSliderPosition(3)\n }\n\n if (currentSliderPosition === 3\n && (event.requiredSelfie || needSelfie)) {\n if (covidCertImages[\"userSelfie\"]) {\n setCurrentSliderPosition(4)\n }\n } else if (currentSliderPosition === 3 &&\n !event.requiredDocId &&\n !needSelfie) {\n setCurrentSliderPosition(4)\n }\n\n } else if (selectedValidationRules !== '' && requiredDocuments\n && noDocumentRequired) {\n if (currentSliderPosition === 1) {\n setCurrentSliderPosition(4);\n }\n }\n };\n\n const getStorageEvent = () => {\n const event = getEvent();\n if (event) {\n setEvent({\n id: event?.eventId,\n _id: event?.eventId,\n name: event?.eventName,\n contractType: event?.contract,\n date: event?.datetime,\n protocolId: event?.protocols?.protocolId,\n protocolName: event?.protocols?.protocolName,\n requiredSelfie: event?.protocols?.requiredSelfie,\n shouldRequestIDDocUpload: event?.protocols?.shouldRequestIDDocUpload,\n shouldRequestSelfieUpload: event?.protocols?.shouldRequestSelfieUpload,\n requiredDocId: event?.protocols?.requiredIDDoc,\n validationRules: event?.protocols?.validationRules,\n locatorForm: event?.locatorForm,\n });\n\n let availableRulesList = [];\n event.protocols.validationRules.forEach(rule => {\n const availableRule = {\n name: rule.ruleName,\n id: rule._id,\n protocols: rule.protocolRules\n }\n availableRulesList.push(availableRule);\n });\n\n const sortedRules = availableRulesList?.sort(function (a, b) {\n var textA = a.name.toUpperCase();\n var textB = b.name.toUpperCase();\n return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;\n });\n\n setAvailableRules(sortedRules);\n }\n }\n\n useEffect(() => {\n moveSlider();\n });\n\n useEffect(() => {\n getStorageEvent();\n\n if (!modalState.termsAndConditions) {\n setOpenTCModal(true);\n setModalState((oldModalState) => ({\n ...oldModalState,\n termsAndConditions: true,\n }));\n }\n // eslint-disable-next-line\n }, []);\n\n return (\n \n
\n \n \n \n {event && event.name ? event.name : 'Evento'}\n \n \n\n handleChange(event.target.value)}\n value={selectedValidationRules}\n marginBottom={'40px'}\n />\n\n {isLoading ?\n \n \n \n :\n <>\n {\n requiredDocuments !== undefined &&\n protocols.map((protocol, index) => {\n const doc = protocol.ruleDescription;\n const approved = requiredDocuments?.approved.find((document) => document.name === doc)\n\n if (!approved || approved.name === 'PROTOCOL REQUIRE APPROVED SELFIE' ||\n approved.name === 'PROTOCOL REQUIRE APPROVED ID DOC') {\n return null\n }\n\n return (\n \n \n {doc}\n \n \n \n \n )\n })\n }\n {\n requiredDocuments !== undefined &&\n protocols.map((protocol, index) => {\n const doc = protocol.ruleDescription;\n const requiredDocs = requiredExamOrCertificates();\n const required = requiredDocs?.find((document) => document.name === doc);\n\n if (!required) {\n return null\n }\n\n return (\n \n handleChangeDate(event, doc)\n }\n label={\n protocol.referenceType === 'VACCINE'\n ? t('UPLOAD_PASSE_VERDE_DOCS_APPLICATION_DATE')\n : protocol.referenceType === 'LOCATOR_FORM'\n ? t('UPLOAD_PASSE_VERDE_DOCS_FILL_DATE')\n : t('UPLOAD_PASSE_VERDE_DOCS_COLLECTION_DATE')\n }\n />\n }\n marginTop={10}\n id={`document-file-uploader-${doc}`}\n title={doc}\n buttonText={t('UPLOAD_PASSE_VERDE_DOCS_BUTTON_UPLOAD')}\n buttonTextWhenDocumentUploaded={t('UPLOAD_PASSE_VERDE_DOCS_UPLOADED_FILE_BUTTON_TEXT')}\n documentUploadedText={t('UPLOAD_PASSE_VERDE_DOCS_UPLOADED_FILE_TEXT')}\n isLoading={loadingCovidImage}\n isSubmitting={isSubmitting}\n displayOnly={covidCertImages[doc]}\n onChange={(file) => handleUpload(file, doc)}\n />\n \n \n )\n })\n }\n {\n requiredDocuments !== undefined ?\n !user.approvedID &&\n event.shouldRequestIDDocUpload &&\n <>\n \n handleUpload(file, \"userDocId\")\n }\n />\n \n \n : null\n }\n {\n requiredDocuments !== undefined ?\n user.approvedID &&\n event.shouldRequestIDDocUpload &&\n \n \n \n {t('UPLOAD_PASSE_VERDE_DOCS_DOCUMENT_UPLOAD_TITLE')}\n \n \n \n \n \n : null\n }\n {\n requiredDocuments !== undefined ?\n !user.approvedSelfie &&\n event.shouldRequestSelfieUpload &&\n <>\n \n handleUpload(file, \"userSelfie\")\n }\n />\n \n \n : null\n }\n {\n requiredDocuments !== undefined ?\n user.approvedSelfie &&\n event.shouldRequestSelfieUpload &&\n \n \n \n {t('UPLOAD_PASSE_VERDE_DOCS_SELFIE_UPLOAD_TITLE')}\n \n \n \n \n \n : null\n }\n {\n cantSubmit ?\n \n :\n setOpenCOVID19ModalDataVerification(true)}>\n {t('UPLOAD_PASSE_VERDE_DOCS_BUTTON_CONTINUE')}\n \n }\n \n }\n\n setOpenTCModal(false)}\n closeAfterTransition\n disableBackdropClick\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n \n {t('UPLOAD_PASSE_VERDE_DOCS_MODAL_1_TITLE')}\n \n \n {t('UPLOAD_PASSE_VERDE_DOCS_MODAL_1_DESCRIPTION')}\n \n \n setModalState((oldModalState) => ({\n ...oldModalState,\n termsAndConditions: !oldModalState.termsAndConditions,\n }))\n }\n name=\"checkedFirst\"\n />\n }\n label={t('UPLOAD_PASSE_VERDE_DOCS_MODAL_1_CONFIRMATION_TEXT')}\n />\n
\n {\n setOpenTCModal(false);\n window.location.replace(\"/secure\");\n }}\n >\n {t('UPLOAD_PASSE_VERDE_DOCS_MODAL_CANCEL')}\n \n {\n setOpenTCModal(false);\n }}\n >\n {t('UPLOAD_PASSE_VERDE_DOCS_MODAL_CONFIRM')}\n \n
\n
\n
\n \n\n setOpenCOVID19ModalDataVerification(false)}\n closeAfterTransition\n disableBackdropClick\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n \n {t('UPLOAD_PASSE_VERDE_DOCS_MODAL_2_TITLE')}\n \n \n {t('UPLOAD_PASSE_VERDE_DOCS_MODAL_2_DESCRIPTION')}\n \n \n setModalState((oldModalState) => ({\n ...oldModalState,\n secondChecked: !oldModalState.secondChecked,\n }))\n }\n name=\"checkedFirst\"\n />\n }\n label={t('UPLOAD_PASSE_VERDE_DOCS_MODAL_2_CONFIRMATION_TEXT')}\n />\n
\n {\n setOpenCOVID19ModalDataVerification(false);\n }}\n >\n {t('UPLOAD_PASSE_VERDE_DOCS_MODAL_CANCEL')}\n \n \n {\n isSubmitting ?\n t('UPLOAD_PASSE_VERDE_DOCS_MODAL_CONFIRM_SUBMITTING')\n :\n t('UPLOAD_PASSE_VERDE_DOCS_MODAL_CONFIRM')\n }\n \n
\n
\n
\n \n\n \n \n
\n \n {t('UPLOAD_PASSE_VERDE_DOCS_MODAL_3_TITLE')}\n \n \n {t('UPLOAD_PASSE_VERDE_DOCS_MODAL_3_DESCRIPTION')}\n \n\n
\n {\n setOpenCOVID19ModalFinal(false);\n window.location.replace(\"/secure/passe-verde\");\n }}\n >\n {t('UPLOAD_PASSE_VERDE_DOCS_MODAL_3_BUTTON')}\n \n
\n
\n
\n \n\n setIsOpenSubmitErrorModal(false)}\n />\n\n {\n setIsOpenSelfieErrorModal(false)\n window.location.replace(\"/secure/passe-verde\");\n }}\n />\n \n );\n}\n\nexport default PasseVerdeUpload;","import styled from \"styled-components\";\n\nconst Container = styled.div`\n width: 100%;\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 75px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst Content = styled.div`\n background-color: #FFFFFF;\n width: calc(100% - 40px);\n height: auto;\n padding: 10px;\n margin: 20px 0px;\n border-radius: 8px;\n box-sizing: border-box;\n box-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%);\n`\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #FF0066;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst Text = styled.p`\n color: #808080;\n`\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n padding: 0px 20px;\n margin-top: 50px;\n margin-bottom: 20px;\n`;\n\nconst RedirectContainer = styled.div`\n width: calc(100% - 40px);\n display: flex;\n flex-direction: column;\n gap: 20px;\n padding-bottom: 50px;\n`;\n\nexport {\n Container,\n Content,\n CenterColumn,\n Title,\n Text,\n RedirectContainer,\n};","import styled from \"styled-components\";\n\nconst CardWrapper = styled.div`\n background-color: white;\n color: #4267b2;\n width: 100%;\n min-height: 90px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n padding: 10px;\n margin: 10px 0px;\n box-sizing: border-box;\n`;\n\nconst DocumentDescription = styled.div`\n display: flex;\n width: 150px;\n margin-left: 0;\n flex-direction: column;\n text-align: left;\n box-sizing: border-box;\n`\n\nconst ButtonWrapper = styled.div`\n margin: 0;\n width: 6rem;\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n`\n\n\nexport {\n CardWrapper,\n DocumentDescription,\n ButtonWrapper\n};","import React, { useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n Typography,\n IconButton,\n makeStyles\n} from \"@material-ui/core\";\nimport {\n Share as ShareIcon,\n CheckCircle as CheckIcon,\n} from \"@material-ui/icons\";\nimport {\n CardWrapper,\n DocumentDescription,\n ButtonWrapper\n} from \"./Components\";\nimport axios from \"axios\";\nimport FileDownload from \"js-file-download\";\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles(() => ({\n docName: {\n fontSize: 15,\n color: \"#000000\",\n fontWeight: \"bold\",\n },\n\n date: {\n fontSize: 12,\n color: \"#A4A4A4\",\n marginTop: \".2rem\",\n },\n\n overflow: {\n overflowX: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n\n covidCertificateStatusText: {\n fontSize: 15,\n fontWeight: \"bold\",\n },\n\n covidCertificateStatusIcon: {\n width: \"16px\",\n marginLeft: 5\n },\n}));\n\nconst HealthDigitalReccord = ({\n documentId,\n documentName,\n uploadDate,\n codeType,\n url,\n}) => {\n const { t } = useTranslation('examsPage');\n const [isLoading, setIsLoading] = useState(false);\n\n const classes = useStyles();\n\n const colormap = {\n APPROVED: \"#00A859\",\n };\n\n const history = useHistory();\n\n const handleShareDocument = (documentId, documentName, codeType) => {\n history.push({\n pathname: \"/secure/share-document\",\n state: { id: documentId, name: documentName, codeType }, // document metadata\n });\n };\n\n const handleDownloadDocument = async (url, documentName) => {\n setIsLoading(true);\n try {\n const documentInfoArray = url.split('.');\n const documentExtension = documentInfoArray[documentInfoArray.length - 1];\n\n axios.get(url, {\n responseType: 'blob',\n }).then((res) => {\n FileDownload(res.data, `${documentName}.${documentExtension}`)\n })\n } catch (err) {\n console.log(`[handleDownloadDocument Error]: ${err}`);\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n \n {\n codeType === \"covid_certificate\" &&\n <>\n \"pink\n \n \n {documentName}\n \n \n {t('DATE')}:\n {\" \"}\n {uploadDate}\n \n
\n \n {\n t('CERTIFICATION_APPROVED')\n }\n \n\n \n
\n
\n \n }\n {\n codeType === 'locator_form' &&\n <>\n \"pink\n \n \n {documentName}\n \n \n \n }\n {\n (codeType === 'pv_document' || codeType === 'exam') &&\n <>\n \"pink\n \n \n {documentName}\n \n \n {t('DATE')}:{\" \"}\n {uploadDate}\n \n \n \n }\n\n {codeType === \"covid_certificate\" && (\n \n
\n \n handleShareDocument(documentId, documentName, codeType)\n }\n >\n \n \n
\n
\n )}\n\n {codeType === \"exam\" && (\n \n
\n handleDownloadDocument(url, documentName)}\n >\n \"Pink\n \n
\n
\n\n )}\n\n {codeType !== \"covid_certificate\" && codeType !== \"exam\" && (\n \n handleDownloadDocument(url, documentName)}\n >\n \"Pink\n \n\n \n handleShareDocument(documentId, documentName, codeType)\n }\n >\n \n \n \n )}\n
\n );\n};\n\nexport default HealthDigitalReccord;\n","import styled from \"styled-components\";\nimport { Link } from \"react-router-dom\";\n\nconst StyledLink = styled(Link)`\n margin-bottom: ${props => props.marginBottom ?? 0};\n margin-top: ${props => props.marginTop ?? 0};\n text-decoration: none;\n`;\n\nexport {\n StyledLink,\n};","import React from 'react';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport { StyledLink } from './Components';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n boxSizing: 'border-box',\n borderRadius: '23px',\n padding: '10px 15px',\n boxShadow: '1px 5px 10px 0 rgb(16 36 94 / 8%)',\n minHeight: 45,\n },\n\n title: {\n fontSize: '20px',\n fontWeight: 'bold',\n marginTop: '0px',\n marginBottom: ' 0px',\n }\n}));\n\nexport const RedirectButton = ({\n href,\n disabled,\n title,\n titleColor = '#2D80C6',\n backgroundColor = '#FFFFFF',\n marginTop = \"0px\",\n marginBottom = \"0px\",\n}) => {\n\n const classes = useStyles();\n\n return !disabled ? (\n \n \n \n {title}\n \n \n \n ) : (\n \n \n {title}\n \n \n )\n};","import React, { useState, useMemo, useCallback, useEffect } from \"react\";\nimport {\n Container,\n Content,\n CenterColumn,\n Title,\n Text,\n RedirectContainer,\n} from \"./Components.js\";\nimport Header from \"../../components/Header/Header\";\nimport SearchInput from \"../../components/SearchInput/SearchInput\";\nimport HealthDigitalReccord from \"../../components/HealthDigitalReccord/HealthDigitalReccord\";\nimport { RedirectButton } from \"../../components/RedirectButton/index.jsx\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport { request } from \"../../utils/request\";\nimport { useTranslation } from \"react-i18next\";\nimport moment from \"moment\";\nimport { getUser, setUser } from \"../../utils/user/index.js\";\n\nconst DigitalCertificates = () => {\n const { t } = useTranslation(\"examsPage\");\n const user = getUser();\n\n const userExams = user?.exams;\n\n const [documents, setDocuments] = useState([]);\n const [hasEnterprise, setHasEnterprise] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n const [search, setSearch] = useState(\"\");\n\n const handleChange = (event) => {\n setSearch(event.target.value);\n };\n\n const userAvailableCertificates = useCallback(() => {\n const checkedDocuments = [];\n const certificatesList = [];\n\n if (documents?.length < 1) {\n return certificatesList;\n }\n\n documents.forEach((document) => {\n const alreadyHasThisDoc = checkedDocuments.find(\n (checkedDocument) => checkedDocument.name === document.name\n );\n\n if (!alreadyHasThisDoc) {\n checkedDocuments.push(document);\n return;\n }\n\n if (moment(document.datetime).isAfter(alreadyHasThisDoc.datetime)) {\n const index = checkedDocuments.indexOf(alreadyHasThisDoc);\n checkedDocuments[index] = document;\n }\n });\n\n (userExams || []).forEach((exam) => {\n const formattedExam = {\n id: exam._id,\n datetime: exam.collectDate,\n fileUrl: exam.file?.url,\n name: exam.exam_name,\n type: \"EXAM\",\n };\n\n checkedDocuments.push(formattedExam);\n });\n\n checkedDocuments.forEach((document, index) => {\n if (document.currentPasseVerde) {\n return certificatesList.push(\n \n );\n }\n\n if (document.type === \"LOCATOR_FORM\") {\n return certificatesList.push(\n \n );\n }\n\n if (document.type === \"EXAM\") {\n return certificatesList.push(\n \n );\n }\n\n certificatesList.push(\n \n );\n });\n\n return certificatesList;\n }, [documents, t, userExams]);\n\n const certificatesToRender = userAvailableCertificates();\n const certificatesFiltered = useMemo(() => {\n if (certificatesToRender.length > 0) {\n const lowerSearch = search.toLowerCase();\n return certificatesToRender.filter((document) =>\n document.key.toLowerCase().includes(lowerSearch)\n );\n }\n }, [certificatesToRender, search]);\n\n useEffect(() => {\n const getUserDocuments = async () => {\n const promises = [\n request.get(\"/client-app/me\"),\n request.get(`/client-app/user-documents`),\n request.get(`/client-app/find-user-enterprises`),\n ];\n\n Promise.all(promises)\n .then((responses) => {\n const [user, documents, userEnterprises] = responses;\n\n setUser(user.data);\n setDocuments(documents.data);\n\n if (!userEnterprises.data?.length) {\n return;\n }\n\n setHasEnterprise(true);\n })\n .catch((err) => console.error(err))\n .finally(() => {\n setIsLoading(false);\n });\n };\n\n getUserDocuments();\n }, []);\n\n return (\n \n
\n {t(\"TITLE\")}\n \n {isLoading ? (\n \n \n \n ) : (\n <>\n {!certificatesFiltered?.length ? (\n \n {t(\"EXAMS_OR_CERTIFICATES_NOT_FOUND\")}\n \n ) : (\n {certificatesFiltered}\n )}\n\n \n \n\n {hasEnterprise && (\n \n )}\n \n \n )}\n \n );\n};\n\nexport default DigitalCertificates;\n","const setHasPasseVerde = (passeverde) => {\n const serializedPasse = JSON.stringify(passeverde);\n localStorage.setItem('__haspasseverde', serializedPasse);\n}\n\nconst getHasPasseVerde = () => {\n const serializedPasse = localStorage.getItem('__haspasseverde');\n const deserializedPasse = JSON.parse(serializedPasse);\n return deserializedPasse;\n}\n\nexport {\n setHasPasseVerde,\n getHasPasseVerde,\n};","const monthMap = {\n '1': 'Jan',\n '2': 'Fev',\n '3': 'Mar',\n '4': 'Abr',\n '5': 'Mai',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Ago',\n '9': 'Set',\n '10': 'Out',\n '11': 'Nov',\n '12': 'Dez',\n};\n\nconst dateConfig = {\n 'date': {\n format: 'DD',\n caption: 'Dia',\n step: 1,\n },\n 'month': {\n format: value => monthMap[value.getMonth() + 1],\n caption: 'Mês',\n step: 1,\n },\n 'year': {\n format: 'YYYY',\n caption: 'Ano',\n step: 1,\n },\n};\n\nexport {\n dateConfig,\n}","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 120px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst CenterColumn = styled.div`\n width: calc(100% - 40px);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n`;\n\nconst FormContainer = styled.div`\n width: calc(100% - 40px);\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\n\nconst AccordionContainer = styled.div`\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : 0};\n`;\n\nconst ButtonContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : 0};\n margin-top: ${props => props.marginTop ? props.marginTop : 0};\n`;\n\nconst MainButton = styled.button`\n color: white;\n font-weight: bold;\n background-color: #2D80C6;\n border: none;\n border-radius: 15px;\n box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);\n padding: 10px 20px;\n text-transform: uppercase;\n cursor: pointer;\n transition: .2s;\n\n\n &:hover {\n background-color: #3297DB;\n }\n`;\n\nconst LoadingContainer = styled.div`\n width: 100%;\n margin: 10px 0px; \n`\nconst AvatarBorder = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width:146px;\n height:146px;\n position: relative;\n &:before {\n content:\"\";\n position:absolute;\n top:0;\n left:0;\n right:0;\n bottom:0;\n border-radius:50%; \n padding:5px; \n background: linear-gradient(135deg, #2D80C6, #808080); \n background: -webkit-linear-gradient(310deg, #2D80C6, #808080); \n -webkit-mask: \n linear-gradient(#fff 0 0) content-box, \n linear-gradient(#fff 0 0);\n -webkit-mask-composite: destination-out; \n mask-composite: exclude; \n }\n`\n\nexport {\n Container,\n Title,\n FormContainer,\n AccordionContainer,\n CenterColumn,\n ButtonContainer,\n MainButton,\n LoadingContainer,\n AvatarBorder,\n};\n","import React from 'react';\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\n\nconst AccordionIcon = ({\n expandedPanel,\n panel,\n}) => {\n return (\n \n )\n}\n\nexport default AccordionIcon;","import React from 'react';\nimport AccordionIcon from '../AccordionIcon/AccordionIcon';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n boxSizing: 'border-box',\n backgroundColor: '#FFFFFF',\n borderRadius: '23px',\n padding: '10px 15px',\n boxShadow: '1px 5px 10px 0 rgb(16 36 94 / 8%)',\n cursor: 'pointer',\n minHeight: 45,\n },\n\n title: {\n fontSize: '20px',\n fontWeight: 'bold',\n color: '#2D80C6',\n marginTop: '0px',\n marginBottom: ' 0px',\n }\n}));\n\nconst AccordionSummary = ({\n id,\n onClick,\n title,\n expandedPanel,\n panel,\n}) => {\n\n const classes = useStyles();\n\n return (\n \n

{title}

\n \n
\n )\n}\n\nexport default AccordionSummary;","import React from 'react';\n\nconst AccordionDetails = ({\n children,\n expandedPanel,\n panel,\n height,\n transitionDuration,\n paddingBottom,\n}) => {\n\n const isOpen = expandedPanel === panel;\n\n return (\n \n {children}\n
\n )\n}\n\nexport default AccordionDetails;","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n boxSizing: 'border-box',\n padding: 5,\n },\n\n label: {\n cursor: 'pointer',\n },\n\n labelContent: {\n margin: '12px 0px 8px 0px',\n fontWeight: 'bold',\n color: '#505050',\n },\n\n input: {\n width: '100%',\n color: '#505050',\n backgroundColor: '#FFFFFF',\n padding: '8px 12px',\n borderRadius: '8px',\n minHeight: '45px',\n boxSizing: 'border-box',\n boxShadow: '0 0px 10px 0px rgb(16 36 94 / 7%)',\n },\n}));\n\nconst FormEntryText = ({\n id,\n label,\n value,\n onChange,\n onBlur,\n placeholder,\n error,\n type,\n disabled,\n}) => {\n const classes = useStyles();\n\n return (\n
\n \n \n
\n )\n}\n\nexport default FormEntryText;","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core\";\n\nconst useStyles = makeStyles(() => ({\n container: {\n display: \"flex\",\n flexDirection: \"column\",\n boxSizing: \"border-box\",\n padding: 5,\n },\n\n label: {\n cursor: \"pointer\",\n },\n\n labelContent: {\n margin: \"12px 0px 8px 0px\",\n fontWeight: \"bold\",\n color: \"#505050\",\n },\n\n form: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: \"#FFFFFF\",\n padding: \"8px 12px\",\n borderRadius: \"8px\",\n height: \"45px\",\n boxSizing: \"border-box\",\n boxShadow: \"0 0px 10px 0px rgb(16 36 94 / 7%)\",\n border: \"none\",\n cursor: \"pointer\",\n },\n\n selectInput: {\n width: \"100%\",\n height: \"30px\",\n color: \"#505050\",\n backgroundColor: \"#FFFFFF !important\",\n border: \"none\",\n cursor: \"pointer\",\n },\n}));\n\nconst FormEntrySelect = ({\n id,\n onChange,\n value,\n label,\n disabled,\n children,\n}) => {\n const classes = useStyles();\n\n return (\n
\n {label && (\n \n )}\n
\n \n {children}\n \n \n
\n );\n};\n\nexport default FormEntrySelect;\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport DateFnsUtils from \"@date-io/date-fns\";\nimport pt from \"date-fns/locale/pt\";\nimport {\n MuiPickersUtilsProvider,\n KeyboardDatePicker,\n} from \"@material-ui/pickers\";\n\nconst useStyles = makeStyles(() => ({\n container: {\n display: \"flex\",\n flexDirection: \"column\",\n boxSizing: \"border-box\",\n padding: 5,\n },\n\n label: {\n cursor: \"pointer\",\n },\n\n labelContent: {\n margin: \"12px 0px 8px 0px\",\n fontWeight: \"bold\",\n color: \"#505050\",\n },\n\n datePicker: {\n \"& .MuiInputLabel-outlined\": {\n transform: \"translate(23px, 14px) scale(1)\",\n color: \"#000000\",\n fontSize: 13,\n display: \"none\",\n },\n \"& .MuiInputLabel-outlined.MuiInputLabel-shrink\": {\n transform: \"translate(14px, -11px) scale(.75)\",\n display: \"none\",\n },\n \"& .MuiFormLabel-root.Mui-error\": {\n color: \"#f44336\",\n },\n \"& .MuiIconButton-root\": {\n padding: 0,\n display: \"none\",\n },\n \"& .MuiSvgIcon-root\": {\n color: \"#000000\",\n },\n },\n\n input: {\n backgroundColor: \"#FFFFFF\",\n color: \"#505050\",\n fontSize: 13,\n padding: \"8px 12px\",\n borderRadius: \"8px\",\n minHeight: \"45px\",\n boxSizing: \"border-box\",\n boxShadow: \"0 0px 10px 0px rgb(16 36 94 / 7%)\",\n cursor: \"pointer\",\n\n \"& fieldset\": {\n border: \"none\",\n },\n \"& .MuiInputBase-input\": {\n padding: 0,\n },\n },\n}));\n\nconst FormEntryDate = ({ id, onClick, value, label, disabled }) => {\n const classes = useStyles();\n\n return (\n
\n {label && (\n \n )}\n \n \n \n
\n );\n};\n\nexport default FormEntryDate;\n","import React from 'react';\nimport {\n Radio,\n RadioGroup,\n FormControlLabel,\n FormControl,\n FormLabel,\n makeStyles\n} from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 5,\n marginTop: 12,\n },\n\n label: {\n fontWeight: 'bold',\n marginBottom: 8,\n color: '#505050',\n },\n\n radioGroup: {\n marginLeft: 5,\n '& .MuiRadio-root': {\n width: 20,\n height: 20,\n },\n\n '& .MuiFormControlLabel-label': {\n color: '#505050',\n fontSize: 15,\n },\n },\n}));\n\nexport const FormEntryOptions = ({\n name,\n label,\n options,\n value,\n onChange,\n disabled,\n}) => {\n const classes = useStyles();\n\n return (\n \n \n {label}\n \n \n {options?.map(option => (\n }\n label={option.label}\n />\n ))}\n \n \n );\n}","const DOCUMENT_TYPE_OPTIONS = [\n {\n name: 'DOCUMENT_TYPE_CPF',\n value: 'cpf',\n },\n {\n name: 'DOCUMENT_TYPE_PASSPORT',\n value: 'passport',\n },\n {\n name: 'DOCUMENT_TYPE_RG',\n value: 'rg',\n },\n {\n name: 'DOCUMENT_TYPE_CNH',\n value: 'cnh',\n },\n {\n name: 'DOCUMENT_TYPE_PROFESSIONAL_IDENTITY',\n value: 'professional-identity',\n },\n {\n name: 'DOCUMENT_TYPE_OTHERS',\n value: 'others',\n },\n]\n\nconst GENDER_OPTIONS = [\n {\n label: 'GENDER_MALE_OPTION',\n value: 'male',\n },\n {\n label: 'GENDER_FEMALE_OPTION',\n value: 'female',\n },\n {\n label: 'GENDER_PREFER_NOT_TO_INFORM_OPTION',\n value: 'prefer-not-to-inform',\n }\n];\n\nexport {\n DOCUMENT_TYPE_OPTIONS,\n GENDER_OPTIONS,\n}","import React, { useEffect, useState } from \"react\";\nimport { getUser } from \"../../utils/user\";\nimport { setHasPasseVerde } from \"../../utils/hasPasseVerde\";\nimport { request } from \"../../utils/request\";\nimport { dateConfig } from \"../../utils/dateConfig\";\nimport {\n CircularProgress,\n Typography,\n makeStyles,\n LinearProgress,\n Modal,\n Fade,\n Backdrop,\n Avatar,\n} from \"@material-ui/core\";\nimport {\n Container,\n Title,\n FormContainer,\n AccordionContainer,\n CenterColumn,\n ButtonContainer,\n MainButton,\n LoadingContainer,\n AvatarBorder,\n} from \"./Components\";\nimport Header from \"../../components/Header/Header\";\nimport Dialog from \"../../components/Dialog/Dialog\";\nimport AccordionSummary from \"../../components/AccordionSummary/AccordionSummary\";\nimport AccordionDetails from \"../../components/AccordionDetails/AccordionDetails\";\nimport FormEntryText from \"../../components/FormEntryText/FormEntryText\";\nimport FormEntrySelect from \"../../components/FormEntrySelect/FormEntrySelect\";\nimport FormEntryDate from \"../../components/FormEntryDate/FormEntryDate\";\nimport { FormEntryOptions } from \"../../components/FormEntryOptions\";\nimport { RedirectButton } from \"../../components/RedirectButton\";\nimport DatePicker from \"react-mobile-datepicker\";\nimport { useTranslation } from 'react-i18next';\nimport { DOCUMENT_TYPE_OPTIONS, GENDER_OPTIONS } from \"./data\";\n\nimport moment from \"moment-timezone\";\nimport axios from \"axios\";\n\nconst useStyles = makeStyles(() => ({\n userProfileContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n\n avatar: {\n width: 130,\n height: 130,\n },\n\n userName: {\n fontSize: 20,\n fontWeight: 'bold',\n color: '#808080',\n marginTop: 10,\n },\n\n userInfo: {\n fontSize: 14,\n color: '#808080',\n },\n\n datepickerModal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '95%',\n maxWidth: '420px',\n margin: '0 auto',\n },\n\n datepicker: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 320,\n '& .datepicker': {\n position: 'static',\n borderRadius: 10,\n padding: 15,\n },\n '& .datepicker.default .datepicker-header': {\n fontSize: 20\n },\n '& .datepicker.default .datepicker-navbar-btn': {\n fontSize: 18\n }\n },\n}));\n\nconst Profile = () => {\n const { t } = useTranslation(['profilePage', 'common']);\n const classes = useStyles();\n const user = getUser(); // user with documentType == CNS => morador de noronha\n\n const [loading, setLoading] = useState(true);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [data, setData] = useState(null);\n const [feedback, setFeedback] = useState(null);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [countriesList, setCountriesList] = useState([]);\n const [expandedPanel, setExpandedPanel] = useState(undefined);\n const [isPasseVerdeUser, setIsPasseVerdeUser] = useState(false);\n const [openDatePicker, setOpenDatePicker] = useState(false);\n\n const handleClick = (panel) => {\n if (panel === expandedPanel) {\n setExpandedPanel(undefined);\n } else {\n setExpandedPanel(panel);\n }\n };\n\n const updateData = (field, value) => {\n if (isPasseVerdeUser && field !== \"name\") {\n setFeedback(t('NO_EDIT_WARNING'));\n setDialogOpen(true);\n return;\n }\n\n const newData = { ...data };\n newData[field] = value;\n setData(newData);\n };\n\n const confirmHandler = async () => {\n try {\n if (data.birthday === \"\") {\n setFeedback(t('BIRTHDATE_NOT_VALID'));\n setDialogOpen(true);\n return;\n }\n\n setIsSubmitting(true);\n\n const dataFormatted = { ...data };\n dataFormatted['birthday'] = moment(dataFormatted.birthday).format(\"DD/MM/YYYY\");\n\n await request.post(`/client-app/update-profile`, dataFormatted);\n\n setFeedback(t('SUBMIT_SUCCESS_RESPONSE'));\n setDialogOpen(true);\n\n } catch (error) {\n console.log(`[Profile getUserProfile Error]: ${error}`);\n let message = t('SUBMIT_ERROR_RESPONSE');\n\n const { isAxiosError } = error;\n if (isAxiosError) {\n message = error.response.data.message;\n }\n\n setFeedback(message);\n setDialogOpen(true);\n\n } finally {\n setIsSubmitting(false);\n }\n };\n\n const order = (a, b) => {\n const x = a.name.toLowerCase();\n const y = b.name.toLowerCase();\n\n return x > y ? 1\n : x < y ? -1\n : 0;\n }\n\n useEffect(() => {\n const getUserProfile = async () => {\n try {\n const { data: result } = await request.get(\n `/client-app/profile?id=${user.id}`\n );\n\n if (user?.travelHistory && user.travelHistory.length > 0) {\n setIsPasseVerdeUser(true);\n setHasPasseVerde(true);\n } else {\n setIsPasseVerdeUser(false);\n setHasPasseVerde(false);\n }\n\n setData({\n id: user.id,\n username: result.username ? result.username : \"\",\n name: result.name ? result.name : \"\",\n surname: result.surname ? result.surname : \"\",\n email: result.email ? result.email : \"\",\n mobile: result.mobile ? result.mobile : \"\",\n telephone: result.telephone ? result.telephone : \"\",\n country: result.country ? result.country._id : null,\n nationality: result.nationality ? result.nationality : \"\",\n gender: result.gender ? result.gender : \"\",\n prefix: result.prefix ? result.prefix : \"\",\n url: result.url ? result.url : \"\",\n birthday: result.birthday ? moment(result.birthday, 'DD/MM/YYYY')._d : \"\",\n documentType: result.documentType ? result.documentType : \"\",\n documentNumber: result.documentNumber ? result.documentNumber : \"\",\n documentIssuedBy: result.documentIssuedBy\n ? result.documentIssuedBy\n : \"\",\n documentFile: result.documentFile || \"\",\n vaccinationCard: result.vaccinationCard || \"\",\n \"address.addressLineOne\":\n (result.address && result.address.addressLineOne) || \"\",\n \"address.addressLineTwo\":\n (result.address && result.address.addressLineTwo) || \"\",\n \"address.borough\": (result.address && result.address.borough) || \"\",\n \"address.town\": (result.address && result.address.town) || \"\",\n \"address.state\": (result.address && result.address.state) || \"\",\n \"address.postalCode\":\n (result.address && result.address.postalCode) || \"\",\n });\n } catch (error) {\n console.log(`[Profile getUserProfile Error]: ${error}`);\n } finally {\n setLoading(false);\n }\n };\n\n const getCountriesList = async () => {\n try {\n const { data: result } = await axios.get(\n `${process.env.REACT_APP_API_URL}/find-countries-list`\n );\n\n const orderedCountries = result.sort(order);\n setCountriesList(orderedCountries);\n } catch (error) {\n console.log(`[Profile getCountriesList Error]: ${error}`);\n } finally {\n setLoading(false);\n }\n };\n\n if (data === null) {\n setLoading(true);\n getCountriesList();\n getUserProfile();\n }\n // eslint-disable-next-line\n }, []);\n\n return (\n \n
\n {t('TITLE')}\n\n {loading ? (\n \n \n \n ) : (\n <>\n \n
\n {\n user?.approvedSelfie ?\n \n \n \n :\n \n }\n
\n \n {user?.name}\n \n \n {t('SUBTITLE')}\n \n
\n
\n
\n \n \n handleClick('panel1')}\n title={t('GENERAL_INFO')}\n expandedPanel={expandedPanel}\n panel='panel1'\n />\n \n updateData(\"name\", event.target.value)}\n value={data?.name}\n disabled={true}\n />\n\n updateData(\"surname\", event.target.value)}\n value={data?.surname}\n disabled={true}\n />\n\n setOpenDatePicker(true)}\n disabled={true}\n />\n\n updateData(\"mobile\", event.target.value)}\n value={data?.mobile}\n disabled={isSubmitting}\n />\n\n updateData(\"telephone\", event.target.value)}\n value={data?.telephone}\n disabled={isSubmitting}\n />\n\n updateData(\"nationality\", event.target.value)}\n label={t('NATIONALITY')}\n value={data?.nationality}\n disabled={isSubmitting}\n >\n \n {countriesList?.map(option => (\n \n ))}\n \n\n updateData(\"gender\", event.target.value)}\n value={data?.gender}\n disabled={isSubmitting}\n options={GENDER_OPTIONS.map(option => ({\n label: t(option.label, { ns: 'common' }),\n value: option.value\n }))}\n />\n\n updateData(\"documentType\", event.target.value)}\n value={data?.documentType}\n disabled={isSubmitting}\n >\n \n {DOCUMENT_TYPE_OPTIONS.map(option => (\n \n ))}\n \n\n updateData(\"documentNumber\", event.target.value)}\n value={data?.documentNumber}\n disabled={true}\n />\n\n updateData(\"documentIssuedBy\", event.target.value)}\n value={data?.documentIssuedBy}\n disabled={isSubmitting}\n />\n\n updateData(\"address.addressLineOne\", event.target.value)}\n value={data?.[\"address.addressLineOne\"] || \"\"}\n disabled={isSubmitting}\n />\n\n updateData(\"address.addressLineTwo\", event.target.value)}\n value={data?.[\"address.addressLineTwo\"] || \"\"}\n disabled={isSubmitting}\n />\n\n updateData(\"address.borough\", event.target.value)}\n value={data?.[\"address.borough\"] || \"\"}\n disabled={isSubmitting}\n />\n\n updateData(\"address.town\", event.target.value)}\n value={data?.[\"address.town\"] || \"\"}\n disabled={isSubmitting}\n />\n\n updateData(\"address.state\", event.target.value)}\n value={data?.[\"address.state\"] || \"\"}\n disabled={isSubmitting}\n />\n\n updateData(\"address.postalCode\", event.target.value)}\n value={data?.[\"address.postalCode\"] || \"\"}\n disabled={isSubmitting}\n />\n\n \n {\n isSubmitting ?\n \n \n \n :\n \n {t('SUBMIT_BUTTON')}\n \n }\n \n \n \n\n \n\n \n {feedback}\n \n\n \n\n setOpenDatePicker(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n {\n updateData(\"birthday\", time);\n setOpenDatePicker(false);\n }}\n onCancel={() => setOpenDatePicker(false)}\n isPopup={false}\n showHeader={true}\n headerFormat=\"DD/MM/YYYY\"\n dateConfig={dateConfig}\n min={new Date(1910, 0, 1)}\n max={moment()._d}\n confirmText={t('BIRTHDATE_MODAL_CONFIRM_BUTTON')}\n cancelText={t('BIRTHDATE_MODAL_CANCEL_BUTTON')}\n />\n
\n
\n \n \n )\n }\n \n );\n};\n\nexport default Profile;\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n display: flex;\n align-items: center;\n flex-direction: column;\n padding-bottom: 150px;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst Subtitle = styled.h6`\n width: calc(100% - 40px);\n color: #808080;\n font-size: 15px;\n font-weight: 400;\n text-align: center;\n margin-top: 10px;\n margin-bottom: 30px;\n`;\n\nconst FormContainer = styled.div`\n width: calc(100% - 40px);\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\n\nconst AccordionContainer = styled.div`\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : 0};\n`;\n\nconst TextAreaContainer = styled.div`\n display: flex;\n text-align: center;\n justify-content: center;\n width: 100%;\n`;\n\nconst TextArea = styled.textarea`\n min-height: 240px;\n width: 95%;\n background-color: #FFFFFF;\n border: 0px;\n padding: 8px;\n border-radius: 8px;\n resize: none;\n margin-bottom: 20px;\n box-sizing: border-box;\n box-shadow: 0 0px 10px 0 rgba(16, 36, 94, 0.05);\n`;\n\nconst ButtonContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : 0};\n margin-top: ${props => props.marginTop ? props.marginTop : 0};\n`;\n\nconst MainButton = styled.button`\n color: white;\n font-weight: bold;\n background-color: #2D80C6;\n border: none;\n border-radius: 15px;\n box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);\n padding: 10px 20px;\n text-transform: uppercase;\n cursor: pointer;\n transition: .2s;\n\n &:hover {\n background-color: #3297DB;\n }\n`;\n\nconst SecondaryButton = styled.button`\n color: white;\n font-size: 10px;\n font-weight: bold;\n background-color: #808080;\n border: none;\n border-radius: 15px;\n padding: 7px 14px;\n text-transform: uppercase;\n cursor: pointer;\n transition: .2s;\n\n &:hover {\n background-color: #A6A6A6;\n }\n`;\n\nconst DeleteAccountTextContainer = styled.div`\nborder: 1px solid #FF0066; \npadding: 20px 15px; \nmargin-top: 20px; \nbox-sizing: border-box;\n`;\n\nconst ModalButton = styled.button`\n width: 140px;\n height: 30px;\n color: #FFFFFF;\n font-size: 14px;\n font-weight: bold;\n text-transform: uppercase;\n background-color: #00A859;\n letter-spacing: -0.5px;\n border: none;\n border-radius: 15px;\n margin-top: 20px;\n transition: .2s;\n cursor: pointer;\n`;\n\nexport {\n Container,\n Title,\n Subtitle,\n FormContainer,\n AccordionContainer,\n ButtonContainer,\n MainButton,\n SecondaryButton,\n TextAreaContainer,\n TextArea,\n DeleteAccountTextContainer,\n ModalButton,\n};\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n minHeight: 41,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n textAlign: 'left',\n backgroundColor: '#2D80C6',\n border: 'none',\n borderRadius: '15px',\n padding: '6px 15px',\n boxShadow: '0 0px 10px 0px rgb(16 36 94 / 9%)',\n boxSizing: 'border-box',\n cursor: 'pointer',\n transition: '.2s',\n\n '&:hover': {\n backgroundColor: '#3297DB'\n },\n },\n\n disabledContainer: {\n width: '100%',\n minHeight: 41,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n textAlign: 'left',\n backgroundColor: '#808080',\n border: 'none',\n borderRadius: '15px',\n padding: '6px 15px',\n boxShadow: '0 0px 10px 0px rgb(16 36 94 / 9%)',\n boxSizing: 'border-box',\n cursor: 'not-allowed',\n },\n\n title: {\n fontSize: '18px',\n fontWeight: 'bold',\n color: '#FFFFFF',\n marginTop: '0px',\n marginBottom: ' 0px',\n }\n}));\n\nconst MyDataDownloadButton = ({\n title,\n onClick,\n children,\n disabled,\n marginTop,\n fileType,\n}) => {\n\n const classes = useStyles();\n\n return (\n \n {\n children ?\n children\n :

{title}

\n }\n {\n fileType === 'image' ?\n \"JPEG\n :\n \"CSV\n }\n \n )\n}\n\nexport default MyDataDownloadButton;","import React, { useState, useEffect } from \"react\";\nimport { CSVLink } from \"react-csv\";\nimport { getUser } from \"../../utils/user\";\nimport { request } from \"../../utils/request\";\nimport {\n Container,\n Title,\n Subtitle,\n FormContainer,\n AccordionContainer,\n ButtonContainer,\n MainButton,\n SecondaryButton,\n TextAreaContainer,\n TextArea,\n DeleteAccountTextContainer,\n ModalButton,\n} from \"./Components\";\nimport Header from \"../../components/Header/Header\";\nimport {\n makeStyles,\n Typography,\n Fade,\n Modal,\n Backdrop,\n Checkbox,\n FormControlLabel,\n LinearProgress,\n} from \"@material-ui/core\";\nimport AccordionSummary from \"../../components/AccordionSummary/AccordionSummary\";\nimport AccordionDetails from \"../../components/AccordionDetails/AccordionDetails\";\nimport MyDataDownloadButton from \"../../components/MyDataDownloadButton/MyDataDownloadButton\";\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles((theme) => ({\n csvLink: {\n width: '100%',\n textDecoration: 'none',\n color: 'white',\n fontSize: '18px',\n fontWeight: 'bold',\n },\n\n rectifyInfoText: {\n fontSize: '15px',\n color: '#808080',\n padding: '20px 10px',\n boxSizing: 'border-box',\n },\n\n deleteAccountText: {\n color: '#808080',\n fontSize: '13px',\n fontWeight: 'bold',\n textAlign: 'center',\n },\n\n modal: {\n width: '95%',\n maxWidth: '410px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n margin: 'auto',\n boxSizing: 'border-box',\n },\n\n modalPaper: {\n maxHeight: '95%',\n backgroundColor: theme.palette.background.paper,\n borderRadius: 10,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n boxSizing: 'border-box',\n },\n\n modalHeader: {\n textAlign: 'center',\n width: 290,\n paddingTop: 10,\n paddingBottom: 20,\n fontSize: '18px',\n fontWeight: 'bold',\n color: '#FF0066',\n textTransform: 'uppercase',\n },\n\n modalContent: {\n paddingBottom: 20,\n fontSize: '14px',\n fontWeight: 'bold',\n color: '#808080',\n textAlign: 'justify'\n },\n\n modalFormControlLabel: {\n paddingBottom: 20,\n '& .MuiTypography-body1': {\n fontWeight: 'bold',\n },\n },\n\n modalButtonContainer: {\n display: 'flex',\n justifyContent: 'space-around',\n width: '100%',\n paddingBottom: 10,\n },\n\n modalBackButton: {\n backgroundColor: '#2D80C6',\n color: '#FFFFFF',\n transition: '.2s',\n '&:hover': {\n filter: 'brightness(.9)',\n }\n },\n}));\n\nconst MyData = () => {\n const [open, setOpen] = useState(false);\n const [hasReadDeleteWarning, setHasReadDeleteWarning] = useState(false);\n const [processing, setProcessing] = useState(false);\n const [downloadProfileData, setDownloadProfileData] = useState();\n const [emailMessage, setEmailMessage] = useState();\n const [isLoading, setIsLoading] = useState(false);\n const [expandedPanel, setExpandedPanel] = useState(undefined);\n\n const { t } = useTranslation('myDataPage');\n const classes = useStyles();\n const user = getUser();\n\n const handleClick = (panel) => {\n if (panel === expandedPanel) {\n setExpandedPanel(undefined);\n } else {\n setExpandedPanel(panel);\n }\n };\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const handleCheckboxChange = () => {\n setHasReadDeleteWarning(!hasReadDeleteWarning);\n };\n\n const handleTerminateUser = async () => {\n try {\n setProcessing(true);\n setIsLoading(true);\n await request.post(`/client-app/update-profile?type=terminate`, {\n _id: user.id,\n });\n localStorage.removeItem(\"__session\");\n localStorage.removeItem(\"__user\");\n sessionStorage.removeItem(\"access_code\");\n window.location.reload(true);\n } catch (error) {\n console.error(error);\n } finally {\n setProcessing(false);\n setIsLoading(false);\n handleClose();\n }\n };\n\n const contactFormHandler = async () => {\n try {\n setIsLoading(true);\n const body = {\n context: t('RECTIFY_TITLE'),\n userName: `${user.name} ${user.surname}`,\n message: emailMessage,\n email: user.email,\n };\n\n await request.post(`/client-app/contact`, body);\n setEmailMessage(\"\");\n alert(t('EMAIL_SENT'));\n } catch (error) {\n console.error(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const handleDownloadImage = async (url) => {\n try {\n setIsLoading(true);\n if (!url) {\n throw new Error(\"Data not available\");\n }\n\n const splitedUrlString = url.split(\".\");\n const fileName = splitedUrlString[splitedUrlString.length - 2];\n const fileExtension = splitedUrlString[splitedUrlString.length - 1];\n\n const file = await fetch(url + '?not-from-cache').then((r) => r.blob());\n\n const blob = new Blob([file], { type: \"image/**\" });\n const href = await URL.createObjectURL(blob);\n const link = document.createElement(\"a\");\n link.href = href;\n link.download = `${fileName}.${fileExtension}`;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n } catch (error) {\n console.error(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n useEffect(() => {\n const getProfileDownloadData = async () => {\n try {\n setIsLoading(true);\n // Profile Data\n const { data: profileData } = await request.get(\n `/client-app/download-profile-data?id=${user.id}`\n );\n setDownloadProfileData(profileData.user);\n } catch (error) {\n console.error(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n getProfileDownloadData();\n }, [user.id]);\n\n return (\n \n
\n {t('TITLE')}\n {t('SUBTITLE')}\n\n \n \n handleClick('panel1')}\n title={t('DOWNLOAD_DATA')}\n expandedPanel={expandedPanel}\n panel='panel1'\n />\n \n {isLoading ?\n \n :\n <>\n {downloadProfileData ? (\n \n \n {t('DOWNLOAD_PROFILE')}\n \n \n ) : (\n \n )}\n\n {user?.selfieFile?.url ?\n handleDownloadImage(user?.selfieFile?.url)}\n marginTop={10}\n fileType=\"image\"\n />\n :\n \n }\n\n {user.vaccinationCard?.url ?\n handleDownloadImage(user.vaccinationCard?.url)}\n marginTop={10}\n fileType=\"image\"\n />\n :\n \n }\n\n {user.documentFile?.url ?\n handleDownloadImage(user.documentFile?.url)}\n marginTop={10}\n fileType=\"image\"\n />\n :\n \n }\n \n }\n \n \n\n \n handleClick('panel2')}\n title={t('RECTIFY_TITLE')}\n expandedPanel={expandedPanel}\n panel='panel2'\n />\n \n \n {t('RECTIFY_SUBTITLE')}\n \n\n {isLoading ? : \"\"}\n \n setEmailMessage(event.target.value)}\n value={emailMessage}\n type=\"text\"\n id=\"clinicAddress\"\n />\n \n\n \n \n {t('RECTIFY_BUTTON')}\n \n \n\n \n \n\n \n handleClick('panel3')}\n title={t('TERMINATE_ACCOUNT')}\n expandedPanel={expandedPanel}\n panel='panel3'\n />\n \n \n \n {t('TERMINATE_ACCOUNT_WARNING')}\n \n \n\n \n \n {t('TERMINATE_ACCOUNT_BUTTON')}\n \n \n\n \n \n\n \n\n \n \n
\n \n {t('TERMINATE_ACCOUNT_MODAL_TITLE')}\n \n \n {t('TERMINATE_ACCOUNT_MODAL_DESCRIPTION')}\n \n\n \n }\n label={\n t('TERMINATE_ACCOUNT_CHECK_CONFIRMATION')\n }\n />\n\n {!processing ? (\n
\n \n {t('TERMINATE_ACCOUNT_CONFIRM_BUTTON')}\n \n \n {t('TERMINATE_ACCOUNT_CANCEL_BUTTON')}\n \n
\n ) : (\n \n {t('TERMINATE_ACCOUNT_PROCESS')}\n \n )}\n
\n
\n \n \n );\n};\n\nexport default MyData;\n","import styled from \"styled-components\";\nimport { Link } from \"react-router-dom\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n display: flex;\n align-items: center;\n flex-direction: column;\n padding-bottom: 150px;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst CenterColumn = styled.div`\n width: calc(100% - 40px);\n`;\n\nconst ButtonContainer = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : 0};\n margin-top: ${props => props.marginTop ? props.marginTop : 0};\n`;\n\nconst MainButton = styled.button`\n color: #FFFFFF;\n font-weight: bold;\n background-color: #2D80C6;\n border: none;\n border-radius: 15px;\n box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);\n padding: 10px 20px;\n text-transform: uppercase;\n cursor: pointer;\n transition: .2s;\n\n &:hover {\n background-color: #3297DB;\n }\n`;\n\nconst LoadingContainer = styled.div`\n width: 100%;\n margin: 10px 0px;\n`\n\nconst LinkContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-top: 30px;\n`;\n\nconst Text = styled.span`\n color: #808080;\n font-size: 16px;\n font-weight: bold;\n line-height: 22px;\n cursor: not-allowed;\n`;\n\nconst StyledLink = styled(Link)`\n color: #3297DB;\n text-decoration: none;\n font-size: 16px;\n font-weight: bold;\n line-height: 22px;\n`;\n\nexport {\n Container,\n Title,\n CenterColumn,\n ButtonContainer,\n MainButton,\n LoadingContainer,\n LinkContainer,\n Text,\n StyledLink,\n};","import React, { useState } from 'react';\nimport { getUser } from '../../utils/user';\nimport { request } from '../../utils/request';\nimport {\n makeStyles,\n LinearProgress\n} from '@material-ui/core';\nimport {\n Container,\n Title,\n CenterColumn,\n ButtonContainer,\n MainButton,\n LoadingContainer,\n LinkContainer,\n Text,\n StyledLink,\n} from './Component';\nimport Header from '../../components/Header/Header';\nimport FormEntryText from '../../components/FormEntryText/FormEntryText';\nimport Dialog from \"../../components/Dialog/Dialog\";\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles(() => ({\n disabledButton: {\n color: '#FFFFFF',\n fontWeight: 'bold',\n backgroundColor: '#808080',\n border: 'none',\n borderRadius: '15px',\n boxShadow: '0px 0px 5px 0px rgba(0,0,0,0.25)',\n padding: '10px 20px',\n textTransform: 'uppercase',\n cursor: 'not-allowed',\n\n '&:hover': {\n backgroundColor: '#808080',\n },\n }\n}));\n\n\nconst PrivacyAndSecurity = () => {\n const { t } = useTranslation('privacyAndSecurityPage');\n const classes = useStyles();\n\n const user = getUser();\n\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isPasswordSubmitting, setIsPasswordSubmitting] = useState(false);\n const [passwordData, setPasswordData] = useState({});\n const [feedback, setFeedback] = useState(null);\n const [dialogOpen, setDialogOpen] = useState(false);\n\n const updatePasswordData = (field, value) => {\n const newPassData = { ...passwordData };\n newPassData[field] = value;\n setPasswordData(newPassData);\n };\n\n const passwordHandler = async () => {\n try {\n if (!passwordData.password) {\n setFeedback(t('VALIDATION_MISSING_PASSWORD_ERROR'));\n setDialogOpen(true);\n } else if (passwordData.password !== passwordData.repeatPassword) {\n setFeedback(t('VALIDATION_PASSWORD_MUST_BE_EQUAL_ERROR'));\n setDialogOpen(true);\n } else {\n setIsSubmitting(true);\n setIsPasswordSubmitting(true);\n\n await request.post(`/client-app/update-profile?type=password`, {\n id: user.id,\n password: passwordData.password,\n });\n\n setFeedback(t('SUBMIT_PASSWORD_SUCCESS_RESPONSE'));\n setDialogOpen(true);\n }\n } catch (error) {\n console.log(`[PrivacyAndSecurity passwordHandler Error: ${error}`);\n let message = t('SUBMIT_ERROR_RESPONSE');\n\n const { isAxiosError } = error;\n if (isAxiosError) {\n message = error.response.data.message;\n }\n\n setFeedback(message);\n setDialogOpen(true);\n } finally {\n setIsSubmitting(false);\n setIsPasswordSubmitting(false);\n }\n };\n\n\n return (\n \n
\n {t('TITLE')}\n \n updatePasswordData(\"password\", event.target.value)}\n value={passwordData.password || \"\"}\n type=\"password\"\n disabled={isSubmitting}\n />\n\n updatePasswordData(\"repeatPassword\", event.target.value)}\n value={passwordData.repeatPassword || \"\"}\n type=\"password\"\n disabled={isSubmitting}\n />\n\n \n {\n isPasswordSubmitting ?\n \n \n \n :\n \n {t('UPDATE_PASSWORD')}\n \n }\n \n\n {\n isSubmitting ?\n \n \n {t('MY_DATA')}\n \n \n :\n \n \n {t('MY_DATA')}\n \n \n }\n\n \n {feedback}\n \n \n \n );\n}\n\nexport default PrivacyAndSecurity;\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 75px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst Body = styled.div`\n width: calc(100% - 40px);\n margin: 20px auto;\n border-radius: 10px;\n box-sizing: border-box;\n`;\n\nconst FaqContainer = styled.div`\n width: 100%;\n`;\n\nconst FaqTitle = styled.h4`\n color: #2D80C6;\n font-size: 20px;\n font-weight: bold;\n margin-bottom: 0px;\n margin-top: 20px;\n`;\n\nconst FaqContent = styled.p`\n color: #808080;\n font-size: 14px;\n font-weight: normal;\n text-align: justify;\n margin-top: 15px;\n margin-bottom: 20px;\n overflow-x: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`;\n\nconst RateContainer = styled.div`\n width: 100%;\n padding-top: 20px;\n`;\n\nconst Rate = styled.div`\n display: flex; \n flex-direction: column; \n align-items: center;\n`;\n\nconst ButtonContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-evenly;\n`;\n\nexport {\n Container,\n Title,\n Body,\n FaqContainer,\n FaqTitle,\n FaqContent,\n RateContainer,\n Rate,\n ButtonContainer\n};","import React, { useMemo, useState } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport Header from \"../../components/Header/Header\";\nimport {\n Container,\n Title,\n Body,\n FaqContainer,\n FaqTitle,\n FaqContent,\n} from \"./Components.js\";\nimport SearchInput from \"../../components/SearchInput/SearchInput\";\nimport { Divider } from \"@material-ui/core\";\nimport { useTranslation } from 'react-i18next';\n\nconst Faq = (props) => {\n const [search, setSearch] = useState('');\n const { t } = useTranslation('faqsPage');\n\n const handleChange = (event) => {\n setSearch(event.target.value)\n }\n\n const renderFaqs = () => {\n const faqs = [];\n let index = 1;\n let finish = 18;\n\n while (index <= finish) {\n faqs.push(\n \n \n {t(`QUESTION_${index}`)}\n {t(`ANSWER_${index}`)}\n {\n index < finish &&\n \n }\n \n \n )\n index++;\n }\n\n return faqs\n }\n\n const faqsToRender = renderFaqs();\n\n const faqsFiltered = useMemo(() => {\n const lowerSearch = search.toLowerCase();\n return faqsToRender\n .filter((faq) => faq.key.toLowerCase().includes(lowerSearch));\n }, [faqsToRender, search]);\n\n return (\n \n
\n {t('TITLE')}\n \n \n {\n faqsFiltered\n }\n \n \n );\n}\n\nexport default Faq;\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 75px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst Body = styled.div`\n width: calc(100% - 40px);\n margin: 20px auto;\n border-radius: 10px;\n box-sizing: border-box;\n`;\n\nconst FaqContainer = styled.div`\n width: 100%;\n`;\n\nconst FaqTitle = styled.h4`\n color: #2D80C6;\n font-size: 20px;\n font-weight: bold;\n margin-bottom: 0px;\n margin-top: 20px;\n`;\n\nconst FaqContent = styled.p`\n color: #808080;\n font-size: 14px;\n font-weight: normal;\n text-align: justify;\n margin-top: 15px;\n margin-bottom: 20px;\n`;\n\nconst RateContainer = styled.div`\n width: 100%;\n padding-top: 20px;\n`;\n\nconst Rate = styled.div`\n display: flex; \n flex-direction: column; \n align-items: center;\n`;\n\nconst ButtonContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-evenly;\n`;\n\nexport {\n Container,\n Title,\n Body,\n FaqContainer,\n FaqTitle,\n FaqContent,\n RateContainer,\n Rate,\n ButtonContainer\n};","import React, { useEffect } from \"react\";\nimport Header from \"../../components/Header/Header\";\nimport { useParams, useHistory } from \"react-router-dom\";\nimport {\n Container,\n Title,\n Body,\n FaqContainer,\n FaqTitle,\n FaqContent,\n RateContainer,\n Rate,\n ButtonContainer\n} from \"./Components.js\";\nimport SearchInput from \"../../components/SearchInput/SearchInput\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { Button, Divider, Typography } from \"@material-ui/core\";\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles(() => ({\n rateText: {\n fontSize: 15,\n color: '#5D5D5D',\n margin: '15px 0px'\n },\n\n button: {\n fontSize: 11,\n fontWeight: 'bold',\n color: '#5D5D5D',\n backgroundColor: '#C8C8C8',\n minWidth: 123,\n height: 28,\n borderRadius: 15,\n }\n}))\n\n\nconst FaqSelectedQuestion = (props) => {\n const { t } = useTranslation('faqsPage');\n\n const classes = useStyles();\n let { id } = useParams();\n let history = useHistory();\n\n const handleClick = () => {\n history.goBack();\n }\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n return (\n \n
\n {t('TITLE')}\n \n \n \n {t(`QUESTION_${id}`)}\n {t(`ANSWER_${id}`)}\n \n\n \n \n \n \n {t('ARTICLE_RATING_TITLE')}\n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default FaqSelectedQuestion;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { FormControl, MenuItem, Select } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n formControl: {\n '& .MuiInput-underline:hover:not(.Mui-disabled):before': {\n border: 'none',\n },\n\n '& .MuiInput-underline:before': {\n border: 'none',\n },\n\n '& .MuiInput-underline:after': {\n border: 'none',\n },\n\n '& .MuiInputBase-root': {\n backgroundColor: '#f0f0f0',\n height: 40,\n },\n\n '& .MuiSelect-select.MuiSelect-select': {\n paddingLeft: 10,\n },\n\n '& .MuiSelect-icon': {\n right: 5,\n }\n },\n}));\n\nconst SelectRegion = ({ options, onChange, value, translations }) => {\n const classes = useStyles();\n\n return (\n \n \n {\n options.map(region => (\n \n {translations(region.name)}\n \n ))\n }\n \n \n );\n};\n\nexport default SelectRegion;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {\n Box,\n Grid,\n Typography\n} from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n chapterContainer: {\n marginBottom: 40,\n },\n\n sectionContainer: {\n marginTop: 15,\n marginBottom: 30,\n },\n\n subheaderContainer: {\n marginBottom: 20,\n },\n\n h4: {\n fontWeight: 'bold',\n fontSize: 24,\n color: '#2D80C6',\n },\n\n h5: {\n fontWeight: 'bold',\n fontSize: 22,\n color: '#2D80C6',\n },\n\n h6: {\n fontWeight: 'bold',\n fontSize: 16,\n marginTop: 10,\n color: '#2D80C6',\n },\n\n paragraph: {\n fontSize: 14,\n marginTop: 5,\n textAlign: 'justify',\n color: '#808080',\n },\n}));\n\nconst GenerateRegionContent = ({ content, translations }) => {\n const classes = useStyles();\n\n return (\n \n {\n content?.map(item => {\n return (\n \n \n {translations(item.title)}\n \n {item?.text?.map(text => (\n \n {translations(text)}\n \n ))}\n {item.content.map(content => {\n return (\n \n \n {translations(content?.header)}\n \n\n {content?.text?.map(description => (\n \n {translations(description)}\n \n ))}\n {\n content?.headerContent?.map(content => {\n return (\n \n \n {translations(content?.subheader)}\n \n {\n content?.text?.map(description => (\n \n {translations(description)}\n \n ))}\n \n )\n })}\n \n )\n })}\n \n )\n })\n }\n \n );\n};\n\nexport default GenerateRegionContent;\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 75px;\n`;\n\nconst Title = styled.h3`\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-left: 20px;\n margin-top: -15px;\n margin-bottom: 0;\n`;\n\nconst Body = styled.div`\n width: calc(100% - 40px);\n margin: 20px auto;\n border-radius: 10px;\n box-sizing: border-box;\n`\n\nexport {\n Container,\n Title,\n Body,\n};","export const availableRegions = [\n {\n name: 'FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1',\n value: 'region1',\n },\n {\n name: 'FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2',\n value: 'region2',\n },\n];\n\nexport const tocRegion1 = [\n {\n title: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TITLE_1\",\n content: [\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_1\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_1\"],\n headerContent: [\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_2\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_2\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_3\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_3\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_4\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_4\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_5\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_5\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_6\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_6\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_7\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_7\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_8\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_8\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_9\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_9\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_10\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_10\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_11\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_11\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_12\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_12\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_13\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_13\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_14\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_14\"],\n },\n ],\n },\n ],\n },\n {\n title: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TITLE_15\",\n text: [\n \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_15\",\n \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_16\",\n \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_17\",\n ],\n content: [\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_18\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_18\"],\n headerContent: [\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_19\",\n text: [\n \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_19\",\n \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_20\"\n ],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_21\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_21\"],\n },\n ],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_22\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_22\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_23\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_23\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_24\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_24\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_25\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_25\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_26\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_26\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_27\",\n headerContent: [\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_27\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_27\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_28\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_28\"],\n },\n ],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_29\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_29\"],\n headerContent: [\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_30\",\n text: [\n \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_30\",\n \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_31\",\n ],\n },\n ],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_32\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_32\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_33\",\n headerContent: [\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_33\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_33\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_34\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_34\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_35\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_35\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_36\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_36\"],\n },\n ],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_37\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_37\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_38\",\n text: [\n \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_38\",\n \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_39\"\n ],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_40\",\n headerContent: [\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_40\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_40\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_41\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_41\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_42\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_42\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_43\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_43\"],\n },\n ]\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_44\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_44\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_45\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_45\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_46\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_46\"],\n },\n ],\n },\n {\n title: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TITLE_47\",\n content: [\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_47\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_47\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_48\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_48\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_49\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_49\"],\n headerContent: [\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_50\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_50\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_51\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_51\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_52\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_52\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_53\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_53\"],\n },\n {\n subheader: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_SUBHEADER_54\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_54\"],\n },\n ],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_55\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_55\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_HEADER_56\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT_56\"],\n },\n ],\n },\n];\n\nexport const tocRegion2 = [\n {\n title: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_TITLE_1\",\n content: [\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_HEADER_1\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_TXT_1\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_HEADER_2\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_TXT_2\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_HEADER_3\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_TXT_3\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_HEADER_4\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_TXT_4\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_HEADER_5\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_TXT_5\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_HEADER_6\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_TXT_6\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_HEADER_7\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_TXT_7\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_HEADER_8\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_TXT_8\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_HEADER_9\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_TXT_9\"],\n },\n {\n header: \"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_HEADER_10\",\n text: [\"FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_TXT_10\"],\n },\n ],\n },\n];","import React, { useState, useEffect } from \"react\";\nimport Header from \"../../components/Header/Header\";\nimport SelectRegion from \"../../components/SelectRegion/SelectRegion\";\nimport GenerateRegionContent from \"../../components/GenerateRegionContent/GenerateRegionContent\";\nimport {\n Container,\n Title,\n Body,\n} from \"./Components.js\";\nimport {\n Box,\n Divider,\n makeStyles,\n Typography,\n} from \"@material-ui/core\";\nimport {\n availableRegions,\n tocRegion1,\n tocRegion2,\n} from './data';\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = makeStyles(theme => ({\n container: {\n display: 'flex',\n marginBottom: 35,\n flexDirection: 'column',\n },\n\n province: {\n display: 'flex',\n flexDirection: 'column',\n marginRight: 0,\n marginBottom: 30,\n width: '100%',\n },\n\n language: {\n display: 'flex',\n flexDirection: 'column',\n },\n\n divider: {\n margin: theme.spacing(2, 0),\n },\n\n regionDescription: {\n textAlign: 'justify',\n fontSize: '14px',\n },\n\n updatedAt: {\n marginTop: 15,\n fontWeight: 'bold',\n fontSize: '13px',\n },\n}));\n\nconst TermsAndConditions = (props) => {\n const { t } = useTranslation('tocPage');\n const classes = useStyles();\n\n\n const [province, setProvince] = useState(availableRegions[0].value);\n const [contentToShow, setContentToShow] = useState(tocRegion1);\n\n const handleChange = (event) => {\n setProvince(event.target.value);\n }\n\n useEffect(() => {\n if (province === 'region1') {\n setContentToShow(tocRegion1)\n } else {\n setContentToShow(tocRegion2)\n }\n }, [province]);\n\n return (\n \n
\n {t('FRONT_END_TERMS_AND_CONDITIONS_TITLE')}\n \n \n \n \n {t('FRONT_END_TERMS_AND_CONDITIONS_PAGE_SELECT')}\n \n \n \n \n \n {t('FRONT_END_TERMS_AND_CONDITIONS_LANGUAGE')}\n \n \n {\n province === 'region1' ?\n t('FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_LANGUAGE')\n :\n t('FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_LANGUAGE')\n }\n \n \n \n\n \n {\n province === 'region1' ?\n t('FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_TXT')\n :\n t('FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_TXT')\n }\n \n\n \n {t('FRONT_END_TERMS_AND_CONDITIONS_PAGE_TXT_REG01_1_1')}\n \n\n \n {\n province === 'region1' ?\n t('FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_1_UPDATED')\n :\n t('FRONT_END_TERMS_AND_CONDITIONS_PAGE_REGION_2_UPDATED')\n }\n \n\n \n\n \n \n \n );\n}\n\nexport default TermsAndConditions;\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 75px;\n`;\n\nconst Title = styled.h3`\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-left: 20px;\n margin-top: -15px;\n margin-bottom: 0;\n`;\n\nconst Body = styled.div`\n width: calc(100% - 40px);\n margin: 20px auto;\n border-radius: 10px;\n box-sizing: border-box;\n`\n\nexport {\n Container,\n Title,\n Body,\n};","export const availableRegions = [\n {\n name: 'PRIVACY_POLICY_PAGE_REGION_1',\n value: 'region1',\n },\n {\n name: 'PRIVACY_POLICY_PAGE_REGION_2',\n value: 'region2',\n },\n];\n\nexport const privacyPolicyRegion1 = [\n {\n title: \"PRIVACY_POLICY_PAGE_REGION_1_TITLE_1\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_1\"],\n content: [\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_2\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_2\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_3\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_3\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_4\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_4\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_5\",\n text: [\n \"PRIVACY_POLICY_PAGE_REGION_1_TXT_5\",\n \"PRIVACY_POLICY_PAGE_REGION_1_TXT_5_1\",\n \"PRIVACY_POLICY_PAGE_REGION_1_TXT_5_2\",\n ],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_6\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_6\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_7\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_7\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_8\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_8\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_9\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_9\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_10\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_10\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_11\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_11\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_12\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_12\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_13\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_13\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_14\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_14\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_15\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_15\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_16\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_16\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_17\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_17\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_18\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_18\"],\n headerContent: [\n {\n subheader: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_18_1\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_18_1\"],\n },\n {\n subheader: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_18_2\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_18_2\"],\n },\n {\n subheader: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_18_3\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_18_3\"],\n },\n {\n subheader: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_18_4\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_18_4\"],\n },\n {\n subheader: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_18_5\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_18_5\"],\n },\n {\n subheader: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_18_6\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_18_6\"],\n },\n {\n subheader: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_18_7\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_18_7\"],\n },\n {\n subheader: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_18_8\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_18_8\"],\n },\n ],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_19\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_19\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_20\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_20\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_1_HEADER_21\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_1_TXT_21\"],\n },\n ],\n },\n];\n\nexport const privacyPolicyRegion2 = [\n {\n title: \"PRIVACY_POLICY_PAGE_REGION_2_TITLE_1\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_1\"],\n content: [\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_2\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_2\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_3\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_3\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_4\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_4\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_5\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_5\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_6\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_6\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_7\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_7\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_8\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_8\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_9\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_9\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_10\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_10\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_11\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_11\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_12\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_12\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_13\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_13\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_14\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_14\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_15\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_15\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_16\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_16\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_17\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_17\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_18\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_18\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_19\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_19\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_20\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_20\"],\n },\n {\n header: \"PRIVACY_POLICY_PAGE_REGION_2_HEADER_21\",\n text: [\"PRIVACY_POLICY_PAGE_REGION_2_TXT_21\"],\n },\n ],\n },\n];","import React, { useState, useEffect } from \"react\";\nimport Header from \"../../components/Header/Header\";\nimport SelectRegion from \"../../components/SelectRegion/SelectRegion\";\nimport GenerateRegionContent from \"../../components/GenerateRegionContent/GenerateRegionContent\";\nimport {\n Container,\n Title,\n Body,\n} from \"./Components.js\";\nimport {\n Box,\n Divider,\n makeStyles,\n Typography,\n} from \"@material-ui/core\";\nimport {\n availableRegions,\n privacyPolicyRegion1,\n privacyPolicyRegion2,\n} from './data';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles(theme => ({\n container: {\n display: 'flex',\n marginBottom: 35,\n flexDirection: 'column',\n },\n\n province: {\n display: 'flex',\n flexDirection: 'column',\n marginRight: 0,\n marginBottom: 30,\n width: '100%',\n },\n\n language: {\n display: 'flex',\n flexDirection: 'column',\n },\n\n divider: {\n margin: theme.spacing(2, 0),\n },\n\n regionDescription: {\n textAlign: 'justify',\n fontSize: '14px',\n },\n\n updatedAt: {\n marginTop: 15,\n fontWeight: 'bold',\n fontSize: '13px',\n },\n}));\n\nconst PrivacyPolicy = (props) => {\n const { t } = useTranslation('privacyPolicyPage');\n const classes = useStyles();\n\n\n const [province, setProvince] = useState(availableRegions[0].value);\n const [contentToShow, setContentToShow] = useState(privacyPolicyRegion1);\n\n const handleChange = (event) => {\n setProvince(event.target.value);\n }\n\n useEffect(() => {\n if (province === 'region1') {\n setContentToShow(privacyPolicyRegion1)\n } else {\n setContentToShow(privacyPolicyRegion2)\n }\n }, [province]);\n\n return (\n \n
\n {t('PRIVACY_POLICY_TITLE')}\n \n \n \n \n {t('PRIVACY_POLICY_PAGE_SELECT')}\n \n \n \n \n \n {t('PRIVACY_POLICY_LANGUAGE')}\n \n \n {\n province === 'region1' ?\n t('PRIVACY_POLICY_PAGE_REGION_1_LANGUAGE')\n :\n t('PRIVACY_POLICY_PAGE_REGION_2_LANGUAGE')\n }\n \n \n \n\n \n {\n province === 'region1' ?\n t('PRIVACY_POLICY_PAGE_REGION_1_TXT')\n :\n t('PRIVACY_POLICY_PAGE_REGION_2_TXT')\n }\n \n\n \n {t('PRIVACY_POLICY_PAGE_TXT_REG01_1_1')}\n \n\n \n {\n province === 'region1' ?\n t('PRIVACY_POLICY_PAGE_REGION_1_UPDATED')\n :\n t('PRIVACY_POLICY_PAGE_REGION_2_UPDATED')\n }\n \n\n \n\n \n \n \n );\n}\n\nexport default PrivacyPolicy;\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 75px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #FE9201;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: 20%;\n`;\n\nconst Subtitle = styled.h4`\n color: #FE9201;\n font-size: 19px;\n font-weight: bold;\n margin-top: 5px;\n margin-bottom: 15px;\n`;\n\nconst AvatarBorder = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width:131px;\n height:131px;\n position: relative;\n margin-bottom: 10px;\n &:before {\n content:\"\";\n position:absolute;\n top:0;\n left:0;\n right:0;\n bottom:0;\n border-radius:50%; \n padding:5px; \n background: linear-gradient(135deg, #FEB731, #FE9201); \n background: -webkit-linear-gradient(310deg, #FEB731, #FE9201); \n -webkit-mask: \n linear-gradient(#fff 0 0) content-box, \n linear-gradient(#fff 0 0);\n -webkit-mask-composite: destination-out; \n mask-composite: exclude; \n }\n`\nexport {\n Container,\n Title,\n CenterColumn,\n Subtitle,\n AvatarBorder,\n};\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Timeline from '@material-ui/lab/Timeline';\nimport TimelineItem from '@material-ui/lab/TimelineItem';\nimport TimelineSeparator from '@material-ui/lab/TimelineSeparator';\nimport TimelineConnector from '@material-ui/lab/TimelineConnector';\nimport TimelineContent from '@material-ui/lab/TimelineContent';\nimport TimelineOppositeContent from '@material-ui/lab/TimelineOppositeContent';\nimport Paper from '@material-ui/core/Paper';\nimport Typography from '@material-ui/core/Typography';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n padding: '6px 4px',\n marginBottom: '20px',\n },\n secondaryTail: {\n backgroundColor: theme.palette.secondary.main,\n },\n content: {\n width: '31%'\n },\n text: {\n fontSize: '12px',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n textAlign: 'center'\n }\n}));\n\nexport default function VaccinationTimeline({ vaccines }) {\n const { t } = useTranslation('calendarPage');\n const classes = useStyles();\n\n const getVaccinesByTime = (unit) => {\n const vaccinesByWeek = vaccines?.filter((vac) => vac.timeUnit === unit);\n let items = [];\n vaccinesByWeek.forEach(vac => {\n const timeUnitFound = items.findIndex(timeUnit => vac.timeNumber === timeUnit.number);\n if (timeUnitFound === -1) {\n items.push({\n number: Number(vac.timeNumber),\n vaccines: [\n vac.name,\n ],\n days: vac.days,\n unit: unit.toUpperCase()\n });\n } else {\n items[timeUnitFound].vaccines.push(vac.name);\n }\n });\n return items;\n }\n\n const renderVaccinesByTimeline = (items, isFinal = false) => {\n return items.map((timeUnit, index) => (\n \n \n \n {\n timeUnit.number} {timeUnit.number >= 2 ?\n `${t(timeUnit.unit + 'S')}`\n : `${t(timeUnit.unit)}`\n }\n \n \n \n \"Orange\n {(index === (items.length - 1) && isFinal) ? null : }\n \n \n \n {timeUnit.vaccines.map((vac, vacIndex) => {vac})}\n \n \n \n ));\n }\n\n const mergeAndSortVaccines = (weeksVaccine = [], monthsVaccine = [], yearsVaccine = []) => {\n try {\n const mergedVaccines = [...weeksVaccine, ...monthsVaccine, ...yearsVaccine];\n const sortedVaccinesArray = mergedVaccines.sort((a, b) => a.days - b.days)\n return sortedVaccinesArray;\n } catch (e) {\n return []\n }\n }\n\n const renderTimeLine = () => {\n\n const weeksVaccine = getVaccinesByTime('week');\n const monthsVaccine = getVaccinesByTime('month');\n const yearsVaccine = getVaccinesByTime('year');\n\n const finalVaccinesArray = mergeAndSortVaccines(weeksVaccine, monthsVaccine, yearsVaccine)\n\n return (\n \n {renderVaccinesByTimeline(finalVaccinesArray, true)}\n \n )\n }\n\n\n return (\n renderTimeLine()\n );\n}","import React, { useState, useEffect, useCallback } from \"react\";\nimport { getUser } from \"../../utils/user\";\nimport {\n makeStyles,\n Avatar,\n Typography,\n CircularProgress,\n} from \"@material-ui/core\";\nimport {\n Container,\n Title,\n CenterColumn,\n Subtitle,\n AvatarBorder,\n} from \"./Components.js\";\nimport Header from \"../../components/Header/Header\";\nimport SelectInput from \"../../components/SelectInput/SelectInput\";\nimport VaccinationTimeline from \"../../components/VaccinationTimeline/VaccinationTimeline\";\nimport moment from \"moment-timezone\";\nimport axios from \"axios\";\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = makeStyles(() => ({\n imgContainer: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginBottom: 20,\n },\n\n img: {\n width: 115,\n height: 115,\n },\n\n imgContainerUpdatedAt: {\n fontSize: 12,\n color: \"#808080\",\n marginTop: 10,\n },\n\n imgContainerDate: {\n fontSize: 10,\n color: \"#000000\",\n fontWeight: \"bold\",\n },\n\n optionalsContainer: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n boxSizing: \"border-box\",\n padding: \"0px 30px\",\n marginBottom: 50,\n },\n\n optional: {\n textAlign: \"center\",\n fontSize: \"15px\",\n color: \"#808080\",\n margin: \"8px 0px\",\n },\n}));\n\nconst daysByUnit = {\n week: 7,\n month: 30,\n year: 360,\n};\n\nconst Calendar = () => {\n const { t } = useTranslation(\"calendarPage\");\n const classes = useStyles();\n\n const [selectedCountry, setSelectedCountry] = useState({});\n const [countries, setCountries] = useState([]);\n const [loading, setLoading] = useState(true);\n\n const normalizeAndSortVaccines = (vaccines) => {\n try {\n const normalizedVaccines = vaccines.reduce((result, vaccine) => {\n if (vaccine.timeNumber !== undefined) {\n result.push({\n ...vaccine,\n days: vaccine.timeNumber * daysByUnit[vaccine.timeUnit],\n });\n }\n return result;\n }, []);\n\n const sortedVaccines = normalizedVaccines.sort((a, b) => a.days - b.days);\n\n return sortedVaccines;\n } catch (e) {\n console.error(e);\n return vaccines;\n }\n };\n\n const formatDate = (date) => {\n return moment(date).format(\"YYYY-MM-DD HH:mm:ss\");\n };\n\n const hasImage = (image) => {\n if (image.length > 0) {\n if (image[0].logo !== undefined) {\n if (image[0].logo.url !== undefined) {\n return image[0].logo.url;\n } else {\n return \"/assets/circle-healthcare-pink.svg\";\n }\n } else {\n return \"/assets/circle-healthcare-pink.svg\";\n }\n } else {\n return \"/assets/circle-healthcare-pink.svg\";\n }\n };\n\n const handleChange = async (event) => {\n const countryId = event.target.value;\n setLoading(true);\n\n try {\n const country = countries.find((country) => country.id === countryId);\n\n setSelectedCountry({\n country: countryId,\n vaccines: country.vaccines.sortedVaccines,\n optionals: country?.vaccines.optionals,\n healthAuthorityLogo: hasImage(country?.healthAuthorities),\n updatedAt: moment(country.updatedAt)\n .tz(\"America/Recife\")\n .format(\"DD/MM/YYYY, HH:mm\"),\n });\n } catch (error) {\n console.log(`[Calendar handleChange Error]: ${error}`);\n } finally {\n setLoading(false);\n }\n };\n\n const order = (a, b) => {\n const x = a.name.toLowerCase();\n const y = b.name.toLowerCase();\n\n return x > y ? 1 : x < y ? -1 : 0;\n };\n\n const splitVaccines = useCallback((data) => {\n let normal = [];\n let optionals = [];\n\n data.forEach((vac) => {\n let vaccine = {\n id: vac.id,\n name: vac.name,\n timeUnit: vac.applicationStartTimeUnit,\n timeNumber: vac.applicationStart,\n };\n\n if (vac.optional === true) {\n optionals.push(vaccine);\n } else {\n normal.push(vaccine);\n }\n });\n\n const sortedVaccines = normalizeAndSortVaccines(normal);\n let result = { sortedVaccines, optionals };\n\n return result;\n }, []);\n\n useEffect(() => {\n const getCountries = async () => {\n try {\n const user = getUser();\n let countries = [];\n let userCountryId = \"\";\n\n const { data: result } = await axios.get(\n `${process.env.REACT_APP_API_URL}/countries`\n );\n\n result.forEach((result) => {\n let country = {\n id: result.id,\n name: result.name,\n updatedAt: result.updatedAt,\n vaccines: splitVaccines(result.vaccines),\n healthAuthorities: result.healthAuthorities\n ? result.healthAuthorities\n : [],\n };\n countries.push(country);\n });\n\n const orderedCountries = countries.sort(order);\n setCountries(orderedCountries);\n\n if (user.country.id) {\n userCountryId = user.country.id;\n } else {\n userCountryId = user.country;\n }\n\n const userCountry = countries.find(\n (country) => country.id === userCountryId\n );\n\n setSelectedCountry({\n country: userCountry.id,\n vaccines: userCountry.vaccines.sortedVaccines,\n optionals: userCountry?.vaccines.optionals,\n healthAuthorityLogo: hasImage(userCountry?.healthAuthorities),\n updatedAt: moment(userCountry.updatedAt)\n .tz(\"America/Recife\")\n .format(\"DD/MM/YYYY, HH:mm\"),\n });\n\n setLoading(false);\n } catch (error) {\n console.log(`[Calendar getCountries Error]: ${error}`);\n setLoading(false);\n }\n };\n getCountries();\n //eslint-disable-next-line\n }, []);\n\n return (\n \n
\n {t(\"TITLE\")}\n {loading ? (\n \n \n \n ) : (\n <>\n
\n \n \n \n {selectedCountry?.updatedAt && (\n <>\n \n {t(\"CALENDAR_UPDATED_AT\")}\n \n \n {selectedCountry?.updatedAt}\n \n \n )}\n
\n \n {selectedCountry?.vaccines && (\n
\n \n
\n {selectedCountry?.optionals?.length > 0 && (\n {t(\"OPTIONALS\")}\n )}\n {(selectedCountry?.optionals || []).map((optional, index) => {\n return (\n

\n {optional.name}\n

\n );\n })}\n
\n
\n )}\n \n )}\n \n );\n};\n\nexport default Calendar;\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n display: flex;\n align-items: center;\n flex-direction: column;\n padding-bottom: 130px;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst CenterColumn = styled.div`\n width: calc(100% - 40px);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n`;\n\nconst FormContainer = styled.div`\n width: calc(100% - 40px);\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-top: 20px;\n`;\n\nconst AccordionContainer = styled.div`\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : 0};\n`;\n\nexport {\n Container,\n Title,\n CenterColumn,\n FormContainer,\n AccordionContainer,\n};","import styled from \"styled-components\";\n\nconst ButtonContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : 0};\n margin-top: ${props => props.marginTop ? props.marginTop : 0};\n`;\n\nconst MainButton = styled.button`\n color: white;\n font-weight: bold;\n background-color: #2D80C6;\n border: none;\n border-radius: 15px;\n box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);\n padding: 10px 20px;\n text-transform: uppercase;\n cursor: pointer;\n transition: .2s;\n\n &:hover {\n background-color: #3297DB;\n }\n`;\n\nconst LoadingContainer = styled.div`\n width: 100%;\n margin: 10px 0px; \n`\n\nexport {\n ButtonContainer,\n MainButton,\n LoadingContainer,\n};","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n boxSizing: 'border-box',\n padding: 5,\n },\n\n label: {\n cursor: 'pointer',\n },\n\n labelContent: {\n margin: '12px 0px 8px 0px',\n fontWeight: 'bold',\n color: '#505050',\n },\n\n textarea: {\n width: '100%',\n minHeight: '160px',\n color: '#505050',\n border: '0px',\n padding: '8px',\n borderRadius: '5px',\n resize: 'none',\n boxSizing: 'border-box',\n backgroundColor: '#FFFFFF',\n boxShadow: '0 0px 10px 0px rgb(16 36 94 / 7%)',\n },\n}));\n\nconst FormEntryTextarea = ({\n id,\n label,\n value,\n onChange,\n disabled,\n}) => {\n const classes = useStyles();\n\n return (\n
\n \n \n
\n );\n}\n\nexport default FormEntryTextarea;","import React from 'react';\nimport {\n makeStyles,\n Checkbox,\n FormControl,\n FormControlLabel,\n FormGroup,\n Typography\n} from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n boxSizing: 'border-box',\n padding: 5,\n },\n\n label: {\n cursor: 'pointer',\n },\n\n labelContent: {\n margin: '12px 0px 8px 0px',\n fontWeight: 'bold',\n color: '#505050',\n },\n\n formControl: {\n margin: theme.spacing(2),\n marginTop: 0\n },\n\n subtext: {\n color: \"grey\",\n textAlign: \"center\",\n fontSize: \"12px\"\n }\n}));\n\nconst FormEntryCheckbox = ({\n id,\n label,\n subtext,\n options,\n selectedOptions,\n onChange,\n disabled,\n translations,\n}) => {\n const classes = useStyles();\n\n return (\n
\n \n \n {subtext}\n \n \n \n {\n translations ?\n options.map(option => (\n \n }\n label={translations(option.name)}\n />\n ))\n :\n options.map(option => (\n }\n label={option.name}\n />\n ))\n }\n \n \n
\n );\n}\n\nexport default FormEntryCheckbox;","import React from 'react';\nimport {\n FormControl,\n InputLabel,\n makeStyles,\n TextField\n} from \"@material-ui/core\";\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport { Autocomplete } from \"@material-ui/lab\";\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 5,\n display: 'flex',\n flexDirection: 'column',\n\n '& .MuiInputLabel-animated': {\n transition: 'none'\n },\n\n '& .MuiInputLabel-formControl': {\n position: 'initial',\n transform: 'none',\n margin: '12px 0px 8px 0px',\n fontWeight: 'bold',\n color: '#505050',\n cursor: 'pointer',\n },\n },\n\n input: {\n '& .MuiAutocomplete-inputRoot[class*=\"MuiOutlinedInput-root\"]': {\n fontSize: 14,\n minHeight: 45,\n padding: '0 65px 0 9px',\n color: '#505050',\n backgroundColor: '#FFFFFF',\n borderRadius: '8px',\n boxSizing: 'border-box',\n boxShadow: '0 0px 10px 0px rgb(16 36 94 / 7%)',\n\n '& fieldset': {\n borderWidth: '0 !important',\n },\n },\n\n '& .MuiAutocomplete-inputRoot[class*=\"MuiOutlinedInput-root\"] .MuiAutocomplete-endAdornment': {\n right: 11,\n },\n\n '& .MuiAutocomplete-popupIndicator': {\n transition: '.2s',\n\n '& .MuiSvgIcon-root': {\n fontSize: 20,\n }\n }\n },\n}));\n\nexport const FormEntryAutocomplete = ({\n id,\n label,\n options,\n value,\n onChange,\n onInputChange,\n getOptionLabel,\n filterOptions,\n loading,\n loadingText,\n noOptionsText,\n renderOption,\n disabled,\n}) => {\n const classes = useStyles();\n\n return (\n \n \n {label}\n \n }\n disabled={disabled}\n popupIcon={\n \n }\n />\n \n )\n}; ","const DOCTOR_TYPE_OPTIONS = [\n {\n value: 'ALLOPATHIC',\n name: 'HEALTH_DATA_DOCTOR_TYPE_ALLOPATHIC'\n },\n {\n value: 'HOMEOPATHIC',\n name: 'HEALTH_DATA_DOCTOR_TYPE_HOMEOPATHIC'\n }\n];\n\nconst SPECIAL_NEEDS_OPTIONS = [\n {\n value: 'Não Possuo',\n name: 'DO_NOT_HAVE'\n },\n {\n value: 'Pessoa com Deficiência visual Total (Cegas)',\n name: 'BLIND',\n },\n {\n value: 'Pessoa com Baixa Visão',\n name: 'LOW_VISION',\n },\n {\n value: 'Pessoa com Visão Monocular',\n name: 'MONOCULAR_VISION',\n },\n {\n value: 'Pessoa com perda da audição bilateral',\n name: 'BILATERAL_HEARING_LOSS',\n },\n {\n value: 'Pessoa com perda da audição parcial',\n name: 'PARTIAL_HEARING_LOSS',\n },\n {\n value: 'Pessoa com perda da audição total',\n name: 'TOTAL_HEARING_LOSS',\n },\n {\n value: 'Paraplegia',\n name: 'PARAPLEGIA',\n },\n {\n value: 'Paraparesia',\n name: 'PARAPARESIS',\n },\n {\n value: 'Monoplegia',\n name: 'MONOPLEGIA',\n },\n {\n value: 'Monoparesia',\n name: 'MONOPARESIS',\n },\n {\n value: 'Tetraplegia',\n name: 'TETRAPLEGIA',\n },\n {\n value: 'Tetraparesia',\n name: 'TETRAPARESIS',\n },\n {\n value: 'Triplegia',\n name: 'TRIPLEGIA',\n },\n {\n value: 'Triparesia',\n name: 'TRIPESIA',\n },\n {\n value: 'Hemiplegia',\n name: 'HEMIPLEGIA',\n },\n {\n value: 'Hemiparesia',\n name: 'HEMIPARESIS',\n },\n {\n value: 'Ostomia',\n name: 'OSTOMY',\n },\n {\n value: 'Ausência de um membro',\n name: 'ABSENCE_OF_A_MEMBER',\n },\n {\n value: 'Nanismo',\n name: 'DWARFISM',\n },\n {\n value: 'Paralisia cerebral',\n name: 'CEREBRAL_PALSY',\n },\n {\n value: 'Síndrome do X frágil',\n name: 'FRAGILE_X_SYNDROME',\n },\n {\n value: 'Síndrome de down',\n name: 'DOWNS_SYNDROME',\n },\n {\n value: 'Síndrome de Rett',\n name: 'RETT_SYNDROME',\n },\n {\n value: 'Discalculia',\n name: 'DYSCALCULIA',\n },\n {\n value: 'Síndrome do álcool fetal',\n name: 'FETAL_ALCOHOL_SYNDROME',\n },\n {\n value: 'Erros inatos do metabolismo',\n name: 'INBORN_ERRORS_OF_METABOLISM',\n },\n {\n value: 'Transtorno do Espectro Autista',\n name: 'AUTISTIC_SPECTRUM_DISORDER',\n },\n {\n value: 'Mobilidade reduzida',\n name: 'REDUCED_MOBILITY',\n },\n];\n\nconst ALLERGIES_OPTIONS = [\n {\n value: 'Não Possuo',\n name: 'DO_NOT_HAVE'\n },\n {\n value: 'Alergia a medicamentos anti-inflamatórios',\n name: 'Alergia a medicamentos anti-inflamatórios',\n },\n {\n value: 'Alergia a medicamentos antibióticos',\n name: 'Alergia a medicamentos antibióticos',\n },\n {\n value: 'Alergia a medicamentos anticonvulsivantes',\n name: 'Alergia a medicamentos anticonvulsivantes',\n },\n {\n value: 'Alergia a medicamentos antiepilépticos',\n name: 'Alergia a medicamentos antiepilépticos',\n },\n {\n value: 'Alergia a medicamentos contraste de iodo',\n name: 'Alergia a medicamentos contraste de iodo',\n },\n {\n value: 'Alergia a medicamentos do tipo aspirina',\n name: 'Alergia a medicamentos do tipo aspirina',\n },\n {\n value: 'Alergia a medicamentos medicamentos para quimioterapia',\n name: 'Alergia a medicamentos medicamentos para quimioterapia',\n },\n {\n value: 'Alergia a medicamentos relaxantes musculares',\n name: 'Alergia a medicamentos relaxantes musculares',\n },\n {\n value: 'Alergia a medicamentos remédios antivirais',\n name: 'Alergia a medicamentos remédios antivirais',\n },\n {\n value: 'Alergia a pelos de animais',\n name: 'Alergia a pelos de animais',\n },\n {\n value: 'Alergia alimentar a amendoim',\n name: 'Alergia alimentar a amendoim',\n },\n {\n value: 'Alergia alimentar a frutas secas',\n name: 'Alergia alimentar a frutas secas',\n },\n {\n value: 'Alergia alimentar a frutos do mar',\n name: 'Alergia alimentar a frutos do mar',\n },\n {\n value: 'Alergia alimentar a leite',\n name: 'Alergia alimentar a leite',\n },\n {\n value: 'Alergia alimentar a nozes',\n name: 'Alergia alimentar a nozes',\n },\n {\n value: 'Alergia alimentar a ovos',\n name: 'Alergia alimentar a ovos',\n },\n {\n value: 'Alergia alimentar a trigo',\n name: 'Alergia alimentar a trigo',\n },\n {\n value: 'Alergia cutânea a abelhas',\n name: 'Alergia cutânea a abelhas',\n },\n {\n value: 'Alergia cutânea a carrapatos',\n name: 'Alergia cutânea a carrapatos',\n },\n {\n value: 'Alergia cutânea a formigas',\n name: 'Alergia cutânea a formigas',\n },\n {\n value: 'Alergia cutânea a mosquitos borrachudos',\n name: 'Alergia cutânea a mosquitos borrachudos',\n },\n {\n value: 'Alergia cutânea a mosquitos e borrachudos',\n name: 'Alergia cutânea a mosquitos e borrachudos',\n },\n {\n value: 'Alergia cutânea a pernilongos',\n name: 'Alergia cutânea a pernilongos',\n },\n {\n value: 'Alergia cutânea a pulgas',\n name: 'Alergia cutânea a pulgas',\n },\n {\n value: 'Alergia respiratória a ácaros',\n name: 'Alergia respiratória a ácaros',\n },\n {\n value: 'Alergia respiratória a fumaça',\n name: 'Alergia respiratória a fumaça',\n },\n {\n value: 'Alergia respiratória a mofo',\n name: 'Alergia respiratória a mofo',\n },\n {\n value: 'Alergia respiratória a poeira',\n name: 'Alergia respiratória a poeira',\n },\n {\n value: 'Alergia respiratória a pólen das plantas',\n name: 'Alergia respiratória a pólen das plantas',\n },\n];\n\nconst BLOOD_TYPE_OPTIONS = [\n {\n value: 'O',\n name: 'HEALTH_DATA_BLOOD_TYPE_O'\n },\n {\n value: 'A',\n name: 'HEALTH_DATA_BLOOD_TYPE_A'\n },\n {\n value: 'B',\n name: 'HEALTH_DATA_BLOOD_TYPE_B'\n },\n {\n value: 'AB',\n name: 'HEALTH_DATA_BLOOD_TYPE_AB'\n }\n];\n\nconst RH_FACTOR_OPTIONS = [\n {\n value: 'positive',\n name: 'HEALTH_DATA_RH_FACTOR_POSITIVE'\n },\n {\n value: 'negative',\n name: 'HEALTH_DATA_RH_FACTOR_NEGATIVE'\n }\n];\n\nexport {\n DOCTOR_TYPE_OPTIONS,\n SPECIAL_NEEDS_OPTIONS,\n ALLERGIES_OPTIONS,\n BLOOD_TYPE_OPTIONS,\n RH_FACTOR_OPTIONS,\n};","import React, {\n useState,\n useEffect,\n useCallback\n} from \"react\";\nimport { request } from \"../../utils/request\";\nimport {\n Grid,\n LinearProgress\n} from \"@material-ui/core\";\nimport {\n ButtonContainer,\n MainButton,\n LoadingContainer\n} from \"./Components\"\nimport FormEntrySelect from \"../FormEntrySelect/FormEntrySelect\";\nimport FormEntryText from \"../FormEntryText/FormEntryText\";\nimport FormEntryTextarea from \"../FormEntryTextarea/FormEntryTextarea\";\nimport FormEntryCheckbox from \"../FormEntryCheckbox/FormEntryCheckbox\";\nimport { FormEntryAutocomplete } from \"../FormEntryAutocomplete\";\nimport Dialog from \"../../components/Dialog/Dialog\";\nimport {\n DOCTOR_TYPE_OPTIONS,\n SPECIAL_NEEDS_OPTIONS,\n ALLERGIES_OPTIONS,\n BLOOD_TYPE_OPTIONS,\n RH_FACTOR_OPTIONS,\n} from \"./data\";\nimport { useTranslation } from 'react-i18next';\nimport debounce from \"lodash.debounce\";\n\nconst HealthForm = ({\n userId,\n userHealthForm,\n countryDiseases,\n}) => {\n const { t } = useTranslation(['healthPage', 'common']);\n\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [doctorType, setDoctorType] = useState(userHealthForm?.healthData?.doctorType);\n const [doctorName, setDoctorName] = useState(userHealthForm?.healthData?.doctorName);\n const [doctorMobile, setDoctorMobile] = useState(userHealthForm?.healthData?.doctorMobile);\n const [clinicAddress, setClinicAddress] = useState(userHealthForm?.healthData?.clinicAddress);\n const [clinicPhone, setClinicPhone] = useState(userHealthForm?.healthData?.clinicPhone);\n const [specialNeeds, setSpecialNeeds] = useState(userHealthForm?.healthData?.specialNeeds);\n const [allergicTo, setAllergicTo] = useState(userHealthForm?.healthData?.allergicTo);\n const [feverAllowedMedication, setFeverAllowedMedication] = useState(userHealthForm?.healthData?.feverAllowedMedication);\n const [congenitalDisease, setCongenitalDisease] = useState('');\n const [ongoingTreatments, setOngoingTreatments] = useState(userHealthForm?.healthData?.ongoingTreatments);\n const [specificMedication, setSpecificMedication] = useState(userHealthForm?.healthData?.specificMedication);\n const [diseases, setDiseases] = useState(userHealthForm?.healthData?.diseases.map(disease => disease._id) || []);\n const [bloodType, setBloodType] = useState(userHealthForm?.healthData?.bloodType);\n const [rhFactor, setRhFactor] = useState(userHealthForm?.healthData?.rhFactor);\n const [height, setHeight] = useState(userHealthForm?.healthData?.height);\n const [weight, setWeight] = useState(userHealthForm?.healthData?.weight);\n\n const [cndSearchQuery, setCndSearchQuery] = useState('');\n const [isLoadingCnd, setIsLoadingCnd] = useState(false);\n const [cndOptions, setCndOptions] = useState([]);\n\n const [feedback, setFeedback] = useState(null);\n const [dialogOpen, setDialogOpen] = useState(false);\n\n const handleDiseaseChange = (e) => {\n if (e.target.checked) {\n setDiseases([...diseases, e.target.name])\n } else {\n const updatedDiseases = diseases.filter((item) => item !== e.target.name);\n setDiseases(updatedDiseases)\n }\n };\n\n const onChangeCnd = (_, value) => {\n setCongenitalDisease(value);\n };\n\n const onCndInputChange = (_, value) => {\n setCndSearchQuery(value);\n };\n\n const renderCndOption = (option) => {\n return (\n \n \n {`${option?.code} - ${option?.description?.['PT']}`}\n \n \n );\n };\n\n const filterCndsOptions = (options) => options;\n\n const getCndsOptionLabel = (option) => {\n if (!option) {\n return ''\n }\n\n return `${option?.code} - ${option?.description?.['PT']}`\n };\n\n const getCndsOptionsAsync = async (query) => {\n try {\n const loweredQuery = query.toLowerCase();\n\n if (loweredQuery === '' || !loweredQuery.startsWith('q')) {\n return [];\n }\n\n const { data: queryResult } = await request.get(\n `/client-app/find-icds?code=${loweredQuery}`\n );\n\n return queryResult;\n } catch (err) {\n console.error(`[getCndsOptionsAsync] ${err}`);\n return [];\n }\n };\n\n const getCndsOptionsDelayed = useCallback(\n debounce((query, callback) => {\n setCndOptions([]);\n getCndsOptionsAsync(query).then(callback);\n }, 300),\n []\n );\n\n const confirmHandler = async () => {\n try {\n const data = {\n userId,\n healthFormId: userHealthForm?._id,\n healthData: {\n doctorType,\n doctorName,\n doctorMobile,\n clinicAddress,\n clinicPhone,\n specialNeeds,\n allergicTo,\n feverAllowedMedication,\n congenitalDisease: congenitalDisease?.code,\n ongoingTreatments,\n specificMedication,\n diseases,\n bloodType,\n rhFactor,\n height,\n weight\n }\n }\n setIsSubmitting(true);\n await request.post(\"/client-app/update-health-form\", data);\n setFeedback(t('HEALTH_DATA_SUBMIT_SUCCESS_DESCRIPTION'));\n setDialogOpen(true);\n\n } catch (error) {\n console.log(`[HealthForm confirmHandler Error]: ${error}`);\n let message = t('SUBMIT_ERROR_RESPONSE');\n\n const { isAxiosError } = error;\n if (isAxiosError) {\n message = error.response.data.message;\n }\n\n setFeedback(message)\n setDialogOpen(true);\n\n } finally {\n setIsSubmitting(false)\n }\n };\n\n useEffect(() => {\n setIsLoadingCnd(true);\n\n getCndsOptionsDelayed(cndSearchQuery, (options) => {\n setCndOptions(options);\n\n setIsLoadingCnd(false);\n });\n\n }, [cndSearchQuery, getCndsOptionsDelayed]);\n\n useEffect(() => {\n if (!userHealthForm?.healthData?.congenitalDisease) return;\n setIsLoadingCnd(true);\n\n getCndsOptionsDelayed(userHealthForm?.healthData?.congenitalDisease, (options) => {\n setCndOptions(options);\n setCongenitalDisease(options?.[0] || '');\n setIsLoadingCnd(false);\n });\n\n // eslint-disable-next-line\n }, [userHealthForm?.healthData?.congenitalDisease]);\n\n return (\n
\n setDoctorType(event.target.value)}\n label={t('HEALTH_DATA_DOCTOR_TYPE')}\n value={doctorType}\n disabled={isSubmitting}\n >\n \n {DOCTOR_TYPE_OPTIONS.map(option => (\n \n ))}\n \n\n setDoctorName(event.target.value)}\n value={doctorName}\n disabled={isSubmitting}\n />\n\n setDoctorMobile(event.target.value)}\n value={doctorMobile}\n disabled={isSubmitting}\n />\n\n setClinicAddress(event.target.value)}\n value={clinicAddress}\n disabled={isSubmitting}\n />\n\n setClinicPhone(event.target.value)}\n value={clinicPhone}\n disabled={isSubmitting}\n />\n\n setSpecialNeeds(event.target.value)}\n value={specialNeeds}\n disabled={isSubmitting}\n >\n \n {SPECIAL_NEEDS_OPTIONS.map(option => (\n \n ))}\n \n\n setAllergicTo(event.target.value)}\n value={allergicTo}\n disabled={isSubmitting}\n >\n \n {ALLERGIES_OPTIONS.map(option => (\n \n ))}\n \n\n setFeverAllowedMedication(event.target.value)}\n value={feverAllowedMedication}\n disabled={isSubmitting}\n />\n\n \n\n \n\n setOngoingTreatments(event.target.value)}\n value={ongoingTreatments}\n disabled={isSubmitting}\n />\n\n setSpecificMedication(event.target.value)}\n value={specificMedication}\n disabled={isSubmitting}\n />\n\n setBloodType(event.target.value)}\n value={bloodType}\n disabled={isSubmitting}\n >\n \n {BLOOD_TYPE_OPTIONS.map(option => (\n \n ))}\n \n\n setRhFactor(event.target.value)}\n value={rhFactor}\n disabled={isSubmitting}\n >\n \n {RH_FACTOR_OPTIONS.map(option => (\n \n ))}\n \n\n setHeight(event.target.value)}\n value={height}\n disabled={isSubmitting}\n />\n\n setWeight(event.target.value)}\n value={weight}\n disabled={isSubmitting}\n />\n\n \n {\n isSubmitting ?\n \n \n \n :\n \n {t('HEALTH_DATA_SUBMIT_BUTTON')}\n \n }\n \n\n \n {feedback}\n \n
\n );\n};\n\nexport default HealthForm;\n","import styled from \"styled-components\";\n\nconst ButtonContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : 0};\n margin-top: ${props => props.marginTop ? props.marginTop : 0};\n`;\n\nconst MainButton = styled.button`\n color: white;\n font-weight: bold;\n background-color: #2D80C6;\n border: none;\n border-radius: 15px;\n box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.25);\n padding: 10px 20px;\n text-transform: uppercase;\n cursor: pointer;\n transition: .2s;\n\n &:hover {\n background-color: #3297DB;\n }\n`;\n\nconst LoadingContainer = styled.div`\n width: 100%;\n margin: 10px 0px; \n`\n\nexport {\n ButtonContainer,\n MainButton,\n LoadingContainer\n};","import React, { useState } from 'react';\nimport { request } from '../../utils/request';\nimport { LinearProgress } from \"@material-ui/core\";\nimport {\n ButtonContainer,\n MainButton,\n LoadingContainer\n} from \"./Components\"\nimport FormEntryText from \"../FormEntryText/FormEntryText\";\nimport FormEntryTextarea from \"../FormEntryTextarea/FormEntryTextarea\";\nimport Dialog from \"../../components/Dialog/Dialog\";\nimport { useTranslation } from 'react-i18next';\n\nconst HealthEmergencyInfoForm = ({\n userId,\n userHealthForm,\n}) => {\n const { t } = useTranslation('healthPage');\n\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [healthInsuranceName, setHealthInsuranceName] = useState(userHealthForm?.emergencyData?.healthInsuranceName);\n const [healthInsuranceNumber, setHealthInsuranceNumber] = useState(userHealthForm?.emergencyData?.healthInsuranceNumber);\n const [healthInsuranceCategory, setHealthInsuranceCategory] = useState(userHealthForm?.emergencyData?.healthInsuranceCategory);\n const [preferredEmergencyHospital, setPreferredEmergencyHospital] = useState(userHealthForm?.emergencyData?.preferredEmergencyHospital);\n const [preferredEmergencyHospitalPhone, setPreferredEmergencyHospitalPhone] = useState(userHealthForm?.emergencyData?.preferredEmergencyHospitalPhone);\n const [emergencyContacts, setEmergencyContacts] = useState(userHealthForm?.emergencyData?.emergencyContacts);\n const [feedback, setFeedback] = useState(null);\n const [dialogOpen, setDialogOpen] = useState(false);\n\n const confirmHandler = async () => {\n try {\n const data = {\n userId: userId,\n healthFormId: userHealthForm?._id,\n emergencyData: {\n healthInsuranceName,\n healthInsuranceNumber,\n healthInsuranceCategory,\n preferredEmergencyHospital,\n preferredEmergencyHospitalPhone,\n emergencyContacts\n }\n }\n setIsSubmitting(true);\n await request.post(\"/client-app/update-health-form\", data);\n setFeedback(t('EMERGENCY_INFORMATION_SUBMIT_SUCCESS_DESCRIPTION'));\n setDialogOpen(true);\n\n } catch (error) {\n console.log(`[HealthEmergencyInfoForm confirmHandler Error]: ${error}`);\n let message = t('SUBMIT_ERROR_RESPONSE');\n\n const { isAxiosError } = error;\n if (isAxiosError) {\n message = error.response.data.message;\n }\n\n setFeedback(message)\n setDialogOpen(true);\n\n } finally {\n setIsSubmitting(false)\n }\n }\n\n return (\n
\n setHealthInsuranceName(event.target.value)}\n value={healthInsuranceName}\n disabled={isSubmitting}\n />\n\n setHealthInsuranceNumber(event.target.value)}\n value={healthInsuranceNumber}\n disabled={isSubmitting}\n />\n\n setHealthInsuranceCategory(event.target.value)}\n value={healthInsuranceCategory}\n disabled={isSubmitting}\n />\n\n setPreferredEmergencyHospital(event.target.value)}\n value={preferredEmergencyHospital}\n disabled={isSubmitting}\n />\n\n setPreferredEmergencyHospitalPhone(event.target.value)}\n value={preferredEmergencyHospitalPhone}\n disabled={isSubmitting}\n />\n\n setEmergencyContacts(event.target.value)}\n value={emergencyContacts}\n disabled={isSubmitting}\n />\n\n \n {\n isSubmitting ?\n \n \n \n :\n \n {t('EMERGENCY_INFORMATION_SUBMIT_BUTTON')}\n \n }\n \n\n \n {feedback}\n \n
\n );\n}\n\nexport default HealthEmergencyInfoForm;","import React, {\n useEffect,\n useState,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { request } from '../../utils/request';\nimport { getUser } from '../../utils/user';\nimport { Box, CircularProgress } from '@material-ui/core';\nimport {\n Container,\n Title,\n CenterColumn,\n FormContainer,\n AccordionContainer,\n} from './Components';\nimport Header from '../../components/Header/Header';\nimport AccordionSummary from '../../components/AccordionSummary/AccordionSummary';\nimport AccordionDetails from '../../components/AccordionDetails/AccordionDetails';\nimport HealthForm from '../../components/HealthForm/HealthForm';\nimport HealthEmergencyInfoForm from '../../components/HealthEmergencyInfoForm/HealthEmergencyInfoForm';\nimport { RedirectButton } from '../../components/RedirectButton';\nimport CodeContainer from '../../components/CodeContainer/CodeContainer';\n\nconst MyHealth = () => {\n const { t } = useTranslation('healthPage');\n const user = getUser();\n\n const [loading, setLoading] = useState(false);\n const [countryDiseases, setCountryDiseases] = useState([]);\n const [userHealthForm, setUserHealthForm] = useState();\n const [expandedPanel, setExpandedPanel] = useState(undefined);\n\n const handleClick = (panel) => {\n if (panel === expandedPanel) {\n setExpandedPanel(undefined);\n } else {\n setExpandedPanel(panel);\n }\n };\n\n useEffect(() => {\n const getUserProfile = async () => {\n try {\n setLoading(true);\n const { data: result } = await request.get(\n `/client-app/profile?id=${user.id}`\n );\n\n setUserHealthForm(result.healthForm);\n setCountryDiseases(result.country?.diseases || []);\n } catch (error) {\n console.log(`[MyHealth getUserProfile Error]: ${error}`);\n } finally {\n setLoading(false);\n }\n }\n\n getUserProfile();\n //eslint-disable-next-line\n }, []);\n\n return (\n \n
\n {t('TITLE')}\n\n {\n loading ?\n \n \n \n :\n \n\n \n\n \n handleClick('panel2')}\n title={t('HEALTH_DATA')}\n expandedPanel={expandedPanel}\n panel=\"panel2\"\n />\n\n \n \n \n \n\n \n handleClick('panel3')}\n title={t('EMERGENCY_INFORMATION')}\n expandedPanel={expandedPanel}\n panel=\"panel3\"\n />\n\n \n \n \n \n\n \n handleClick('panel4')}\n title={\"Código de Compartilhamento\"}\n expandedPanel={expandedPanel}\n panel=\"panel4\"\n />\n \n \n \n \n \n \n\n \n \n }\n\n\n \n );\n}\n\nexport default MyHealth;","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n display: flex;\n align-items: center;\n flex-direction: column;\n padding-bottom: 130px;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst FormContainer = styled.div`\n width: calc(100% - 40px);\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-top: 20px;\n`;\n\nexport {\n Container,\n Title,\n FormContainer,\n};","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n Container,\n Title,\n FormContainer,\n} from './Components';\nimport Header from '../../components/Header/Header';\nimport { RedirectButton } from '../../components/RedirectButton';\n\nconst MyVaccinationsCard = () => {\n const { t } = useTranslation('vaccinationsCardPage');\n\n return (\n \n
\n \n {t('TITLE')}\n \n\n \n \n\n \n \n \n );\n}\n\nexport default MyVaccinationsCard;","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n align-items: center;\n position: relative;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst CenterColumn = styled.div`\n width: calc(100% - 40px);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n`;\n\nconst Button = styled.button`\n width: 140px;\n height: 30px;\n color: #FFFFFF;\n font-size: 14px;\n font-weight: bold;\n text-transform: uppercase;\n background-color: #2D80C6;\n letter-spacing: -0.5px;\n border: none;\n border-radius: 15px;\n margin-top: 20px;\n transition: .2s;\n cursor: pointer;\n align-self: center;\n margin-top: 90px;\n\n &:hover {\n background-color: #49aad6;\n };\n\n &:disabled {\n background-color: #CCCCCC;\n cursor: not-allowed;\n };\n`;\n\nconst AddButtonContainer = styled.div`\n width: calc(100% - 40px);\n display: flex;\n align-items: center;\n justify-content: right;\n`;\n\nconst AddButton = styled.button`\n display: flex;\n align-items: center;\n padding: 6px 10px;\n border: 1px solid #2D80C6;\n border-radius: 23px;\n background-color: #FFFFFF;\n color: #2D80C6;\n cursor: pointer;\n transition: .2s;\n text-transform: uppercase;\n box-sizing: border-box;\n margin-top: 30px;\n &:hover {\n color: '#49aad6';\n };\n`;\n\nconst AddButtonText = styled.span`\n font-size: 11px;\n font-weight: bold;\n margin-right: 5px;\n`;\n\nexport {\n Button,\n Container,\n Title,\n CenterColumn,\n AddButtonContainer,\n AddButton,\n AddButtonText,\n};","import styled from 'styled-components';\n\nconst Button = styled.button`\n width: 140px;\n height: 30px;\n color: #FFFFFF;\n font-size: 14px;\n font-weight: bold;\n text-transform: uppercase;\n background-color: #00A859;\n letter-spacing: -0.5px;\n border: none;\n border-radius: 15px;\n margin-top: 20px;\n transition: .2s;\n cursor: pointer;\n`;\n\nexport {\n Button\n}","import React from 'react';\nimport {\n Backdrop,\n Checkbox,\n Fade,\n FormControlLabel,\n Modal,\n Typography,\n Box,\n makeStyles,\n} from '@material-ui/core';\nimport { Button } from './Components';\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '95%',\n maxWidth: '420px',\n margin: '0 auto',\n },\n\n\n modalPaper: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: 10,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n\n\n modalHeader: {\n textAlign: \"center\",\n width: 290,\n marginTop: 10,\n marginBottom: 20,\n fontWeight: \"bold\",\n color: '#00A859',\n },\n\n tocModalContent: {\n marginBottom: 20,\n fontSize: '16px',\n fontWeight: 'bold',\n color: '#808080',\n textAlign: 'justify'\n },\n\n tocModalFormControlLabel: {\n marginBottom: 20,\n '& .MuiTypography-body1': {\n fontWeight: 'bold',\n },\n },\n\n modalButtonContainer: {\n display: \"flex\",\n justifyContent: \"space-around\",\n width: \"100%\",\n },\n\n modalBackButton: {\n backgroundColor: '#2D80C6',\n color: '#FFFFFF',\n transition: '.2s',\n '&:hover': {\n filter: 'brightness(.9)',\n }\n },\n}));\n\nexport const TOCModal = ({\n id,\n open,\n onClick,\n onChange,\n checked,\n content,\n}) => {\n const classes = useStyles();\n\n return (\n \n \n \n \n {content.title}\n \n \n {content.description}\n \n \n }\n label={content.checkboxLabel}\n />\n \n {\n onClick();\n window.location.replace(\"/secure\");\n }}\n >\n {content.backButtonTitle}\n \n \n {content.confirmButtonTitle}\n \n \n \n \n \n )\n};","import React from 'react';\nimport { Box, Button, makeStyles, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n\n title: {\n fontWeight: 'bold',\n color: '#2D80C6',\n },\n\n description: {\n marginBottom: 20,\n fontSize: '16px',\n fontWeight: 'bold',\n color: '#808080',\n textAlign: 'justify'\n },\n\n button: {\n color: '#FFFFFF',\n fontSize: 14,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n backgroundColor: '#2D80C6',\n border: 'none',\n borderRadius: 23,\n cursor: 'pointer',\n alignSelf: 'center',\n padding: '6px 16px',\n\n '&:hover': {\n backgroundColor: '#49aad6',\n },\n\n '&:disabled': {\n backgroundColor: '#CCCCCC',\n cursor: 'not allowed',\n },\n },\n}));\n\nexport const SpecialCase = ({\n title,\n description,\n buttonTitle,\n onClick,\n ...rest\n}) => {\n const classes = useStyles();\n\n return (\n \n \n {title}\n \n \n {description}\n \n\n \n {buttonTitle}\n \n \n )\n};","import React from 'react';\nimport {\n makeStyles,\n Backdrop,\n Fade,\n Modal as MUIModal,\n Typography,\n Box\n} from \"@material-ui/core\";\nimport { SpecialCase } from './SpecialCase';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '90%',\n maxWidth: '420px',\n margin: '0 auto',\n boxSizing: 'border-box',\n },\n\n paper: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: 10,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n\n title: {\n textAlign: \"center\",\n width: '100%',\n marginTop: 10,\n marginBottom: 20,\n fontWeight: \"bold\",\n color: '#00A859',\n },\n\n description: {\n marginBottom: 20,\n fontSize: '16px',\n fontWeight: 'bold',\n color: '#808080',\n textAlign: 'justify'\n },\n}));\n\nexport const SpecialCaseModal = ({ open, onClose, onClick }) => {\n const classes = useStyles();\n const { t } = useTranslation('vaccinationsCardPage');\n\n return (\n \n \n \n \n {t('SPECIAL_CASE_MODAL_TITLE')}\n \n \n {t('SPECIAL_CASE_MODAL_DESCRIPTION')}\n \n\n onClick('ANTIBODY')}\n />\n\n onClick('MEDICAL_DECLARATION')}\n />\n \n \n \n )\n};","import React from 'react';\nimport {\n makeStyles,\n Backdrop,\n Fade,\n Modal,\n Typography\n} from \"@material-ui/core\";\nimport { Button } from './Components';\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '90%',\n maxWidth: '420px',\n margin: '0 auto',\n boxSizing: 'border-box',\n },\n\n modalPaper: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: 10,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n },\n\n modalTitle: {\n textAlign: \"center\",\n width: '100%',\n marginTop: 10,\n marginBottom: 20,\n fontWeight: \"bold\",\n },\n\n modalDescription: {\n marginBottom: 20,\n fontSize: '16px',\n fontWeight: 'bold',\n textAlign: 'justify'\n },\n\n modalButtonContainer: {\n marginTop: \"-50px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-around\",\n width: \"100%\",\n },\n}));\n\nexport const UserConfirmationModal = ({\n id,\n title,\n description,\n button,\n open,\n disabled = false,\n onClick,\n onClickExtraBtn,\n extraButton = \"\",\n userName,\n userBirthdate,\n}) => {\n const classes = useStyles();\n\n return (\n \n \n
\n \n {title?.text}\n \n \n {description?.text}\n \n
\n {userName}\n {userBirthdate}\n
\n
\n \n {extraButton}\n \n {\n extraButton ?\n\n \n {button?.text}\n \n : null\n }\n
\n
\n
\n \n )\n};","import React, {\n useEffect,\n useState\n} from \"react\";\nimport { request } from \"../../utils/request\";\nimport { useTranslation } from 'react-i18next';\nimport { CircularProgress, makeStyles, Button as MUIButton, Box } from \"@material-ui/core\";\nimport { Add as AddIcon } from '@material-ui/icons';\nimport { getUser } from '../../utils/user';\nimport {\n Button,\n Container,\n Title,\n AddButtonContainer,\n AddButton,\n AddButtonText,\n CenterColumn,\n} from \"./Components.js\";\nimport Header from \"../../components/Header/Header\";\nimport BoxUploadFile from '../../components/BoxUploadFile/BoxUploadFile';\nimport { FeedbackModal } from \"../../components/FeedbackModal/FeedbackModal\";\nimport { TOCModal } from \"../../components/TOCModal\";\nimport { SpecialCaseModal } from \"../../components/SpecialCaseModal\";\nimport Dialog from \"../../components/Dialog/Dialog\";\nimport { UserConfirmationModal } from \"./UserConfirmationModal\";\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n display: 'flex',\n flexGrow: 1,\n flexDirection: 'column',\n alignItems: 'center',\n },\n\n specialCaseButtonContainer: {\n marginBottom: 85,\n marginTop: 70,\n },\n\n specialCase: {\n textTransform: 'none',\n color: '#2D80C6',\n fontWeight: 'bold',\n\n '&:hover': {\n backgroundColor: 'transparent',\n },\n },\n}));\n\nconst UploadVaccinationsCard = () => {\n const { t } = useTranslation('vaccinationsCardPage');\n const classes = useStyles();\n\n const [specialCase, setSpecialCase] = useState(undefined);\n\n const [isOpenTOCModal, setIsOpenTOCModal] = useState(false);\n const [isTOCChecked, setIsTOCChecked] = useState(false);\n const [isOpenSpecialCaseTOCModal, setIsOpenSpecialCaseTOCModal] = useState(false);\n const [isSpecialCaseTOCChecked, setIsSpecialCaseTOCChecked] = useState(false);\n\n const [isOpenSubmitErrorModal, setIsOpenSubmitErrorModal] = useState(false);\n const [isOpenSubmitSuccessModal, setIsOpenSubmitSuccessModal] = useState(false);\n const [isOpenUploadUnavailableModal, setIsOpenUploadUnavailableModal] = useState(false);\n const [isOpenSpecialCaseModal, setIsOpenSpecialCaseModal] = useState(false);\n const [isOpenUserConfirmationModal, setIsOpenUserConfirmationModal] = useState(false);\n\n\n const [isLoadingVaccinationCardStatus, setIsLoadingVaccinationCardStatus] = useState(false);\n const [isUploadingVaccinationCard, setIsUploadingVaccinationCard] = useState(false);\n const [isSubmittingVaccinationsCardFiles, setIsSubmittingVaccinationsCardFiles] = useState(false);\n\n const [vaccinationCardFiles, setVaccinationCardFiles] = useState(null);\n const [extraUploadBoxQuantity, setExtraUploadBoxQuantity] = useState([]);\n\n const [dialogOpen, setDialogOpen] = useState(false);\n const [feedback, setFeedback] = useState(null);\n\n const user = getUser();\n\n const handleOpenSpecialCaseModal = () => {\n setIsOpenSpecialCaseModal(true);\n };\n\n const handleCloseSpecialCaseModal = () => {\n setIsOpenSpecialCaseModal(false);\n };\n\n const handleChangeSpecialCase = (type) => {\n setSpecialCase(type);\n setIsOpenSpecialCaseTOCModal(true);\n handleCloseSpecialCaseModal();\n setVaccinationCardFiles(null);\n setExtraUploadBoxQuantity([]);\n };\n\n const handleRedirectModalButton = (modalName) => {\n if (modalName === 'submitError') {\n setIsOpenSubmitErrorModal(false);\n window.location.replace(\"/secure\");\n };\n\n if (modalName === 'submitSuccess') {\n setIsOpenSubmitSuccessModal(false);\n window.location.replace(\"/secure/my-health/my-vaccinations-card/consult-vaccinations-card\");\n };\n\n if (modalName === 'uploadUnavailable') {\n setIsOpenUploadUnavailableModal(false);\n window.location.replace(\"/secure/my-health/my-vaccinations-card/consult-vaccinations-card\");\n };\n };\n\n const handleUploadFile = async (file, documentType) => {\n try {\n setIsUploadingVaccinationCard(true);\n const formData = new FormData();\n formData.append(`file.${documentType}`, file);\n const imageResult = await request.post(\n `/client-app/upload-covid-document?documentType=${documentType}`,\n formData\n );\n\n const newVaccinationCard = {\n ...vaccinationCardFiles,\n [documentType]: imageResult?.data?.fileId,\n };\n\n setVaccinationCardFiles(newVaccinationCard);\n } catch (error) {\n console.error(`[UploadVaccinationsCard handleUpload] ${error}`);\n } finally {\n setIsUploadingVaccinationCard(false);\n }\n };\n\n const handleClickAddUploadBox = () => {\n setExtraUploadBoxQuantity([...extraUploadBoxQuantity, 'newBox']);\n };\n\n const handleClickRemoveUploadBox = (position) => {\n const updatedExtraUploadBoxQuantity = [...extraUploadBoxQuantity];\n delete updatedExtraUploadBoxQuantity[position];\n\n const updatedVaccinationCardFiles = { ...vaccinationCardFiles };\n delete updatedVaccinationCardFiles[`vaccinationCard${position}`];\n\n setExtraUploadBoxQuantity(updatedExtraUploadBoxQuantity);\n setVaccinationCardFiles(updatedVaccinationCardFiles);\n };\n\n const handleSubmitVaccinationCardFiles = async () => {\n try {\n setIsSubmittingVaccinationsCardFiles(true);\n\n if (!vaccinationCardFiles) {\n return;\n }\n\n const vaccinationRecords = Object.values(vaccinationCardFiles).map(file => ({\n file: file,\n especialCaseType: specialCase\n }));\n\n if (!vaccinationRecords.length) {\n throw new Error('Missing files');\n };\n\n const body = {\n vaccinationRecords,\n };\n\n await request.post(\n `/client-app/vaccination-card-registry`,\n body\n );\n\n setIsOpenSubmitSuccessModal(true);\n } catch (error) {\n console.error(`[UploadVaccinationsCard handleSubmit] ${error}`);\n\n if (error.message === 'Missing files') {\n setFeedback(t('UPLOAD_VACCINATIONS_CARD_MISSING_FILE_ERROR_CONTENT'));\n setDialogOpen(true);\n\n return;\n };\n\n setIsOpenSubmitErrorModal(true);\n } finally {\n setIsSubmittingVaccinationsCardFiles(false);\n }\n };\n\n useEffect(() => {\n const getUserVaccinationCardStatus = async () => {\n try {\n setIsLoadingVaccinationCardStatus(true);\n const result = await request.get(`/client-app/vcr-check`);\n\n if (!result.data?.allowNewUpload) {\n setIsOpenUploadUnavailableModal(true);\n return;\n };\n\n if (!isTOCChecked) {\n setIsOpenTOCModal(true);\n };\n } catch (error) {\n if (error.response?.data?.statusCode === 401) {\n setIsOpenSubmitErrorModal(true);\n };\n\n console.error(`[UploadVaccinationsCard getUserVaccinationCardStatus] ${error}`);\n } finally {\n setIsLoadingVaccinationCardStatus(false);\n }\n };\n\n getUserVaccinationCardStatus();\n\n //eslint-disable-next-line\n }, []);\n\n return (\n \n
\n \n {\n specialCase !== undefined\n ? t('SPECIAL_CASE_UPLOAD_EXCEPTIONS')\n : t('UPLOAD_VACCINATIONS_CARD')\n }\n \n\n {\n isLoadingVaccinationCardStatus ?\n \n \n \n :\n <>\n \n handleUploadFile(file, \"vaccinationCard\")}\n />\n\n {\n extraUploadBoxQuantity.length > 0 &&\n extraUploadBoxQuantity.map((uploadBox, index) => {\n if (uploadBox === undefined) {\n return null;\n }\n\n return (\n handleUploadFile(file, `vaccinationCard${index}`)}\n onClickTrashIcon={() => handleClickRemoveUploadBox(index)}\n showTrashIcon\n marginTop={30}\n />\n )\n })\n }\n\n \n \n \n {t('UPLOAD_VACCINATIONS_CARD_UPLOAD_ADDITIONAL_FILES')}\n \n \n \n \n\n \n {\n isSubmittingVaccinationsCardFiles\n ? \n : t('UPLOAD_VACCINATIONS_CARD_BUTTON_TITLE')\n }\n \n \n\n {specialCase === undefined && (\n \n \n {t('SPECIAL_CASE_BUTTON')}\n \n \n )}\n \n }\n\n \n\n {setIsOpenTOCModal(false); setIsOpenUserConfirmationModal(true)}}\n onChange={() => setIsTOCChecked(!isTOCChecked)}\n />\n\n {setIsOpenSpecialCaseTOCModal(false); setIsOpenUserConfirmationModal(true)}}\n onChange={() => setIsSpecialCaseTOCChecked(!isSpecialCaseTOCChecked)}\n />\n\n handleRedirectModalButton('uploadUnavailable')}\n />\n\n handleRedirectModalButton('submitError')}\n />\n\n setIsOpenUserConfirmationModal(false)}\n onClickExtraBtn={() => {\n setIsOpenSpecialCaseModal(false);\n window.location.replace(\"/secure/accounts\");\n }}\n />\n handleRedirectModalButton('submitSuccess')}\n />\n\n \n {feedback}\n \n \n );\n};\n\nexport default UploadVaccinationsCard;\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 75px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst Content = styled.div`\n width: calc(100% - 40px);\n height: auto;\n border-radius: 8px;\n box-sizing: border-box;\n padding-bottom: 20px;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst Text = styled.p`\n color: #808080;\n`\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n padding: 0px 20px;\n margin-top: 50px;\n`;\n\nexport {\n Container,\n Content,\n CenterColumn,\n Title,\n Text,\n};","import styled from \"styled-components\";\n\nconst DocumentDescription = styled.div`\n display: flex;\n flex: 1;\n margin-left: 0;\n flex-direction: column;\n text-align: left;\n box-sizing: border-box;\n`;\n\nexport {\n DocumentDescription,\n};","import React, { useState } from \"react\";\nimport {\n Typography,\n makeStyles,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n Box,\n Button\n} from \"@material-ui/core\";\nimport {\n FileCopy as FileIcon,\n CheckCircle as CheckIcon,\n HourglassEmpty as HourglassEmptyIcon,\n Warning as WarningIcon,\n KeyboardArrowDown as ChevronDownIcon,\n GetApp as DownloadIcon,\n} from \"@material-ui/icons\";\nimport {\n DocumentDescription,\n} from \"./Components\";\nimport FileDownload from \"js-file-download\";\nimport axios from \"axios\";\n\nconst useStyles = makeStyles(() => ({\n accordion: {\n '&.MuiAccordion-root': {\n marginTop: 20,\n borderRadius: 8,\n },\n\n '&.MuiAccordion-root:before': {\n display: 'none',\n },\n\n '&.MuiAccordion-root.Mui-expanded:first-child': {\n marginTop: 20,\n }\n },\n\n accordionSummaryContent: {\n display: 'flex',\n alignItems: 'center',\n },\n\n fileIcon: {\n fontSize: 38,\n marginRight: 10,\n color: '#2D80C6',\n },\n\n docName: {\n fontSize: 15,\n color: \"#000000\",\n fontWeight: \"bold\",\n },\n\n docInfo: {\n fontSize: 12,\n color: \"#A4A4A4\",\n marginTop: \".2rem\",\n overflowX: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n\n statusText: {\n fontSize: 15,\n fontWeight: \"bold\",\n },\n\n statusIcon: {\n width: \"16px\",\n marginLeft: 5\n },\n\n observationTitle: {\n fontSize: '.8rem',\n fontWeight: 'bold',\n color: \"#808080\",\n marginBottom: 20,\n },\n\n observationText: {\n fontSize: '.8rem',\n color: \"#808080\",\n },\n\n filesTitle: {\n fontSize: '.9rem',\n fontWeight: 'bold',\n color: \"#808080\",\n marginBottom: 5,\n },\n\n downloadButton: {\n display: 'flex',\n alignItems: 'center',\n padding: '2px 1px',\n textTransform: 'none',\n marginBottom: 5,\n },\n\n fileName: {\n color: \"#808080\",\n fontSize: '.8rem',\n },\n\n downloadIcon: {\n width: \"20px\",\n color: \"#808080\",\n marginLeft: 10,\n },\n}));\n\nconst colormap = {\n VERIFIED: \"#00A859\",\n PENDING: \"#F69103\",\n REDO: \"#F69103\",\n DENIED: \"#F60E31\",\n ALERT: \"#F60E31\",\n};\n\nconst VaccinationCardAccordion = ({\n documentName,\n uploadDate,\n uploadDateLabel,\n status,\n filesTitle,\n files = [],\n statusText,\n analystObservationLabel,\n analystObservation,\n}) => {\n const classes = useStyles();\n\n const [isDownloading, setIsDownloading] = useState(false);\n\n const handleDownloadDocument = async (url, documentName) => {\n setIsDownloading(true);\n try {\n axios.get(url, {\n responseType: 'blob',\n }).then((res) => {\n FileDownload(res.data, `${documentName}`)\n })\n } catch (err) {\n console.log(`[handleDownloadDocument Error]: ${err}`);\n } finally {\n setIsDownloading(false);\n }\n };\n\n return (\n \n }\n >\n \n \n \n \n {documentName}\n \n \n {uploadDateLabel}: {uploadDate}\n \n
\n \n {statusText}\n \n\n {\n status === 'PENDING' ?\n \n : status === 'VERIFIED' ?\n \n : \n }\n
\n
\n
\n \n \n \n {status === 'REDO' && (\n \n {analystObservationLabel}:\n {' '}\n \n {analystObservation}\n \n \n )}\n\n \n \n {filesTitle}\n \n\n {files.length > 0 && files.map(file => {\n const removedUrl = file.split('.com/')[1];\n const splittedRemovedUrl = removedUrl.split('_');\n const hash = splittedRemovedUrl[splittedRemovedUrl.length - 1].split('.')[0];\n const newFileNameWithoutHash = splittedRemovedUrl\n .join('_')\n .replace(`_${hash}`, '')\n .split('_')\n .join(' ');\n\n return (\n handleDownloadDocument(file, newFileNameWithoutHash)}\n className={classes.downloadButton}\n >\n \n {newFileNameWithoutHash}\n \n \n \n )\n })}\n \n \n \n
\n );\n};\n\nexport default VaccinationCardAccordion;\n","import React, { useState, useMemo, useCallback, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Container, Content, CenterColumn, Title, Text } from \"./Components.js\";\nimport Header from \"../../components/Header/Header\";\nimport SearchInput from \"../../components/SearchInput/SearchInput\";\nimport VaccinationCardAccordion from \"../../components/VaccinationCardAccordion/VaccinationCardAccordion\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport { request } from \"../../utils/request\";\nimport moment from \"moment-timezone\";\n\nconst ConsultMedicalCertificate = () => {\n const { t } = useTranslation(\"vaccinationsCardPage\");\n\n const [isLoadingUserVaccinationsCard, setIsLoadingUserVaccinationsCard] =\n useState(true);\n const [userVaccinationsCard, setUserVaccinationsCard] = useState([]);\n const [search, setSearch] = useState(\"\");\n\n const orderByLatestUploadedFile = (a, b) => {\n return new Date(a.uploadDatetime).getTime() >\n new Date(b.uploadDatetime).getTime()\n ? -1\n : new Date(a.uploadDatetime).getTime() <\n new Date(b.uploadDatetime).getTime()\n ? 1\n : 0;\n };\n\n const handleChange = (event) => {\n setSearch(event.target.value);\n };\n\n const userAvailableVaccinationsCard = useCallback(() => {\n const vaccinationsCardList = [];\n\n if (!userVaccinationsCard?.length > 0) {\n return vaccinationsCardList;\n }\n\n userVaccinationsCard.forEach((vaccinationCard, index) => {\n const newIndex = index + 1;\n let document = `${t(\n \"CONSULT_VACCINATIONS_CARD_VACCINATION_CARD\"\n )} 0${newIndex}`;\n\n if (newIndex > 9) {\n document = `${t(\n \"CONSULT_VACCINATIONS_CARD_VACCINATION_CARD\"\n )} ${newIndex}`;\n }\n\n vaccinationsCardList.push(\n \n );\n });\n\n return vaccinationsCardList;\n }, [userVaccinationsCard, t]);\n\n const vaccinationsCardToRender = userAvailableVaccinationsCard();\n const vaccinationsCardFiltered = useMemo(() => {\n if (vaccinationsCardToRender.length > 0) {\n const lowerSearch = search.toLowerCase();\n return vaccinationsCardToRender.filter((document) =>\n document.key.toLowerCase().includes(lowerSearch)\n );\n }\n }, [vaccinationsCardToRender, search]);\n\n useEffect(() => {\n const getUserVaccinationsCard = async () => {\n try {\n const { data } = await request.get(\n `/client-app/vaccination-card-registries`\n );\n\n const sortedVaccinationsCard = data.sort(orderByLatestUploadedFile);\n setUserVaccinationsCard(sortedVaccinationsCard);\n } catch (error) {\n console.error(\n `[ConsultVaccinationsCardStatus getUserVaccinationsCard] ${error}`\n );\n } finally {\n setIsLoadingUserVaccinationsCard(false);\n }\n };\n getUserVaccinationsCard();\n }, []);\n\n return (\n \n
\n {t(\"CONSULT_VACCINATIONS_CARD\")}\n \n {isLoadingUserVaccinationsCard ? (\n \n \n \n ) : vaccinationsCardFiltered && vaccinationsCardFiltered.length > 0 ? (\n {vaccinationsCardFiltered}\n ) : (\n \n {t(\"CONSULT_VACCINATIONS_CARD_CERTIFICATE_NOT_FOUND\")}\n \n )}\n \n );\n};\n\nexport default ConsultMedicalCertificate;\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n display: flex;\n align-items: center;\n flex-direction: column;\n padding-bottom: 130px;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst FormContainer = styled.div`\n width: calc(100% - 40px);\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-top: 20px;\n`;\n\nexport {\n Container,\n Title,\n FormContainer,\n};","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Container, Title, FormContainer } from \"./Components\";\nimport Header from \"../../components/Header/Header\";\nimport { RedirectButton } from \"../../components/RedirectButton\";\n\nconst MedicalCertificate = () => {\n const { t } = useTranslation(\"medicalCertificatePage\");\n\n return (\n \n
\n {t(\"TITLE\")}\n\n \n \n \n \n \n );\n};\n\nexport default MedicalCertificate;\n","import styled from \"styled-components\";\nimport { Link } from \"react-router-dom\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n display: flex;\n align-items: center;\n flex-direction: column;\n padding-bottom: 130px;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-top: -15px;\n margin-bottom: 10px;\n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: 20%;\n`;\n\nconst FormContainer = styled.div`\n width: calc(100% - 40px);\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-top: 20px;\n`;\n\nconst StyledLink = styled(Link)`\n margin-bottom: ${props => props.marginBottom ?? 0};\n text-decoration: none;\n`;\n\nconst PaddingLeft = styled.div`\n margin-top: ${props => props.marginTop ?? 0};\n padding-left: 8px;\n`;\n\nconst Button = styled.button`\n width: 140px;\n height: 30px;\n color: #FFFFFF;\n font-size: 14px;\n font-weight: bold;\n text-transform: uppercase;\n background-color: #2D80C6;\n letter-spacing: -0.5px;\n border: none;\n border-radius: 15px;\n margin-top: 20px;\n transition: .2s;\n cursor: pointer;\n align-self: center;\n margin-top: 40px;\n\n &:hover {\n background-color: #49aad6;\n }\n`;\n\nexport {\n Container,\n Title,\n CenterColumn,\n FormContainer,\n StyledLink,\n Button,\n PaddingLeft,\n};","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n label: {\n color: '#505050',\n cursor: 'pointer',\n },\n}));\n\nconst FormEntryRadio = ({\n id,\n name,\n checked,\n onChange,\n value,\n label,\n disabled,\n marginLeft,\n}) => {\n\n const classes = useStyles();\n\n return (\n
\n \n \n
\n );\n}\n\nexport default FormEntryRadio;","import React from 'react';\nimport FormEntryRadio from '../FormEntryRadio/FormEntryRadio';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 5,\n },\n\n labelContent: {\n margin: '12px 0px 8px 0px',\n fontWeight: 'bold',\n color: '#505050',\n },\n\n form: {\n display: 'flex',\n alignItems: 'center',\n margin: '25px 0px 21px 0px',\n },\n}));\n\nconst ChooseOption = ({\n title,\n name,\n onChange,\n toCheckData,\n firstOptionId,\n firstOptionValue,\n firstOptionLabel,\n secondOptionId,\n secondOptionValue,\n secondOptionLabel,\n disabled,\n}) => {\n\n const classes = useStyles();\n\n return (\n
\n \n
\n \n\n \n \n
\n );\n}\n\nexport default ChooseOption;","import React from \"react\";\nimport {\n FormControl,\n InputLabel,\n makeStyles,\n TextField,\n} from \"@material-ui/core\";\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport { Autocomplete } from \"@material-ui/lab\";\n\nconst useStyles = makeStyles(() => ({\n container: {\n padding: 5,\n display: \"flex\",\n flexDirection: \"column\",\n\n \"& .MuiInputLabel-animated\": {\n transition: \"none\",\n },\n\n \"& .MuiInputLabel-formControl\": {\n position: \"initial\",\n transform: \"none\",\n margin: \"12px 0px 8px 0px\",\n fontWeight: \"bold\",\n color: \"#505050\",\n cursor: \"pointer\",\n },\n },\n\n input: {\n '& .MuiAutocomplete-inputRoot[class*=\"MuiOutlinedInput-root\"]': {\n fontSize: 14,\n minHeight: 45,\n padding: \"0 9px 0 9px\",\n color: \"#505050\",\n backgroundColor: \"#FFFFFF\",\n borderRadius: \"8px\",\n boxSizing: \"border-box\",\n boxShadow: \"0 0px 10px 0px rgb(16 36 94 / 7%)\",\n\n \"& fieldset\": {\n borderWidth: \"0 !important\",\n },\n },\n\n '& .MuiAutocomplete-inputRoot[class*=\"MuiOutlinedInput-root\"] .MuiAutocomplete-endAdornment':\n {\n right: 11,\n },\n\n \"& .MuiAutocomplete-popupIndicator\": {\n transition: \".2s\",\n\n \"& .MuiSvgIcon-root\": {\n fontSize: 20,\n },\n },\n },\n}));\n\nexport const FormEntryAutocompleteFreesolo = ({\n id,\n label,\n options,\n value,\n onChange,\n onInputChange,\n getOptionLabel,\n filterOptions,\n loading,\n loadingText,\n noOptionsText,\n renderOption,\n disabled,\n}) => {\n const classes = useStyles();\n\n return (\n \n {typeof label === \"object\" ? (\n {label}\n ) : (\n <>{label}\n )}\n (\n \n )}\n disabled={disabled}\n popupIcon={}\n />\n \n );\n};\n","import React, { useState, useEffect, useCallback } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Container,\n Title,\n CenterColumn,\n FormContainer,\n PaddingLeft,\n Button,\n} from \"./Components\";\nimport Header from \"../../components/Header/Header\";\nimport FormEntrySelect from \"../../components/FormEntrySelect/FormEntrySelect\";\nimport FormEntryText from \"../../components/FormEntryText/FormEntryText\";\nimport FormEntryDate from \"../../components/FormEntryDate/FormEntryDate\";\nimport { FormEntryAutocomplete } from \"../../components/FormEntryAutocomplete\";\nimport ChooseOption from \"../../components/ChooseOption/ChooseOption\";\nimport BoxUploadFile from \"../../components/BoxUploadFile/BoxUploadFile\";\nimport { FeedbackModal } from \"../../components/FeedbackModal/FeedbackModal\";\nimport {\n makeStyles,\n FormControlLabel,\n Checkbox,\n Modal,\n Fade,\n Backdrop,\n CircularProgress,\n Grid,\n Typography,\n Divider,\n} from \"@material-ui/core\";\nimport DatePicker from \"react-mobile-datepicker\";\n\nimport { FaPhoneAlt, FaFileMedical } from \"react-icons/fa\";\n\nimport axios from \"axios\";\nimport { request } from \"../../utils/request\";\nimport { dateConfig } from \"../../utils/dateConfig\";\nimport debounce from \"lodash.debounce\";\nimport { TOCModal } from \"../../components/TOCModal\";\nimport { getUser } from \"../../utils/user\";\nimport { FormEntryAutocompleteFreesolo } from \"../../components/FormEntryAutocompleteFreesolo\";\nimport {\n TimePicker,\n ConfigProvider,\n Spin,\n Card,\n Radio,\n Input,\n Select,\n message,\n notification,\n Button as AntdButton,\n Typography as AntdTypography,\n} from \"antd\";\n\nconst { Title: AntdTitle } = AntdTypography;\n\nconst useStyles = makeStyles(() => ({\n datepickerModal: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"95%\",\n maxWidth: \"420px\",\n margin: \"0 auto\",\n },\n\n datepicker: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 320,\n \"& .datepicker\": {\n position: \"static\",\n borderRadius: 10,\n padding: 15,\n },\n \"& .datepicker.default .datepicker-header\": {\n fontSize: 20,\n },\n \"& .datepicker.default .datepicker-navbar-btn\": {\n fontSize: 18,\n },\n },\n}));\n\nconst DEPENDANT_TYPE_OPTIONS = [\n {\n name: \"UPLOAD_MEDICAL_CERTIFICATE_DEPENDANT_COMPANION_TYPE_UNDER_AGE\",\n value: \"Menor Dependente\",\n },\n {\n name: \"UPLOAD_MEDICAL_CERTIFICATE_DEPENDANT_COMPANION_TYPE_OVER_AGE\",\n value: \"Idoso\",\n },\n {\n name: \"UPLOAD_MEDICAL_CERTIFICATE_DEPENDANT_COMPANION_TYPE_PCD\",\n value: \"PCD\",\n },\n];\n\nconst UploadMedicalCertificate = () => {\n const classes = useStyles();\n const { t } = useTranslation([\"medicalCertificatePage\", \"common\"]);\n\n const [isOpenTOCModal, setIsOpenTOCModal] = useState(false);\n const [isTOCChecked, setIsTOCChecked] = useState(false);\n\n const [enterpriseList, setEnterpriseList] = useState([]);\n const user = getUser();\n\n const telephoneModalOptions = [\n {\n label: \"Sim\",\n value: \"yes\",\n disabled:\n user?.mobile && user?.mobile.length === 11 && Number(user?.mobile)\n ? false\n : true,\n },\n { label: \"Não\", value: \"no\" },\n ];\n\n const docTypeOptions = [\n { label: \"Atestado/Laudo médico\", value: \"sick-note\" },\n { label: \"Declaração de comparecimento\", value: \"attendance-declaration\" },\n { label: \"Declaração de acompanhante\", value: \"dependant-companion\" },\n ];\n\n const [medicalCertificateData, setMedicalCertificateData] = useState({\n enterprise: \"\",\n file: \"\",\n doctorName: \"\",\n date: undefined,\n doctorRegistry: \"\",\n intDiseaseClassification: \"\",\n clinicName: \"\",\n clinicPhone: \"\",\n daysOff: 0,\n isAttendanceDeclaration: false,\n attendanceDeclarationDates: [\"\"],\n });\n\n const [dependantInformation, setDependantInformation] = useState({\n dependantCompanion: false,\n dependantCompanionType: \"\",\n dependantName: \"\",\n dependantDegreeOfKinship: \"\",\n dependantTaxRelated: \"no\",\n });\n\n const [isLoadingUserEnterprises, setIsLoadingUserEnterprises] =\n useState(false);\n const [\n isSubmittingMedicalCertificateData,\n setIsSubmittingMedicalCertificateData,\n ] = useState(false);\n const [isUploadingMedicalCertificate, setIsUploadingMedicalCertificate] =\n useState(false);\n\n //Perfect cenario to use a useReducer in the future 🤔 ...\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [searchDoctorCrm, setSearchDoctorCrm] = useState(\"\");\n const [searchDoctorName, setSearchDoctorName] = useState(\"\");\n\n const [icdsOptions, setIcdsOptions] = useState([]);\n const [doctorCrmOptions, setDoctorCrmOptions] = useState([]);\n const [doctorNameOptions, setDoctorNameOptions] = useState([]);\n\n const [isLoadingIcds, setIsLoadingIcds] = useState(false);\n const [isLoadingDocCrm, setIsLoadingDocCrm] = useState(false);\n const [isLoadingDocName, setIsLoadingDocName] = useState(false);\n\n const [isBRFUser, setIsBRFUser] = useState(false);\n const [enterpriseClinics, setEnterpriseClinics] = useState([]);\n const [selectedEnterprises, setSelectedEnterprises] = useState([]);\n\n const [openDatePicker, setOpenDatePicker] = useState(false);\n const [isOpenNoEnterpriseFoundModal, setIsOpenNoEnterpriseFoundModal] =\n useState(false);\n const [isOpenErrorModal, setIsOpenErrorModal] = useState(false);\n const [isOpenSuccessSubmitModal, setIsOpenSuccessSubmitModal] =\n useState(false);\n const [openConfirmTelephoneModal, setOpenConfirmTelephoneModal] =\n useState(false);\n const [selectedTelephoneModalOption, setSelectedTelephoneModalOption] =\n useState();\n const [\n selectedDocumentRelatedToWorkOption,\n setSelectedDocumentRelatedToWorkOption,\n ] = useState();\n\n const [newTelephoneNumberValue, setNewTelephoneNumberValue] = useState(\n user?.mobile ? user?.mobile : 0\n );\n const [geolocationData, setGeolocationData] = useState();\n const [telephoneNumberWasChecked, setTelephoneNumberWasChecked] =\n useState(false);\n const [isSubmitingNewNumber, setIsSubmitingNewNumber] = useState(false);\n const [selectedDocumentType, setSelectedDocumentType] = useState(\"sick-note\");\n const [messageApi, contextHolder] = message.useMessage();\n const [notificationApi, contextHolderNotification] =\n notification.useNotification();\n\n const handleError = async (error) => {\n try {\n setIsLoadingUserEnterprises(true);\n\n const { data: ip } = await axios.get(\n `https://whats-my-ip-delta.vercel.app/`\n );\n\n if (ip) {\n const {\n data: { city, country_name, state_prov, zipcode },\n } = await axios.get(\n `https://api.ipgeolocation.io/ipgeo?apiKey=${process.env.REACT_APP_IPGEOLOCATION_API_KEY}&ip=${ip}`\n );\n\n setGeolocationData({\n provider: \"IP\",\n location: `${city}, ${state_prov}, ${country_name} - ${zipcode}`,\n });\n }\n } catch (err) {\n console.log(err);\n } finally {\n setIsLoadingUserEnterprises(false);\n }\n };\n\n const showPosition = async (position) => {\n const lat = position.coords.latitude;\n const lon = position.coords.longitude;\n\n if (lat && lon) {\n try {\n setIsLoadingUserEnterprises(true);\n\n const {\n data: {\n address: {\n city,\n road,\n state,\n suburb,\n country,\n postcode,\n commercial,\n },\n },\n } = await axios.get(\n `https://geocode.maps.co/reverse?lat=${lat}&lon=${lon}&api_key=${process.env.REACT_APP_GEOCODE_API_KEY}`\n );\n\n setGeolocationData({\n provider: \"GPS\",\n location: `${road}, ${suburb}, ${city}, ${state}, ${country} - ${postcode}`,\n });\n } catch (error) {\n setIsLoadingUserEnterprises(false);\n console.log(error);\n } finally {\n setIsLoadingUserEnterprises(false);\n }\n }\n };\n\n const isAllFieldsFilled = () => {\n if (dependantInformation.dependantCompanion) {\n if (\n !dependantInformation.dependantCompanionType ||\n dependantInformation.dependantName.trim().length === 0 ||\n dependantInformation.dependantDegreeOfKinship.trim().length === 0\n ) {\n messageApi.error({\n content: (\n \n {t(\"UPLOAD_MEDICAL_CERTIFICATE_DEPENDANT_ERROR\")}\n \n ),\n duration: 5000,\n key: \"error\",\n });\n\n setTimeout(() => messageApi.destroy(\"error\"), 5000);\n return false;\n }\n }\n\n if (selectedDocumentType !== \"sick-note\") {\n if (medicalCertificateData.attendanceDeclarationDates.length <= 1) {\n messageApi.error({\n content: (\n \n Insira um horário de atendimento válido\n \n ),\n duration: 5000,\n key: \"error\",\n });\n\n setTimeout(() => messageApi.destroy(\"error\"), 5000);\n return false;\n }\n }\n\n if (\n !selectedEnterprises.length ||\n !medicalCertificateData.date ||\n !medicalCertificateData.file\n ) {\n messageApi.error({\n content: (\n \n {t(\"UPLOAD_MEDICAL_CERTIFICATE_MISSING_FIELD_ERROR\")}\n \n ),\n duration: 5000,\n key: \"error\",\n });\n\n setTimeout(() => messageApi.destroy(\"error\"), 5000);\n return false;\n }\n\n //only required if the document is a sick note\n if (\n !medicalCertificateData.clinicName.trim().length === 0 &&\n selectedDocumentType === \"sick-note\"\n ) {\n messageApi.error({\n content: (\n \n {t(\"UPLOAD_MEDICAL_CERTIFICATE_MISSING_FIELD_ERROR\")}\n \n ),\n duration: 5000,\n key: \"error\",\n });\n\n setTimeout(() => messageApi.destroy(\"error\"), 5000);\n return false;\n }\n\n return true;\n };\n\n const updateMedicalCertificateData = (field, value) => {\n if (field === \"daysOff\") {\n //never gonna happen\n if (value < 0) {\n messageApi.error({\n content: (\n \n {t(\"UPLOAD_MEDICAL_CERTIFICATE_DAYS_OFF_ERROR\")}\n \n ),\n duration: 5000,\n key: \"error\",\n });\n\n setTimeout(() => messageApi.destroy(\"error\"), 5000);\n return;\n }\n }\n\n const updatedMedicalCertificateData = { ...medicalCertificateData };\n updatedMedicalCertificateData[field] = value;\n setMedicalCertificateData(updatedMedicalCertificateData);\n };\n\n const updateDependantInformation = (field, value) => {\n const updatedDependantInformation = { ...dependantInformation };\n updatedDependantInformation[field] = value;\n setDependantInformation(updatedDependantInformation);\n };\n\n const uploadMedicalCertificateFile = async (file) => {\n try {\n setIsUploadingMedicalCertificate(true);\n const formData = new FormData();\n formData.append(`file.medicalCertificate`, file);\n const imageResult = await request.post(\n `/client-app/upload-covid-document?documentType=medicalCertificate`,\n formData\n );\n\n const updatedMedicalCertificateData = { ...medicalCertificateData };\n updatedMedicalCertificateData[\"file\"] = imageResult?.data?.fileId;\n setMedicalCertificateData(updatedMedicalCertificateData);\n } catch (error) {\n console.error(error);\n } finally {\n setIsUploadingMedicalCertificate(false);\n }\n };\n\n const onChangeIcd = (_, value) => {\n const updatedMedicalCertificateData = { ...medicalCertificateData };\n updatedMedicalCertificateData.intDiseaseClassification = value;\n setMedicalCertificateData(updatedMedicalCertificateData);\n };\n\n const onChangeDocName = (test, value) => {\n const updatedMedicalCertificateData = { ...medicalCertificateData };\n updatedMedicalCertificateData.doctorName = value;\n updatedMedicalCertificateData.doctorRegistry = value;\n setMedicalCertificateData(updatedMedicalCertificateData);\n };\n\n const onChangeDocCRM = (_, value) => {\n const updatedMedicalCertificateData = { ...medicalCertificateData };\n updatedMedicalCertificateData.doctorName = value;\n updatedMedicalCertificateData.doctorRegistry = value;\n setMedicalCertificateData(updatedMedicalCertificateData);\n };\n\n const onIcdInputChange = (_, value) => {\n setSearchQuery(value);\n };\n\n const renderIcdOption = (option) => {\n return (\n \n \n {`${option.code} - ${option.description[\"PT\"]}`}\n \n \n );\n };\n\n const filterIcdsOptions = (options) => options;\n\n const getIcdsOptionLabel = (option) => {\n if (!option) {\n return \"\";\n }\n\n return `${option.code} - ${option.description[\"PT\"]}`;\n };\n\n const getDocNameOptionLabel = (option) => {\n if (!option) {\n return \"\";\n }\n\n return `${option.name} - ${option.crm}`;\n };\n\n const getDocCrmOptionLabel = (option) => {\n if (!option) {\n return \"\";\n }\n\n return `${option.crm} - ${option.name}`;\n };\n\n const getIcdsOptionsAsync = async (query) => {\n try {\n if (query === \"\") {\n return [];\n }\n\n const { data: queryResult } = await request.get(\n `/client-app/find-icds?code=${query.toLowerCase()}`\n );\n\n return queryResult;\n } catch (err) {\n console.error(`[getIcdsOptionsAsync] ${err}`);\n return [];\n }\n };\n\n const getDoctorNameOptionsAsync = async (query) => {\n try {\n if (query === \"\") {\n return [];\n }\n\n const { data: queryResult } = await request.get(\n `/sick-notes-doctors/query?name=${query.toLowerCase()}`\n );\n\n return queryResult;\n } catch (err) {\n console.error(`[getIcdsOptionsAsync] ${err}`);\n return [];\n }\n };\n\n const getDoctorCrmOptionsAsync = async (query) => {\n try {\n if (query === \"\") {\n return [];\n }\n\n const { data: queryResult } = await request.get(\n `/sick-notes-doctors/query?crm=${query.toLowerCase()}`\n );\n\n return queryResult;\n } catch (err) {\n console.error(`[getIcdsOptionsAsync] ${err}`);\n return [];\n }\n };\n\n const getIcdsOptionsDelayed = useCallback(\n debounce((query, callback) => {\n setIcdsOptions([]);\n getIcdsOptionsAsync(query).then(callback);\n }, 300),\n []\n );\n\n const getDoctorNameOptionsDelayed = useCallback(\n debounce((query, callback) => {\n setDoctorNameOptions([]);\n getDoctorNameOptionsAsync(query).then(callback);\n }, 300),\n []\n );\n\n const getDoctorCrmOptionsDelayed = useCallback(\n debounce((query, callback) => {\n setIcdsOptions([]);\n getDoctorCrmOptionsAsync(query).then(callback);\n }, 300),\n []\n );\n\n const handleSubmitMedicalCertificateData = async () => {\n try {\n setIsSubmittingMedicalCertificateData(true);\n if (!isAllFieldsFilled()) {\n return;\n }\n\n //never gonna happen, because it's already checked in the \"isAllFieldsFilled\" func\n if (selectedEnterprises.length === 0) {\n messageApi.error({\n content: (\n \n Selecione ao menos uma empresa para compartilhar o atestado\n \n ),\n duration: 5000,\n key: \"error\",\n });\n\n setTimeout(() => messageApi.destroy(\"error\"), 5000);\n return;\n }\n\n // Checar se a IMIP foi selecionada\n const isImipSelected = selectedEnterprises.some(\n (ent) => ent === \"657b0373f3693a001a0477c2\"\n );\n if (isImipSelected) {\n // Checar se o usuário ja esta afastado, se estiver mostrar mensagem especifica\n if (user?.currentlyLongTermSickLeave) {\n messageApi.error({\n content: (\n \n Este atestado/laudo deve ser entregue presencialmente ao SESMT\n do IMIP\n \n ),\n duration: 5000,\n key: \"error\",\n });\n\n setTimeout(() => messageApi.destroy(\"error\"), 5000);\n }\n }\n\n // check if the user already has uploaded a sick note, and that sick notes still peding\n const { data: userPreviousSickNotes } = await request.get(\n `/client-app/find-user-sick-notes`\n );\n\n if (userPreviousSickNotes?.length) {\n const userPreviousSickNotesFiltered = userPreviousSickNotes.filter(\n (sickNote) => sickNote.status === \"PENDING\"\n );\n\n if (userPreviousSickNotesFiltered?.length) {\n notificationApi.info({\n message: (\n Atestado em análise!\n ),\n description: (\n \n Você já possui um atestado pendente de análise, por favor,\n aguarde a análise do mesmo antes de enviar um novo.\n \n ),\n placement: \"top\",\n closeIcon: false,\n showProgress: true,\n duration: 10,\n });\n\n return;\n }\n }\n\n // for each enterprise selected, create a new medical certificate\n for await (const enterprise of selectedEnterprises) {\n if (!medicalCertificateData.clinicPhone) {\n //only if doc is a sick note\n medicalCertificateData.clinicPhone =\n selectedDocumentType === \"sick-note\" ? \"NÃO INFORMADO\" : \"\";\n }\n\n let body = {\n geolocation: geolocationData,\n ...medicalCertificateData,\n enterprise, // for compatibility with old code,\n doctorName: medicalCertificateData.doctorName\n ? medicalCertificateData.doctorName.name\n : searchDoctorName,\n doctorRegistry: medicalCertificateData.doctorRegistry\n ? medicalCertificateData.doctorRegistry.crm\n : searchDoctorCrm,\n intDiseaseClassification:\n medicalCertificateData?.intDiseaseClassification?.code,\n date: new Date(medicalCertificateData?.date),\n kindInformedByUser: selectedDocumentType,\n isRelatedToWorkIncident:\n selectedDocumentRelatedToWorkOption === \"yes\" ? true : false,\n };\n\n if (dependantInformation.dependantCompanion) {\n body = {\n ...body,\n ...dependantInformation,\n dependantTaxRelated:\n dependantInformation?.dependantTaxRelated === \"no\" ? false : true,\n };\n }\n\n if (\n selectedDocumentType === \"sick-note\" &&\n (!body.doctorName || !body.doctorRegistry || !body.clinicName)\n ) {\n messageApi.error({\n content: (\n \n {t(\"UPLOAD_MEDICAL_CERTIFICATE_MISSING_FIELD_ERROR\")}\n \n ),\n duration: 5000,\n key: \"error\",\n });\n\n setTimeout(() => messageApi.destroy(\"error\"), 5000);\n return false;\n }\n\n await request.post(\"/client-app/sick-note\", body);\n }\n\n setIsOpenSuccessSubmitModal(true);\n } catch (error) {\n console.error(error);\n setIsOpenErrorModal(true);\n } finally {\n setIsSubmittingMedicalCertificateData(false);\n }\n };\n\n useEffect(() => {\n setIsLoadingIcds(true);\n\n getIcdsOptionsDelayed(searchQuery, (options) => {\n setIcdsOptions(options);\n\n setIsLoadingIcds(false);\n });\n }, [searchQuery, getIcdsOptionsDelayed]);\n\n useEffect(() => {\n setIsLoadingDocName(true);\n\n getDoctorNameOptionsDelayed(searchDoctorName, (options) => {\n setDoctorNameOptions(options);\n\n setIsLoadingDocName(false);\n });\n }, [searchDoctorName, getDoctorNameOptionsDelayed]);\n\n useEffect(() => {\n setIsLoadingDocCrm(true);\n\n getDoctorCrmOptionsDelayed(searchDoctorCrm, (options) => {\n setDoctorCrmOptions(options);\n\n setIsLoadingDocCrm(false);\n });\n }, [searchDoctorCrm, getDoctorCrmOptionsDelayed]);\n\n useEffect(() => {\n const getUserEnterprises = async () => {\n setIsLoadingUserEnterprises(true);\n try {\n const { data: resultEnterprises } = await request.get(\n `/client-app/find-user-enterprises`\n );\n\n // Check if user have brf enterprise\n for (const data of resultEnterprises) {\n if (data._id === \"64b9554f8e8a6700131d6613\") {\n // VERIFICAR SE O USER FAZ PARTE DA BRF\n setIsBRFUser(true);\n const sortedClinics = data.clinics.sort(\n (a, b) => a.commercialName > b.commercialName\n );\n sortedClinics.push({\n _id: \"999999999\",\n commercialName: \"Outra não listada\",\n });\n setEnterpriseClinics(sortedClinics);\n }\n }\n\n if (resultEnterprises?.length) {\n // filter only enterprises that have SICK_NOTES_UPLOAD feature\n const filteredEnterprises = resultEnterprises.filter((enterprise) =>\n enterprise.features.includes(\"SICK_NOTES_UPLOAD\")\n );\n setEnterpriseList(\n filteredEnterprises.map((enterprise) => ({\n name: enterprise.name,\n value: enterprise._id,\n }))\n );\n } else {\n setIsOpenNoEnterpriseFoundModal(true);\n return;\n }\n\n if (!isTOCChecked) {\n setIsOpenTOCModal(true);\n }\n } catch (error) {\n console.log(`[UploadMedicalCertificate getUserEnterprises] ${error}`);\n } finally {\n setIsLoadingUserEnterprises(false);\n }\n };\n\n getUserEnterprises();\n\n //eslint-disable-next-line\n }, []);\n\n const onNewTelephoneNumberChange = (text) => {\n if (text) setNewTelephoneNumberValue(text.replace(/[^0-9]/g, \"\"));\n };\n\n const handleNewTelephoneButtonClick = async () => {\n try {\n setIsSubmitingNewNumber(true);\n\n await request.post(`/client-app/update-profile`, {\n id: user._id,\n newNumber: newTelephoneNumberValue,\n type: \"number\",\n });\n\n messageApi.success({\n content: (\n Número atualizado com sucesso!\n ),\n duration: 2500,\n key: \"sucess\",\n });\n\n setTimeout(() => messageApi.destroy(\"sucess\"), 2500);\n setTelephoneNumberWasChecked(true);\n setOpenConfirmTelephoneModal(false);\n handleSubmitMedicalCertificateData();\n } catch (error) {\n console.log(`[handleNewTelephoneButtonClick] ${error}`);\n setOpenConfirmTelephoneModal(false);\n } finally {\n setIsSubmitingNewNumber(false);\n }\n };\n\n const selectDaysOffOptions = Array.from(Array(366).keys())\n .map((value) => {\n return {\n label: value <= 1 ? `${value} DIA` : `${value} DIAS`,\n value,\n };\n })\n .sort((a, b) => (a.value > b.value ? 1 : b.value > a.value ? -1 : 0));\n\n return (\n \n {contextHolder}\n {contextHolderNotification}\n \n
\n Upload de documento\n {isLoadingUserEnterprises ? (\n \n \n \n ) : (\n \n \n Empresas *\n \n \n Selecione a/as empresa(s) com a(s) quais o atestado será\n compartilhado\n \n \n {enterpriseList?.map((enterprise) => (\n {\n if (!e.target.checked) {\n const updatedSelectedEnterprises =\n selectedEnterprises.filter(\n (selectedEnterprise) =>\n selectedEnterprise !== enterprise.value\n );\n setSelectedEnterprises(updatedSelectedEnterprises);\n } else {\n setSelectedEnterprises([\n ...selectedEnterprises,\n enterprise.value,\n ]);\n }\n }}\n name=\"enterprise\"\n checked={selectedEnterprises.some(\n (selectedEnterprise) =>\n selectedEnterprise === enterprise.value\n )}\n disabled={isSubmittingMedicalCertificateData}\n />\n }\n label={enterprise.name}\n />\n ))}\n \n \n Tipo de documento *\n

\n \n (optionA?.label ?? \"\")\n .toLowerCase()\n .localeCompare((optionB?.label ?? \"\").toLowerCase())\n }\n options={docTypeOptions}\n onSelect={(value) => {\n setSelectedDocumentType(value);\n\n if (value === \"dependant-companion\") {\n setDependantInformation({\n ...dependantInformation,\n dependantCompanion: true,\n });\n\n updateMedicalCertificateData(\n \"isAttendanceDeclaration\",\n false\n );\n } else if (value === \"attendance-declaration\") {\n setDependantInformation({\n ...dependantInformation,\n dependantCompanion: false,\n });\n\n updateMedicalCertificateData(\"isAttendanceDeclaration\", true);\n } else {\n setDependantInformation({\n ...dependantInformation,\n dependantCompanion: false,\n });\n\n updateMedicalCertificateData(\n \"isAttendanceDeclaration\",\n false\n );\n }\n }}\n />\n \n {selectedDocumentType !== \"sick-note\" ? (\n <>\n Data da declaração *\n \n ) : (\n <>\n Data do atestado/laudo médico{\" \"}\n *\n \n )}\n

\n setOpenDatePicker(true)}\n disabled={isSubmittingMedicalCertificateData}\n />\n {selectedDocumentType !== \"dependant-companion\" && (\n <>\n \n {t(\"UPLOAD_MEDICAL_CERTIFICATE_DOCTOR_NAME\")}{\" \"}\n {selectedDocumentType === \"sick-note\" && (\n *\n )}\n

\n setSearchDoctorName(value)}\n getOptionLabel={getDocNameOptionLabel}\n filterOptions={filterIcdsOptions}\n loading={isLoadingDocName}\n loadingText={t(\"UPLOAD_MEDICAL_CERTIFICATE_LOADING\")}\n noOptionsText={\n searchDoctorName === \"\"\n ? t(\n \"UPLOAD_MEDICAL_CERTIFICATE_TYPE_DISEASE_CLASSIFICATION_CODE\"\n )\n : t(\"UPLOAD_MEDICAL_CERTIFICATE_OPTION_NOT_FOUND\")\n }\n renderOption={(option) => {\n return (\n \n \n {`${option.name}`}\n \n {`CRM: ${option.crm}`}\n \n \n );\n }}\n disabled={isSubmittingMedicalCertificateData}\n />\n \n {t(\"UPLOAD_MEDICAL_CERTIFICATE_DOCTOR_REGISTRY\")}{\" \"}\n {selectedDocumentType === \"sick-note\" && (\n *\n )}\n

\n setSearchDoctorCrm(value)}\n getOptionLabel={getDocCrmOptionLabel}\n filterOptions={filterIcdsOptions}\n loading={isLoadingDocCrm}\n loadingText={t(\"UPLOAD_MEDICAL_CERTIFICATE_LOADING\")}\n noOptionsText={\n searchDoctorCrm === \"\"\n ? t(\n \"UPLOAD_MEDICAL_CERTIFICATE_TYPE_DISEASE_CLASSIFICATION_CODE\"\n )\n : t(\"UPLOAD_MEDICAL_CERTIFICATE_OPTION_NOT_FOUND\")\n }\n renderOption={(option) => {\n return (\n \n \n {`${option.crm}`}\n \n \n );\n }}\n disabled={isSubmittingMedicalCertificateData}\n />\n \n\n {isBRFUser ? (\n <>\n \n updateMedicalCertificateData(\n \"clinicName\",\n event.target.value\n )\n }\n label={t(\"UPLOAD_MEDICAL_CERTIFICATE_CLINIC_NAME\")}\n value={medicalCertificateData?.clinicName}\n disabled={isSubmittingMedicalCertificateData}\n >\n \n {enterpriseClinics?.map((clinic) => (\n \n ))}\n \n \n ) : (\n <>\n \n {t(\"UPLOAD_MEDICAL_CERTIFICATE_CLINIC_NAME\")}{\" \"}\n {selectedDocumentType === \"sick-note\" && (\n *\n )}\n

\n \n updateMedicalCertificateData(\n \"clinicName\",\n event.target.value\n )\n }\n value={medicalCertificateData?.clinicName}\n disabled={isSubmittingMedicalCertificateData}\n />\n \n )}\n\n \n updateMedicalCertificateData(\n \"clinicPhone\",\n event.target.value\n )\n }\n value={medicalCertificateData?.clinicPhone}\n disabled={isSubmittingMedicalCertificateData}\n />\n \n )}\n {selectedDocumentType === \"sick-note\" && (\n <>\n \n {t(\"UPLOAD_MEDICAL_CERTIFICATE_DAYS_OFF\")}{\" \"}\n *\n

\n\n \n updateMedicalCertificateData(\"daysOff\", daysOff)\n }\n options={selectDaysOffOptions}\n />\n\n {/* \n updateMedicalCertificateData(\"daysOff\", event.target.value)\n }\n >\n \n {Array.from(Array(366).keys()).map((value) => (\n \n ))}\n */}\n \n )}\n {selectedDocumentType !== \"sick-note\" && (\n <>\n \n Selecione o horário de atendimento{\" \"}\n *\n \n \n updateMedicalCertificateData(\n \"attendanceDeclarationDates\",\n date\n )\n }\n disabled={isSubmittingMedicalCertificateData}\n />\n \n )}\n {selectedDocumentType === \"dependant-companion\" && (\n <>\n \n updateDependantInformation(\n \"dependantCompanionType\",\n event.target.value\n )\n }\n value={dependantInformation?.dependantCompanionType}\n disabled={isSubmittingMedicalCertificateData}\n >\n \n {DEPENDANT_TYPE_OPTIONS?.map((dependantType) => (\n \n {t(dependantType.name)}\n \n ))}\n \n\n \n updateDependantInformation(\n \"dependantName\",\n event.target.value\n )\n }\n value={dependantInformation?.dependantName}\n disabled={isSubmittingMedicalCertificateData}\n />\n\n \n updateDependantInformation(\n \"dependantDegreeOfKinship\",\n event.target.value\n )\n }\n value={dependantInformation?.dependantDegreeOfKinship}\n disabled={isSubmittingMedicalCertificateData}\n />\n\n \n updateDependantInformation(\n \"dependantTaxRelated\",\n event.target.value\n )\n }\n firstOptionId=\"yes\"\n firstOptionValue=\"yes\"\n firstOptionLabel={t(\n \"UPLOAD_MEDICAL_CERTIFICATE_DEPENDANT_COMPANION_YES\"\n )}\n secondOptionId=\"no\"\n secondOptionValue=\"no\"\n secondOptionLabel={t(\n \"UPLOAD_MEDICAL_CERTIFICATE_DEPENDANT_COMPANION_NO\"\n )}\n disabled={isSubmittingMedicalCertificateData}\n />\n \n )}\n\n \n \n Imagem do documento *\n

\n }\n buttonText={t(\"UPLOAD_MEDICAL_CERTIFICATE_UPLOAD_FILE\")}\n buttonTextWhenDocumentUploaded={t(\n \"UPLOAD_MEDICAL_CERTIFICATE_UPLOADED_FILE_BUTTON_TEXT\"\n )}\n documentUploadedText={t(\n \"UPLOAD_MEDICAL_CERTIFICATE_UPLOADED_FILE_TEXT\"\n )}\n isLoading={isUploadingMedicalCertificate}\n displayOnly={medicalCertificateData?.[\"file\"]}\n componentType=\"anyFile\"\n secondaryColor\n onChange={(file) => uploadMedicalCertificateFile(file)}\n />\n
\n\n {/* hacky way off apply margin because for some reason the margin seems to not working on antd button */}\n
\n

c

\n
\n\n {\n navigator.geolocation.getCurrentPosition(\n showPosition,\n handleError\n );\n\n if (telephoneNumberWasChecked) {\n handleSubmitMedicalCertificateData();\n\n return;\n }\n\n setOpenConfirmTelephoneModal(true);\n }}\n disabled={\n isUploadingMedicalCertificate ||\n isSubmittingMedicalCertificateData\n }\n style={{\n paddingTop: \"50px !important\",\n width: \"140px\",\n color: \"white\",\n fontWeight: 600,\n margin: \"0 auto\",\n border: \"0px !important\",\n backgroundColor: \"#2d80c6\",\n }}\n >\n {!isSubmittingMedicalCertificateData ? (\n t(\"UPLOAD_MEDICAL_CERTIFICATE_BUTTON_TITLE\").toUpperCase()\n ) : (\n \n )}\n \n
\n )}\n\n setOpenConfirmTelephoneModal(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n \n Confirmação\n

\n }\n bordered={false}\n style={{ width: 400 }}\n >\n
\n \n \n

Telefone

\n
\n

\n Precisamos que você confirme o seu número de telefone antes de\n enviar um atestado.\n

\n

\n Seu número atual ainda é:{\" \"}\n \n {user?.mobile ? user?.mobile : \"Sem registro\"}\n {\" \"}\n ?\n

\n \n setSelectedTelephoneModalOption(e.target.value)\n }\n size=\"large\"\n style={{ marginBottom: 10 }}\n />\n\n {selectedTelephoneModalOption &&\n selectedTelephoneModalOption === \"no\" && (\n <>\n \n Insira um novo número de telefone válido\n \n
\n {\n onNewTelephoneNumberChange(val.target.value);\n }}\n />\n\n {newTelephoneNumberValue !== 0 &&\n newTelephoneNumberValue !== user?.mobile && (\n handleNewTelephoneButtonClick()}\n disabled={\n newTelephoneNumberValue.length < 11 ||\n isSubmitingNewNumber\n }\n style={{\n marginTop: 20,\n marginBottom: 10,\n backgroundColor: \"#2d80c6\",\n color: \"white\",\n }}\n >\n {!isSubmitingNewNumber ? \"Salvar\" : }\n \n )}\n
\n \n )}\n \n {selectedDocumentType === \"sick-note\" && (\n <>\n \n
\n \n \n

Documento

\n
\n

\n O documento enviado está relacionado a algum acidente de\n trabalho ?\n

\n \n setSelectedDocumentRelatedToWorkOption(e.target.value)\n }\n size=\"large\"\n style={{ marginBottom: 10 }}\n />\n \n \n )}\n \n
\n {\n if (\n (selectedTelephoneModalOption === \"yes\" ||\n (selectedTelephoneModalOption === \"no\" &&\n newTelephoneNumberValue !== 0 &&\n newTelephoneNumberValue !== user?.mobile)) &&\n (selectedDocumentType === \"sick-note\"\n ? selectedDocumentRelatedToWorkOption\n : true)\n ) {\n if (\n selectedTelephoneModalOption === \"no\" &&\n newTelephoneNumberValue !== 0 &&\n newTelephoneNumberValue !== user?.mobile\n ) {\n setTelephoneNumberWasChecked(true);\n setOpenConfirmTelephoneModal(false);\n handleSubmitMedicalCertificateData();\n } else if (selectedTelephoneModalOption === \"yes\") {\n setTelephoneNumberWasChecked(true);\n setOpenConfirmTelephoneModal(false);\n handleSubmitMedicalCertificateData();\n }\n }\n }}\n variant=\"filled\"\n style={{ width: \"100%\" }}\n >\n

Continuar

\n \n
\n \n
\n \n\n setOpenDatePicker(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n {\n updateMedicalCertificateData(\"date\", date);\n setOpenDatePicker(false);\n }}\n onCancel={() => setOpenDatePicker(false)}\n isPopup={false}\n showHeader={true}\n headerFormat=\"DD/MM/YYYY\"\n dateConfig={dateConfig}\n min={new Date(1910, 0, 1)}\n max={new Date()}\n confirmText={t(\"UPLOAD_MEDICAL_CERTIFICATE_DATE_MODAL_CONFIRM\")}\n cancelText={t(\"UPLOAD_MEDICAL_CERTIFICATE_DATE_MODAL_CANCEL\")}\n />\n
\n
\n \n\n setIsOpenTOCModal(false)}\n onChange={() => setIsTOCChecked(!isTOCChecked)}\n />\n\n {\n setIsOpenNoEnterpriseFoundModal(false);\n window.location.replace(\"/secure\");\n }}\n />\n\n {\n setIsOpenErrorModal(false);\n window.location.replace(\"/secure\");\n }}\n />\n\n {\n setIsOpenSuccessSubmitModal(false);\n window.location.replace(\n \"/secure/my-health/medical-certificate/consult-certificate\"\n );\n }}\n />\n \n \n );\n};\n\nexport default UploadMedicalCertificate;\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 75px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst Content = styled.div`\n width: calc(100% - 40px);\n height: auto;\n border-radius: 8px;\n box-sizing: border-box;\n`;\n\nconst Title = styled.h3`\n width: calc(100% - 40px);\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-top: -15px;\n margin-bottom: 20px;\n`;\n\nconst Text = styled.p`\n color: #808080;\n`\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n padding: 0px 20px;\n margin-top: 50px;\n`;\n\nexport {\n Container,\n Content,\n CenterColumn,\n Title,\n Text,\n};","import styled from \"styled-components\";\n\nconst CardWrapper = styled.div`\n background-color: white;\n width: 100%;\n min-height: 90px;\n display: flex;\n align-items: center;\n border-radius: 8px;\n padding: 10px 16px;\n margin-top: 20px;\n box-sizing: border-box;\n box-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%);\n`;\n\nconst DocumentDescription = styled.div`\n display: flex;\n max-width: 76%;\n margin-left: 0;\n flex-direction: column;\n text-align: left;\n box-sizing: border-box;\n`\n\nconst ButtonWrapper = styled.div`\n margin: 0;\n margin-right: -12px;\n display: flex;\n justify-content: flex-end;\n box-sizing: border-box;\n`\n\nexport {\n CardWrapper,\n DocumentDescription,\n ButtonWrapper\n};","import React, {\n useState\n} from \"react\";\nimport {\n Typography,\n IconButton,\n makeStyles,\n Box\n} from \"@material-ui/core\";\nimport {\n FileCopy as FileIcon,\n CheckCircle as CheckIcon,\n HourglassEmpty as HourglassEmptyIcon,\n Warning as WarningIcon,\n} from \"@material-ui/icons\";\nimport {\n CardWrapper,\n DocumentDescription,\n ButtonWrapper\n} from \"./Components\";\nimport axios from \"axios\";\nimport FileDownload from \"js-file-download\";\n\nconst useStyles = makeStyles(() => ({\n content: {\n width: '80%',\n display: 'flex',\n alignItems: 'center',\n },\n\n fileIcon: {\n fontSize: 38,\n marginRight: 10,\n color: '#2D80C6',\n },\n\n docName: {\n fontSize: 15,\n color: \"#000000\",\n fontWeight: \"bold\",\n },\n\n docInfo: {\n fontSize: 12,\n color: \"#A4A4A4\",\n marginTop: \".2rem\",\n overflowX: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n\n statusText: {\n fontSize: 15,\n fontWeight: \"bold\",\n },\n\n statusIcon: {\n width: \"16px\",\n marginLeft: 5\n },\n}));\n\nconst SickNote = ({\n doctorName,\n enterpriseName,\n enterpriseNameLabel,\n certificateDate,\n certificateDateLabel,\n status,\n statusText,\n url,\n daysOff,\n verifiedDaysOff,\n}) => {\n const [isLoading, setIsLoading] = useState(false);\n\n const classes = useStyles();\n\n const colormap = {\n VERIFIED: \"#00A859\",\n PENDING: \"#F69103\",\n REDO: \"#F69103\",\n INCONSISTENT: \"#F69103\",\n DENIED: \"#F60E31\",\n ALERT: \"#F60E31\",\n };\n\n const handleDownloadDocument = async (url, doctorName) => {\n setIsLoading(true);\n try {\n const documentInfoArray = url.split('.');\n const documentExtension = documentInfoArray[documentInfoArray.length - 1];\n\n const documentName = doctorName.split(' ').join('_').replace('.', '');\n\n axios.get(url, {\n responseType: 'blob',\n }).then((res) => {\n FileDownload(res.data, `${documentName}.${documentExtension}`)\n })\n } catch (err) {\n console.log(`[SickNote handleDownloadDocument] ${err}`);\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n \n \n \n \n \n {doctorName}\n \n \n {enterpriseNameLabel}: {enterpriseName}\n \n \n Data informada: {certificateDate}\n \n \n {`Dias Informados: ${daysOff || 'N/A'}`}\n \n \n {`Dias Verificados: ${verifiedDaysOff || 'N/A'}`}\n \n
\n \n {statusText}\n \n\n {\n status === 'PENDING' ?\n \n : status === 'VERIFIED' ?\n \n : \n }\n
\n
\n\n \n handleDownloadDocument(url, doctorName)}\n >\n \"Blue\n \n \n
\n
\n );\n};\n\nexport default SickNote;\n","import styled from \"styled-components\";\n\nconst DocumentDescription = styled.div`\n display: flex;\n margin-left: 0;\n max-width: 68%;\n flex-direction: column;\n text-align: left;\n box-sizing: border-box;\n`;\n\nconst ButtonWrapper = styled.div`\n margin: 0;\n margin-right: -12px;\n display: flex;\n justify-content: flex-end;\n box-sizing: border-box;\n`;\n\nexport {\n DocumentDescription,\n ButtonWrapper\n};","import React, {\n useState\n} from \"react\";\nimport {\n Typography,\n IconButton,\n makeStyles,\n AccordionDetails,\n AccordionSummary,\n Accordion,\n Box\n} from \"@material-ui/core\";\nimport {\n FileCopy as FileIcon,\n CheckCircle as CheckIcon,\n HourglassEmpty as HourglassEmptyIcon,\n Warning as WarningIcon,\n KeyboardArrowDown as ChevronDownIcon,\n} from \"@material-ui/icons\";\nimport {\n DocumentDescription,\n ButtonWrapper\n} from \"./Components\";\nimport axios from \"axios\";\nimport FileDownload from \"js-file-download\";\n\nconst useStyles = makeStyles(() => ({\n accordion: {\n '&.MuiAccordion-root': {\n marginTop: 20,\n borderRadius: 8,\n flexGrow: 0,\n },\n\n '& .MuiAccordionSummary-content': {\n width: '80%',\n },\n\n '&.MuiAccordion-root:before': {\n display: 'none',\n },\n\n '&.MuiAccordion-root.Mui-expanded:first-child': {\n marginTop: 20,\n }\n },\n\n accordionSummaryContent: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n },\n\n fileIcon: {\n fontSize: 38,\n marginRight: 10,\n color: '#2D80C6',\n },\n\n docName: {\n fontSize: 15,\n color: \"#000000\",\n fontWeight: \"bold\",\n },\n\n docInfo: {\n fontSize: 12,\n color: \"#A4A4A4\",\n marginTop: \".2rem\",\n overflowX: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n\n statusText: {\n fontSize: 15,\n fontWeight: \"bold\",\n },\n\n statusIcon: {\n width: \"16px\",\n marginLeft: 5\n },\n\n observationTitle: {\n fontSize: '.8rem',\n fontWeight: 'bold',\n color: \"#808080\",\n },\n\n observationText: {\n fontSize: '.8rem',\n color: \"#808080\",\n },\n}));\n\nconst SickNoteAccordion = ({\n doctorName,\n enterpriseName,\n enterpriseNameLabel,\n certificateDate,\n certificateDateLabel,\n status,\n statusText,\n daysOff,\n verifiedDaysOff,\n analystObservationLabel,\n analystObservation,\n url,\n}) => {\n const [isLoading, setIsLoading] = useState(false);\n\n const classes = useStyles();\n\n const colormap = {\n VERIFIED: \"#00A859\",\n PENDING: \"#F69103\",\n REDO: \"#F69103\",\n INCONSISTENT: \"#F69103\",\n DENIED: \"#F60E31\",\n ALERT: \"#F60E31\",\n };\n\n const handleDownloadDocument = async (url, doctorName) => {\n setIsLoading(true);\n try {\n const documentInfoArray = url.split('.');\n const documentExtension = documentInfoArray[documentInfoArray.length - 1];\n\n const documentName = doctorName.split(' ').join('_').replace('.', '');\n\n axios.get(url, {\n responseType: 'blob',\n }).then((res) => {\n FileDownload(res.data, `${documentName}.${documentExtension}`)\n })\n } catch (err) {\n console.log(`[SickNote handleDownloadDocument] ${err}`);\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n \n }\n >\n \n \n \n \n {doctorName}\n \n \n {enterpriseNameLabel}: {enterpriseName}\n \n \n {certificateDateLabel}: {certificateDate}\n \n \n {`Dias: ${daysOff}`}\n \n \n {`Dias Verificados: ${verifiedDaysOff}`}\n \n
\n \n {statusText}\n \n\n {\n status === 'PENDING' ?\n \n : status === 'VERIFIED' ?\n \n : \n }\n
\n
\n\n \n handleDownloadDocument(url, doctorName)}\n >\n \"Blue\n \n \n
\n \n \n \n \n {analystObservationLabel}:\n {' '}\n \n {analystObservation}\n \n \n \n \n
\n );\n};\n\nexport default SickNoteAccordion;\n","import React, { useState, useMemo, useCallback, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Container, Content, CenterColumn, Title, Text } from \"./Components.js\";\nimport Header from \"../../components/Header/Header\";\nimport SearchInput from \"../../components/SearchInput/SearchInput\";\nimport SickNote from \"../../components/SickNote/SickNote\";\nimport SickNoteAccordion from \"../../components/SickNoteAccordion/SickNoteAccordion\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport { request } from \"../../utils/request\";\n\nconst ConsultMedicalCertificate = () => {\n const { t } = useTranslation(\"medicalCertificatePage\");\n\n const [userSickNotes, setUserSickNotes] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n const [search, setSearch] = useState(\"\");\n\n const handleChange = (event) => {\n setSearch(event.target.value);\n };\n\n const userAvailableSickNotes = useCallback(() => {\n const sickNotesList = [];\n\n if (!userSickNotes.length > 0) {\n return sickNotesList;\n }\n\n userSickNotes.forEach((sickNote, index) => {\n const status = sickNote.status;\n\n if (sickNote.status === \"REDO\" || sickNote.status === \"INCONSISTENT\") {\n sickNotesList.push(\n \n );\n } else {\n sickNotesList.push(\n \n );\n }\n });\n\n return sickNotesList;\n }, [t, userSickNotes]);\n\n const sickNotesToRender = userAvailableSickNotes();\n const sickNotesFiltered = useMemo(() => {\n if (sickNotesToRender.length > 0) {\n const lowerSearch = search.toLowerCase();\n return sickNotesToRender.filter((document) =>\n document.key.toLowerCase().includes(lowerSearch)\n );\n }\n }, [sickNotesToRender, search]);\n\n useEffect(() => {\n const getUserSickNotes = async () => {\n try {\n const { data } = await request.get(`/client-app/find-user-sick-notes`);\n const sortedData = data.sort(\n (a, b) => new Date(b.createdAt) > new Date(a.createdAt)\n );\n setUserSickNotes(sortedData);\n } catch (err) {\n console.log(`[ConsultMedicalCertificate getUserSickNotes] ${err}`);\n } finally {\n setIsLoading(false);\n }\n };\n getUserSickNotes();\n }, []);\n\n return (\n \n
\n Documentos enviados\n \n {isLoading ? (\n \n \n \n ) : sickNotesFiltered && sickNotesFiltered.length > 0 ? (\n {sickNotesFiltered}\n ) : (\n \n {t(\"CONSULT_MEDICAL_CERTIFICATE_CERTIFICATE_NOT_FOUND\")}\n \n )}\n \n );\n};\n\nexport default ConsultMedicalCertificate;\n","import styled from \"styled-components\";\n\nconst ButtonContainer = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin-top: 7.5%;\n \n @media(min-width: 450px) {\n width: 450px;\n }\n`;\n\nexport {\n ButtonContainer,\n};","import React from 'react';\nimport { makeStyles, List, ListItem, Typography } from '@material-ui/core';\nimport { Link } from 'react-router-dom';\nimport {\n ArrowForwardIos,\n Share,\n Backup,\n Policy,\n AccountCircle,\n Lock,\n} from '@material-ui/icons';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles({\n container: {\n width: '85%',\n padding: 20,\n border: '1px solid #A2A2A2',\n borderRadius: 10,\n boxSizing: 'border-box',\n backgroundImage: 'linear-gradient(#FFFFFF, rgba(255, 255, 255, .77))',\n marginTop: '7.5%',\n },\n\n link: {\n textDecoration: 'none',\n color: '#000000',\n },\n\n listItem: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n\n subtitle: {\n display: 'flex',\n alignItems: 'center',\n },\n\n img: {\n width: 21,\n height: 21,\n marginRight: 3,\n },\n\n svg: {\n color: '#2985db',\n width: 15,\n transform: 'translateY(5%)',\n },\n\n icon: {\n color: '#A2A2A2',\n }\n});\n\nconst ItemList = ({ title, data }) => {\n const { t } = useTranslation('siteMapPage');\n const classes = useStyles();\n\n const icons = {\n 'Share': ,\n 'Backup': ,\n 'Policy': ,\n 'Avatar': ,\n 'Privacy': ,\n }\n\n return (\n \n
\n {t(title).toUpperCase()}\n
\n {\n data.map((item) => {\n return (\n \n \n
\n {\n item.source !== '' ?\n \n :\n icons[item.icon]\n }\n \n {t(item.name)}\n \n
\n \n
\n \n )\n })\n }\n
\n )\n}\n\nexport default ItemList;","const servicesLinks = [\n {\n name: 'SERVICES_PASSE_VERDE',\n url: '/secure/passe-verde',\n icon: '',\n source: '/assets/passeverde-grey.svg',\n },\n {\n name: 'SERVICES_DIGITAL_CARD',\n url: '/secure/my-card',\n icon: '',\n source: '/assets/syringe-grey.svg',\n },\n {\n name: 'SERVICES_CALENDAR',\n url: '/secure/calendar',\n icon: '',\n source: '/assets/calendar-grey.svg',\n },\n {\n name: 'SERVICES_SHARE_DATA',\n url: '/secure/digital-certificates',\n icon: 'Share',\n source: '',\n },\n]\n\nconst myDataLinks = [\n {\n name: 'MY_DATA_PROFILE',\n url: '/secure/profile',\n icon: 'Avatar',\n source: '',\n },\n {\n name: 'MY_DATA_PRIVACY_AND_SECURITY',\n url: '/secure/privacy-and-security',\n icon: 'Privacy',\n source: '',\n },\n {\n name: 'MY_DATA_HEALTH',\n url: '/secure/my-health',\n icon: '',\n source: '/assets/health-care-grey.svg',\n },\n {\n name: 'MY_DATA_CONTACTS',\n url: '/secure/my-health',\n icon: '',\n source: '/assets/medical-bag-grey.svg',\n },\n {\n name: 'MY_DATA_OTHERS_UPLOADS',\n url: '/secure/my-data',\n icon: 'Backup',\n source: '',\n },\n]\n\nconst informationLinks = [\n {\n name: 'INFORMATION_FAQ',\n url: '/secure/faq',\n icon: '',\n source: '/assets/quiz-grey.svg',\n },\n {\n name: 'INFORMATION_TOC',\n url: '/secure/terms-and-conditions',\n icon: '',\n source: '/assets/summary-grey.svg',\n },\n {\n name: 'INFORMATION_PRIVACY_POLICY',\n url: '/secure/privacy-policy',\n icon: 'Policy',\n source: '',\n },\n]\n\nexport {\n servicesLinks,\n myDataLinks,\n informationLinks,\n}","import React from 'react';\nimport { useHistory } from \"react-router-dom\";\nimport {\n makeStyles,\n IconButton,\n} from '@material-ui/core';\nimport { ArrowBack } from '@material-ui/icons';\nimport { ButtonContainer } from './Components';\nimport ItemList from '../../components/ItemList/ItemList';\nimport {\n informationLinks,\n myDataLinks,\n servicesLinks\n} from './data';\n\nconst useStyles = makeStyles({\n container: {\n position: 'relative',\n zIndex: 10,\n backgroundImage: 'linear-gradient(#3893D0, #88CEFC)',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n paddingBottom: '7.5%',\n },\n\n iconButton: {\n width: 50,\n height: 50,\n backgroundColor: '#FFFFFF',\n border: '1px solid #A2A2A2',\n transition: .2,\n '&:hover': {\n backgroundColor: '#f3ecec',\n }\n },\n\n buttonText: {\n fontWeight: 'bold',\n fontSize: 11,\n },\n});\n\nconst SiteMap = () => {\n const classes = useStyles();\n let history = useHistory();\n\n const handleClick = () => {\n history.goBack();\n }\n\n return (\n
\n \n\n \n\n \n\n \n \n \n \n \n
\n );\n\n}\n\nexport default SiteMap;","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { makeStyles } from '@material-ui/core/styles';\nimport BottomNavigation from '@material-ui/core/BottomNavigation';\nimport BottomNavigationAction from '@material-ui/core/BottomNavigationAction';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles({\n root: {\n width: '100%',\n display: 'flex',\n justifyContent: 'space-evenly',\n alignItems: 'center',\n boxShadow: '0px 3px 50px rgba(0,0,0,0.16)',\n paddingTop: '2px',\n height: 'auto',\n backgroundColor: '#E6E6E6',\n },\n\n buttonRoot: {\n minWidth: '30px',\n textDecoration: 'none',\n transition: '.5s',\n paddingTop: 0,\n paddingBottom: 2,\n },\n\n selected: {\n textDecoration: 'none'\n },\n\n styledLink: {\n textDecoration: 'none',\n },\n\n iconOnly: {\n textDecoration: 'none',\n transform: 'translateY(-25%)',\n '& .MuiBottomNavigationAction-root.MuiBottomNavigationAction-iconOnly': {\n padding: 0,\n }\n },\n\n magicButton: {\n minWidth: 50,\n maxWidth: 70,\n },\n\n magicButtonImg: {\n width: 65,\n height: 65,\n },\n\n imgIcon: {\n width: 35,\n }\n});\n\nconst BottomMenu = ({ pathname }) => {\n const { t } = useTranslation('common');\n const classes = useStyles();\n\n const pathIndex = {\n '/secure': 0,\n '/secure/': 0,\n '/secure/passe-verde': 1,\n '/secure/passe-verde/': 1,\n '/secure/get-vaccines': 2,\n '/secure/get-vaccines/': 2,\n '/secure/my-card': 3,\n '/secure/my-card/': 3,\n '/secure/digital-certificates': 4,\n '/secure/digital-certificates/': 4,\n }\n\n const getClassesByIndex = (buttonIndex) => {\n return pathIndex[pathname] === buttonIndex ?\n [classes.buttonRoot, classes.selected].join(' ') :\n classes.buttonRoot\n }\n\n return (\n \n \n }\n label={t('BOTTOM_NAVIGATION_HOME')}\n showLabel\n />\n \n \n }\n label={t('BOTTOM_NAVIGATION_PASSE_VERDE')}\n showLabel\n style={{ padding: 0, paddingBottom: 2 }}\n />\n \n \n \n }\n />\n \n \n }\n label={t('BOTTOM_NAVIGATION_VACCINES')}\n showLabel\n />\n \n \n }\n label={t('BOTTOM_NAVIGATION_EXAMS')}\n showLabel\n />\n \n \n );\n}\n\nexport default BottomMenu;","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 55px;\n`;\n\nconst Image = styled.div`\n background-image: url(\"/assets/online_payment.svg\");\n height: 200px;\n background-size:auto 100%;\n background-repeat: no-repeat;\n background-position: center;\n margin-top: -50px;\n position: relative;\n`;\n\nconst Title = styled.p`\n text-align: center;\n margin-bottom: 0px;\n font-size: 24px;\n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: 20%;\n`;\n\nconst Subtitle = styled.h4`\n text-align: center;\n margin-top: 5px;\n margin-bottom: 15px;\n`;\n\nexport {\n Container,\n Image,\n Title,\n CenterColumn,\n Subtitle,\n};","import React, { useRef, useImperativeHandle } from 'react'\n\nconst StripeInput = (\n { component: Component, inputRef, ...props }\n) => { const elementRef = useRef();\n useImperativeHandle(inputRef, () => ({\n focus: () => elementRef.current.focus\n })); return (\n (elementRef.current = element)} \n {...props}\n />\n )\n}\nexport default StripeInput","import React, { useState, useEffect } from \"react\";\nimport { request } from \"../../utils/request\";\nimport { getUser } from \"../../utils/user\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n CardNumberElement,\n CardExpiryElement,\n CardCvcElement,\n useStripe,\n useElements\n} from '@stripe/react-stripe-js';\nimport {\n Button,\n Typography,\n Grid,\n TextField,\n Divider,\n} from \"@material-ui/core\";\nimport VerifiedUserIcon from '@material-ui/icons/VerifiedUser';\nimport {\n Container,\n Image,\n Title,\n} from \"./Components.js\";\nimport Header from \"../../components/Header/Header\";\nimport StripeInput from \"../../components/StripeInput/StripeInput\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport { useTranslation } from 'react-i18next';\n\nconst CheckoutForm = ({ paymentIntent, plan }) => {\n\n const [loading, setLoading] = useState(false);\n\n const history = useHistory();\n const stripe = useStripe();\n const elements = useElements();\n\n const { t } = useTranslation('checkoutPage');\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n setLoading(true);\n\n try {\n const { error, paymentIntent: payResponse } = await stripe.confirmCardPayment(paymentIntent.client_secret,\n {\n payment_method: {\n card: elements.getElement(CardNumberElement),\n }\n }\n );\n\n if (error) throw new Error(error.message);\n\n if (payResponse.status === \"succeeded\") {\n const { data: result } = await request.put(`/client-app/update-plan`, { paymentIntentID: payResponse.id });\n\n if (result.error) {\n alert(`${t('CHECKOUT_AREA_ALERT_PROCESSING_ERROR')} (code: IMN-CLI-5531)`);\n }\n\n alert(t('CHECKOUT_AREA_ALERT_SUCCEEDED_PAYMENT'));\n\n history.go(0);\n }\n\n } catch (err) {\n alert(err.message);\n }\n\n setLoading(false);\n }\n\n return
\n \n \n \n \n {`${plan.displayName} - ${plan.currency} ${(plan.price).toFixed(2)}`}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {loading ?\n \n :\n }\n variant=\"contained\"\n color=\"primary\"\n type=\"submit\"\n disabled={!stripe}\n style={{ marginLeft: 'auto' }}\n >\n {t('CHECKOUT_AREA_CONFIRM_BUTTON_LABEL')}\n \n }\n \n \n \n
\n}\n\nconst Checkout = (props) => {\n\n // Hooks\n const { t } = useTranslation('checkoutPage');\n const history = useHistory();\n\n const { paymentInt: paymentIntent, plan } = props.history.location.state?.paymentIntent;\n\n\n useEffect(() => {\n\n // If user already have a plan back to HOME PAGE\n const user = getUser();\n if (user?.plan || user?.planStatus?.dueDate) {\n history.push(\"/secure\")\n }\n }, [history]);\n\n return (\n \n
\n \n \n {t('CHECKOUT_TITLE')}\n \n
\n \"ssl\n
\n \n
\n \"ssl\n
\n\n \n );\n}\n\nexport default Checkout;\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 55px;\n`;\n\nconst Image = styled.div`\n background-image: url(\"/assets/online_payment.svg\");\n height: 200px;\n background-size:auto 100%;\n background-repeat: no-repeat;\n background-position: center;\n margin-top: -50px;\n position: relative;\n`;\n\nconst Title = styled.h1`\n text-align: center;\n margin-bottom: 0px;\n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: 20%;\n`;\n\nconst Subtitle = styled.h4`\n text-align: center;\n margin-top: 5px;\n margin-bottom: 15px;\n`;\n\nexport {\n Container,\n Image,\n Title,\n CenterColumn,\n Subtitle,\n};","import React, { useState, useEffect } from \"react\";\nimport { request } from \"../../utils/request\";\nimport { getUser } from \"../../utils/user\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n CardNumberElement,\n CardExpiryElement,\n CardCvcElement,\n useStripe,\n useElements\n} from '@stripe/react-stripe-js';\nimport {\n Button,\n Typography,\n Grid,\n TextField,\n Divider,\n} from \"@material-ui/core\";\nimport VerifiedUserIcon from '@material-ui/icons/VerifiedUser';\nimport {\n Container,\n Image,\n Title,\n} from \"./Components.js\";\nimport Header from \"../../components/Header/Header\";\nimport StripeInput from \"../../components/StripeInput/StripeInput\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport { useTranslation } from 'react-i18next';\n\n\nconst CheckoutForm = ({ paymentIntent, plan }) => {\n\n const [loading, setLoading] = useState(false);\n\n const history = useHistory();\n const stripe = useStripe();\n const elements = useElements();\n\n const { t } = useTranslation('checkoutPage');\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n setLoading(true);\n\n try {\n const { error, paymentIntent: payResponse } = await stripe.confirmCardPayment(paymentIntent.client_secret,\n {\n payment_method: {\n card: elements.getElement(CardNumberElement),\n }\n }\n );\n\n if (error) throw new Error(error.message);\n\n if (payResponse.status === \"succeeded\") {\n const { data: result } = await request.put(`/client-app/update-plan`, { paymentIntentID: payResponse.id });\n\n if (result.error) {\n alert(`${t('CHECKOUT_AREA_ALERT_PROCESSING_ERROR')} (code: IMN-CLI-5531)`);\n }\n\n alert(t('CHECKOUT_AREA_ALERT_SUCCEEDED_PAYMENT'));\n\n history.go(0);\n }\n\n } catch (err) {\n alert(err.message);\n }\n\n setLoading(false);\n }\n\n return
\n \n \n \n \n {`${plan.displayName} - ${plan.currency} ${plan.price?.toFixed(2)}`}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {loading ?\n \n :\n }\n variant=\"contained\"\n color=\"primary\"\n type=\"submit\"\n disabled={!stripe}\n style={{ marginLeft: 'auto' }}\n >\n {t('CHECKOUT_AREA_CONFIRM_BUTTON_LABEL')}\n \n }\n \n \n \n
\n}\n\nconst Checkout = (props) => {\n\n // Hooks\n const { t } = useTranslation('checkoutPage');\n const history = useHistory();\n\n const { paymentInt: paymentIntent, plan } = props.history.location.state?.plan;\n\n\n useEffect(() => {\n\n // If user already have a plan back to HOME PAGE\n const user = getUser();\n const userPlan = user?.plan;\n if (userPlan) {\n history.push(\"/secure\")\n }\n }, [history]);\n\n return (\n \n
\n \n \n {t('CHECKOUT_TITLE')}\n \n \n \n \n \"ssl\n \n \n \"gdpr\"\n \n \n \n );\n}\n\nexport default Checkout;\n","import styled from \"styled-components\";\n\nconst Container = styled.div`\n background-color: #F6F9FE;\n min-height: 100vh;\n padding-bottom: 75px;\n`;\n\nconst Title = styled.h3`\n font-size: 23px;\n font-weight: bold;\n color: #2D80C6;\n margin-left: 20px;\n margin-top: -15px;\n margin-bottom: 0;\n`;\n\nconst Body = styled.div`\n width: calc(100% - 40px);\n margin: 20px auto;\n border-radius: 10px;\n box-sizing: border-box;\n`\n\nexport {\n Container,\n Title,\n Body,\n};","import React, { useState, useEffect } from \"react\";\nimport Header from \"../../components/Header/Header\";\nimport {\n Container,\n Title,\n Body\n} from \"./Components.js\";\nimport {\n Box,\n Button,\n Typography,\n makeStyles,\n} from \"@material-ui/core\";\nimport {\n GroupAdd\n} from \"@material-ui/icons\";\nimport { request } from \"../../utils/request\";\nimport { getUser, setUser } from \"../../utils/user\";\n\n\nconst useStyles = makeStyles(theme => ({\n container: {\n display: 'flex',\n marginBottom: 35,\n flexDirection: 'column',\n },\n accountContainer: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n boxSizing: 'border-box',\n borderRadius: '23px',\n padding: '10px 15px',\n boxShadow: '1px 5px 10px 0 rgb(16 36 94 / 8%)',\n marginBottom: 16,\n backgroundColor: 'white',\n justifyContent: \"center\",\n minHeight: 45,\n },\n accountName: {\n fontSize: '16px',\n fontWeight: 'bold',\n marginTop: '0px',\n marginBottom: ' 0px',\n },\n province: {\n display: 'flex',\n flexDirection: 'column',\n marginRight: 0,\n marginBottom: 30,\n width: '100%',\n },\n\n language: {\n display: 'flex',\n flexDirection: 'column',\n },\n\n divider: {\n margin: theme.spacing(2, 0),\n },\n\n regionDescription: {\n textAlign: 'justify',\n fontSize: '14px',\n },\n\n updatedAt: {\n marginTop: 15,\n fontWeight: 'bold',\n fontSize: '13px',\n },\n}));\n\nconst AccountsManager = (props) => {\n const classes = useStyles();\n const [accounts, setAccounts] = useState([]);\n const user = getUser();\n\n useEffect(() => {\n const fetchAccounts = async () => {\n try {\n const { data: info } = await request.get(\"/client-app/accounts\");\n setAccounts(info);\n } catch (error) {\n console.log(\"[Website] Error:\", error);\n }\n };\n fetchAccounts();\n }, []);\n\n const handleAccountSwitch = async (account) => {\n //TODO: MAGIC GOES HERE\n localStorage.setItem('__session', account.jwt);\n setUser(account.user);\n alert(`Trocando para conta de ${account.user?.name}`);\n window.location.reload(\"/secure\");\n };\n\n return (\n \n
\n Família\n \n \n \n Gestão do grupo\n \n \n Selecione a conta do usuário que deseja acessar\n \n \n {\n accounts.map(acc =>\n user._id === acc.user?.id ?\n handleAccountSwitch(acc)}\n style={{\n cursor: \"pointer\",\n border: \"1px solid green\"\n }}\n >\n {acc.user?.name}\n :\n\n handleAccountSwitch(acc)}\n style={{\n cursor: \"pointer\",\n }}\n >\n {acc.user?.name}\n )\n }\n {(user.isDependant || user.source === \"vaccine\") ?\n null :\n \n }\n style={{\n backgroundColor: \"#3893D0\",\n color: \"white\",\n margin: \"auto\"\n }}\n >\n Adicionar Dependente\n \n \n }\n \n \n );\n}\n\nexport default AccountsManager;\n","import styled from \"styled-components\";\n\nconst FormContainer = styled.div`\n width: 80%;\n margin: 0 auto;\n`;\n\nconst FieldContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : '0px'};\n`;\n\nconst TextFieldContainer = styled.div`\n margin-bottom: 15px;\n margin-left: 10px;\n width: 100%;\n`;\n\nconst ButtonsContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\n\nconst MainButton = styled.button`\n background-color: #4AB6FF;\n border: 1px solid #3893d0;\n border-radius: 23px;\n color: white;\n font-weight: bold;\n width: 100%;\n height: 40px;\n text-transform: uppercase;\n transition: all 350ms cubic-bezier(.175, .885, .32, 1.275);\n margin-top: 10px;\n cursor: pointer;\n\n &:hover {\n background-color: #4AA6FF;\n }\n`;\n\nconst SecondaryButton = styled.button`\n background-color: #FFFFFF;\n border: 1px solid #7B7B7B;\n border-radius: 8px;\n color: black;\n width: 100%;\n height: 40px;\n margin-top: ${props => props.marginTop ? props.marginTop : '0px'};\n cursor: pointer;\n`;\n\nconst Title = styled.h4`\n color: #5D5D5D;\n font-size: 16px;\n margin: 0;\n margin-bottom: 10px; \n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`;\n\nexport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n SecondaryButton,\n Title,\n CenterColumn,\n};","import React, { useState } from \"react\";\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from \"react-router-dom\";\nimport { dateConfig } from \"../../../utils/dateConfig\";\nimport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n Title,\n CenterColumn,\n} from \"./Components\";\nimport {\n Link,\n Modal,\n Fade,\n Backdrop,\n Typography,\n TextField,\n FormControl,\n CircularProgress,\n makeStyles,\n} from \"@material-ui/core\";\nimport Dialog from \"../../../components/Dialog/Dialog\";\nimport {\n AccountCircle,\n} from \"@material-ui/icons/\";\nimport moment from \"moment-timezone\";\nimport {\n MuiPickersUtilsProvider,\n KeyboardDatePicker,\n} from \"@material-ui/pickers\";\nimport pt from \"date-fns/locale/pt\";\nimport DateFnsUtils from \"@date-io/date-fns\";\nimport CalendarIcon from \"@material-ui/icons/Event\";\nimport DatePicker from \"react-mobile-datepicker\";\nimport axios from 'axios'\n\n\nconst useStyles = makeStyles((theme) => ({\n input: {\n width: \"95%\",\n },\n\n paper: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: 10,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexDirection: \"column\",\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n maxWidth: 300,\n margin: \"0 auto\",\n marginTop: \"400px\",\n },\n\n keyboardDatePicker: {\n marginTop: 0,\n marginLeft: 10,\n marginRight: 14,\n '& .MuiIconButton-root': {\n display: 'none'\n },\n },\n\n datepickerModal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '95%',\n maxWidth: '420px',\n margin: '0 auto',\n },\n\n datepicker: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 320,\n '& .datepicker': {\n position: 'static',\n borderRadius: 10,\n padding: 15,\n },\n '& .datepicker.default .datepicker-header': {\n fontSize: 20\n },\n '& .datepicker.default .datepicker-navbar-btn': {\n fontSize: 18\n }\n },\n}));\n\nconst RegistrationForm = ({ setAuth, country, eventCode, type }) => {\n const { t } = useTranslation('registerPage');\n\n const history = useHistory();\n\n const [loading, setLoading] = useState(false);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [feedback, setFeedback] = useState(null);\n const [openDatePicker, setOpenDatePicker] = useState(false);\n\n\n const classes = useStyles();\n\n // Fields\n const [name, setName] = useState(\"\");\n const [birthday, setBirthday] = useState({ date: new Date(\"01/01/2000\"), touched: false });\n\n\n const changeBirthday = (value) => {\n const newBirthday = { ...birthday };\n newBirthday.date = value;\n newBirthday.touched = true;\n\n setBirthday(newBirthday);\n };\n\n const onSubmit = async (event) => {\n event.preventDefault();\n if (!name) {\n setFeedback(t('VALIDATION_COMPLETE_ALL_FIELDS_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (!birthday.touched) {\n setFeedback(t('VALIDATION_BIRTHDATE_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n await handleRequest();\n };\n\n const handleRequest = async () => {\n try {\n setLoading(true);\n\n const jwt = localStorage.getItem('__session');\n const formatedJwt = (jwt || '').replace(/['\"]+/g, '');\n console.log(\"DATA, \", {\n name: name,\n birthday: moment(birthday.date).format(\"DD/MM/YYYY\"),\n country: country,\n eventCode: eventCode,\n registerType: type,\n })\n await axios.post(`${process.env.REACT_APP_API_URL}/client-app/register`,\n {\n name: name,\n birthday: moment(birthday.date).format(\"DD/MM/YYYY\"),\n country: country,\n eventCode: eventCode,\n registerType: type,\n }\n , {\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${formatedJwt}`,\n }\n });\n\n\n // localStorage.setItem(\"__session\", response.data.jwt);\n\n alert(\"Conta Criada!\");\n const redirect = (to) => {\n history.push(to);\n };\n redirect.bind(this, \"/secure/accounts\")()\n // setUser(response.data?.user);\n // setAuth(true);\n // setRegistered(true);\n } catch (error) {\n const { isAxiosError } = error;\n\n if (isAxiosError) {\n if (error.response.data.message === \"Email already taken\") {\n alert(t('VALIDATION_EMAIL_ALREADY_USED_ERROR'));\n }\n if (error.response.data.message === \"All tickets sold\") {\n alert(t('VALIDATION_TICKETS_SOLD_ERROR'));\n }\n if (error.response.data.message === \"Invalid code\") {\n alert(t('VALIDATION_CODE_ERROR'));\n }\n setFeedback(error.response.data.message);\n setLoading(false);\n } else {\n alert(t('RECOVERY_EMAIL_MESSAGE'));\n setFeedback(t('SUBMIT_ERROR'));\n }\n\n console.log(`[RegistrationForm Error]: ${error}`);\n } finally {\n setLoading(false)\n }\n };\n\n return (\n
\n \n Crie a conta do seu dependente\n \n \n \n \n setName(event.target.value)}\n disabled={loading}\n />\n \n \n \n \n \n \n setOpenDatePicker(true)}\n label={t('BIRTHDATE')}\n format=\"dd/MM/yyyy\"\n disabled={loading}\n value={birthday.date}\n InputProps={{ readOnly: true }}\n />\n \n \n {loading ? (\n \n \n \n ) : (\n <>\n \n \n \n Criar Nova Conta\n \n \n \n \n \n Voltar para gestão do grupo\n \n \n \n )}\n \n \n {feedback}\n \n\n setOpenDatePicker(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n {\n changeBirthday(time);\n setOpenDatePicker(false);\n }}\n onCancel={() => setOpenDatePicker(false)}\n isPopup={false}\n showHeader={true}\n headerFormat=\"DD/MM/YYYY\"\n dateConfig={dateConfig}\n min={new Date(1910, 0, 1)}\n max={moment()._d}\n confirmText={t('BIRTHDATE_MODAL_CONFIRM_BUTTON')}\n cancelText={t('BIRTHDATE_MODAL_CANCEL_BUTTON')}\n />\n
\n
\n \n
\n );\n};\n\nexport default RegistrationForm;","import React from \"react\";\nimport Header from \"../../components/Header/Header\";\nimport {\n Container,\n Title,\n Body\n} from \"./Components.js\";\nimport {\n Box,\n Typography,\n makeStyles,\n} from \"@material-ui/core\";\nimport RegistrationForm from \"./RegistrationForm/RegistrationForm\";\nimport { getUser } from \"../../utils/user\";\n\n\nconst useStyles = makeStyles(theme => ({\n container: {\n display: 'flex',\n marginBottom: 35,\n flexDirection: 'column',\n },\n\n province: {\n display: 'flex',\n flexDirection: 'column',\n marginRight: 0,\n marginBottom: 30,\n width: '100%',\n },\n\n language: {\n display: 'flex',\n flexDirection: 'column',\n },\n\n divider: {\n margin: theme.spacing(2, 0),\n },\n\n regionDescription: {\n textAlign: 'justify',\n fontSize: '14px',\n },\n\n updatedAt: {\n marginTop: 15,\n fontWeight: 'bold',\n fontSize: '13px',\n },\n}));\n\nconst CreateSubAccount = (props) => {\n const classes = useStyles();\n const user = getUser();\n\n return (\n \n
\n Contas\n \n \n {\n user.isDependant ?\n Operação não permitida para sub-contas :\n { }} country=\"S1\" type=\"sub-account\" />\n }\n \n \n \n );\n}\n\nexport default CreateSubAccount;\n","import React from \"react\";\nimport { Switch, Route, useRouteMatch } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport { PasseVerdeProvider } from \"../../context/passeverde\";\n\n// Containers Imports\nimport Home from \"../Home/Home\";\nimport MyCard from \"../MyCard/MyCard\";\nimport ShareDocumentInformation from \"../ShareDocumentInformation/ShareDocumentInformation\";\nimport PasseVerde from \"../PasseVerde/PasseVerde\";\nimport NewPasseVerde from \"../NewPasseVerde/NewPasseVerde\";\nimport PasseVerdeUpload from \"../PasseVerdeUpload/PasseVerdeUpload\";\nimport DigitalCertificates from \"../DigitalCertificates/DigitalCertificates\";\nimport Profile from \"../Profile/Profile\";\nimport MyData from \"../MyData/MyData\";\nimport PrivacyAndSecurity from \"../PrivacyAndSecurity/PrivacyAndSecurity\";\nimport Faq from \"../Faq/Faq\";\nimport FaqSelectedQuestion from \"../FaqSelectedQuestion/FaqSelectedQuestion\";\nimport TermsAndConditions from \"../TermsAndConditions/TermsAndConditions\";\nimport PrivacyPolicy from \"../PrivacyPolicy/PrivacyPolicy\";\nimport Calendar from \"../Calendar/Calendar\";\nimport MyHealth from \"../MyHealth/MyHealth\";\nimport MyVaccinationsCard from \"../MyVaccinationsCard/MyVaccinationsCard\";\nimport UploadVaccinationsCard from \"../UploadVaccinationsCard/UploadVaccinationsCard\";\nimport ConsultVaccinationsCardStatus from \"../ConsultVaccinationsCardStatus/ConsultVaccinationsCardStatus\";\nimport MedicalCertificate from \"../MedicalCertificate/MedicalCertificate\";\nimport UploadMedicalCertificate from \"../UploadMedicalCertificate/UploadMedicalCertificate\";\nimport ConsultMedicalCertificate from \"../ConsultMedicalCertificate/ConsultMedicalCertificate\";\nimport SiteMap from \"../SiteMap/SiteMap\";\n\n// Components Imports\nimport BottomMenu from \"../../components/BottomMenu/BottomMenu\";\nimport Checkout from \"../Checkout/Checkout\";\nimport CheckoutSub from \"../CheckoutSub/CheckoutSub\";\nimport AccountsManager from \"../AccountsManager/AccountsManager\";\nimport CreateSubAccount from \"../AccountsManager/CreateSubAccount\";\n\nconst Secure = (props) => {\n\n let { path } = useRouteMatch();\n\n const { location: { pathname } } = props;\n\n const BottomFixedSection = styled.section`\n position: fixed;\n bottom: 0;\n width: 100%;\n z-index: 2;\n\n @media(min-width: 450px) {\n width: 450px;\n }\n `;\n\n return (\n\n \n \n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n \n \n \n \n \n );\n}\n\nexport default Secure;\n","import React from 'react';\n\nconst Loading = () => {\n return (\n \n );\n};\n\nexport default Loading;\n","import styled from \"styled-components\";\n\nconst ImageContainer = styled.div`\n display: flex;\n justify-content: center;\n padding: 15px;\n margin-top: 35px;\n box-sizing: border-box;\n`;\n\n\nexport {\n ImageContainer,\n};","import styled from \"styled-components\";\n\nconst FormContainer = styled.div`\n width: 80%;\n margin: 0 auto;\n`;\n\nconst FieldContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : '0px'};\n`;\n\nconst TextFieldContainer = styled.div`\n margin-bottom: 15px;\n margin-left: 10px;\n width: 100%;\n`;\n\nconst ButtonsContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\n\nconst MainButton = styled.button`\n background-color: #4AB6FF;\n border: 1px solid #3893d0;\n border-radius: 23px;\n color: white;\n font-weight: bold;\n width: 100%;\n height: 40px;\n text-transform: uppercase;\n transition: all 350ms cubic-bezier(.175, .885, .32, 1.275);\n margin-top: 10px;\n cursor: pointer;\n\n &:hover {\n background-color: #4AA6FF;\n }\n`;\n\nconst SecondaryButton = styled.button`\n background-color: #FFFFFF;\n border: 1px solid #7B7B7B;\n border-radius: 8px;\n color: black;\n width: 100%;\n height: 40px;\n margin-top: ${props => props.marginTop ? props.marginTop : '0px'};\n cursor: pointer;\n`;\n\nconst TextButton = styled.p`\n color: #3297DB;\n font-weight: bold;\n text-align: center;\n text-decoration: none !important;\n width: 100%;\n margin-top: ${props => props.marginTop ? props.marginTop : '0px'};\n cursor: pointer;\n`;\n\nconst Title = styled.h4`\n color: #5D5D5D;\n font-size: 16px;\n margin: 0;\n margin-bottom: 10px; \n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`;\n\nexport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n SecondaryButton,\n TextButton,\n Title,\n CenterColumn,\n};","import React, { useState } from 'react';\nimport { Redirect, useLocation } from 'react-router-dom';\nimport axios from 'axios';\nimport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n Title,\n CenterColumn,\n} from './Components';\nimport Input from '@material-ui/core/Input';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport IconButton from '@material-ui/core/IconButton';\nimport Visibility from '@material-ui/icons/Visibility';\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\nimport LockIcon from '@material-ui/icons/Lock';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport FormControl from '@material-ui/core/FormControl';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles(() => ({\n input: {\n width: '95%',\n },\n}));\n\n\nconst NewPasswordForm = (props) => {\n const { t } = useTranslation('confirmPasswordPage');\n const location = useLocation()\n\n const data = location.pathname.split('/').slice(-2);\n\n const token = data[0];\n const email = data[1];\n\n const [loading, setLoading] = useState(false);\n const [recovered, setRecovered] = useState(false);\n const classes = useStyles();\n\n // Fields\n const [password, setPassword] = useState('');\n const [confirmPassword, setConfirmPassword] = useState('');\n\n // Configuration\n const [showPassword, setShowPassword] = useState(false);\n\n const handleClickShowPassword = () => {\n setShowPassword(!showPassword);\n };\n\n const handleMouseDownPassword = (event) => {\n event.preventDefault();\n };\n\n const onSubmit = async (event) => {\n if (!confirmPassword || !password) {\n alert(t('VALIDATION_COMPLETE_ALL_FIELDS_ERROR'));\n return;\n }\n\n if (confirmPassword !== password) {\n alert(t('VALIDATION_PASSWORD_MUST_BE_EQUAL_ERROR'));\n return;\n }\n\n if (confirmPassword?.length < 6) {\n alert(t('VALIDATION_PASSWORD_MIN_ERROR'));\n return;\n }\n\n try {\n event.preventDefault();\n setLoading(true);\n\n await axios.post(`${process.env.REACT_APP_API_URL}/client-app/confirm-new-password`, {\n email: email,\n password: password,\n token: token,\n });\n setRecovered(true)\n } catch (error) {\n setLoading(false);\n alert(t('SUBMIT_RESPONSE_ERROR'));\n console.log(`[NewPasswordForm Error]: ${error}`);\n }\n };\n\n return (\n
\n {recovered && }\n \n {t('UPDATE_PASSWORD')}\n \n \n \n \n \n {t('PASSWORD')}\n \n setPassword(event.target.value)}\n disabled={loading}\n endAdornment={\n \n \n {showPassword ? : }\n \n \n }\n inputProps={{\n autocomplete: 'off',\n 'aria-autocomplete': 'off',\n }}\n />\n \n \n \n\n \n \n \n \n \n {t('CONFIRM_PASSWORD')}\n \n setConfirmPassword(event.target.value)}\n disabled={loading}\n endAdornment={\n \n \n {showPassword ? : }\n \n \n }\n inputProps={{\n autocomplete: 'off',\n 'aria-autocomplete': 'off',\n }}\n />\n \n \n \n\n {loading ? (\n \n \n \n ) : (\n \n \n {t('SUBMIT')}\n \n \n )}\n \n
\n );\n};\n\nexport default NewPasswordForm;\n","import React, { useEffect } from \"react\";\nimport {\n ImageContainer\n} from \"./Components\";\nimport Header from \"../../components/Header/Header\";\nimport NewPasswordForm from \"../../components/NewPasswordForm/NewPasswordForm\";\nimport { useTranslation } from 'react-i18next';\n\nconst Index = ({ setAuth }) => {\n const { t } = useTranslation('confirmPasswordPage');\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n return (\n
\n \n \n \n \n \n
\n );\n}\n\nexport default Index;\n","import styled from \"styled-components\";\n\nconst ImageContainer = styled.div`\n display: flex;\n justify-content: center;\n padding: 40px 15px 30px 15px;\n box-sizing: border-box;\n`;\n\nexport {\n ImageContainer,\n};\n","export const validateEmail = (email) => {\n const re = /^(([^<>()[\\]\\\\.,;:\\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,}))$/;\n return re.test(String(email).toLowerCase());\n}","import styled from \"styled-components\";\n\nconst FormContainer = styled.div`\n width: 80%;\n margin: 0 auto;\n`;\n\nconst FieldContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : '0px'};\n`;\n\nconst TextFieldContainer = styled.div`\n margin-bottom: 15px;\n margin-left: 10px;\n width: 100%;\n`;\n\nconst ButtonsContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\n\nconst MainButton = styled.button`\n background-color: #4AB6FF;\n border: 1px solid #3893d0;\n border-radius: 23px;\n color: white;\n font-weight: bold;\n width: 100%;\n height: 40px;\n text-transform: uppercase;\n transition: all 350ms cubic-bezier(.175, .885, .32, 1.275);\n margin-top: 10px;\n cursor: pointer;\n\n &:hover {\n background-color: #4AA6FF;\n }\n`;\n\nconst SecondaryButton = styled.button`\n background-color: #FFFFFF;\n border: 1px solid #7B7B7B;\n border-radius: 8px;\n color: black;\n width: 100%;\n height: 40px;\n margin-top: ${props => props.marginTop ? props.marginTop : '0px'};\n cursor: pointer;\n`;\n\nconst Title = styled.h4`\n color: #5D5D5D;\n font-size: 16px;\n margin: 0;\n margin-bottom: 10px; \n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`;\n\nexport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n SecondaryButton,\n Title,\n CenterColumn,\n};","import React, { useState } from \"react\";\nimport { useTranslation } from 'react-i18next';\nimport { Redirect } from \"react-router-dom\";\nimport axios from \"axios\";\nimport { setUser } from \"../../../utils/user\";\nimport { validateEmail } from \"../../../utils/validator\";\nimport { dateConfig } from \"../../../utils/dateConfig\";\nimport ReactInputMask from \"react-input-mask\";\nimport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n Title,\n CenterColumn,\n} from \"./Components\";\nimport {\n Link,\n InputLabel,\n IconButton,\n InputAdornment,\n Input,\n Modal,\n Fade,\n Backdrop,\n Typography,\n TextField,\n FormControl,\n CircularProgress,\n makeStyles,\n} from \"@material-ui/core\";\nimport Dialog from \"../../../components/Dialog/Dialog\";\nimport {\n AccountCircle,\n AlternateEmail,\n Language,\n AssignmentInd,\n} from \"@material-ui/icons/\";\nimport Visibility from \"@material-ui/icons/Visibility\";\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\nimport LockIcon from \"@material-ui/icons/Lock\";\nimport moment from \"moment-timezone\";\nimport {\n MuiPickersUtilsProvider,\n KeyboardDatePicker,\n} from \"@material-ui/pickers\";\nimport pt from \"date-fns/locale/pt\";\nimport DateFnsUtils from \"@date-io/date-fns\";\nimport CalendarIcon from \"@material-ui/icons/Event\";\nimport DatePicker from \"react-mobile-datepicker\";\n\n\nconst useStyles = makeStyles((theme) => ({\n input: {\n width: \"95%\",\n },\n\n paper: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: 10,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexDirection: \"column\",\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n maxWidth: 300,\n margin: \"0 auto\",\n marginTop: \"400px\",\n },\n\n keyboardDatePicker: {\n marginTop: 0,\n marginLeft: 10,\n marginRight: 14,\n '& .MuiIconButton-root': {\n display: 'none'\n },\n },\n\n datepickerModal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '95%',\n maxWidth: '420px',\n margin: '0 auto',\n },\n\n datepicker: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 320,\n '& .datepicker': {\n position: 'static',\n borderRadius: 10,\n padding: 15,\n },\n '& .datepicker.default .datepicker-header': {\n fontSize: 20\n },\n '& .datepicker.default .datepicker-navbar-btn': {\n fontSize: 18\n }\n },\n}));\n\nconst RegistrationForm = ({ setAuth, country, eventCode, type }) => {\n const { t } = useTranslation('registerPage');\n\n const [loading, setLoading] = useState(false);\n const [registered, setRegistered] = useState(false);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [feedback, setFeedback] = useState(null);\n const [showPassword, setShowPassword] = useState(false);\n const [openDatePicker, setOpenDatePicker] = useState(false);\n const [isPassport, setIsPassport] = useState(false);\n\n const handleClickShowPassword = () => {\n setShowPassword(!showPassword);\n };\n\n const handleMouseDownPassword = (event) => {\n event.preventDefault();\n };\n\n const classes = useStyles();\n\n // Fields\n const [name, setName] = useState(\"\");\n const [docNumber, setDocNumber] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [birthday, setBirthday] = useState({ date: new Date(\"01/01/2000\"), touched: false });\n const [password, setPassword] = useState(\"\");\n const [confirmPassword, setConfirmPassword] = useState(\"\");\n\n const handleSwitchDocType = () => {\n setIsPassport(!isPassport);\n setDocNumber(\"\");\n }\n\n const changeBirthday = (value) => {\n const newBirthday = { ...birthday };\n newBirthday.date = value;\n newBirthday.touched = true;\n\n setBirthday(newBirthday);\n };\n\n const onSubmit = async (event) => {\n event.preventDefault();\n if (!name || !email || !password || !confirmPassword) {\n setFeedback(t('VALIDATION_COMPLETE_ALL_FIELDS_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (!birthday.touched) {\n setFeedback(t('VALIDATION_BIRTHDATE_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (password !== confirmPassword) {\n setFeedback(t('VALIDATION_PASSWORD_MUST_BE_EQUAL_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (!isPassport) {\n // eslint-disable-next-line\n if (!/^\\d{3}\\.\\d{3}\\.\\d{3}\\-\\d{2}$/.test(docNumber)) {\n setFeedback(t('VALIDATION_CPF_NUMBER_ERROR'));\n setDialogOpen(true);\n return;\n }\n }\n\n if (!validateEmail(email)) {\n setFeedback(t('VALIDATION_EMAIL_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n await handleRequest();\n };\n\n const handleRequest = async () => {\n try {\n setLoading(true);\n\n const response = await axios.post(\n `${process.env.REACT_APP_API_URL}/client-app/register`,\n {\n name: name,\n birthday: moment(birthday.date).format(\"DD/MM/YYYY\"),\n email: email,\n password: password,\n documentType: isPassport ? 'passport' : 'cpf',\n documentNumber: docNumber,\n country: country,\n eventCode: eventCode,\n registerType: type,\n }\n );\n\n localStorage.setItem(\"__session\", response.data.jwt);\n\n setUser(response.data?.user);\n setAuth(true);\n setRegistered(true);\n } catch (error) {\n const { isAxiosError } = error;\n\n if (isAxiosError) {\n if (error.response.data.message === \"Email already taken\") {\n alert(t('VALIDATION_EMAIL_ALREADY_USED_ERROR'));\n }\n if (error.response.data.message === \"User already taken\") {\n alert(\"Usuário já existe\");\n }\n if (error.response.data.message === \"All tickets sold\") {\n alert(t('VALIDATION_TICKETS_SOLD_ERROR'));\n }\n if (error.response.data.message === \"Invalid code\") {\n alert(t('VALIDATION_CODE_ERROR'));\n }\n setFeedback(error.response.data.message);\n setLoading(false);\n } else {\n alert(t('RECOVERY_EMAIL_MESSAGE'));\n setFeedback(t('SUBMIT_ERROR'));\n }\n\n console.log(`[RegistrationForm Error]: ${error}`);\n }\n };\n\n return (\n
\n {registered && }\n \n {t('SIGN_UP_DETAILS')}\n \n \n \n \n setName(event.target.value)}\n disabled={loading}\n />\n \n \n \n \n \n \n \n \n setEmail(event.target.value?.toLocaleLowerCase())\n }\n disabled={loading}\n />\n \n \n \n \n \n \n setOpenDatePicker(true)}\n label={t('BIRTHDATE')}\n format=\"dd/MM/yyyy\"\n disabled={loading}\n value={birthday.date}\n InputProps={{ readOnly: true }}\n />\n \n \n \n \n {isPassport ?\n \n :\n \n }\n \n {\n isPassport ?\n setDocNumber(event.target.value)}\n >\n \n \n :\n setDocNumber(event.target.value)}\n >\n {() => (\n \n \n \n )}\n \n }\n \n \n \n \n \n \n {t('PASSWORD')}\n \n setPassword(event.target.value)}\n disabled={loading}\n endAdornment={\n \n \n {showPassword ? : }\n \n \n }\n inputProps={{\n autocomplete: \"off\",\n \"aria-autocomplete\": \"off\",\n }}\n />\n \n \n \n \n \n \n \n \n {t('PASSWORD_CONFIRMATION')}\n \n setConfirmPassword(event.target.value)}\n disabled={loading}\n endAdornment={\n \n \n {showPassword ? : }\n \n \n }\n inputProps={{\n autocomplete: \"off\",\n \"aria-autocomplete\": \"off\",\n }}\n />\n \n \n \n {loading ? (\n \n \n \n ) : (\n <>\n \n \n \n {t('SUBMIT')}\n \n \n \n \n \n {t('ALREADY_HAVE_AN_ACCOUNT')}\n \n \n \n )}\n \n \n {feedback}\n \n\n setOpenDatePicker(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n {\n changeBirthday(time);\n setOpenDatePicker(false);\n }}\n onCancel={() => setOpenDatePicker(false)}\n isPopup={false}\n showHeader={true}\n headerFormat=\"DD/MM/YYYY\"\n dateConfig={dateConfig}\n min={new Date(1910, 0, 1)}\n max={moment()._d}\n confirmText={t('BIRTHDATE_MODAL_CONFIRM_BUTTON')}\n cancelText={t('BIRTHDATE_MODAL_CANCEL_BUTTON')}\n />\n
\n
\n \n
\n );\n};\n\nexport default RegistrationForm;","import React, { useEffect, useState } from \"react\";\nimport { ImageContainer } from './Components';\nimport Header from \"../../components/Header/Header\";\nimport RegistrationForm from \"./RegistrationForm/RegistrationForm\";\nimport { useTranslation } from 'react-i18next';\nimport JivoButton from \"../../components/JivoButton\";\n\nconst Register = ({ setAuth }) => {\n const { t } = useTranslation('registerPage');\n const [showJivoButton, setShowJivoButton] = useState(true);\n\n const handleHideJivoButton = () => {\n setShowJivoButton(false);\n };\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n return (\n <>\n \n \n \n \n \n\n {showJivoButton && }\n \n );\n};\n\nexport default Register;","import styled from \"styled-components\";\n\nconst ImageContainer = styled.div`\n display: flex;\n justify-content: center;\n padding: 40px 15px 30px 15px;\n box-sizing: border-box;\n`;\n\nexport {\n ImageContainer,\n};\n","import styled from \"styled-components\";\n\nconst FormContainer = styled.div`\n width: 80%;\n margin: 0 auto;\n`;\n\nconst FieldContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : '0px'};\n`;\n\nconst TextFieldContainer = styled.div`\n margin-bottom: 15px;\n margin-left: 10px;\n width: 100%;\n`;\n\nconst ButtonsContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\n\nconst MainButton = styled.button`\n background-color: #4AB6FF;\n border: 1px solid #3893d0;\n border-radius: 23px;\n color: white;\n font-weight: bold;\n width: 100%;\n height: 40px;\n text-transform: uppercase;\n transition: all 350ms cubic-bezier(.175, .885, .32, 1.275);\n margin-top: 10px;\n cursor: pointer;\n\n &:hover {\n background-color: #4AA6FF;\n }\n`;\n\nconst SecondaryButton = styled.button`\n background-color: #FFFFFF;\n border: 1px solid #7B7B7B;\n border-radius: 8px;\n color: black;\n width: 100%;\n height: 40px;\n margin-top: ${props => props.marginTop ? props.marginTop : '0px'};\n cursor: pointer;\n`;\n\nconst Title = styled.h4`\n color: #5D5D5D;\n font-size: 16px;\n margin: 0;\n margin-bottom: 10px; \n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`;\n\nexport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n SecondaryButton,\n Title,\n CenterColumn,\n};","import React, { useState } from \"react\";\nimport { useTranslation } from 'react-i18next';\nimport { Redirect } from \"react-router-dom\";\nimport axios from \"axios\";\nimport { setUser } from \"../../../utils/user\";\nimport { validateEmail } from \"../../../utils/validator\";\nimport { dateConfig } from \"../../../utils/dateConfig\";\nimport ReactInputMask from \"react-input-mask\";\nimport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n Title,\n CenterColumn,\n} from \"./Components\";\nimport {\n Link,\n InputLabel,\n IconButton,\n InputAdornment,\n Input,\n Modal,\n Fade,\n Backdrop,\n Typography,\n TextField,\n FormControl,\n CircularProgress,\n makeStyles,\n} from \"@material-ui/core\";\nimport Dialog from \"../../../components/Dialog/Dialog\";\nimport {\n AccountCircle,\n AlternateEmail,\n Language,\n AssignmentInd,\n} from \"@material-ui/icons/\";\nimport Visibility from \"@material-ui/icons/Visibility\";\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\nimport LockIcon from \"@material-ui/icons/Lock\";\nimport moment from \"moment-timezone\";\nimport {\n MuiPickersUtilsProvider,\n KeyboardDatePicker,\n} from \"@material-ui/pickers\";\nimport pt from \"date-fns/locale/pt\";\nimport DateFnsUtils from \"@date-io/date-fns\";\nimport CalendarIcon from \"@material-ui/icons/Event\";\nimport DatePicker from \"react-mobile-datepicker\";\n\n\nconst useStyles = makeStyles((theme) => ({\n input: {\n width: \"95%\",\n },\n\n paper: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: 10,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexDirection: \"column\",\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n maxWidth: 300,\n margin: \"0 auto\",\n marginTop: \"400px\",\n },\n\n keyboardDatePicker: {\n marginTop: 0,\n marginLeft: 10,\n marginRight: 14,\n '& .MuiIconButton-root': {\n display: 'none'\n },\n },\n\n datepickerModal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '95%',\n maxWidth: '420px',\n margin: '0 auto',\n },\n\n datepicker: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 320,\n '& .datepicker': {\n position: 'static',\n borderRadius: 10,\n padding: 15,\n },\n '& .datepicker.default .datepicker-header': {\n fontSize: 20\n },\n '& .datepicker.default .datepicker-navbar-btn': {\n fontSize: 18\n }\n },\n}));\n\nconst RegistrationForm = ({ setAuth, country, eventCode, type }) => {\n const { t } = useTranslation('registerPage');\n\n const [loading, setLoading] = useState(false);\n const [registered, setRegistered] = useState(false);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [feedback, setFeedback] = useState(null);\n const [showPassword, setShowPassword] = useState(false);\n const [openDatePicker, setOpenDatePicker] = useState(false);\n const [isPassport, setIsPassport] = useState(false);\n\n const handleClickShowPassword = () => {\n setShowPassword(!showPassword);\n };\n\n const handleMouseDownPassword = (event) => {\n event.preventDefault();\n };\n\n const classes = useStyles();\n\n // Fields\n const [name, setName] = useState(\"\");\n const [docNumber, setDocNumber] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [birthday, setBirthday] = useState({ date: new Date(\"01/01/2000\"), touched: false });\n const [password, setPassword] = useState(\"\");\n const [confirmPassword, setConfirmPassword] = useState(\"\");\n\n const handleSwitchDocType = () => {\n setIsPassport(!isPassport);\n setDocNumber(\"\");\n }\n\n const changeBirthday = (value) => {\n const newBirthday = { ...birthday };\n newBirthday.date = value;\n newBirthday.touched = true;\n\n setBirthday(newBirthday);\n };\n\n const onSubmit = async (event) => {\n event.preventDefault();\n if (!name || !email || !password || !confirmPassword) {\n setFeedback(t('VALIDATION_COMPLETE_ALL_FIELDS_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (!birthday.touched) {\n setFeedback(t('VALIDATION_BIRTHDATE_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (password !== confirmPassword) {\n setFeedback(t('VALIDATION_PASSWORD_MUST_BE_EQUAL_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (!isPassport) {\n // eslint-disable-next-line\n if (!/^\\d{3}\\.\\d{3}\\.\\d{3}\\-\\d{2}$/.test(docNumber)) {\n setFeedback(t('VALIDATION_CPF_NUMBER_ERROR'));\n setDialogOpen(true);\n return;\n }\n }\n\n if (!validateEmail(email)) {\n setFeedback(t('VALIDATION_EMAIL_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n await handleRequest();\n };\n\n const handleRequest = async () => {\n try {\n setLoading(true);\n\n const response = await axios.post(\n `${process.env.REACT_APP_API_URL}/client-app/register`,\n {\n name: name,\n birthday: moment(birthday.date).format(\"DD/MM/YYYY\"),\n email: email,\n password: password,\n documentType: isPassport ? 'passport' : 'cpf',\n documentNumber: docNumber,\n country: country,\n eventCode: eventCode,\n registerType: type,\n }\n );\n\n localStorage.setItem(\"__session\", response.data.jwt);\n\n setUser(response.data?.user);\n setAuth(true);\n setRegistered(true);\n } catch (error) {\n const { isAxiosError } = error;\n\n if (isAxiosError) {\n if (error.response.data.message === \"Email already taken\") {\n alert(t('VALIDATION_EMAIL_ALREADY_USED_ERROR'));\n }\n if (error.response.data.message === \"All tickets sold\") {\n alert(t('VALIDATION_TICKETS_SOLD_ERROR'));\n }\n if (error.response.data.message === \"Invalid code\") {\n alert(t('VALIDATION_CODE_ERROR'));\n }\n setFeedback(error.response.data.message);\n setLoading(false);\n } else {\n alert(t('RECOVERY_EMAIL_MESSAGE'));\n setFeedback(t('SUBMIT_ERROR'));\n }\n\n console.log(`[RegistrationForm Error]: ${error}`);\n }\n };\n\n return (\n
\n {registered && }\n \n {t('SIGN_UP_DETAILS')}\n \n \n \n \n setName(event.target.value)}\n disabled={loading}\n />\n \n \n \n \n \n \n \n \n setEmail(event.target.value?.toLocaleLowerCase())\n }\n disabled={loading}\n />\n \n \n \n \n \n \n setOpenDatePicker(true)}\n label={t('BIRTHDATE')}\n format=\"dd/MM/yyyy\"\n disabled={loading}\n value={birthday.date}\n InputProps={{ readOnly: true }}\n />\n \n \n \n \n {isPassport ?\n \n :\n \n }\n \n {\n isPassport ?\n setDocNumber(event.target.value)}\n >\n \n \n :\n setDocNumber(event.target.value)}\n >\n {() => (\n \n \n \n )}\n \n }\n \n \n \n \n \n \n {t('PASSWORD')}\n \n setPassword(event.target.value)}\n disabled={loading}\n endAdornment={\n \n \n {showPassword ? : }\n \n \n }\n inputProps={{\n autocomplete: \"off\",\n \"aria-autocomplete\": \"off\",\n }}\n />\n \n \n \n \n \n \n \n \n {t('PASSWORD_CONFIRMATION')}\n \n setConfirmPassword(event.target.value)}\n disabled={loading}\n endAdornment={\n \n \n {showPassword ? : }\n \n \n }\n inputProps={{\n autocomplete: \"off\",\n \"aria-autocomplete\": \"off\",\n }}\n />\n \n \n \n {loading ? (\n \n \n \n ) : (\n <>\n \n \n \n {t('SUBMIT')}\n \n \n \n \n \n {t('ALREADY_HAVE_AN_ACCOUNT')}\n \n \n \n )}\n \n \n {feedback}\n \n\n setOpenDatePicker(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n {\n changeBirthday(time);\n setOpenDatePicker(false);\n }}\n onCancel={() => setOpenDatePicker(false)}\n isPopup={false}\n showHeader={true}\n headerFormat=\"DD/MM/YYYY\"\n dateConfig={dateConfig}\n min={new Date(1910, 0, 1)}\n max={moment()._d}\n confirmText={t('BIRTHDATE_MODAL_CONFIRM_BUTTON')}\n cancelText={t('BIRTHDATE_MODAL_CANCEL_BUTTON')}\n />\n
\n
\n \n
\n );\n};\n\nexport default RegistrationForm;","import React, { useEffect, useState } from \"react\";\nimport { ImageContainer } from './Components';\nimport Header from \"../../components/Header/Header\";\nimport RegistrationForm from \"./RegistrationForm/RegistrationForm\";\nimport { useTranslation } from 'react-i18next';\nimport JivoButton from \"../../components/JivoButton\";\n\nconst RegisterSpecial = ({ setAuth }) => {\n const { t } = useTranslation('registerPage');\n const [showJivoButton, setShowJivoButton] = useState(true);\n\n const handleHideJivoButton = () => {\n setShowJivoButton(false);\n };\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n return (\n <>\n \n \n \n \n \n \n \n \n\n {showJivoButton && }\n \n );\n};\n\nexport default RegisterSpecial;","import styled from \"styled-components\";\n\nconst ImageContainer = styled.div`\n display: flex;\n justify-content: center;\n padding: 40px 15px 30px 15px;\n box-sizing: border-box;\n`;\n\nexport {\n ImageContainer,\n};\n","import styled from \"styled-components\";\n\nconst FormContainer = styled.div`\n width: 80%;\n margin: 0 auto;\n`;\n\nconst FieldContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : '0px'};\n`;\n\nconst TextFieldContainer = styled.div`\n margin-bottom: 15px;\n margin-left: 10px;\n width: 100%;\n`;\n\nconst ButtonsContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\n\nconst MainButton = styled.button`\n background-color: #4AB6FF;\n border: 1px solid #3893d0;\n border-radius: 23px;\n color: white;\n font-weight: bold;\n width: 100%;\n height: 40px;\n text-transform: uppercase;\n transition: all 350ms cubic-bezier(.175, .885, .32, 1.275);\n margin-top: 10px;\n cursor: pointer;\n\n &:hover {\n background-color: #4AA6FF;\n }\n`;\n\nconst SecondaryButton = styled.button`\n background-color: #FFFFFF;\n border: 1px solid #7B7B7B;\n border-radius: 8px;\n color: black;\n width: 100%;\n height: 40px;\n margin-top: ${props => props.marginTop ? props.marginTop : '0px'};\n cursor: pointer;\n`;\n\nconst Title = styled.h4`\n color: #5D5D5D;\n font-size: 16px;\n margin: 0;\n margin-bottom: 10px; \n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`;\n\nexport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n SecondaryButton,\n Title,\n CenterColumn,\n};","import React, { useState, useEffect } from \"react\";\nimport { useTranslation } from 'react-i18next';\nimport { Redirect } from \"react-router-dom\";\nimport axios from \"axios\";\nimport { setUser } from \"../../../utils/user\";\nimport { validateEmail } from \"../../../utils/validator\";\nimport { dateConfig } from \"../../../utils/dateConfig\";\nimport ReactInputMask from \"react-input-mask\";\nimport {\n FormContainer,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n Title,\n CenterColumn,\n} from \"./Components\";\nimport {\n Link,\n InputLabel,\n IconButton,\n InputAdornment,\n Input,\n Modal,\n Fade,\n Backdrop,\n Typography,\n TextField,\n FormControl,\n CircularProgress,\n makeStyles,\n MenuItem,\n Select,\n} from \"@material-ui/core\";\nimport Dialog from \"../../../components/Dialog/Dialog\";\nimport {\n AccountCircle,\n AlternateEmail,\n Language,\n AssignmentInd,\n School\n} from \"@material-ui/icons/\";\nimport Visibility from \"@material-ui/icons/Visibility\";\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\nimport LockIcon from \"@material-ui/icons/Lock\";\nimport moment from \"moment-timezone\";\nimport {\n MuiPickersUtilsProvider,\n KeyboardDatePicker,\n} from \"@material-ui/pickers\";\nimport pt from \"date-fns/locale/pt\";\nimport DateFnsUtils from \"@date-io/date-fns\";\nimport CalendarIcon from \"@material-ui/icons/Event\";\nimport DatePicker from \"react-mobile-datepicker\";\n\n\nconst useStyles = makeStyles((theme) => ({\n input: {\n width: \"95%\",\n },\n\n paper: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: 10,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexDirection: \"column\",\n boxShadow: theme.shadows[5],\n padding: theme.spacing(2, 4, 3),\n maxWidth: 300,\n margin: \"0 auto\",\n marginTop: \"400px\",\n },\n\n keyboardDatePicker: {\n marginTop: 0,\n marginLeft: 10,\n marginRight: 14,\n '& .MuiIconButton-root': {\n display: 'none'\n },\n },\n\n datepickerModal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '95%',\n maxWidth: '420px',\n margin: '0 auto',\n },\n\n datepicker: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 320,\n '& .datepicker': {\n position: 'static',\n borderRadius: 10,\n padding: 15,\n },\n '& .datepicker.default .datepicker-header': {\n fontSize: 20\n },\n '& .datepicker.default .datepicker-navbar-btn': {\n fontSize: 18\n }\n },\n}));\n\nconst RegistrationForm = ({ setAuth, country, eventCode, type }) => {\n const { t } = useTranslation('registerPage');\n\n const isSchoolRegistry = type === \"open-schools\"\n\n const [loading, setLoading] = useState(false);\n const [registered, setRegistered] = useState(false);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [feedback, setFeedback] = useState(null);\n const [showPassword, setShowPassword] = useState(false);\n const [openDatePicker, setOpenDatePicker] = useState(false);\n const [isPassport, setIsPassport] = useState(false);\n const [plansOptions, setPlansOptions] = useState([]);\n\n const handleClickShowPassword = () => {\n setShowPassword(!showPassword);\n };\n\n const handleMouseDownPassword = (event) => {\n event.preventDefault();\n };\n\n const classes = useStyles();\n\n // Fields\n const [name, setName] = useState(\"\");\n const [docNumber, setDocNumber] = useState(\"\");\n const [plan, setPlan] = useState();\n const [email, setEmail] = useState(\"\");\n const [birthday, setBirthday] = useState({ date: new Date(\"01/01/2000\"), touched: false });\n const [password, setPassword] = useState(\"\");\n const [confirmPassword, setConfirmPassword] = useState(\"\");\n\n const handleSwitchDocType = () => {\n setIsPassport(!isPassport);\n setDocNumber(\"\");\n }\n\n const changeBirthday = (value) => {\n const newBirthday = { ...birthday };\n newBirthday.date = value;\n newBirthday.touched = true;\n\n setBirthday(newBirthday);\n };\n\n useEffect(() => {\n const fetchPlans = async () => {\n try {\n const { data: result } = await axios.get(\n `${process.env.REACT_APP_API_URL}/plans?familyPlan=true`\n );\n setPlansOptions(result)\n } catch (error) {\n console.error(error)\n }\n }\n fetchPlans()\n }, [])\n\n const onSubmit = async (event) => {\n event.preventDefault();\n if (!name || !email || !password || !confirmPassword) {\n setFeedback(t('VALIDATION_COMPLETE_ALL_FIELDS_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (!birthday.touched) {\n setFeedback(t('VALIDATION_BIRTHDATE_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (!plan) {\n setFeedback(\"Por favor selecionar uma escola\");\n setDialogOpen(true);\n return;\n }\n\n if (password !== confirmPassword) {\n setFeedback(t('VALIDATION_PASSWORD_MUST_BE_EQUAL_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (!isPassport) {\n // eslint-disable-next-line\n if (!/^\\d{3}\\.\\d{3}\\.\\d{3}\\-\\d{2}$/.test(docNumber)) {\n setFeedback(t('VALIDATION_CPF_NUMBER_ERROR'));\n setDialogOpen(true);\n return;\n }\n }\n\n if (!validateEmail(email)) {\n setFeedback(t('VALIDATION_EMAIL_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n await handleRequest();\n };\n\n const handleRequest = async () => {\n try {\n setLoading(true);\n\n const response = await axios.post(\n `${process.env.REACT_APP_API_URL}/client-app/register`,\n {\n name: name,\n birthday: moment(birthday.date).format(\"DD/MM/YYYY\"),\n email: email,\n password: password,\n documentType: isPassport ? 'passport' : 'cpf',\n documentNumber: docNumber,\n country: country,\n eventCode: eventCode,\n registerType: type,\n plan: plan\n }\n );\n\n localStorage.setItem(\"__session\", response.data.jwt);\n\n setUser(response.data?.user);\n setAuth(true);\n setRegistered(true);\n } catch (error) {\n const { isAxiosError } = error;\n\n if (isAxiosError) {\n if (error.response.data.message === \"Email already taken\") {\n alert(t('VALIDATION_EMAIL_ALREADY_USED_ERROR'));\n }\n if (error.response.data.message === \"All tickets sold\") {\n alert(t('VALIDATION_TICKETS_SOLD_ERROR'));\n }\n if (error.response.data.message === \"Invalid code\") {\n alert(t('VALIDATION_CODE_ERROR'));\n }\n setFeedback(error.response.data.message);\n setLoading(false);\n } else {\n alert(t('RECOVERY_EMAIL_MESSAGE'));\n setFeedback(t('SUBMIT_ERROR'));\n }\n\n console.log(`[RegistrationForm Error]: ${error}`);\n }\n };\n\n return (\n
\n {registered && }\n\n \n {t('SIGN_UP_DETAILS')}\n {\n isSchoolRegistry ?\n \n \n \n \n Escola\n setPlan(event.target.value)}\n label=\"Escola\"\n >\n {\n plansOptions.map(p => (\n\n {p.displayName}\n ))\n }\n \n \n \n : null\n }\n \n \n \n \n setName(event.target.value)}\n disabled={loading}\n />\n \n \n \n \n \n \n \n \n setEmail(event.target.value?.toLocaleLowerCase())\n }\n disabled={loading}\n />\n \n \n \n \n \n \n setOpenDatePicker(true)}\n label=\"Data de Nascimento do Responsável\"\n format=\"dd/MM/yyyy\"\n disabled={loading}\n value={birthday.date}\n InputProps={{ readOnly: true }}\n />\n \n \n \n \n {isPassport ?\n \n :\n \n }\n \n {\n isPassport ?\n setDocNumber(event.target.value)}\n >\n \n \n :\n setDocNumber(event.target.value)}\n >\n {() => (\n \n \n \n )}\n \n }\n \n \n \n \n \n \n {t('PASSWORD')}\n \n setPassword(event.target.value)}\n disabled={loading}\n endAdornment={\n \n \n {showPassword ? : }\n \n \n }\n inputProps={{\n autocomplete: \"off\",\n \"aria-autocomplete\": \"off\",\n }}\n />\n \n \n \n \n \n \n \n \n {t('PASSWORD_CONFIRMATION')}\n \n setConfirmPassword(event.target.value)}\n disabled={loading}\n endAdornment={\n \n \n {showPassword ? : }\n \n \n }\n inputProps={{\n autocomplete: \"off\",\n \"aria-autocomplete\": \"off\",\n }}\n />\n \n \n \n {loading ? (\n \n \n \n ) : (\n <>\n \n \n \n {t('SUBMIT')}\n \n \n \n \n \n {t('ALREADY_HAVE_AN_ACCOUNT')}\n \n \n \n )}\n \n \n {feedback}\n \n\n setOpenDatePicker(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n {\n changeBirthday(time);\n setOpenDatePicker(false);\n }}\n onCancel={() => setOpenDatePicker(false)}\n isPopup={false}\n showHeader={true}\n headerFormat=\"DD/MM/YYYY\"\n dateConfig={dateConfig}\n min={new Date(1910, 0, 1)}\n max={moment()._d}\n confirmText={t('BIRTHDATE_MODAL_CONFIRM_BUTTON')}\n cancelText={t('BIRTHDATE_MODAL_CANCEL_BUTTON')}\n />\n
\n
\n \n
\n );\n};\n\nexport default RegistrationForm;","import React, { useEffect, useState } from \"react\";\nimport { ImageContainer } from './Components';\nimport Header from \"../../components/Header/Header\";\nimport RegistrationForm from \"./RegistrationForm/RegistrationForm\";\nimport { useTranslation } from 'react-i18next';\nimport JivoButton from \"../../components/JivoButton\";\n\nconst RegisterSchools = ({ setAuth }) => {\n const { t } = useTranslation('registerPage');\n const [showJivoButton, setShowJivoButton] = useState(true);\n\n const handleHideJivoButton = () => {\n setShowJivoButton(false);\n };\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n return (\n <>\n \n \n \n \n \n\n {showJivoButton && }\n \n );\n};\n\nexport default RegisterSchools;","import styled from \"styled-components\";\n\nconst ImageContainer = styled.div`\n display: flex;\n justify-content: center;\n padding: 15px;\n margin-top: 35px;\n box-sizing: border-box;\n`;\n\n\nexport {\n ImageContainer,\n};","import styled from \"styled-components\";\n\nconst FormContainer = styled.div`\n width: 80%;\n margin: 0 auto;\n position: relative;\n`;\n\nconst Title = styled.h4`\n color: #5D5D5D;\n font-size: 16px;\n margin: 0;\n margin-bottom: 10px; \n`;\n\nconst FieldContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : '0px'};\n`;\n\nconst TextFieldContainer = styled.div`\n margin-bottom: 15px;\n margin-left: 10px;\n width: 100%;\n`;\n\nconst ButtonsContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\n\nconst MainButton = styled.button`\n background-color: #4AB6FF;\n border: 1px solid #3893d0;\n border-radius: 23px;\n color: white;\n font-weight: bold;\n width: 100%;\n height: 40px;\n text-transform: uppercase;\n transition: all 350ms cubic-bezier(.175, .885, .32, 1.275);\n margin-top: 10px;\n cursor: pointer;\n\n &:hover {\n background-color: #4AA6FF;\n }\n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`;\n\nexport {\n FormContainer,\n Title,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n CenterColumn\n};","import React, { useState } from \"react\";\nimport { Redirect } from 'react-router-dom';\nimport axios from \"axios\";\nimport { setUser } from \"../../utils/user\";\nimport { useTranslation } from 'react-i18next';\nimport {\n FormContainer,\n Title,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n CenterColumn\n} from \"./Components\";\nimport {\n InputLabel,\n IconButton,\n InputAdornment,\n Input,\n TextField,\n FormControl,\n makeStyles,\n CircularProgress,\n Typography,\n} from \"@material-ui/core\";\nimport Dialog from \"../Dialog/Dialog\";\nimport {\n AlternateEmail,\n} from \"@material-ui/icons/\";\nimport Visibility from \"@material-ui/icons/Visibility\";\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\nimport LockIcon from \"@material-ui/icons/Lock\";\nimport { validateEmail } from \"../../utils/validator\";\n\nconst useStyles = makeStyles((theme) => ({\n input: {\n width: '95%',\n },\n}));\n\nexport const ResetLoginDataForm = ({\n setAuth,\n temporaryJwt,\n}) => {\n const { t } = useTranslation('resetLoginDataPage');\n const classes = useStyles();\n\n const [loading, setLoading] = useState(false);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [feedback, setFeedback] = useState(null);\n const [showPassword, setShowPassword] = useState(false);\n const [logged, setLogged] = useState(false);\n\n // Fields\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [confirmPassword, setConfirmPassword] = useState(\"\");\n\n const handleClickShowPassword = () => {\n setShowPassword(!showPassword);\n };\n\n const handleMouseDownPassword = (event) => {\n event.preventDefault();\n };\n\n const onSubmit = async (event) => {\n try {\n if (!email || !password || !confirmPassword) {\n setFeedback(t('VALIDATION_COMPLETE_ALL_FIELDS_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (!validateEmail(email)) {\n setFeedback(t('VALIDATION_EMAIL_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (password !== confirmPassword) {\n setFeedback(t('VALIDATION_PASSWORD_MUST_BE_EQUAL_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (!temporaryJwt) {\n throw new Error('Missing token');\n };\n\n event.preventDefault();\n setLoading(true);\n\n const body = {\n email,\n password,\n };\n\n const config = {\n headers: {\n Authorization: `Bearer ${temporaryJwt}`,\n }\n }\n\n const result = await axios.patch(\n `${process.env.REACT_APP_API_URL}/client-app/enteprise-email`,\n body,\n config\n );\n\n localStorage.setItem('__session', result.data.jwt);\n setUser(result.data.user);\n setAuth(true);\n setLogged(true);\n } catch (error) {\n if (error.message === 'Missing token') {\n setFeedback(t('MISSING_TOKEN_ERROR'))\n setDialogOpen(true);\n\n console.error(`[ResetLoginDataForm handleSubmit] ${error}`);\n return;\n };\n\n setFeedback(t('SUBMIT_ERROR'));\n setDialogOpen(true);\n\n console.error(`[ResetLoginDataForm handleSubmit] ${error}`);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n
\n {logged && }\n \n \n {t('RESET_LOGIN_DATA')}\n \n\n \n \n \n \n \n setEmail(event.target.value?.toLocaleLowerCase())\n }\n disabled={loading}\n />\n \n \n \n\n \n \n \n \n \n {t('NEW_PASSWORD')}\n \n setPassword(event.target.value)}\n disabled={loading}\n endAdornment={\n \n \n {showPassword ? : }\n \n \n }\n inputProps={{\n autocomplete: \"off\",\n \"aria-autocomplete\": \"off\",\n }}\n />\n \n \n \n\n \n \n \n \n \n {t('NEW_PASSWORD_CONFIRMATION')}\n \n setConfirmPassword(event.target.value)}\n disabled={loading}\n endAdornment={\n \n \n {showPassword ? : }\n \n \n }\n inputProps={{\n autocomplete: \"off\",\n \"aria-autocomplete\": \"off\",\n }}\n />\n \n \n \n\n {loading ? (\n \n \n \n ) : (\n \n \n \n {t('SUBMIT')}\n \n \n \n )}\n \n\n \n {feedback}\n \n
\n );\n};","import React, {\n useEffect,\n useState,\n} from \"react\";\nimport { useTranslation } from 'react-i18next';\nimport { ImageContainer } from './Components';\nimport Header from \"../../components/Header/Header\";\nimport { ResetLoginDataForm } from \"../../components/ResetLoginDataForm\";\nimport { useLocation } from \"react-router-dom\";\nimport JivoButton from \"../../components/JivoButton\";\n\nconst ResetLoginData = ({ setAuth }) => {\n const { t } = useTranslation('resetLoginDataPage');\n const location = useLocation();\n const [showJivoButton, setShowJivoButton] = useState(true);\n\n const handleHideJivoButton = () => {\n setShowJivoButton(false);\n };\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n return (\n <>\n \n \n \n \n \n\n {showJivoButton && }\n \n );\n}\n\nexport default ResetLoginData;\n","import styled from \"styled-components\";\n\nconst ImageContainer = styled.div`\n display: flex;\n justify-content: center;\n padding: 15px;\n margin-top: 35px;\n box-sizing: border-box;\n`;\n\n\nexport {\n ImageContainer,\n};","import styled from \"styled-components\";\n\nconst FormContainer = styled.div`\n width: 80%;\n margin: 0 auto;\n position: relative;\n`;\n\nconst Title = styled.h4`\n color: #5D5D5D;\n font-size: 16px;\n margin: 0;\n margin-bottom: 10px; \n`;\n\nconst FieldContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: ${props => props.marginBottom ? props.marginBottom : '0px'};\n`;\n\nconst TextFieldContainer = styled.div`\n margin-bottom: 15px;\n margin-left: 10px;\n width: 100%;\n`;\n\nconst ButtonsContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n margin-top: 40px;\n`;\n\nconst MainButton = styled.button`\n background-color: #4AB6FF;\n border: 1px solid #3893d0;\n border-radius: 23px;\n color: white;\n font-weight: bold;\n width: 100%;\n height: 40px;\n text-transform: uppercase;\n transition: all 350ms cubic-bezier(.175, .885, .32, 1.275);\n margin-top: 10px;\n cursor: pointer;\n\n &:hover {\n background-color: #4AA6FF;\n }\n`;\n\nconst CenterColumn = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`;\n\nexport {\n FormContainer,\n Title,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n CenterColumn\n};","import React, { useState, useEffect } from \"react\";\nimport { Redirect } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport axios from \"axios\";\nimport { setUser } from \"../../utils/user\";\nimport {\n FormContainer,\n Title,\n FieldContainer,\n TextFieldContainer,\n ButtonsContainer,\n MainButton,\n CenterColumn\n} from \"./Components\";\nimport {\n IconButton,\n TextField,\n FormControl,\n makeStyles,\n CircularProgress,\n Typography,\n Modal,\n Backdrop,\n Fade,\n Select,\n InputLabel,\n MenuItem,\n} from \"@material-ui/core\";\nimport Dialog from \"../Dialog/Dialog\";\nimport {\n AccountCircle,\n Event,\n Language,\n AssignmentInd,\n FlightTakeoff,\n EventNote,\n} from \"@material-ui/icons\";\nimport {\n MuiPickersUtilsProvider,\n KeyboardDatePicker,\n} from \"@material-ui/pickers\";\nimport pt from \"date-fns/locale/pt\";\nimport DateFnsUtils from \"@date-io/date-fns\";\nimport DatePicker from \"react-mobile-datepicker\";\nimport ReactInputMask from \"react-input-mask\";\nimport moment from \"moment\";\nimport { dateConfig } from \"../../utils/dateConfig\";\n\nconst useStyles = makeStyles(() => ({\n input: {\n width: '95%',\n },\n\n keyboardDatePicker: {\n marginTop: 0,\n marginLeft: 10,\n marginRight: 14,\n '& .MuiIconButton-root': {\n display: 'none'\n },\n },\n\n datepickerModal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '95%',\n maxWidth: '420px',\n margin: '0 auto',\n },\n\n datepicker: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 320,\n '& .datepicker': {\n position: 'static',\n borderRadius: 10,\n padding: 15,\n },\n '& .datepicker.default .datepicker-header': {\n fontSize: 20\n },\n '& .datepicker.default .datepicker-navbar-btn': {\n fontSize: 18\n }\n },\n\n select: {\n '& .MuiSelect-select': {\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n }\n },\n\n menuItem: {\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n },\n\n menuItemImg: {\n width: 20,\n borderRadius: 25,\n },\n}));\n\nexport const VoegolRegisterUpdateForm = ({\n setAuth,\n temporaryJwt,\n countryDestination,\n nextTripDate,\n}) => {\n const { t } = useTranslation('voeGolRegisterUpdatePage');\n const classes = useStyles();\n\n const [loading, setLoading] = useState(false);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [feedback, setFeedback] = useState(null);\n const [logged, setLogged] = useState(false);\n const [openBirthDatePicker, setOpenBirthDatePicker] = useState(false);\n const [openTravelDatePicker, setOpenTravelDatePicker] = useState(false);\n const [isPassport, setIsPassport] = useState(false);\n\n // Fields\n const [name, setName] = useState(\"\");\n const [docNumber, setDocNumber] = useState(\"\");\n const [birthday, setBirthday] = useState({ date: new Date(\"01/01/2000\"), touched: false });\n const [flightNumber, setFlightNumber] = useState(\"\");\n const [flightOptions, setFlightOptions] = useState([]);\n const [travelDate, setTravelDate] = useState(nextTripDate ? new Date(nextTripDate) : new Date());\n\n const handleSwitchDocType = () => {\n setIsPassport(!isPassport);\n setDocNumber(\"\");\n }\n\n const changeBirthday = (value) => {\n const newBirthday = { ...birthday };\n newBirthday.date = value;\n newBirthday.touched = true;\n\n setBirthday(newBirthday);\n };\n\n const onSubmit = async (event) => {\n try {\n if (!name || !docNumber || !flightNumber || !travelDate) {\n setFeedback(t('VALIDATION_COMPLETE_ALL_FIELDS_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (!birthday.touched) {\n setFeedback(t('VALIDATION_BIRTHDATE_ERROR'));\n setDialogOpen(true);\n return;\n }\n\n if (!isPassport) {\n // eslint-disable-next-line\n if (!/^\\d{3}\\.\\d{3}\\.\\d{3}\\-\\d{2}$/.test(docNumber)) {\n setFeedback(t('CPF_DATA_ERROR'));\n setDialogOpen(true);\n return;\n }\n }\n\n if (!temporaryJwt) {\n throw new Error('Missing token');\n };\n\n event.preventDefault();\n setLoading(true);\n\n const selectedFlight = flightOptions\n .find(flight => flight.flightNr === flightNumber);\n const stringifyTravelDate = moment(travelDate).format('YYYY-MM-DD');\n const time = selectedFlight.departureTime;\n\n const flightDatetime = `${stringifyTravelDate}T${time}Z`;\n\n const body = {\n name,\n birthday: moment(birthday.date).format(\"DD/MM/YYYY\"),\n documentType: isPassport ? 'passport' : 'cpf',\n documentNumber: docNumber,\n updatedTravelData: {\n dateOfArrival: flightDatetime,\n flightNumber,\n destination: countryDestination,\n }\n };\n\n const config = {\n headers: {\n Authorization: `Bearer ${temporaryJwt}`,\n }\n };\n\n const result = await axios.patch(\n `${process.env.REACT_APP_API_URL}/client-app/user-data`,\n body,\n config\n );\n\n localStorage.setItem('__session', result.data.jwt);\n setUser(result.data.user);\n setAuth(true);\n setLogged(true);\n } catch (error) {\n if (error.message === 'Missing token') {\n setFeedback(t('MISSING_TOKEN_ERROR'));\n setDialogOpen(true);\n\n console.error(`[VoeGolRegisterUpdateForm handleSubmit] ${error}`);\n return;\n };\n\n setFeedback(t('SUBMIT_ERROR'));\n setDialogOpen(true);\n console.error(`[VoeGolRegisterUpdateForm handleSubmit] ${error}`);\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n const getFlightList = async () => {\n try {\n const config = {\n headers: {\n Authorization: `Bearer ${temporaryJwt}`,\n }\n };\n\n const { data } = await axios.get(`${process.env.REACT_APP_API_URL}/client-app/flight-list`, config);\n\n const availableFlightsByCountryDestination = data\n .find(flight => flight.country === countryDestination);\n\n if (!availableFlightsByCountryDestination) {\n const allFlights = [];\n\n data.forEach((travel) => {\n travel.flights.forEach(flight => allFlights.push(flight))\n });\n\n setFlightOptions(allFlights);\n return;\n };\n\n setFlightOptions(availableFlightsByCountryDestination.flights);\n } catch (error) {\n setFeedback(t('GET_FLIGHT_DATA_ERROR'));\n setDialogOpen(true);\n\n console.error(`[getFlightList] ${error}`)\n }\n };\n\n getFlightList();\n //eslint-disable-next-line\n }, []);\n\n return (\n
\n {logged && }\n \n \n {t('UPDATE_YOUR_DATA')}\n \n\n \n \n \n \n setName(event.target.value)}\n disabled={loading}\n />\n \n \n \n\n \n \n \n setOpenBirthDatePicker(true)}\n label={t('BIRTHDATE')}\n format=\"dd/MM/yyyy\"\n disabled={loading}\n value={birthday.date}\n InputProps={{ readOnly: true }}\n />\n \n \n\n \n \n {isPassport ?\n \n :\n \n }\n \n {\n isPassport ?\n setDocNumber(event.target.value)}\n >\n \n \n :\n setDocNumber(event.target.value)}\n >\n {() => (\n \n \n \n )}\n \n }\n \n\n \n \n \n \n \n {t('FLIGHT_NUMBER')}\n \n setFlightNumber(event.target.value)}\n disabled={loading}\n >\n \n None\n \n {flightOptions.map((flightOption, index) => (\n \n {flightOption.flightNr}\n \n ))}\n \n \n \n \n\n \n \n \n setOpenTravelDatePicker(true)}\n label={t('FLIGHT_DATE')}\n format=\"dd/MM/yyyy\"\n disabled={loading}\n value={travelDate}\n InputProps={{ readOnly: true }}\n />\n \n \n\n {loading ? (\n \n \n \n ) : (\n \n \n \n {t('SUBMIT')}\n \n \n \n )}\n \n\n \n {feedback}\n \n\n setOpenBirthDatePicker(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n {\n changeBirthday(time);\n setOpenBirthDatePicker(false);\n }}\n onCancel={() => setOpenBirthDatePicker(false)}\n isPopup={false}\n showHeader={true}\n headerFormat=\"DD/MM/YYYY\"\n dateConfig={dateConfig}\n min={new Date(1910, 0, 1)}\n max={moment()._d}\n confirmText={t('BIRTHDATE_MODAL_CONFIRM_BUTTON')}\n cancelText={t('BIRTHDATE_MODAL_CANCEL_BUTTON')}\n />\n
\n
\n \n\n setOpenTravelDatePicker(false)}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n \n
\n {\n setTravelDate(date);\n setOpenTravelDatePicker(false);\n }}\n onCancel={() => setOpenTravelDatePicker(false)}\n isPopup={false}\n showHeader={true}\n headerFormat=\"DD/MM/YYYY\"\n dateConfig={dateConfig}\n min={new Date()}\n confirmText={t('BIRTHDATE_MODAL_CONFIRM_BUTTON')}\n cancelText={t('BIRTHDATE_MODAL_CANCEL_BUTTON')}\n />\n
\n
\n \n
\n );\n};","import React, {\n useEffect,\n useState,\n} from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { ImageContainer } from './Components';\nimport Header from \"../../components/Header/Header\";\nimport { VoegolRegisterUpdateForm } from \"../../components/VoegolRegisterUpdateForm\";\nimport JivoButton from \"../../components/JivoButton\";\n\nconst VoegolRegisterUpdate = ({ setAuth }) => {\n const { t } = useTranslation('voeGolRegisterUpdatePage');\n const location = useLocation();\n const [showJivoButton, setShowJivoButton] = useState(true);\n\n const handleHideJivoButton = () => {\n setShowJivoButton(false);\n };\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n return (\n <>\n \n \n \n \n \n\n {showJivoButton && }\n \n );\n}\n\nexport default VoegolRegisterUpdate;\n","import React, { useState, useEffect } from \"react\";\nimport { Switch, Route, Redirect } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport { request } from \"./utils/request\";\nimport { setUser } from \"./utils/user\";\nimport './i18n';\n\n// Components\nimport ProtectedRoute from \"./components/ProtectedRoute/ProtectedRoute\";\n\n// Containers\nimport ForgotPassword from \"./containers/ForgotPassword/ForgotPassword\";\nimport Index from \"./containers/Index/Index\";\nimport NotFound from \"./containers/NotFound/NotFound\";\nimport Secure from \"./containers/Secure/Secure\";\nimport Loading from \"./containers/Loading/Loading\";\nimport ConfirmNewPassword from \"./containers/ConfirmNewPassword/ConfirmNewPassword\";\nimport Register from \"./containers/Register/Register\";\nimport RegisterSpecial from \"./containers/RegisterBlendway/Register\";\nimport RegisterSchools from \"./containers/RegisterSchools/Register\";\nimport ResetLoginData from \"./containers/ResetLoginData/ResetLoginData\";\nimport VoegolRegisterUpdate from \"./containers/VoegolRegisterUpdate/VoegolRegisterUpdate\";\n\nconst Wrapper = styled.section`\n width: 100%;\n margin: 0;\n\n @media (min-width: 450px) {\n width: 450px;\n margin: 0 auto;\n }\n`;\n\n//teste\nconst Website = ({ location: { pathname }, ...props }) => {\n const [isAuth, setAuth] = useState(undefined);\n\n useEffect(() => {\n const getUserFromAPI = async () => {\n try {\n const { data: user } = await request.get(\"/client-app/me\");\n setUser(user);\n setAuth(true);\n } catch (error) {\n setAuth(false);\n console.log(\"[Website] Error:\", error);\n }\n };\n getUserFromAPI();\n }, []);\n\n let securePath = pathname.includes(\"secure\") ? pathname : \"/secure\";\n\n return (\n \n \n {\n if (isAuth === undefined) {\n return ;\n } else if (isAuth === false) {\n return ;\n } else {\n return ;\n }\n }}\n />\n (\n }\n />\n )}\n />\n }\n />\n }\n /> \n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n } />\n \n \n );\n};\n\nexport default Website;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { BrowserRouter as Router, Route } from \"react-router-dom\";\nimport \"./index.css\";\nimport Website from \"./Website\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport { loadStripe } from \"@stripe/stripe-js\"\nimport { Elements } from '@stripe/react-stripe-js'\n\nconst stripePromise = loadStripe(process.env.REACT_APP_STRIPE_KEY);\n\ntry {\n require(\"dotenv\").config();\n} catch (_) {\n // Really, a try/catch without catch ????\n}\n\nconst root = document.getElementById(\"root\");\n\nconst index = (\n \n \n } />\n \n \n);\n\nReactDOM.render(index, root);\n\nserviceWorker.register();\n"],"sourceRoot":""}