{"version":3,"sources":["assets/svg/guincho.svg","assets/svg/logo_p_picktow.svg","assets/svg/bateria.svg","assets/svg/chaveiro.svg","assets/svg/gasolina.svg","assets/svg/pneu.svg","assets/svg/bus.svg","assets/svg/caminhao.svg","assets/svg/maquina.svg","assets/svg/moto.svg","assets/svg/passeio.svg","assets/svg/utilitario.svg","assets/svg/vuc.svg","assets/svg/whats-app.svg","assets/images/robot.png","assets/svg/vetor_login-user.svg","assets/svg/stop.svg","assets/svg/cars.svg","assets/svg/triangle.svg","assets/svg/fix.svg","assets/svg/shield.svg","assets/svg/stopwatch.svg","assets/svg/canceled.svg","assets/svg/camera.svg","assets/svg/like.svg","assets/svg/sad.svg","assets/images/hold-mobile-pix.png","components/ToastContainer/Toast/styles.ts","components/ToastContainer/Toast/index.tsx","components/ToastContainer/style.ts","types.ts","components/ToastContainer/index.tsx","services/hooks/toast.tsx","store/ducks/auth.js","store/ducks/order.js","store/ducks/customerBenefit.ts","store/ducks/associationBalance.ts","store/ducks/snapShot.ts","store/ducks/index.js","services/api.js","config/messages.ts","services/handleErrors.js","services/history.js","store/sagas/auth.js","store/sagas/customerBenefitSaga.ts","store/sagas/index.js","store/persisties/SetTransform.js","store/index.js","store/persisties/persistReducers.js","assets/svg/logo_p_picktow.tsx","styles/colors.ts","pages/_layouts/auth/styles.ts","pages/_layouts/auth/index.tsx","components/Menu/styles.ts","components/Menu/index.tsx","pages/_layouts/default/styles.ts","config/firebase.ts","services/hooks/useFirestore.ts","pages/_layouts/default/index.tsx","pages/_layouts/login/styles.ts","pages/_layouts/login/index.tsx","routes/Route.tsx","components/Button/styles.ts","components/Button/index.tsx","components/InputComponent/styles.ts","components/InputComponent/index.tsx","pages/Login/styles.ts","util/format.js","util/validate.js","pages/ForgotPassword/styles.ts","pages/ForgotPasswordCode/styles.ts","pages/ChangePassword/styles.js","pages/NotFound/styles.js","pages/NotFound/index.js","util/getIcon.ts","services/hooks/useServices.ts","pages/NewOpportunity/components/Title/index.tsx","components/SimpleBottomNavigation/index.tsx","components/Loading/styles.ts","components/Loading/index.tsx","components/SimpleBottomAction/index.tsx","components/HasOrderInFirestore/styles.ts","components/HasOrderInFirestore/index.tsx","pages/NewOpportunity/pages/OpportunityServices/index.tsx","services/hooks/useQuizAssociation.ts","pages/NewOpportunity/components/ModalCancel/index.tsx","pages/NewOpportunity/styles.ts","pages/NewOpportunity/pages/OpportunityVehicles/components/VehicleRegistration/styles.ts","pages/NewOpportunity/pages/OpportunityVehicles/components/VehicleRegistration/index.tsx","services/hooks/useFipe.ts","components/ModalNewVehicle/styles.ts","components/ModalNewVehicle/index.tsx","pages/NewOpportunity/pages/OpportunityVehicles/index.tsx","services/hooks/useCustomerVehicles.ts","pages/NewOpportunity/pages/OpportunityAdditionalInformation/index.tsx","pages/NewOpportunity/util/getAddress.ts","pages/NewOpportunity/components/LocationSearchInput/index.tsx","pages/NewOpportunity/pages/OpportunityMap/styles.ts","services/hooks/useAssociationBalance.ts","pages/NewOpportunity/pages/OpportunityMap/index.tsx","pages/NewOpportunity/pages/OpportunityMap/components/GridContainer/index.tsx","services/hooks/useNewOrder.ts","pages/SetEmail/styles.ts","pages/SetEmail/index.tsx","pages/SetEmailConfirm/styles.ts","pages/EmailRequired/styles.ts","pages/EmailRequired/index.tsx","pages/ConfirmSignUp/styles.ts","pages/ConfirmSignUp/index.tsx","pages/Initial/styles.ts","pages/UpdateOrder/styles.ts","pages/UpdateOrder/index.tsx","pages/WaitingSearchingContractor/styles.ts","components/ButtonCancel/styles.ts","components/ButtonCancel/index.tsx","components/ModalCancel/styles.ts","components/ModalCancel/index.tsx","pages/WaitingSearchingContractor/index.tsx","pages/RequestCanceledByCustomer/styles.ts","pages/RequestCanceledByCustomer/index.tsx","pages/Tracking/styles.ts","services/hooks/useContractor.ts","components/ButtonCall/styles.ts","components/ButtonCall/index.tsx","pages/Tracking/index.tsx","config/constants.ts","pages/OrdersInExecution/styles.ts","pages/OrdersInExecution/index.tsx","pages/StatusOrder/index.tsx","pages/WaitingContractorPictures/styles.ts","pages/WaitingContractorPictures/index.tsx","pages/ContractorEvaluation/styles.ts","components/Evaluation/styles.ts","components/Evaluation/index.tsx","pages/ContractorEvaluation/index.tsx","pages/RouteConfirmation/index.tsx","pages/Pix/styles.ts","pages/Pix/index.tsx","pages/RequestCanceled/styles.ts","pages/RequestCanceled/index.tsx","pages/SignUp/styles.ts","routes/index.tsx","pages/Initial/index.tsx","pages/Login/index.tsx","pages/ForgotPassword/index.tsx","pages/ForgotPasswordCode/index.tsx","pages/SignUp/index.tsx","pages/ChangePassword/index.js","pages/SetEmailConfirm/index.tsx","styles/global.ts","components/UserOrders/index.tsx","App.tsx","index.tsx"],"names":["module","exports","toastTypeVariations","info","css","success","error","Container","styled","animated","div","props","type","hasdescription","icons","size","Toast","message","style","removeToast","useToast","useEffect","timer","setTimeout","id","clearTimeout","Number","description","title","onClick","OpportunityStatusRequest","OpportunityGenericStatus","OpportunityResponsePTBR","AllocationContractorResponsePTBR","StatusPTBR","PaymentTypePTBR","topScroll","ToastContainer","messages","useState","scrollPosition","setScrollPosition","listenToScroll","useCallback","window","pageYOffset","addEventListener","removeEventListener","messagesWithTransitions","useTransition","from","right","opacity","enter","leave","map","item","key","ToastContext","createContext","ToastProvider","children","setMessages","addToast","toast","v4","state","filter","Provider","value","length","context","useContext","Error","Types","INITIAL_STATE","client","authorization","user","loading","resendAlias","signUp","undefined","data","refreshTokenSuccess","logout","logoutSuccess","userPopulateToken","tokenDecoded","resendConfirmationCode","username","payload","changePasswordRequest","currentPassword","newPassword","clearError","resendAliasConfirmationCodeRequest","resendAliasConfirmationCodeClear","signUpSuccess","signUpConfirmation","CustomerBenefitType","customerId","customerName","uuid","service","vehicle","benefit","quizAnswers","separateService","needClear","clearOrder","setOrderVehicle","setOrderQuizAnswers","associationId","serviceId","socialSecurity","vehicleId","vehicleBenefits","vin","AssociationBalanceType","account_statement","available_balance","setBalance","clearBalance","SnapshotType","snapShot","errorMessage","clearSnapshot","reducers","combineReducers","auth","action","produce","draft","Object","entries","forEach","confirmCodeSignUp","order","val","customerBenefit","ON_REQUEST","ON_SUCESS","ON_FAILURE","ON_RESET","CLEAR_BENEFITS","associationBalance","snapshot","findIndex","currentItem","order_id","status","updated","api","axios","create","baseURL","process","loginApi","password","post","setAuthorizationHeader","token","defaults","headers","common","Authorization","interceptors","response","use","originalRequest","config","exp","refresh_token","store","getState","Promise","resolve","reject","then","dispatch","id_token","catch","err","request","forgotApi","resetPasswordApi","resetCode","new_password","reset_code","resendConfirmationCodeApi","changePasswordApi","old_password","getVehicleBySocialSecurityApi","get","getQuizzByAssociationServiceApi","getQuizzByServiceApi","loadVehicleBenefits","loadVehicleBenefitQuota","getFipeManufacturersByCategoryApi","categoryName","getFipeVehiclesByManufacturersAndCategoryApi","manufacturerId","getFipeModelsByVehiclesAndManufacturersAndCategoryApi","createCustomerVehicleApi","changePhoneNumberApi","phone_number","access_token","patch","resendAliasConfirmationCodeApi","changeEmailConfirmation","userName","confirmation_code","confirmation_type","confirmSignUpApi","confirmationCode","loadAssociationBalance","cancelOrderByReasonApi","orderId","getIncomingByContractorIdApi","contractorId","signUpApi","handleApiErrorResponse","defaultMessage","errors","Array","isArray","msgTranslated","errorItem","uniqMessages","Set","stringErrors","join","applicationErrorMessage","apiError","errorsMessages","errorDescription","apiResponseStatus","handledMessage","history","createBrowserHistory","forgotSaga","setAuthorizationHeaderSaga","updateAuthDataSaga","logoutSaga","userPopulateSaga","resetPasswordSaga","resendConfirmationCodeSaga","changePasswordSaga","loginSaga","resendAliasConfirmationCodeSaga","signUpSaga","call","put","authData","expires_in","expiration_date","Date","getTime","jwtDecode","push","errorMessages","all","takeLatest","AuthTypes","loadBenefitSaga","benefitsSaga","benefits_date_created","created_at","customer_id","benefits_quantity","quantity","service_id","benefitQuota","ActionTypes","benefits","quota_expended","console","log","takeEvery","rootSaga","authSagas","SetTransform","createTransform","inboundState","middlewares","sagaMiddleware","createSagaMiddleware","sagaMonitor","composer","compose","applyMiddleware","createStore","persistReducer","storage","whitelist","transforms","persistor","persistStore","run","sagas","LogoPicktow","fill","rest","xmlns","width","height","viewBox","xmlSpace","transform","clipPath","d","strokeLinecap","stroke","strokeWidth","strokeDasharray","strokeDashoffset","strokeLinejoin","strokeMiterlimit","fillRule","vectorEffect","colors","blue","lightBlue","darkYellow","green","lightGrey","grey","white","black","red","darkBlue","picktowBlue","done","strokeColor","backButton","purple","orange","pureRed","pureYellow","pureLightBlue","pureGreen","darkGolden","lightGreyNew","background","hexToRgb","hex","result","exec","parseInt","rgbaString","alpha","fixBoundariesIfNeeded","Math","min","max","formatFloat","toFixed","formatInt","round","rgbaColors","Colors","RgbaColors","primary","secondary","textBody","textFeatured","textHighlight","textLink","rgba","DivContainer","Div","AuthLayout","marginTop","Link","BaseLink","attrs","activeStyle","color","Button","a","Menu","toggleDrawer","menuIsOpen","useDispatch","handleLink","url","Item","MenuItem","List","to","text","icon","AddCircleOutline","VpnKey","ListItem","ListItemIcon","ExitToApp","ListItemText","Tooltip","placement","disableHoverListener","AppBar","BaseAppBar","BoxLogo","Main","header","main","app","initializeApp","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","measurementId","getAnalytics","db","getFirestore","useFirestore","collectionPath","documentPath","setSnapshot","snapshotQuery","setSnapshotQuery","onSnapshot","doc","exists","setDoc","getDocument","collectionPathParam","documentPathParam","docRef","getDoc","setDocument","options","merge","removeDocument","deleteDoc","snapshotWithWhere","queryConstraints","q","query","collection","unsubscribe","querySnapshot","empty","docs","useStyles","makeStyles","theme","appBar","zIndex","drawer","DefaultLayout","showFirebaseOrder","classes","open","setOpen","hasOrderInFirestore","setHasOrderInFirestore","useHistory","useSelector","where","snapshotFiltered","docData","customer_survey","license_plate","position","className","Toolbar","IconButton","edge","aria-label","src","alt","PlayCircleOutline","fontSize","SwipeableDrawer","onClose","onOpen","LoginLayout","RouterWrapper","Component","component","layout","Layout","authenticated","render","BaseButton","button","filled","border","backgroundColor","Icon","BaseIcon","label","disabled","Refresh","InputText","TextField","Input","BaseInput","forwardRef","ref","placeholder","name","helperText","inputRef","InputComponent","Label","Typography","variant","fontWeight","marginHorizontal","textAlign","FormLogin","form","Content","Header","Fields","Divider","removeFormat","replace","substring","formatCPF","valor","formatCNPJ","s","formatUsername","onlyCNPJ","onlyCPF","textFormated","substr","replaceSpecialChars","str","normalize","toLowerCase","formatCellPhone","phone","trim","onlyNumbers","removeSpaces","validCPF","cpf","resto","soma","i","validCNPJ","cnpj","tamanho","numeros","digitos","pos","charAt","resultado","validPassword","match","validEmail","email","img","Form","Title","h1","NotFound","getIconService","ChaveiroIcon","PneuIcon","GasolinaIcon","BateriaIcon","GuinchoIcon","getIconVehicle","UtilitarioIcon","PasseioIcon","MotoIcon","CaminhaoIcon","BusIcon","VUCIcon","MaquinaIcon","useServices","services","setServices","loadingServices","setLoadingServices","finally","SimpleBottomNavigation","Paper","bottom","left","elevation","BottomNavigation","showLabels","Loading","CircularProgress","withStyles","child","rippleVisible","animation","transitions","easing","easeInOut","BottomNavigationAction","selected","TouchRippleProps","center","ChevronRight","HasOrderInFirestore","hystory","OpportunityServices","setService","location","useLocation","pathname","serviceState","uuidV4","handleListItemClick","handleSubmit","setOrderService","Card","CardContent","ListItemAvatar","Avatar","useQuizAssociation","loadQuiz","setLoadQuiz","getQuiz","container","display","flex","flexDirection","alignItems","justifyContent","ModalCancel","onConfirm","onCancel","useTheme","fullscreen","useMediaQuery","breakpoints","down","Dialog","maxWidth","fullScreen","disableScrollLock","_","DialogTitle","DialogActions","autoFocus","textTransform","TitleModal","CustomAutocomplete","Autocomplete","clearText","noOptionsText","openText","closeText","VehicleStatus","ACTIVE","INACTIVE","SUSPENDED","PENDING","VehicleRegistration","modalVehicleIsOpen","fipeModel","setFipeModel","initialData","getInfo","category","manufacturer","loadingCategory","setLoadingCategory","categoryTypes","setCategoryTypes","manufacturerTypes","setManufacturerTypes","loadingManufacturer","setLoadingManufacturer","vehiclesTypes","setVehiclesTypes","loadingVehicles","setLoadingVehicles","modelsTypes","setModelsTypes","loadingModels","setLoadingModels","categoryFipe","categoryId","isSpecialVehicle","includes","getManufacturers","getVehicles","manufactureId","getModels","fipe","loadFipeTypes","useFipe","fipeTypes","loadingFipe","loadingVehiclesFipe","handleChangeSelect","upperCase","newValue","toUpperCase","categoryFound","find","manufacturerFound","manufacture","manufacturerDescription","vehicleFound","vehicleDescription","modelFound","model","modelDescription","statusFound","licensePlate","city","getOptionLabel","renderInput","params","onChange","category_error","manufacturer_error","vehicle_error","model_error","FormHelperText","target","inputProps","maxLength","license_plate_error","color_error","city_error","state_error","DialogContent","align","Modal","onCustom","question","haveCustomButton","buttonNegative","buttonPositive","buttonCustom","disabledConfirmButton","loadingConfirmButton","disabledCustomButton","loadingCustomButton","contentFlex","contentAlign","hasContent","contentFlexAlign","OpportunityVehicles","selectedVehicle","setSelectedVehicle","modalCancel","setModalCancel","openModal","setOpenModal","setModalVehicleIsOpen","vehicleInitialData","setVehicleInitialData","newVehicleId","setNewVehicleId","customerVehicles","setCustomerVehicles","getVehicleBySocialSecurity","useCustomerVehicles","association_id","quiz","association_code","handleGoBack","goBack","handleCancel","handleConfirmCancel","selectInactiveVehicle","handleCancelInactive","handleRegisterVehicle","keys","fipe_data","model_id","manufacture_id","model_year_id","social_security","vehicle_customer_type_id","model_year","JSON","stringify","split","pop","marginLeft","vehicle_customer_type_description","ChevronLeft","Cancel","OpportunityAdditionalInformation","quizPicktow","URLSearchParams","search","formattedQuiz","setFormattedQuiz","formResponse","setFormResponse","setMessage","quizAssociation","setQuizAssociation","callQuiz","formattedForm","parse","answers","fm","object","yesBlockResponse","noBlockResponse","block","blockingResponse","fmChildren","confirmSeparateService","res","messagesBlock","gutterBottom","changePicker","index","answer","newResponse","qz","Grid","spacing","xs","md","FormControl","Select","e","qzIndex","qzItem","getAddress","components","address","types","number","long_name","street","neighborhood","point_of_interest","fullAddress","LocationSearchInput","setLatLng","fnSetAddress","fnOnChange","setAddress","refText","useRef","handleChange","handleSelect","addressSelected","geocodeByAddress","results","addressDetail","address_components","formattedAddress","formatted_address","getLatLng","latLng","onSelect","searchOptions","componentRestrictions","country","getInputProps","suggestions","getSuggestionItemProps","suggestion","active","cursor","lineHeight","Pin","FaMapMarkerAlt","ModalSuccessContainer","ModalSuccessTop","ModalSuccessBottom","ModalSuccessCard","ModalSuccessLink","GridItemContainer","useAssociationBalance","getAssociationBalance","CalcStatus","OrderStatus","GridContainer","paddingLeft","paddingRight","paddingBottom","OpportunityMap","setLoading","origin","setOrigin","destination","setDestination","calcStatus","setCalcStatus","forcePickTow","setForcePickTow","mapLinkID","setMapLinkID","currentLatLng","setCurrentLatLng","setMap","points","setPoints","dataCalculator","setDataCalculator","valueOverDistance","setValueOverDistance","timeZone","setTimeZone","orderStatus","setOrderStatus","mapLinkData","setMapLinkData","contactPhoneNumber","setContactPhoneNumber","confirmationType","setConfirmationType","openModalPhoneNumber","setOpenModalPhoneNumber","addressOrigin","setAddressOrigin","addressDestination","setAddressDestination","paymentError","setPaymentError","setOrderId","positionCenter","setPositionCenter","zoomPosition","setZoomPosition","pixCode","setPixCode","modalSuccess","setModalSuccess","refPhone","refAllocation","payments","setPayments","callApi","validateRegionsService","getTimeZoneByGoogle","API_KEY","latitude","longitude","timeZoneId","maplinkTrip","mapCalculator","createOrder","useNewOrder","errorBalance","flightPath","useMemo","google","maps","Polyline","strokeOpacity","strokeWeight","navigator","geolocation","getCurrentPosition","coords","flightPathCoordinates","setPath","calculator","CALCULATING","time_zone_id","displace","vehicle_id","has_picktow","source","total_distance","solution","totalDistance","total_speed_profile_penalty","totalSpeedProfilePenalty","responseCalculator","charge_additional_fee","parameters","cost_parameters","filterCostParameters","f","payer","CALCULATED","showModalSuccess","handleCloseModalSuccess","confirmLocations","problem","calculationMode","siteId","useRealSpeeds","startDate","identity","linkId","NEW","legs","lat","lng","orderDocument","orderPayment","gatewayDetails","pixText","handleOrigin","handleDestination","handleOnChange","statusMessage","PAYMENT_PENDING","PAYMENT_APPROVED","PAYMENT_REFUSED","ALLOCATING","ON_GOING","showPixCode","showMessagePix","onCopy","GrCopy","paymentsType","paymentPix","payment","payment_method","associationTotalValue","reduce","acc","valueSum","multiplier","amount","confirmSolicitation","current","coordinates","ordination","quizWithPhone","association_name","association_trading_name","detached","time_zone","service_type","cost","quiz_answers","disable_auto_allocation","locationOrderId","vehicle_type","service_displace","separate_service","surcharge","SEARCH","errorResponse","cancel","handlePhoneNumber","descriptionAndValue","latitudes","longitudes","bounds","ne","sw","fitBounds","zoom","reasonsMessages","benefits_quota_exceeded","sm","textDecoration","has_benefits","ERROR","bootstrapURLKeys","defaultCenter","defaultZoom","onGoogleApiLoaded","yesIWantToUseGoogleMapApiInternals","Loop","AttachMoney","fontStyle","href","rel","WhatsAppIcon","SetEmail","accessToken","emailValidationRequired","email_validation_required","phoneNumberValidationRequired","phone_number_validation_required","field","setField","confirmField","setConfirmField","setError","selectedConfirmation","setSelectedConfirmation","unconfirmedEmailAndPhone","event","preventDefault","handleChangeConfirmation","populateField","func","onSubmit","autoComplete","RadioGroup","Radio","checked","inputMode","EmailRequired","setConfirmationCode","validation","submitForm","email_verified","handleResendConfirmationCode","ConfirmSignUp","attributeName","attribute_name","Subtitle","ViewContent","ViewButton","TypographyBase","UpdateOrder","serviceType","screenAfter","paramsScreenAfter","handleNextScreen","CarouselPageContainer","CarouselContainer","IconButtonBase","Close","CloseBase","ButtonCancel","select","DialogActionsBase","redirectTo","onError","selectedReason","setSelectedReason","cancelReasons","setCancelReasons","saveLoading","setSaveLoading","owner","responseCancel","callApis","reasonFound","canceled_by_user","reason","penalty_charge","marginBottom","String","DATA","Image","StopWatch","Text","Stop","marginRight","Cars","Triangle","Fix","Shield","CarouselPage","WaitingSearchingContractor","deviceId","device_id","contractor_id","handleToggleModal","prevState","infiniteLoop","autoPlay","interval","showThumbs","showStatus","showArrows","TextMessageContainer","BackgroundWithColor","ButtonStyled","STATUS_MESSAGE","Contractor","p","ViewUserData","ViewUser","ProfileImage","useContractor","setId","setData","loadContractor","refresh","load","newId","top","Phone","PhoneBase","ButtonCall","phoneNumber","document","Tracking","contractorPhoneNumber","setContractorPhoneNumber","serviceDisplace","contractorPosition","orderData","contractorCoords","_lat","_long","contractor","handleRedirect","picture","phrase","wordsNumber","slice","splitWords","vehicle_model","vehicle_color","vehicle_license_plate","CardItem","TextCard","ContentCard","CardData","ContainerBase","OrdersInExecution","ordersList","setOrdersList","fullWidth","StatusOrder","useLayoutEffect","getOrder","currentOrder","navigateToRoute","ViewLabel","Spacer","Camera","WaitingContractorPictures","CameraSvg","Star","StarBase","StarBorder","StarBorderBase","StarButton","Evaluation","onValue","ContractorEvaluation","rating","setRating","feedback","setFeedback","contractor_survey","multiline","rows","RouteConfirmation","handleConfirmAddress","confirmed","ImageContainer","HoldMobileImage","activeOpacity","TextMessage","TextTitle","TextCodeContainer","TextCode","Clipboard","weight","PixButton","RequestCanceled","canceledByUser","handleGoTop","handleCallPicktow","handleGoBackAndRemoveOrder","borderSize","SubmitButton","loginRoutes","path","handleLogin","isAssociate","ImageHome","outline","RobotImage","borderRadius","exact","setUsername","setPassword","userError","setUserError","passError","setPassError","secureText","setSecureText","newUsername","padStart","loginRequest","InputProps","endAdornment","InputAdornment","secure","VisibilityOff","Visibility","forgotPasswordRequest","code","setCode","confirmPassword","setConfirmPassword","secureConfirmText","setSecureConfirmText","codeError","setCodeError","confirmError","setConfirmError","resetPasswordRequest","setName","lastName","setLastName","secureTextPassword","setSecureTextPassword","secureTextConfirmPassword","setSecureTextConfirmPassword","physical","setPhysical","signUpState","autoCapitalize","given_name","family_name","locale","zoneinfo","signUpRequest","loggedRoutes","oldPassword","setOldPassword","setNewPassword","oldSecureText","setOldSecureText","newSecureText","setNewSecureText","confirmSecureText","setConfirmSecureText","oldPassError","setOldPassError","newPassError","setNewPassError","confirmPassError","setConfirmPassError","justify","Canceled","snapshotPayment","st","copyToClipboard","content","clipboard","writeText","cancelOrder","ImgHoldMobile","Sad","Like","onPress","requireEmailRoute","setResetCode","requireValidationRoute","confirmSignUp","Routes","route","Route","createGlobalStyle","UserOrders","useName","queryFirestore","snapshotFire","snapArray","gotoTop","createMuiTheme","palette","light","dark","contrastText","danger","overrides","MuiListItem","root","MuiBottomNavigationAction","App","ThemeProvider","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.a2d49a43.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/guincho.5e6298fa.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo_p_picktow.8590fe5f.svg\";","module.exports = __webpack_public_path__ + \"static/media/bateria.ce0f24e9.svg\";","module.exports = __webpack_public_path__ + \"static/media/chaveiro.f2c3231a.svg\";","module.exports = __webpack_public_path__ + \"static/media/gasolina.0746be38.svg\";","module.exports = __webpack_public_path__ + \"static/media/pneu.428b337f.svg\";","module.exports = __webpack_public_path__ + \"static/media/bus.4445f217.svg\";","module.exports = __webpack_public_path__ + \"static/media/caminhao.5d24db37.svg\";","module.exports = __webpack_public_path__ + \"static/media/maquina.f087732c.svg\";","module.exports = __webpack_public_path__ + \"static/media/moto.0ca811c7.svg\";","module.exports = __webpack_public_path__ + \"static/media/passeio.26ee7d93.svg\";","module.exports = __webpack_public_path__ + \"static/media/utilitario.5c2ff845.svg\";","module.exports = __webpack_public_path__ + \"static/media/vuc.e10dc581.svg\";","module.exports = __webpack_public_path__ + \"static/media/whats-app.d6e11e58.svg\";","module.exports = __webpack_public_path__ + \"static/media/robot.082c802d.png\";","module.exports = __webpack_public_path__ + \"static/media/vetor_login-user.04bb5a92.svg\";","module.exports = __webpack_public_path__ + \"static/media/stop.1d82bd2f.svg\";","module.exports = __webpack_public_path__ + \"static/media/cars.cb0e5383.svg\";","module.exports = __webpack_public_path__ + \"static/media/triangle.67086a9f.svg\";","module.exports = __webpack_public_path__ + \"static/media/fix.19423a89.svg\";","module.exports = __webpack_public_path__ + \"static/media/shield.c4fb9679.svg\";","module.exports = __webpack_public_path__ + \"static/media/stopwatch.d7b61da7.svg\";","module.exports = __webpack_public_path__ + \"static/media/canceled.a690e1de.svg\";","module.exports = __webpack_public_path__ + \"static/media/camera.d42e372b.svg\";","module.exports = __webpack_public_path__ + \"static/media/like.0f10c490.svg\";","module.exports = __webpack_public_path__ + \"static/media/sad.b3381379.svg\";","module.exports = __webpack_public_path__ + \"static/media/hold-mobile-pix.003125be.png\";","import styled, { css } from 'styled-components';\nimport { animated } from 'react-spring';\n\ninterface ContainerProps {\n type?: 'success' | 'error' | 'info';\n hasdescription: number;\n}\n\nconst toastTypeVariations = {\n info: css`\n background: #ebf8ff;\n color: #3172b7;\n `,\n success: css`\n background: #e6fffa;\n color: #2e656a;\n `,\n error: css`\n background: #fddede;\n color: #c53030;\n `,\n};\n\nexport const Container = styled(animated.div)`\n width: 360px;\n\n position: relative;\n padding: 16px 30px 16px 16px;\n border-radius: 10px;\n box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);\n\n display: flex;\n\n & + div {\n margin-top: 8px;\n }\n\n ${props => toastTypeVariations[props.type || 'info']}\n\n > svg {\n margin: 4px 12px 0 0;\n }\n\n div {\n flex: 1;\n p {\n margin-top: 4px;\n font-size: 14px;\n opacity: 0.8;\n line-height: 20px;\n }\n }\n\n button {\n position: absolute;\n right: 16px;\n top: 19px;\n opacity: 0.6;\n background: transparent;\n border: 0;\n color: inherit;\n }\n\n ${props =>\n !props.hasdescription &&\n css`\n align-items: center;\n svg {\n margin-top: 0;\n }\n `}\n`;\n","import React, { useEffect } from 'react';\nimport { FiAlertCircle, FiCheckCircle, FiInfo, FiXCircle } from 'react-icons/fi';\nimport { Container } from './styles';\nimport { ToastMessage, useToast } from '~/services/hooks/toast';\n\ninterface ToastProps {\n message: ToastMessage;\n style: Record;\n}\n\nconst icons = {\n info: ,\n error: ,\n success: ,\n};\n\nconst Toast: React.FC = ({ message, style }) => {\n const { removeToast } = useToast();\n\n useEffect(() => {\n const timer = setTimeout(() => {\n removeToast(message.id);\n }, 1000 * 5);\n\n return () => {\n clearTimeout(timer);\n };\n }, [message.id, removeToast]);\n\n return (\n \n {icons[message.type || 'info']}\n
\n {message.title}\n

{message.description}

\n
\n\n \n
\n );\n};\n\nexport default Toast;\n","import styled from 'styled-components';\n\ninterface ContainerProps {\n topScroll: number;\n}\n\nexport const Container = styled.div`\n position: absolute;\n right: 0;\n top: ${props => props.topScroll + 60 ?? 60}px;\n overflow: hidden;\n z-index: 1500;\n max-width: 100vw;\n`;\n","import { AxiosResponse } from 'axios';\n\nexport type ContractorsResponse = Array<{\n id: string;\n status: 'VALIDATING' | 'APPROVED' | 'DENIED';\n role: 'ORG_ADMIN' | 'FREELANCER';\n name: string;\n phone_number?: string;\n organization: string;\n organization_id: string;\n}>;\n\nexport interface ContractorResponse {\n id: string;\n status: 'VALIDATING' | 'APPROVED' | 'DENIED';\n email?: string;\n given_name: string;\n family_name: string;\n phone_number: string;\n rg?: {\n dispatched_date: string;\n number: string;\n };\n cnh?: {\n expiration_date: string;\n number: string;\n };\n organization: {\n id: string;\n social_identity: string;\n email: string;\n company_name: string;\n address: {\n id: string;\n street: string;\n number: string;\n complement?: string;\n neighborhood: string;\n zip_code: string;\n city: string;\n state: string;\n country: string;\n removed: boolean;\n created_at: number;\n updated_at: number;\n };\n removed: boolean;\n created_at: number;\n updated_at: number;\n };\n bank_data?: ContractorBankDataResponse;\n}\n\nexport interface ContractorBankDataResponse {\n recipient: string;\n cnpj?: string;\n cpf?: string;\n cpf_cnpj?: string;\n bank: string;\n branch: string;\n bank_code: string;\n account_type: string;\n document_type: string;\n current_account: string;\n billing_address: {\n city: string;\n neighborhood: string;\n number: string;\n state: string;\n street: string;\n zip_code: string;\n };\n}\n\nexport interface Bank {\n code: string;\n bank: string;\n}\n\nexport type BanksResponse = Array;\n\nexport type VehiclesResponse = Array;\n\nexport interface VehiclesResponseItem {\n id: string;\n organization_id: string;\n vehicle_contractor_type_id: string;\n vehicle_contractor_type_description: string;\n license_plate?: string;\n model: string;\n color: string;\n manufacture: string;\n vin?: string;\n state?: string;\n city?: string;\n status: string; // 'ATIVO'\n removed: boolean;\n created_at: number;\n updated_at: number;\n fipe_data?: {\n model_id: number;\n model_year_id: string;\n manufacture_id: number;\n };\n}\n\nexport type EmployeesResponse = Array<{\n username: string;\n email: string;\n given_name: string;\n family_name: string;\n phone_number: string;\n rg: {\n number: string;\n dispatched_date: string;\n };\n cnh: {\n number: string;\n expiration_date: string;\n };\n locale: string;\n zoneinfo: string;\n}>;\n\nexport type DocumentsResponse = Array<{\n id: string;\n identity_id: string;\n type:\n | 'BANK_DATA'\n | 'CPF'\n | 'CNPJ'\n | 'IMG_CNPJ'\n | 'IMG_SOCIAL_CONTRACT'\n | 'IMG_PROOF_OF_RESIDENCE'\n | 'CNH'\n | 'IMG_CNH_FRONT'\n | 'IMG_CNH_BACK'\n | 'RG'\n | 'IMG_RG_FRONT'\n | 'IMG_RG_BACK'\n | 'IMG_CRLV_FRONT'\n | 'IMG_CRLV_BACK';\n value: string;\n verified: boolean;\n removed: boolean;\n created_at: number;\n updated_at: number;\n}>;\n\nexport enum OpportunityStatusRequest {\n PAYMENT_PENDING = 'PAYMENT_PENDING',\n PAYMENT_APPROVED = 'PAYMENT_APPROVED',\n PAYMENT_REFUSED = 'PAYMENT_REFUSED',\n IN_EXECUTION = 'IN_EXECUTION',\n ON_GOING = 'ON_GOING',\n MANUAL_ALLOCATION = 'MANUAL_ALLOCATION',\n ALLOCATING = 'ALLOCATING',\n FINISHED = 'FINISHED',\n CANCELED = 'CANCELED',\n}\n\nexport type OpportunityStatusType =\n | 'PAYMENT_PENDING'\n | 'PAYMENT_APPROVED'\n | 'PAYMENT_REFUSED'\n | 'IN_EXECUTION'\n | 'ON_GOING'\n | 'ON_GOING'\n | 'MANUAL_ALLOCATION'\n | 'ALLOCATING'\n | 'FINISHED'\n | 'CANCELED';\n\nexport enum OpportunityGenericStatus {\n PAYMENT = 'PAYMENT',\n}\n\nexport interface Address {\n number?: string;\n street?: string;\n neighborhood?: string;\n city?: string;\n state?: string;\n street_number?: string;\n city_state?: string;\n position: string;\n ordination: number;\n}\n\nexport enum OpportunityResponsePTBR {\n number = 'ID',\n service_id = 'ID do serviço',\n service_description = 'Descrição do serviço',\n association_id = 'ID da empresa',\n association_name = 'Nome da empresa',\n status = 'Situação',\n expended = 'Foi cobrado',\n disable_auto_allocation = 'Desabilitar alocação automática',\n customer_id = 'ID do cliente',\n customer_name = 'Nome do cliente',\n vehicle_id = 'ID do veículo',\n customer_vehicle_type = 'Tipo do veículo',\n state = 'Estado',\n city = 'Cidade',\n vin = 'Chassi',\n license_plate = 'Placa',\n vehicle_status = 'Situação do veículo',\n vehicle_color = 'Cor',\n vehicle_model = 'Marca',\n vehicle_model_year = 'Ano',\n vehicle_manufacture = 'Montadora',\n total = 'Total',\n discount = 'Desconto',\n surcharge = 'A pagar',\n has_benefits = 'Tem benefício',\n benefits_quota_exceeded = 'Cota excedida',\n payment_type = 'Tipo do pagamento',\n contractor_id = 'ID do prestador',\n contractor_name = 'Nome do prestador',\n contractor_phone_number = 'Telefone do prestador',\n cancel_reason = 'Rasão do cancelamento',\n organization_name = 'Nome da organização',\n updated_at_formatted = 'Atualizado em',\n created_at_formatted = 'Criado em',\n}\n\nexport interface OpportunityResponse {\n id: string;\n number: string; // friendly_id\n time_zone: string;\n service_id: string;\n service_description: string;\n association_id: string;\n association_name: string;\n status: OpportunityStatusType;\n created_at: number;\n updated_at: number;\n from_backoffice: boolean;\n issued_by?: 'APP' | 'BACKOFFICE';\n created_at_formatted: string;\n updated_at_formatted: string;\n expended: boolean;\n disable_auto_allocation: boolean;\n customer_id: string;\n customer_name: string;\n coordinates: {\n order_id: string;\n position: 'SOURCE' | 'DESTINATION';\n ordination: number;\n latitude: number;\n longitude: number;\n address?: string;\n neighborhood?: string;\n city?: string;\n }[];\n vehicle_id: string;\n customer_vehicle_type: string;\n vehicle_type: string;\n state: string;\n city: string;\n vin: string;\n license_plate: string;\n license_plate_or_vin: string;\n vehicle_status: string;\n vehicle_color: string;\n vehicle_model: string;\n vehicle_model_year: string;\n vehicle_manufacture: string;\n total: number;\n discount: number;\n surcharge: number;\n has_benefits: boolean;\n benefits_quota_exceeded: boolean;\n payment_id: string;\n payment_token: string;\n payment_type: string;\n contractor_id: string;\n contractor_name: string;\n contractor_phone_number: string;\n cancel_reason?: string;\n organization_name?: string;\n customer_survey?: {\n feedback?: string;\n rating: number;\n };\n contractor_survey?: {\n feedback?: string;\n rating: number;\n };\n\n address?: Address[];\n backoffice_note: string;\n}\n\nexport type OpportunitiesResponse = Array;\n\nexport interface DocumentRequest {\n type:\n | 'BANK_DATA'\n | 'CPF'\n | 'CNPJ'\n | 'IMG_CNPJ'\n | 'IMG_SOCIAL_CONTRACT'\n | 'IMG_PROOF_OF_RESIDENCE'\n | 'CNH'\n | 'IMG_CNH_FRONT'\n | 'IMG_CNH_BACK'\n | 'RG'\n | 'IMG_RG_FRONT'\n | 'IMG_RG_BACK'\n | 'IMG_CRLV_FRONT'\n | 'IMG_CRLV_BACK';\n value: string; // JSON.stringfy({ path: 'http://...' })\n identity_id: string;\n id?: string;\n}\n\nexport enum AllocationContractorResponsePTBR {\n id = 'CPF',\n name = 'Nome',\n role = 'Função',\n phone_number = 'Telefone',\n company_name = 'Nome da empresa',\n}\n\nexport interface AllocationContractorResponse {\n id: string;\n name: string;\n role: string;\n phone_number: string;\n company_name: string;\n}\n\nexport type AllocationContractorsResponse = Array;\n\nexport interface CancelableAxiosPromise extends Promise> {\n cancel: () => void;\n}\n\nexport interface CustomerVehicle {\n id: string;\n social_security: string;\n association_id: string;\n association_code: string;\n association_trading_name: string;\n vehicle_customer_type_id: string;\n vehicle_customer_type_description: string;\n license_plate: string;\n model: string;\n model_year?: string;\n color: string;\n manufacture: string;\n vin: string;\n state: string;\n city: string;\n status: string;\n removed: boolean;\n created_at: number;\n updated_at: number;\n}\n\nexport interface CustomerVehicleRequest\n extends Omit<\n CustomerVehicle,\n | 'created_at'\n | 'updated_at'\n | 'removed'\n | 'social_security'\n | 'vehicle_customer_type_id'\n | 'status'\n | 'association_id'\n > {\n association_id?: string;\n status?: string;\n}\n\nexport interface CustomerResponse {\n id: string;\n name: string;\n given_name: string;\n family_name: string;\n email?: string;\n locale: string;\n zoneinfo: string;\n enabled: boolean;\n cnh: {\n number: string;\n expiration_date: string;\n };\n rg: {\n number: string;\n dispatched_date: string;\n };\n vehicles: CustomerVehicle[];\n}\n\nexport type CancellationReasonsResponse = Array<{\n id: string;\n reason: string;\n penalty_charge: boolean;\n created_at: number;\n updated_at: number;\n removed: boolean;\n}>;\n\nexport interface QuizAnswersResponse {\n id: string;\n order_id: string;\n value?: {\n block: boolean;\n answer: string;\n question: string;\n }[];\n}\n\nexport type CheckinDocumentType =\n | 'CHECKIN_IMG_BOTTOM'\n | 'CHECKIN_IMG_FRONT'\n | 'CHECKIN_IMG_LEFT_SIDE'\n | 'CHECKIN_IMG_RIGHT_SIDE'\n | 'CHECKIN_IMG_WINCHED';\n\nexport type CheckoutDocumentType =\n | 'CHECKOUT_IMG_BOTTOM'\n | 'CHECKOUT_IMG_FRONT'\n | 'CHECKOUT_IMG_LEFT_SIDE'\n | 'CHECKOUT_IMG_RIGHT_SIDE'\n | 'CHECKOUT_IMG_WINCHED';\n\nexport type OrderDocumentsResponse = Array<{\n id: string;\n order_id: string;\n document_type: CheckinDocumentType | CheckoutDocumentType;\n value: string;\n removed: boolean;\n created_at: number;\n updated_at: number;\n}>;\n\nexport interface AllocationCancelReasonsResponse {\n back_office_phone_number: string;\n cancel_reasons: {\n id: string;\n cancel_reason: string;\n call_back_office: boolean;\n }[];\n}\n\nexport interface Authorization {\n authenticated?: boolean;\n email_validation_required: boolean;\n phone_number_validation_required: boolean;\n confirmCodeSignUp?: boolean;\n access_token: string;\n}\n\nexport interface AuthState {\n // client: object;\n authorization: Authorization;\n // user: object;\n loading: boolean;\n error: boolean;\n}\n\nexport interface RootState {\n auth: AuthState;\n}\n\nexport interface Association {\n id: string;\n company_name: string;\n trading_name: string;\n description: string;\n phone_number: string;\n email: string;\n removed: boolean;\n address_response: Address;\n code: string;\n diff_source_destination: boolean;\n charge_excess: boolean;\n}\n\nexport type OrderDetailsResponse = Array<{\n type: string;\n value: string;\n}>;\n\nexport interface OrderDetailsReason {\n reason: string;\n}\n\nexport type CostType = 'CANCELLATION_FEE' | 'SPECIAL_EXIT' | 'STOP_TIME' | 'TOLL' | 'OUTPUT_LIMIT' | 'OVER_DISTANCE';\n\nexport type PayerType = 'ASSOCIATION' | 'CUSTOMER';\n\nexport type OrderCostsResponse = Array<{\n type: CostType;\n amount: string;\n value: string;\n payer: string;\n multiplier: string;\n}>;\n\nexport type OrderHistory = {\n id: string;\n order_id: string;\n status: string;\n contractor_id?: string;\n payment_id?: string;\n cancel_reason?: string;\n expended: boolean;\n updated_at: string;\n};\n\nexport type AllocationHistory = {\n id: string;\n order_id: string;\n iteration: number;\n status: string;\n radius?: number;\n total_candidates?: number;\n total_eligible?: number;\n total_ineligible?: number;\n updated_at: string;\n cancel_reason?: string;\n contractor_latitude?: string;\n contractor_longitude?: string;\n};\n\nexport type PaymentHistory = {\n id: string;\n payment_id: string;\n status: string;\n updated_at: string;\n};\n\nexport type Invites = {\n id: string;\n allocation_id: string;\n iteration: number;\n contractor_id: string;\n status: string;\n updated_at: string;\n created_at: string;\n cancel_reason?: string;\n contractor_latitude?: string;\n contractor_longitude?: string;\n};\n\nexport enum StatusPTBR {\n NEW = 'Novo',\n PAYMENT_PENDING = 'Pagamento pendente',\n PENDING = 'Pendente',\n PAYMENT_APPROVED = 'Pagamento aprovado',\n ALLOCATING = 'Alocando',\n PERIMETER_VALIDATION = 'Validação do perímetro',\n SERVICE_VALIDATION = 'Validação do serviço',\n SENDING_INVITES = 'Enviando convites',\n CANCELED = 'Cancelado',\n MANUAL_ALLOCATION = 'Alocação manual',\n NOT_FOUND = 'Não encontrado',\n SENT = 'Enviado',\n ACCEPTED = 'Aceito',\n ALLOCATED = 'Alocado',\n ON_GOING = 'Em andamento',\n CHECKIN = 'Checkin',\n IN_EXECUTION = 'Em execução',\n PAYMENT_REFUSED = 'Pagamento recusado',\n FINISHED = 'Finalizado',\n CHECKOUT = 'Checkout',\n TIMEOUT = 'Tempo limite esgotado',\n DISCARDED = 'Descartado',\n APPROVED = 'Aprovado',\n}\n\nexport type AllOrderHistoryType = 'Ordem' | 'Alocação' | 'Pagamento' | 'Convite';\n\nexport type OrderHistoryItem = {\n id: string;\n updated_at: string;\n type: AllOrderHistoryType;\n typeContent?: JSX.Element;\n title: string;\n content?: JSX.Element;\n};\n\nexport interface CSVImportType {\n __rowNum__: number;\n NOME: string;\n SOBRENOME: string;\n CPF_CNPJ: string;\n SITUACAO: string;\n PLACA: string;\n CHASSI: string;\n MONTADORA: string;\n MODELO: string;\n TIPO_VEICULO: string;\n COR: string;\n ANO: string;\n CIDADE: string;\n ESTADO: string;\n SENHA: string;\n ['BBCPV 015']: string;\n ['BBCPV 005']: string;\n ['BBCPV 006']: string;\n ['BBCPV 007']: string;\n ['BBCPV 008']: string;\n ['BBCPV 009']: string;\n ['BCSPV 001']: string;\n ['BCCPV 001']: string;\n ['BCCPV 002']: string;\n ['BBCPV 013']: string;\n}\n\nexport interface AssociationsResponse {\n id: string;\n company_name: string;\n trading_name: string;\n description: string;\n phone_number: string;\n email: string;\n removed: boolean;\n address_response: {\n id: string;\n street: string;\n number: string;\n complement: string;\n neighborhood: string;\n zip_code: string;\n city: string;\n state: string;\n country: string;\n removed: boolean;\n };\n code: string;\n diff_source_destination: boolean;\n charge_excess: boolean;\n}\n\nexport interface CustomerUploadResponse {\n index: number;\n message: string;\n}\n\nexport enum PaymentTypePTBR {\n CASH = 'Dinheiro',\n VOUCHER = 'Voucher',\n CARD_OFFLINE = 'Cartão (Offline)',\n}\n\nexport interface ServicesResponse {\n id: string;\n displace: boolean;\n description: string;\n}\n\nexport interface ContractorSurveyResponseItem {\n id: string;\n order_id: string;\n social_security: string;\n feedback: string;\n rating: number;\n}\n\nexport type ContractorSurveyResponse = ContractorSurveyResponseItem[];\n\ntype ServiceType = 'REBOQUE' | 'CHAVEIRO' | 'TROCA DE PNEU' | 'PANE ELÉTRICA - BATERIA' | 'PANE SECA';\n\nexport type VehicleServicesResponse = VehicleServicesResponseItem[];\n\nexport interface VehicleServicesResponseItem {\n id: string;\n service_id: string;\n service_description: ServiceType | string;\n vehicle_contractor_id: string;\n removed: boolean;\n created_at: number;\n updated_at: number;\n}\n\nexport interface QuizAssociationResponse {\n id: string;\n form: string;\n}\n\nexport type Answers = {\n title: string;\n block: boolean;\n};\n\ntype QuizType = {\n question: string;\n blockingResponse: boolean;\n answers: Array;\n} & Answers;\n\nexport type QuizResponse = {\n children?: Array;\n} & QuizType;\n\nexport type QuizFormatted = {\n title: string;\n question: string;\n answers: Array;\n};\n\nexport type QuizForm = {\n question: string;\n answer: string;\n block: boolean;\n};\n\nexport interface Coords {\n latitude: number;\n longitude: number;\n}\n\nexport interface TripRequest {\n problem: {\n calculationMode: string;\n points: {\n latitude?: number;\n longitude?: number;\n siteId: string;\n }[];\n useRealSpeeds: true;\n startDate: number;\n };\n identity: string;\n}\n\nexport interface MapCalculatorRequest {\n time_zone_id: string;\n displace?: boolean;\n service_id?: string;\n association_id?: string;\n vehicle_id?: string;\n social_security?: string;\n has_picktow: boolean;\n points: string;\n source?: string;\n total_distance?: number;\n total_speed_profile_penalty?: number;\n destination?: string;\n}\n\nexport interface MapCalculatorCostParameters {\n type: string;\n amount: number;\n value: number;\n multiplier: number;\n payer: string;\n}\n\nexport interface MapCalculatorResponse {\n id: string;\n total: number;\n discount: number;\n surcharge: number;\n displace: boolean;\n has_benefits: boolean;\n benefits_quota_exceeded: boolean;\n charge_additional_fee: boolean;\n vehicle_status: string;\n vehicle_active: boolean;\n cost_parameters: Array;\n}\n\nexport interface PaymentMethodResponse {\n id: string;\n payment_method: string;\n description: string;\n type: string;\n}\n\nexport interface AddressComponent {\n number?: string;\n street?: string;\n neighborhood: string;\n city: string;\n point_of_interest?: string;\n fullAddress: string;\n}\n\nexport interface CoordsOrder {\n position: string;\n ordination: number;\n latitude?: number;\n longitude?: number;\n address?: string;\n neighborhood?: string;\n city?: string;\n}\n\nexport interface OrderRequest {\n payment: {\n token: string;\n type: string;\n };\n association_name?: string;\n detached: boolean;\n customer_id?: string;\n association_id?: string;\n time_zone?: string;\n service_type?: string;\n cost?: MapCalculatorResponse;\n vehicle: {\n type?: string;\n model?: string;\n model_year?: string;\n color?: string;\n manufacture?: string;\n status?: string;\n vin?: string;\n license_plate?: string;\n state?: string;\n city?: string;\n };\n coordinates: Array;\n association_code?: string;\n service_id?: string;\n quiz_answers: string;\n disable_auto_allocation: boolean;\n}\n\nexport interface OrderResponse {\n status: string;\n}\n\nexport interface PaymentStatus {\n gatewayDetails?: {\n pixText: string;\n };\n}\nexport interface BenefitResponse {\n association_id: string;\n code: string;\n coverage_km: number;\n description: string;\n id: string;\n period: string;\n quantity: number;\n service_id: string;\n quota_expended: number;\n created_at: number;\n}\n\nexport interface BenefitQuotaRequest {\n benefitsDateCreated: string;\n vin: string;\n customerId: string;\n benefitsQuantity: number;\n serviceId: string;\n}\n\nexport interface BenefitsQuotaResponse {\n quota_quantity: number;\n quota_expended: number;\n benefits_quota_exceded: boolean;\n}\n\nexport interface ErrorResponse {\n response?: {\n data?: {\n messages: string[];\n };\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type WithChildren = T & { children?: React.ReactNode };\n\nexport type OrderFirestore = {\n license_plate?: string;\n service_id?: string;\n service_type?: string;\n vehicle_type?: string;\n vin?: string;\n device_id?: string;\n contractor_id?: string;\n customer_survey?: boolean;\n contractor_survey?: boolean;\n association_code?: string;\n service_displace?: boolean;\n canceled_by_user?: boolean;\n latitude?: number;\n longitude?: number;\n association_id?: string;\n vehicle_id?: string;\n separate_service?: boolean;\n cost?: {\n surcharge?: number;\n };\n status:\n | 'CANCELED'\n | 'ALLOCATING'\n | 'MANUAL_ALLOCATION'\n | 'CHECKIN'\n | 'ON_GOING'\n | 'IN_EXECUTION'\n | 'CHECKOUT'\n | 'FINISHED'\n | 'PLATE_CONFIRMED'\n | 'PAYMENT_PENDING'\n | 'PAYMENT_REFUSED'\n | 'PAYMENT_APPROVED';\n};\n\nexport type OrderFirestoreWithId = OrderFirestore & {\n order_id: string;\n};\n\nexport interface CancelationReason {\n id: string;\n reason: string;\n penalty_charge: boolean;\n}\n\nexport interface LatLng {\n latitude: number;\n longitude: number;\n}\n\nexport type ContractorsFirestore = {\n d?: {\n coordinates?: {\n _lat?: number;\n _long?: number;\n };\n };\n};\n\nexport type PaymentsFirestore = {\n gatewayDetails: {\n pixText: string;\n };\n status: 'PAYMENT_PENDING' | 'PRE_AUTHORIZATION' | 'PAYMENT_APPROVED' | 'PAYMENT_REFUSED' | 'CANCELED' | 'ALLOCATING';\n};\n\nexport interface LayoutProps extends WithChildren {\n marginTop?: number;\n showFirebaseOrder: boolean;\n}\n\nexport type ConfirmationType = 'email' | 'phone_number';\n\nexport interface Error {\n message: string;\n}\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { useTransition } from 'react-spring';\n\nimport Toast from './Toast';\nimport { Container } from './style';\nimport { ToastMessage } from '~/services/hooks/toast';\n\ninterface ToastContainerProps {\n messages: ToastMessage[];\n}\n\nconst ToastContainer = ({ messages }: ToastContainerProps) => {\n const [scrollPosition, setScrollPosition] = useState(0);\n\n const listenToScroll = useCallback(() => {\n setScrollPosition(window.pageYOffset);\n }, []);\n\n useEffect(() => {\n window.addEventListener('scroll', listenToScroll);\n\n return () => window.removeEventListener('scroll', listenToScroll);\n }, [listenToScroll]);\n\n const messagesWithTransitions = useTransition(messages, message => message.id, {\n from: { right: '-120%', opacity: 0 },\n enter: { right: '0%', opacity: 1 },\n leave: { right: '-120%', opacity: 0 },\n });\n\n return (\n \n {messagesWithTransitions.map(({ item, key, props }) => (\n \n ))}\n \n );\n};\n\nexport { ToastContainer };\n","import React, { createContext, useCallback, useContext, useState } from 'react';\nimport { v4 } from 'uuid';\n\nimport { ToastContainer } from '~/components/ToastContainer';\nimport { WithChildren } from '~/types';\n\ninterface ToastContextData {\n addToast(message: Omit): void;\n removeToast(id: string): void;\n}\n\nexport interface ToastMessage {\n id: string;\n type: 'success' | 'error' | 'info';\n title: string;\n description?: string;\n}\n\nconst ToastContext = createContext({} as ToastContextData);\n\ninterface ToastProviderProps extends WithChildren {}\n\nconst ToastProvider = ({ children }: ToastProviderProps) => {\n const [messages, setMessages] = useState([]);\n\n const addToast = useCallback(({ type, title, description }: Omit) => {\n const id = v4();\n const toast = {\n id,\n type,\n title,\n description,\n };\n\n setMessages(state => [...state, toast]);\n }, []);\n\n const removeToast = useCallback((id: string) => {\n setMessages(state => state.filter(message => message.id !== id));\n }, []);\n\n return (\n \n {children}\n {messages.length > 0 && }\n \n );\n};\n\nfunction useToast(): ToastContextData {\n const context = useContext(ToastContext);\n\n if (!context) {\n throw new Error('useToast must be used within a ToastProvider');\n }\n\n return context;\n}\n\nexport { ToastProvider, useToast };\n","import produce from 'immer';\n\nexport const Types = {\n SET_AUTH_HEADER: '@auth/SET_AUTH_HEADER',\n INIT_CLIENT: '@auth/INIT_CLIENT',\n GET_CLIENT_REQUEST: '@auth/GET_CLIENT_REQUEST',\n GET_CLIENT_SUCCESS: '@auth/GET_CLIENT_SUCCESS',\n GET_CLIENT_FAILURE: '@auth/GET_CLIENT_FAILURE',\n LOGIN_REQUEST: '@auth/LOGIN_REQUEST',\n LOGIN_SUCCESS: '@auth/LOGIN_SUCCESS',\n LOGIN_FAILURE: '@auth/LOGIN_FAILURE',\n REFRESH_TOKEN_REQUEST: '@auth/REFRESH_TOKEN_REQUEST',\n REFRESH_TOKEN_SUCCESS: '@auth/REFRESH_TOKEN_SUCCESS',\n REFRESH_TOKEN_FAILURE: '@auth/REFRESH_TOKEN_FAILURE',\n UPDATE_AUTH_DATA: '@auth/UPDATE_AUTH_DATA',\n LOGOUT: '@auth/LOGOUT',\n LOGOUT_SUCCESS: '@auth/LOGOUT_SUCCESS',\n LOGOUT_FAILURE: 'GET_CLIENT_REQUESTauth/LOGOUT_FAILURE',\n USER_POPULATE_TOKEN: '@auth/USER_POPULATE_TOKEN',\n USER_POPULATE: '@auth/USER_POPULATE',\n FORGOT_PASSWORD: '@auth/FORGOT_PASSWORD',\n SIGN_UP: '@auth/SIGN_UP',\n CONFIRM_EMAIL: '@auth/CONFIRM_EMAIL',\n RESEND_CONFIRMATION_CODE: '@auth/RESEND_CONFIRMATION_CODE',\n CHANGE_PASSWORD: '@auth/CHANGE_PASSWORD',\n RESET_PASSWORD_REQUEST: '@auth/RESET_PASSWORD_REQUEST',\n RESET_PASSWORD_SUCCESS: '@auth/RESET_PASSWORD_SUCCESS',\n RESET_PASSWORD_FAILURE: '@auth/RESET_PASSWORD_FAILURE',\n CHANGE_PASSWORD_REQUEST: '@auth/CHANGE_PASSWORD_REQUEST',\n CHANGE_PASSWORD_SUCCESS: '@auth/CHANGE_PASSWORD_SUCCESS',\n CHANGE_PASSWORD_FAILURE: '@auth/CHANGE_PASSWORD_FAILURE',\n CLEAR_ERROR: '@auth/CLEAR_ERROR',\n CHANGE_EMAIL_SUCCESS: '@auth/CHANGE_EMAIL_SUCCESS',\n CHANGE_EMAIL_FAILURE: '@auth/CHANGE_EMAIL_FAILURE',\n RESEND_ALIAS_CONFIRMATION_CODE_REQUEST: '@auth/RESEND_ALIAS_CONFIRMATION_CODE_REQUEST',\n RESEND_ALIAS_CONFIRMATION_CODE_SUCCESS: '@auth/RESEND_ALIAS_CONFIRMATION_CODE_SUCCESS',\n RESEND_ALIAS_CONFIRMATION_CODE_ERROR: '@auth/RESEND_ALIAS_CONFIRMATION_CODE_ERROR',\n RESEND_ALIAS_CONFIRMATION_CODE_CLEAR: '@auth/RESEND_ALIAS_CONFIRMATION_CODE_CLEAR',\n CONFIRM_CODE_SIGNUP_SUCCESS: '@auth/CONFIRM_CODE_SIGNUP_SUCCESS',\n SIGN_UP_REQUEST: '@auth/SIGN_UP_REQUEST',\n SIGN_UP_SUCCESS: '@auth/SIGN_UP_SUCCESS',\n SIGN_UP_FAILURE: '@auth/SIGN_UP_FAILURE',\n SIGN_UP_CONFIRMATION: '@auth/SIGN_UP_CONFIRMATION',\n SIGN_UP_CLEAR: '@auth/SIGN_UP_CLEAR',\n};\n\nconst INITIAL_STATE = {\n client: {},\n authorization: {},\n user: {},\n loading: false,\n error: false,\n resendAlias: {},\n signUp: {\n loading: undefined,\n error: undefined,\n message: undefined,\n data: undefined,\n },\n};\n\nexport function setAuthHeader(accessToken) {\n return { type: Types.SET_AUTH_HEADER, accessToken };\n}\n\nexport function initClient() {\n return { type: Types.INIT_CLIENT };\n}\n\nexport function getClientRequest() {\n return { type: Types.GET_CLIENT_REQUEST };\n}\n\nexport function getClientSuccess(client) {\n return { type: Types.GET_CLIENT_SUCCESS, client };\n}\n\nexport function getClientFailure(error) {\n return { type: Types.GET_CLIENT_FAILURE, error };\n}\n\nexport function loginRequest(username, password) {\n return { type: Types.LOGIN_REQUEST, payload: { username, password } };\n}\n\nexport function loginSuccess(authorization) {\n return { type: Types.LOGIN_SUCCESS, authorization };\n}\n\nexport function loginFailure(error) {\n return { type: Types.LOGIN_FAILURE, error };\n}\n\nexport function forgotFailure(error) {\n return { type: Types.LOGIN_FAILURE, error };\n}\n\nexport function refreshTokenRequest(refresh_token) {\n return { type: Types.REFRESH_TOKEN_REQUEST, payload: { refresh_token } };\n}\n\nexport function refreshTokenSuccess(authorization) {\n return { type: Types.REFRESH_TOKEN_SUCCESS, authorization };\n}\n\nexport function refreshTokenFailure(error) {\n return { type: Types.REFRESH_TOKEN_FAILURE, error };\n}\n\nexport function updateAuthData(authorization) {\n return { type: Types.UPDATE_AUTH_DATA, authorization };\n}\n\nexport function logout() {\n return { type: Types.LOGOUT };\n}\n\nexport function logoutSuccess() {\n return { type: Types.LOGOUT_SUCCESS };\n}\n\nexport function logoutFailure(err) {\n return { type: Types.LOGOUT_FAILURE, err };\n}\n\nexport function userPopulateToken(tokenDecoded) {\n return { type: Types.USER_POPULATE_TOKEN, tokenDecoded };\n}\n\nexport function userPopulate(user) {\n return { type: Types.USER_POPULATE, user };\n}\n\nexport function forgotPasswordRequest(username) {\n return { type: Types.FORGOT_PASSWORD, payload: { username } };\n}\n\nexport function resetPasswordRequest(username, password, resetCode) {\n return {\n type: Types.RESET_PASSWORD_REQUEST,\n payload: { username, password, resetCode },\n };\n}\n\nexport function resetPasswordSuccess() {\n return {\n type: Types.RESET_PASSWORD_SUCCESS,\n };\n}\n\nexport function resetPasswordFailure(error) {\n return {\n type: Types.RESET_PASSWORD_FAILURE,\n error,\n };\n}\n\nexport function confirmAccount(confirmationCode, token, type) {\n return {\n type: Types.CONFIRM_EMAIL,\n payload: { confirmationCode, type, token },\n };\n}\n\nexport function resendConfirmationCode(username) {\n return { type: Types.RESEND_CONFIRMATION_CODE, payload: { username } };\n}\n\nexport function changePasswordRequest(username, currentPassword, newPassword) {\n return {\n type: Types.CHANGE_PASSWORD_REQUEST,\n payload: { username, currentPassword, newPassword },\n };\n}\n\nexport function changePasswordSuccess() {\n return {\n type: Types.CHANGE_PASSWORD_SUCCESS,\n };\n}\n\nexport function changePasswordFailure(error) {\n return {\n type: Types.CHANGE_PASSWORD_FAILURE,\n error,\n };\n}\n\nexport function clearError() {\n return {\n type: Types.CLEAR_ERROR,\n };\n}\n\nexport function resendAliasConfirmationCodeRequest(data) {\n return {\n type: Types.RESEND_ALIAS_CONFIRMATION_CODE_REQUEST,\n payload: {\n data,\n },\n };\n}\n\nexport function resendAliasConfirmationCodeSuccess() {\n return { type: Types.RESEND_ALIAS_CONFIRMATION_CODE_SUCCESS };\n}\n\nexport function resendAliasConfirmationCodeError(error) {\n return { type: Types.RESEND_ALIAS_CONFIRMATION_CODE_ERROR, payload: { error } };\n}\n\nexport function resendAliasConfirmationCodeClear() {\n return { type: Types.RESEND_ALIAS_CONFIRMATION_CODE_CLEAR };\n}\n\nexport function confirmSignUpSuccess() {\n return { type: Types.CONFIRM_CODE_SIGNUP_SUCCESS };\n}\n\nexport function signUpRequest(user) {\n return {\n type: Types.SIGN_UP_REQUEST,\n user,\n };\n}\n\nexport function signUpFailure(error) {\n return { type: Types.SIGN_UP_FAILURE, error };\n}\n\nexport function signUpSuccess(data) {\n return { type: Types.SIGN_UP_SUCCESS, data };\n}\n\nexport function signUpConfirmation() {\n return { type: Types.SIGN_UP_CONFIRMATION };\n}\n\nexport function signUpClear() {\n return { type: Types.SIGN_UP_CLEAR };\n}\n\nexport default function authReducer(state = INITIAL_STATE, action) {\n return produce(state, draft => {\n switch (action.type) {\n case Types.GET_CLIENT_SUCCESS:\n draft.loading = false;\n draft.client = action.client;\n break;\n\n case Types.GET_CLIENT_FAILURE:\n draft.loading = false;\n draft.error = action.error;\n break;\n\n case Types.LOGIN_REQUEST:\n draft.loading = true;\n draft.error = null;\n break;\n\n case Types.LOGIN_SUCCESS:\n draft.loading = false;\n draft.authorization = action.authorization;\n break;\n\n case Types.REFRESH_TOKEN_SUCCESS: {\n const { authorization } = action;\n draft.loading = false;\n draft.authorization = {\n ...state.authorization,\n ...authorization,\n };\n break;\n }\n\n case Types.LOGIN_FAILURE:\n case Types.REFRESH_TOKEN_FAILURE:\n draft.loading = false;\n draft.error = action.error;\n break;\n\n case Types.LOGOUT_SUCCESS:\n Object.entries(INITIAL_STATE).forEach(([key, value]) => {\n draft[key] = value;\n });\n break;\n\n case Types.USER_POPULATE_TOKEN:\n draft.user = action.tokenDecoded;\n break;\n\n case Types.USER_POPULATE:\n draft.user = action.user;\n break;\n\n case Types.RESET_PASSWORD_REQUEST:\n draft.loading = true;\n draft.error = null;\n break;\n\n case Types.RESET_PASSWORD_SUCCESS:\n draft.loading = false;\n break;\n\n case Types.RESET_PASSWORD_FAILURE:\n draft.loading = false;\n draft.error = action.error;\n break;\n\n case Types.CHANGE_PASSWORD_REQUEST:\n draft.loading = true;\n draft.error = null;\n break;\n\n case Types.CHANGE_PASSWORD_SUCCESS:\n draft.loading = false;\n break;\n\n case Types.CHANGE_PASSWORD_FAILURE:\n draft.loading = false;\n draft.error = action.error;\n break;\n\n case Types.CLEAR_ERROR:\n draft.error = null;\n break;\n\n case Types.SIGN_UP_CONFIRMATION:\n draft.authorization.confirmCodeSignUp = true;\n break;\n\n case Types.RESEND_ALIAS_CONFIRMATION_CODE_REQUEST:\n draft.resendAlias.error = false;\n draft.resendAlias.success = false;\n break;\n\n case Types.RESEND_ALIAS_CONFIRMATION_CODE_SUCCESS:\n draft.resendAlias.success = true;\n draft.resendAlias.error = false;\n break;\n\n case Types.RESEND_ALIAS_CONFIRMATION_CODE_ERROR:\n draft.resendAlias.error = true;\n draft.resendAlias.success = false;\n draft.resendAlias.message = action.payload.error;\n break;\n\n case Types.RESEND_ALIAS_CONFIRMATION_CODE_CLEAR:\n draft.resendAlias = {};\n break;\n\n case Types.CONFIRM_CODE_SIGNUP_SUCCESS:\n draft.authorization.confirmCodeSignUp = false;\n break;\n\n case Types.SIGN_UP_REQUEST:\n if (!draft.signUp) {\n draft.signUp = {};\n }\n draft.signUp.loading = true;\n draft.user = action.user;\n break;\n\n case Types.SIGN_UP_SUCCESS:\n if (!draft.signUp) {\n draft.signUp = {};\n }\n draft.signUp.loading = false;\n draft.signUp.error = false;\n draft.signUp.data = action.data;\n break;\n\n case Types.SIGN_UP_FAILURE:\n if (!draft.signUp) {\n draft.signUp = {};\n }\n draft.signUp.loading = false;\n draft.signUp.error = true;\n draft.signUp.message = action.error;\n break;\n\n case Types.SIGN_UP_CLEAR:\n if (!draft.signUp) {\n draft.signUp = {};\n }\n\n Object.entries(INITIAL_STATE.signUp).forEach(([key, value]) => {\n draft.signUp[key] = value;\n });\n draft.loading = false;\n break;\n\n default:\n break;\n }\n });\n}\n","import produce from 'immer';\n\nexport const Types = {\n CLEAR_ORDER: '@order/CLEAR_ORDER',\n SET_ORDER_INITIAL: '@order/SET_ORDER_USER',\n SET_ORDER_SERVICE: '@order/SET_ORDER_SERVICE',\n SET_ORDER_VEHICLE: '@order/SET_ORDER_VEHICLE',\n SET_ORDER_QUIZ: '@order/SET_ORDER_QUIZ',\n SET_ORDER_QUIZ_ANSWERS: '@order/SET_ORDER_QUIZ_ANSWERS',\n SET_ORDER_BENEFIT: '@order/SET_ORDER_BENEFIT',\n NEED_CLEAR: '@order/NEED_CLEAR',\n};\n\nconst INITIAL_STATE = {\n customerId: '',\n customerName: '',\n uuid: '',\n service: {},\n vehicle: {},\n benefit: {},\n quizAnswers: [],\n separateService: false,\n needClear: false,\n loading: false,\n error: false,\n};\n\nexport function clearOrder() {\n return { type: Types.CLEAR_ORDER };\n}\n\nexport function setOrderInitial(data) {\n return { type: Types.SET_ORDER_INITIAL, payload: { data } };\n}\n\nexport function setOrderService(service) {\n return { type: Types.SET_ORDER_SERVICE, payload: { service } };\n}\n\nexport function setOrderVehicle(vehicle) {\n return { type: Types.SET_ORDER_VEHICLE, payload: { vehicle } };\n}\n\nexport function setOrderQuizAnswers(separateService = false, quizAnswers) {\n return { type: Types.SET_ORDER_QUIZ_ANSWERS, payload: { separateService, quizAnswers } };\n}\n\nexport function needClear() {\n return { type: Types.NEED_CLEAR };\n}\n\nexport function setOrderBenefit(benefit) {\n return { type: Types.SET_ORDER_BENEFIT, payload: { benefit } };\n}\n\nexport default function orderReducer(state = INITIAL_STATE, action) {\n return produce(state, draft => {\n switch (action.type) {\n case Types.CLEAR_ORDER:\n Object.entries(INITIAL_STATE).forEach(([key, val]) => (draft[key] = val));\n break;\n\n case Types.SET_ORDER_INITIAL:\n draft.customerId = action.payload.data.customerId;\n draft.uuid = action.payload.data.uuid;\n draft.customerName = action.payload.data.customerName;\n break;\n\n case Types.SET_ORDER_SERVICE:\n draft.service = action.payload.service;\n break;\n\n case Types.SET_ORDER_VEHICLE:\n draft.vehicle = action.payload.vehicle;\n break;\n\n case Types.SET_ORDER_QUIZ_ANSWERS:\n draft.separateService = action.payload.separateService;\n draft.quizAnswers = action.payload.quizAnswers;\n break;\n\n case Types.NEED_CLEAR:\n draft.needClear = true;\n break;\n\n case Types.SET_ORDER_BENEFIT:\n draft.benefit = action.payload.benefit;\n break;\n\n default:\n break;\n }\n });\n}\n","export enum CustomerBenefitType {\n ON_REQUEST = '@customer/ON_REQUEST',\n ON_SUCESS = '@customer/ON_SUCESS',\n ON_RESET = '@customer/ON_RESET',\n ON_FAILURE = '@customer/ON_FAILURE',\n CLEAR_BENEFITS = '@customer/CLEAR_BENEFITS',\n}\n\nexport const requestBenefit = (\n associationId: string,\n serviceId: string,\n socialSecurity: string,\n vehicleId: string,\n vin: string,\n) => {\n return {\n type: CustomerBenefitType.ON_REQUEST,\n payload: { associationId, serviceId, socialSecurity, vehicleId, vin },\n };\n};\n\nexport const resetBenefit = () => {\n return {\n type: CustomerBenefitType.ON_RESET,\n };\n};\n\nexport const clearBenefit = () => {\n return {\n type: CustomerBenefitType.CLEAR_BENEFITS,\n };\n};\n\nexport interface BenefitState {\n loading: boolean;\n associationId: string;\n serviceId: string;\n socialSecurity: string;\n vehicleId: string;\n vin: string;\n vehicleBenefits: any;\n}\n\nconst INITIAL_STATE: BenefitState = {\n loading: false,\n associationId: '',\n serviceId: '',\n socialSecurity: '',\n vehicleId: '',\n vehicleBenefits: [],\n vin: '',\n};\n\nexport default function customerBenefit(state = INITIAL_STATE, action: any = {}) {\n switch (action.type) {\n case CustomerBenefitType.ON_REQUEST:\n return {\n ...state,\n loading: true,\n };\n case CustomerBenefitType.ON_SUCESS:\n return {\n ...state,\n vehicleBenefits: [...state.vehicleBenefits, action.payload.vehicleBenefits],\n associationId: action.payload.associationId,\n serviceId: action.payload.serviceId,\n socialSecurity: action.payload.socialSecurity,\n vehicleId: action.payload.vehicleId,\n loading: false,\n };\n case CustomerBenefitType.ON_FAILURE:\n return {\n ...state,\n loading: false,\n };\n case CustomerBenefitType.ON_RESET:\n return INITIAL_STATE;\n case CustomerBenefitType.CLEAR_BENEFITS:\n return {\n ...state,\n vehicleBenefits: [],\n };\n default:\n return state;\n }\n}\n","import produce from 'immer';\n\nimport { AssociationBalance } from '~/services/hooks';\n\nconst AssociationBalanceType = {\n SET_BALANCE: '@associationBalance/SET_BALANCE',\n CLEAR_BALANCE: '@associationBalance/CLEAR_BALANCE',\n SET_BALANCE_ERROR: '@associationBalance/SET_BALANCE_ERROR',\n} as const;\n\ntype SetBalance = ReturnType;\ntype ClearBalance = ReturnType;\ntype SetBalanceError = ReturnType;\n\ntype BalanceActions = SetBalance | ClearBalance | SetBalanceError;\n\ntype InitialState = AssociationBalance & {\n error: boolean;\n errorMessage?: string;\n};\n\nconst INITIAL_STATE: InitialState = {\n account_statement: {\n available_balance: 0,\n },\n error: false,\n};\n\nexport const setBalance = (data: AssociationBalance) => {\n return {\n type: AssociationBalanceType.SET_BALANCE,\n payload: { data },\n };\n};\n\nexport const clearBalance = () => {\n return {\n type: AssociationBalanceType.CLEAR_BALANCE,\n };\n};\n\nexport const setBalanceError = (message: string) => {\n return {\n type: AssociationBalanceType.SET_BALANCE_ERROR,\n payload: { message },\n };\n};\n\nexport function associationBalance(state = INITIAL_STATE, action: BalanceActions) {\n switch (action.type) {\n case AssociationBalanceType.SET_BALANCE:\n return produce(state, draft => {\n draft.account_statement = action.payload.data.account_statement;\n draft.error = false;\n draft.errorMessage = undefined;\n });\n\n case AssociationBalanceType.CLEAR_BALANCE:\n return produce(state, draft => {\n draft.account_statement = {\n available_balance: 0,\n };\n draft.error = false;\n draft.errorMessage = undefined;\n });\n\n case AssociationBalanceType.SET_BALANCE_ERROR:\n return produce(state, draft => {\n draft.error = true;\n draft.errorMessage = action.payload.message;\n });\n\n default:\n return state;\n }\n}\n","import produce from 'immer';\n\nimport { OrderFirestoreWithId } from '~/types';\n\nconst SnapshotType = {\n SET_SNAPSHOT: '@snapshot/SET_SNAPSHOT',\n CLEAR_SNAPSHOT: '@snapshot/CLEAR_SNAPSHOT',\n SET_SNAPSHOT_ERROR: '@snapshot/SET_SNAPSHOT_ERROR',\n} as const;\n\ntype SetSnapshot = ReturnType;\ntype ClearSnapshot = ReturnType;\n\ntype BalanceActions = SetSnapshot | ClearSnapshot;\n\ntype OrderFirestoreWithIdReducer = OrderFirestoreWithId & {\n updated?: boolean;\n};\n\ntype InitialState = {\n snapShot?: OrderFirestoreWithIdReducer[];\n error: boolean;\n errorMessage?: string;\n};\n\nexport type SnapshotReducerType = InitialState;\n\nconst INITIAL_STATE: InitialState = {\n error: false,\n snapShot: undefined,\n errorMessage: undefined,\n};\n\nexport const setSnapShot = (data: OrderFirestoreWithId[]) => {\n return {\n type: SnapshotType.SET_SNAPSHOT,\n payload: { data },\n };\n};\n\nexport const clearSnapshot = () => {\n return {\n type: SnapshotType.CLEAR_SNAPSHOT,\n };\n};\n\nexport function snapshot(state = INITIAL_STATE, action: BalanceActions) {\n switch (action.type) {\n case SnapshotType.SET_SNAPSHOT:\n return produce(state, draft => {\n draft.snapShot = action.payload.data.map(item => {\n const foundOrderSameState =\n state.snapShot?.findIndex(\n currentItem => currentItem.order_id === item.order_id && currentItem.status === item.status,\n ) ?? -1;\n\n if (foundOrderSameState >= 0) {\n return { ...item, updated: false };\n }\n\n return { ...item, updated: true };\n });\n draft.error = false;\n draft.errorMessage = undefined;\n });\n\n case SnapshotType.CLEAR_SNAPSHOT:\n return produce(state, (draft: any) => {\n Object.entries(INITIAL_STATE).forEach(([key, value]) => {\n draft[key] = value;\n });\n });\n\n // case SnapshotType.SET_SNAPSHOT_ERROR:\n // return produce(state, draft => {\n // draft.error = true;\n // draft.errorMessage = action.payload.message;\n // });\n\n default:\n return state;\n }\n}\n","import { combineReducers } from 'redux';\n\nimport auth from './auth';\nimport order from './order';\nimport customerBenefit from './customerBenefit';\nimport { associationBalance } from './associationBalance';\nimport { snapshot } from './snapShot';\n\nconst reducers = combineReducers({\n auth,\n order,\n customerBenefit,\n associationBalance,\n snapshot,\n});\n\nexport default reducers;\n","import axios from 'axios';\nimport { store } from '~/store';\nimport { refreshTokenSuccess, logout } from '~/store/ducks/auth';\nimport { appendQueryParamsTo } from './urlutils';\n\nconst api = axios.create({\n // eslint-disable-next-line no-undef\n baseURL: process.env.REACT_APP_API,\n});\n\napi.interceptors.response.use(\n response => {\n return response;\n },\n error => {\n const originalRequest = error.config;\n if (error?.response?.data?.exp === 'token expired') {\n const { refresh_token } = store.getState().auth.authorization;\n\n return new Promise((resolve, reject) => {\n api\n .post('/identity-providers/CUSTOMER/authentications:refresh', {\n refresh_token,\n })\n .then(({ data }) => {\n store.dispatch(refreshTokenSuccess(data));\n originalRequest.headers.Authorization = `Bearer ${data.id_token}`;\n resolve(axios(originalRequest));\n })\n .catch(err => {\n reject(err);\n store.dispatch(logout());\n });\n });\n }\n return Promise.reject(error);\n },\n);\n\napi.interceptors.request.use(config => {\n const token = store.getState().auth.authorization.id_token;\n if (token) {\n config.headers.Authorization = `Bearer ${token}`;\n }\n\n return config;\n});\n\nexport function loginApi(username, password) {\n return api.post('/identity-providers/CUSTOMER/authentications', {\n username,\n password,\n });\n}\n\nexport function setAuthorizationHeader(token) {\n api.defaults.headers.common.Authorization = `Bearer ${token}`;\n}\n\nexport const forgotApi = username => {\n return api.post('/identity-providers/CUSTOMER/authentications:forgottenPassword', { username });\n};\n\nexport const resetPasswordApi = (username, password, resetCode) => {\n return api.post('/identity-providers/CUSTOMER/authentications:resetPassword', {\n username,\n new_password: password,\n reset_code: resetCode,\n });\n};\n\nexport const resendConfirmationCodeApi = username => {\n return api.post(`/identity-providers/CUSTOMER/authentications/${username}:resendConfirmationCode`);\n};\n\nexport const changePasswordApi = (username, currentPassword, newPassword) => {\n return api.post(`/identity-providers/CUSTOMER/authentications/${username}:changePassword`, {\n old_password: currentPassword,\n new_password: newPassword,\n });\n};\n\nexport const loadServices = () => {\n return api.get('services');\n};\n\nexport function loadOpportunities(status, from, to) {\n if (Array.isArray(status)) {\n return loadOpportunitiesInSeveralStatuses(status, from, to);\n }\n const source = axios.CancelToken.source();\n const promise = api.get(`orders?status=${status}${from && to ? `&from=${from}&to=${to}` : ''}`, {\n cancelToken: source.token,\n });\n promise.cancel = () => source.cancel();\n return promise;\n}\n\nexport function loadOpportunitiesInSeveralStatuses(statuses = [], from, to) {\n const source = axios.CancelToken.source();\n\n const promise = api.get(appendQueryParamsTo('orders', { status: statuses, from, to }), {\n cancelToken: source.token,\n });\n promise.cancel = () => source.cancel();\n return promise;\n}\n\nexport function loadCustomerApi(customerId) {\n return api.get(`customers/${customerId}:fetchDetails`);\n}\n\nexport function resetCustomer(username, confirmation_type) {\n return api.post(`identities/CUSTOMER/${username}:resetAlias`, { confirmation_type });\n}\n\nexport function deleteCustomer(username) {\n return api.post(`identities/CUSTOMER/${username}:delete`);\n}\n\nexport function loadQuizAnswers(orderId) {\n return api.get(`quiz-answers/orders/${orderId}`);\n}\n\nexport function loadOrderDocuments(orderId) {\n return api.get(`documents/orders/${orderId}`);\n}\n\nexport function loadOrderDetails(orderId, type) {\n return api.get(`order-details/orders/${orderId}`, { params: { type } });\n}\n\nexport function loadOrderCosts(orderId) {\n return api.get(`cost-parameters/orders/${orderId}`);\n}\n\nexport const deleteCustomerVehicleApi = vehicleId => {\n return api.delete(`customers/vehicles/${vehicleId}`);\n};\n\nexport const getVehicleBySocialSecurityApi = socialSecurity => {\n return api.get(`customers/vehicles/social-security/${socialSecurity}`);\n};\n\nexport const getQuizzByAssociationServiceApi = (associationId, serviceId) => {\n return api.get(`/quizzes/associations/${associationId}/services/${serviceId}`);\n};\n\nexport const getQuizzByServiceApi = serviceId => {\n return api.get(`/quizzes/services/${serviceId}`);\n};\n\nexport const validateRegionsServiceApi = data => {\n return api.post('service-regions/within', data);\n};\n\nexport const getTimeZoneByGoogleApi = (API_KEY, latitude, longitude) => {\n return axios.get(\n `https://maps.googleapis.com/maps/api/timezone/json?location=${latitude},${longitude}×tamp=1458000000&key=${API_KEY}`,\n );\n};\n\nexport const maplinkTripApi = data => {\n return api.post('trip', data);\n};\n\nexport const mapCalculatorApi = data => {\n return api.post('customers/calculation', data);\n};\n\nexport const getAllPaymentMethodsApi = () => {\n return api.get('payment-methods');\n};\n\nexport const createOrderApi = data => {\n return api.post('orders', data);\n};\n\nexport function addNoteByOrderId(orderId, note) {\n return api.put(`orders/${orderId}:addAnnotation`, { note });\n}\nexport const uploadFileToOrderAPI = data => {\n return api.put('documents/orders/photo-file:upload', data);\n};\n\nexport const loadVehicleBenefits = (associationId, serviceId, socialSecurity, vehicleId) => {\n return api.get(\n `benefits/associations/${associationId}/services/${serviceId}/social-security/${socialSecurity}/vehicle/${vehicleId}`,\n );\n};\n\nexport const loadVehicleBenefitQuota = data => {\n return api.post(`orders/vehicles:validateBenefitsQuota`, data);\n};\n\nexport const getVehicleTypesApi = () => {\n return api.get('/customers/vehicles/types');\n};\n\nexport const getFipeManufacturersByCategoryApi = categoryName => {\n return api.get(`/integrations/FIPE/categories/${categoryName}/manufacturers`);\n};\n\nexport const getFipeVehiclesByManufacturersAndCategoryApi = (categoryName, manufacturerId) => {\n return api.get(`/integrations/FIPE/categories/${categoryName}/manufacturers/${manufacturerId}/vehicles`);\n};\n\nexport const getFipeModelsByVehiclesAndManufacturersAndCategoryApi = (categoryName, manufacturerId, vehicleId) => {\n return api.get(\n `/integrations/FIPE/categories/${categoryName}/manufacturers/${manufacturerId}/vehicles/${vehicleId}/models`,\n );\n};\n\nexport const createCustomerVehicleApi = data => {\n return api.post('customers/vehicles', data);\n};\n\nexport const changeEmailApi = (email, access_token) => {\n return api.patch('/identities/CUSTOMER:changeEmail', {\n email,\n access_token,\n });\n};\n\nexport const changePhoneNumberApi = (phone_number, access_token) => {\n return api.patch('/identities/CUSTOMER:changePhoneNumber', {\n phone_number,\n access_token,\n });\n};\n\nexport const resendAliasConfirmationCodeApi = data => {\n return api.post('identity-providers/CUSTOMER/authentications:resendAliasConfirmationCode', data);\n};\n\nexport const changeEmailConfirmation = (userName, confirmation_code, confirmation_type, access_token) => {\n return api.post(`/identity-providers/CUSTOMER/authentications/${userName}:confirmAlias`, {\n confirmation_code,\n confirmation_type,\n access_token,\n });\n};\n\nexport const confirmSignUpApi = (username, confirmationCode) => {\n return api.post(`/identity-providers/CUSTOMER/authentications/${username}:confirmSignUp`, {\n confirmation_code: confirmationCode,\n });\n};\n\nexport const loadAssociationBalance = associationId => {\n return api.get(`associations/${associationId}:getAccountStatement`);\n};\n\nexport const getOrderCancelReasonsApi = () => {\n return api.get('cancellation-reasons', { params: { owner: 'CUSTOMER' } });\n};\n\nexport const cancelOrderByReasonApi = (orderId, data) => {\n return api.post(`orders/${orderId}:cancel`, data);\n};\n\nexport const getIncomingByContractorIdApi = contractorId => {\n return api.get(`contractors/${contractorId}:fetchIncomingContractor`);\n};\n\nexport const createSurveyContractorApi = data => {\n return api.post('contractors/survey', data);\n};\n\nexport const signUpApi = user => {\n return api.post('/identities/CUSTOMER', user);\n};\n\nexport default api;\n","const messages = {\n 'message-default-error': 'Ocorreu um erro, tente novamente!',\n 'message.verification-code': 'Enviamos um código de verificação para seu e-mail',\n 'message-confirmation-code-mandatory': 'Código de Confirmação não informado!',\n 'message-confirmation-code-valid': 'Código validado com sucesso!',\n 'message-load-order-details': 'Ocorreu um erro ao carregar detalhes ordem!\\nTente novamente.',\n 'message-send-order-confirmation': 'Ocorreu um erro ao enviar a confirmação da ordem!\\nTente novamente.',\n 'message-create-order': 'Ocorreu um erro ao criar a ordem!\\nTente novamente.',\n 'message-cancel-order': 'Ocorreu um erro ao cancelar a ordem!\\nTente novamente.',\n 'message-additional-information':\n 'Sua solicitação não poderá ser realizada, por favor entre em contato com a empresa',\n 'message.account-type.mandatory': 'Tipo de conta obrigatório',\n 'message.address.city.length': 'Tamanho da cidade inválido',\n 'message.address.city.mandatory': 'Cidade obrigatória',\n 'message.address.complement.length': 'Tamanho do endereço inválido',\n 'message.address.country.length': 'Tamanho do país inválido',\n 'message.address.country.mandatory': 'País obrigatório',\n 'message.address.neighborhood.length': 'Tamanho do bairro obrigatório',\n 'message.address.neighborhood.mandatory': 'Bairro obrigatório',\n 'message.address.number.length': 'Tamanho do número inválido',\n 'message.address.number.mandatory': 'Número inválido',\n 'message.address.state.length': 'Tamanho do estado inválido',\n 'message.address.state.mandatory': 'Estado obrigatório',\n 'message.address.street.length': 'Tamanho da rua inválido',\n 'message.address.street.mandatory': 'Rua é obrigatório',\n 'message.address.zipCode.invalid.format': 'CEP inválido',\n 'message.address.zipCode.mandatory': 'CEP é obrigatório',\n 'message.allocation.contractor.id.mandatory': 'ID do prestador obrigatório',\n 'message.allocation.order.id.mandatory': 'ID da ordem é obrigatório',\n 'message.answer.format-length': 'Tamanho da resposta inválido',\n 'message.association-name.format-length': 'Tamanho do nome da empresa inválido',\n 'message.association.address.mandatory': 'Endereço obrigatório',\n 'message.association.charge-excess.mandatory': 'Excesso de carga obrigatório',\n 'message.association.cnpj.duplicated': 'CNPJ duplicado',\n 'message.association.cnpj.length': 'Tamanho do CNPJ inválido',\n 'message.association.cnpj.mandatory': 'CNPJ obrigatório',\n 'message.association.code.duplicate': 'Código duplicado',\n 'message.association.code.length': 'Tamanho do código inválido',\n 'message.association.code.mandatory': 'Código obrigatório',\n 'message.association.company-name.length': 'Tamanho da companhia inválido',\n 'message.association.company-name.mandatory': 'Companhia obrigatório',\n 'message.association.description.length': 'Tamanho da descrição inválido',\n 'message.association.description.mandatory': 'Descrição obrigatório',\n 'message.association.diff-source-destination.mandatory': 'Diferença de origem e destino obrigatório',\n 'message.association.email.invalid-format': 'Formato do e-mail inválido',\n 'message.association.not.found': 'Empresa não encontrada',\n 'message.association.phone-number.invalid-format': 'Formato do telefone inválido',\n 'message.association.trading-name.length': 'Tamanho do nome comercial inválido',\n 'message.benefits.association.id.mandatory': 'ID do benefício inválido',\n 'message.benefits.association.service.code.duplicate': 'Código serviço do benefício duplicado',\n 'message.benefits.code.length': 'Tamanho do código inválido',\n 'message.benefits.code.mandatory': 'Código obrigatório',\n 'message.benefits.coverageKm.length': 'Tamanho da cobertura inválido',\n 'message.benefits.coverageKm.mandatory': 'Cobertura obrigatório',\n 'message.benefits.description.length': 'Tamanho da descrição inválido',\n 'message.benefits.description.mandatory': 'Descrição obrigatório',\n 'message.benefits.list.error': 'Erro na lista de benefício',\n 'message.benefits.period.length': 'Tamanho do período inválido',\n 'message.benefits.period.mandatory': 'Período obrigatório',\n 'message.benefits.quantity.length': 'Tamanho da quantidade inválido',\n 'message.benefits.quantity.mandatory': 'Quantidade obrigatório',\n 'message.benefits.service.id.mandatory': 'ID do serviço obrigatório',\n 'message.benefits.update.error': 'Erro na atualização do benefício',\n 'message.billing-address.city.mandatory': 'Cidade obrigatório',\n 'message.billing-address.mandatory': 'Endereço obrigatório',\n 'message.billing-address.neighborhood.mandatory': 'Bairro obrigatório',\n 'message.billing-address.number.mandatory': 'Número obrigatório',\n 'message.billing-address.state.mandatory': 'Estado obrigatório',\n 'message.billing-address.street.mandatory': 'Endereço obrigatório',\n 'message.billing-address.zip-code.mandatory': 'CEP obrigatório',\n 'message.calculation.association.id.mandatory': 'ID da empresa obrigatório ',\n 'message.calculation.customer.vehicle.social.security.conflict': 'O veículo não pertence ao cliente',\n 'message.calculation.displace.mandatory': 'Deslocamento obrigatório',\n 'message.calculation.point.mandatory': 'Ponto obrigatório',\n 'message.calculation.pricing.association.notfound': 'Valor não encontrado',\n 'message.calculation.service.id.mandatory': 'ID do serviço obrigatório',\n 'message.calculation.social.security.mandatory': 'Documento obrigatório',\n 'message.calculation.timezone.mandatory': 'Fuso horário obrigatório',\n 'message.calculation.vehicle.id.mandatory': 'ID do veículo obrigatório',\n 'message.checking.type.mandatory': 'Tipo obrigatório',\n 'message.client.maplink.error': 'Erro no Maplink',\n 'message.client.zoop.error.timeout': 'Tempo expirou (Zoop)',\n 'message.cnh.dispatchedDate.mandatory': 'Data de expedição obrigatória',\n 'message.cnh.number.length.invalid': 'Tamanho do número inválido',\n 'message.cnh.number.mandatory': 'Número obrigatório',\n 'message.coordinate.latitude.mandatory': 'Latitude obrigatória',\n 'message.coordinate.longitude.mandatory': 'Longitude obrigatória',\n 'message.customer.batch.familyname.length': 'Tamanho do sobrenome inválido',\n 'message.customer.batch.familyname.mandatory': 'Sobrenome obrigatório',\n 'message.customer.batch.givenname.length': 'Tamanho do nome inválido',\n 'message.customer.batch.givenname.mandatory': 'Nome obrigatório',\n 'message.customer.batch.username.length': 'Tamanho do usuário inválido',\n 'message.customer.batch.username.mandatory': 'Usuário obrigatório',\n 'message.customer.username.already.exists': 'Usuário já existe',\n 'message.customer.vehicle.benefits.not.associated': 'Veículo não associado',\n 'message.customer.vehicle.error': 'Erro no veículo',\n 'message.database.duplicated-key': 'Chave duplicada no banco de dados',\n 'message.device.customer-id.length': 'Tamanho do ID cliente inválido',\n 'message.device.customer-id.mandatory': 'ID do cliente é obrigatório',\n 'message.device.notfound': 'Dispositivo não encontrado',\n 'message.device.token.length': 'Tamanho do token inválido',\n 'message.device.token.mandatory': 'Token é obrigatório',\n 'message.document.type.mandatory': 'Tipo do documento obrigatório',\n 'message.email.unique': 'E-mail já existe',\n 'message.file.presign.error': 'Erro no arquivo',\n 'message.file.upload.error': 'Erro no upload',\n 'message.fipe-api.integration-error': 'Erro na integração com a FIPE',\n 'message.identity.customer.client.error': 'Erro na identificação do cliente',\n 'message.integration.fipe-api.error': 'Erro na integração com a FIPE',\n 'message.integration.gateway.connection.refused': 'Conexão recusada',\n 'message.order.calculation.invalid': 'Cálculo inválido',\n 'message.order.calculation.notfound': 'Cálculo não encontrado',\n 'message.order.checking.notfound': 'Verificação não encontrada',\n 'message.order.deallocation.not-same-contractor': 'Desalocação não é do mesmo prestador',\n 'message.order.id.mandatory': 'ID da ordem é obrigatória',\n 'message.order.message.canceled': 'Ordem cancelada',\n 'message.order.message.deallocated': 'Ordem desalocada',\n 'message.order.message.executing': 'Ordem em execução',\n 'message.order.message.finished': 'Ordem concluída',\n 'message.order.message.on-going': 'Ordem em andamento',\n 'message.order.message.payment-refused': 'Pagamento recusado',\n 'message.order.state-violation': 'Violação do estado',\n 'message.order.subject.canceled': 'Ordem cancelada',\n 'message.order.subject.deallocated': 'Ordem desalocada',\n 'message.order.subject.executing': 'Ordem em execução',\n 'message.order.subject.finished': 'Ordem concluída',\n 'message.order.subject.on-going': 'Ordem em andamento',\n 'message.order.subject.payment-refused': 'Pagamento recusado',\n 'message.orders.association-code.mandatory': 'Código da empresa obrigatório',\n 'message.orders.association-id.mandatory': 'ID da empresa obrigatório',\n 'message.orders.association-name.mandatory': 'Nome da empresa obrigatório',\n 'message.orders.coordinates.destination.mandatory': 'Destino obrigatório',\n 'message.orders.coordinates.displace.mandatory': 'Deslocamento obrigatório',\n 'message.orders.coordinates.latitude.format-length': 'Tamanho da latitude inválido',\n 'message.orders.coordinates.latitude.format': 'Formato da latitude inválido',\n 'message.orders.coordinates.latitude.mandatory': 'Latitude obrigatória',\n 'message.orders.coordinates.longitude.format-length': 'Tamanho da longitude inválido',\n 'message.orders.coordinates.longitude.format': 'Formato da longitude inválido',\n 'message.orders.coordinates.longitude.mandatory': 'Longitude obrigatório',\n 'message.orders.coordinates.mandatory': 'Coordenadas obrigatório',\n 'message.orders.coordinates.ordination.format-min': 'Tamanho mínimo inválido',\n 'message.orders.coordinates.ordination.mandatory': 'Ordenação obrigatório',\n 'message.orders.coordinates.source.mandatory': 'Fonte obrigatório',\n 'message.orders.cost.amount.format-length': 'Tamanho do quantida inválida',\n 'message.orders.cost.amount.format-max': 'Tamanho máximo do quantida inválida',\n 'message.orders.cost.amount.format-min': 'Tamanho mínimo do quantida inválida',\n 'message.orders.cost.amount.mandatory': 'Quantidade obrigatória',\n 'message.orders.cost.benefits-quota-exceeded.mandatory': 'Quantidade de benefícios obrigatória',\n 'message.orders.cost.discount.format-length': 'Tamanho do desconto inválido',\n 'message.orders.cost.discount.format-max': 'Tamanho máximo do desconto inválido',\n 'message.orders.cost.discount.format-min': 'Tamanho mínimo do desconto inválido',\n 'message.orders.cost.discount.mandatory': 'Desconto obrigatório',\n 'message.orders.cost.displace.mandatory': 'Deslocamento obrigatório',\n 'message.orders.cost.has-benefits.mandatory': 'Tem benefício obrigatório',\n 'message.orders.cost.id.mandatory': 'ID do custo obrigatório',\n 'message.orders.cost.mandatory': 'Custo obrigatório',\n 'message.orders.cost.payer.mandatory': 'Pagador obrigatório',\n 'message.orders.cost.surcharge.format-length': 'Tamanho da sobretaxa inválido',\n 'message.orders.cost.surcharge.format-max': 'Tamanho máximo da sobretaxa inválido',\n 'message.orders.cost.surcharge.format-min': 'Tamanho mínimo da sobretaxa inválido',\n 'message.orders.cost.surcharge.mandatory': 'Sobretaxa obrigatório',\n 'message.orders.cost.total.format-length': 'Tamanho do total inválido',\n 'message.orders.cost.total.format-max': 'Tamanho máximo do total inválido',\n 'message.orders.cost.total.format-min': 'Tamanho mínimo do total inválido',\n 'message.orders.cost.total.mandatory': 'Total obrigatório',\n 'message.orders.cost.type.mandatory': 'Tipo obrigatório',\n 'message.orders.cost.value.format-length': 'Tamanho do valor inválido',\n 'message.orders.cost.value.format-max': 'Tamanho máximo do valor inválido',\n 'message.orders.cost.value.format-min': 'Tamanho mínimo do valor inválido',\n 'message.orders.cost.value.mandatory': 'Valor obrigatório',\n 'message.orders.customer.mandatory': 'Cliente obrigatório',\n 'message.orders.orders.vehicle.model-year.format-length': 'Tamanho do ano inválido',\n 'message.orders.payment.mandatory': 'Pagamento obrigatório',\n 'message.orders.payment.type.mandatory': 'Tipo do pagamento obrigatório',\n 'message.orders.service-type.mandatory': 'Tipo do serviço obrigatório',\n 'message.orders.time-zone.mandatory': 'Fuso horário obrigatório',\n 'message.orders.vehicle-color.mandatory': 'Cor do veículo obrigatória',\n 'message.orders.vehicle-manufacture.mandatory': 'Marca do veículo obrigatória',\n 'message.orders.vehicle-model.mandatory': 'Modelo do veículo obrigatório',\n 'message.orders.vehicle-status.mandatory': 'Situação do veículo obrigatória',\n 'message.orders.vehicle-type.mandatory': 'Tipo do veículo obrigatório',\n 'message.orders.vehicle.city.format-length': 'Tamanho da cidade inválido',\n 'message.orders.vehicle.color.format-length': 'Tamanho da cor inválido',\n 'message.orders.vehicle.license-plate.format-length': 'Tamanho da placa inválido',\n 'message.orders.vehicle.mandatory': 'Veículo obrigatório',\n 'message.orders.vehicle.manufacture.format-length': 'Tamanho da montadora inválido',\n 'message.orders.vehicle.model.format-length': 'Tamanho do modelo inválido',\n 'message.orders.vehicle.state.format-length': 'Tamanho da situação inválido',\n 'message.orders.vehicle.status.format-length': 'Tamanho do estado inválido',\n 'message.orders.vehicle.type.format-length': 'Tamanho do tipo do veículo inválido',\n 'message.organization.address.mandatory': 'Endereço obrigatório',\n 'message.organization.alreadyexists': 'Organização já existe',\n 'message.organization.company-name.lenght': 'Tamanho do nome da companhia inválido',\n 'message.organization.company-name.mandatory': 'Companhia obrigatória',\n 'message.organization.contractor.alreadyexists': 'Prestador já existe',\n 'message.organization.contractor.identity.mandatory': 'Identidade obrigatória',\n 'message.organization.contractor.organization.mandatory': 'Organização obrigatória',\n 'message.organization.contractor.organization.notfound': 'Organização não encontrada',\n 'message.organization.email.invalid': 'E-mail inválido',\n 'message.organization.email.lenght': 'Tamanho do e-mail inválido',\n 'message.organization.email.mandatory': 'E-mail obrigatório',\n 'message.organization.identity.lenght': 'Tamanho da identidade inválido',\n 'message.organization.notfound': 'Organização não encontrada',\n 'message.organization.social-identity.duplicated': 'Documento duplicado',\n 'message.organization.social-identity.lenght': 'Tamanho do documento inválido',\n 'message.organization.social-identity.mandatory': 'Documento obrigatório',\n 'message.path.mandatory': 'Caminho obrigatório',\n 'message.payment.notfound': 'Pagamento não encontrado',\n 'message.payment.order.id.mandatory': 'ID da ordem obrigatório',\n 'message.payment.reason.length': 'Tamanho da razão inválido',\n 'message.payment.reason.mandatory': 'Razão obrigatório',\n 'message.payment.token.mandatory': 'Token obrigatório',\n 'message.period.data.error': 'Erro no período',\n 'message.point.latitude.mandatory': 'Latitude obrigatória',\n 'message.point.longitude.mandatory': 'Longitude obrigatória',\n 'message.pricing.association.duplicate': 'Empresa duplicada',\n 'message.pricing.code.mandatory': 'Código obrigatório',\n 'message.pricing.price.format': 'Formato do preço inválido',\n 'message.pricing.price.mandatory': 'Preço obrigatório',\n 'message.pricing.price.minValue': 'Preço mínimo inválido',\n 'message.pricingAssociation.association.mandatory': 'Empresa obrigatória',\n 'message.pricingAssociation.exceeded.mandatory': 'Excedido obrigatório',\n 'message.pricingAssociation.prices.mandatory': 'Preço obrigatório',\n 'message.pricingAssociation.serviceCategory.mandatory': 'Categoria obrigatória',\n 'message.problem.calculation-mode.mandatory': 'Modo de cálculo obrigatório',\n 'message.problem.points.lenght': 'Tamanho dos pontos inválido',\n 'message.problem.points.mandatory': 'Pontos obrigatório',\n 'message.problem.start-date.mandatory': 'Data início obrigatório',\n 'message.question.format-length': 'Tamanho da mensagem inválido',\n 'message.quiz.active.mandatory': 'Questionário obrigatório',\n 'message.quiz.answer.mandatory': 'Resposta obrigatória',\n 'message.quiz.association.code.constraint.duplicate': 'Empresa duplicada',\n 'message.quiz.association.mandatory': 'Empresa obrigatória',\n 'message.quiz.code.mandatory': 'Código obrigatório',\n 'message.quiz.form.mandatory': 'Formulário obrigatório',\n 'message.quiz.question.mandatory': 'Questão obrigatória',\n 'message.quiz.service.mandatory': 'Serviço obrigatório',\n 'message.quiz.serviceId.mandatory': 'ID do serviço obrigatório',\n 'message.request.conversion.error': 'Erro na conversão da requisição',\n 'message.rg.dispatchedDate.mandatory': 'Data de expedição obrigatória',\n 'message.rg.number.length.invalid': 'Tamanho do número inválido',\n 'message.rg.number.mandatory': 'Número obrigatório',\n 'message.sign-up.username.error': 'Erro na criação do usuário',\n 'message.toll-problem.legs.mandatory': 'Deslocamento obrigatório',\n 'message.toll-problem.source.mandatory': 'Fonte obrigatória',\n 'message.toll.leg.points.mandatory': 'Pontos obrigatório',\n 'message.toll.leg.vehicle-type.mandatory': 'Tipo do veículo obrigatório',\n 'message.trip.identity.mandatory': 'Identidade obrigatória',\n 'message.trip.job.notfound': 'Trabalho não encontrado',\n 'message.trip.problem.mandatory': 'Problema obrigatório',\n 'message.user.created-at.mandatory': 'Data de criação obrigatória',\n 'message.user.email.invalid': 'E-mail inválido',\n 'message.user.email.mandatory': 'E-mail obrigatório',\n 'message.user.phoneNumber.mandatory': 'Telefone obrigatório',\n 'message.user.id.mandatory': 'ID do usuário obrigatório',\n 'message.user.phone-number.length': 'Tamanho do telefone inválido',\n 'message.user.phone-number.mandatory': 'Telefone obrigatório',\n 'message.user.token.length': 'Tamanho do token inválido',\n 'message.user.token.mandatory': 'Token obrigatório',\n 'message.user.username.length': 'Tamanho do usuário inválido',\n 'message.user.username.mandatory': 'Usuário obrigatório',\n 'message.value.mandatory': 'Valor obrigatório',\n 'message.vehicle.contractor.city.length': 'Tamanho da cidade inválido',\n 'message.vehicle.contractor.city.mandatory': 'Cidade obrigatória',\n 'message.vehicle.contractor.color.length': 'Tamanho da cor inválido',\n 'message.vehicle.contractor.color.mandatory': 'Cor obrigatória',\n 'message.vehicle.contractor.licenseplate.length': 'Tamanho da placa inválido',\n 'message.vehicle.contractor.licenseplate.mandatory': 'Placa obrigatória',\n 'message.vehicle.contractor.manufacture.length': 'Tamanho do marca inválido',\n 'message.vehicle.contractor.manufacture.mandatory': 'Marca obrigatória',\n 'message.vehicle.contractor.model.length': 'Tamanho do modelo é inválido',\n 'message.vehicle.contractor.model.mandatory': 'Modelo obrigatório',\n 'message.vehicle.contractor.notfound': 'Prestador não encontrado',\n 'message.vehicle.contractor.organization.id.mandatory': 'ID da Organização é obrigatório',\n 'message.vehicle.contractor.state.length': 'O tamanho do estado é inválido',\n 'message.vehicle.contractor.state.mandatory': 'O estado é obrigatório',\n 'message.vehicle.contractor.type.id.mandatory': 'O tipo é obrigatório',\n 'message.vehicle.contractor.unique': 'O veículo não é único',\n 'message.vehicle.contractor.vin.length': 'Tamanho do chassi inválido',\n 'message.vehicle.contractor.vin.mandatory': 'Chassi obrigatório',\n 'message.vehicle.customer.association.id.mandatory': 'ID da empresa é obrigatório',\n 'message.vehicle.customer.city.length': 'Tamanho da cidade inválido',\n 'message.vehicle.customer.city.mandatory': 'Cidade obrigatória',\n 'message.vehicle.customer.color.length': 'Tamanho da cor inválido',\n 'message.vehicle.customer.color.mandatory': 'Cor obrigatória',\n 'message.vehicle.customer.identity.length': 'Tamanho da identidade inválido',\n 'message.vehicle.customer.licenseplate.length': 'Tamanho da placa inválido',\n 'message.vehicle.customer.licenseplate.mandatory': 'Placa é obrigatória',\n 'message.vehicle.customer.licenseplate.or.vin.mandatory': 'Placa ou chassi são obrigatórios',\n 'message.vehicle.customer.manufacture.length': 'Tamanho da marca inválido',\n 'message.vehicle.customer.manufacture.mandatory': 'Marca obrigatória',\n 'message.vehicle.customer.manufacturer.length': 'Tamanho da marca inválido',\n 'message.vehicle.customer.manufacturer.mandatory': 'Marca obrigatória',\n 'message.vehicle.customer.model.length': 'Tamanho do modelo inválido',\n 'message.vehicle.customer.model.mandatory': 'Modelo obrigatório',\n 'message.vehicle.customer.notfound': 'Cliente não encontrado',\n 'message.vehicle.customer.social.security.length': 'Tamanho do documento inválido',\n 'message.vehicle.customer.social.security.mandatory': 'Documento obrigatório',\n 'message.vehicle.customer.state.length': 'Tamanho do estado inválido',\n 'message.vehicle.customer.state.mandatory': 'Estado obrigatório',\n 'message.vehicle.customer.status.error': 'Erro no estado',\n 'message.vehicle.customer.status.length': 'Tamanho do estado inválido',\n 'message.vehicle.customer.status.mandatory': 'Estado obrigatório',\n 'message.vehicle.customer.type.id.mandatory': 'ID do tipo obrigatório',\n 'message.vehicle.customer.type.invalid': 'Tipo inválido',\n 'message.vehicle.customer.type.length': 'Tamanho do tipo inválido',\n 'message.vehicle.customer.type.mandatory': 'Tipo obrigatório',\n 'message.vehicle.customer.update.unable': 'Atualização não permitida',\n 'message.vehicle.customer.vin.length': 'Tamanho do chassi inválido',\n 'message.vehicle.customer.vin.mandatory': 'Chassi obrigatório',\n 'message.bank.mandatory': 'Banco obrigatório',\n 'message.bankCode.mandatory': 'Código do banco obrigatório',\n 'message.branch.mandatory': 'Agência obrigatória',\n 'message.cnpj.invalid': 'CNPJ inválido',\n 'message.cnpj.mandatory': 'CNPJ obrigatório',\n 'message.confirmation-code.expired': 'Código de confirmação expirado',\n 'message.confirmation-code.mismatch': 'Código de confirmação inválido',\n 'message.cpf.invalid': 'CPF inválido',\n 'message.cpf.mandatory': 'CPF obrigatório',\n 'message.current-account.mandatory': 'Conta corrente obrigatório',\n 'message.customer.phone-number.already.exists': 'Telefone já existe',\n 'message.document.notfound': 'Documento não encontrado',\n 'message.document.validation.error': 'Erro na validação do documento',\n 'message.file.convert.error': 'Erro ao converter o arquivo',\n 'message.integration.connection.refused': 'Integração foi recusada',\n 'message.login.not-confirmed': 'Login não confirmado',\n 'message.login.unauthorized': 'Usuário ou senha inválido',\n 'message.malformed-request': 'Requisição mal formatada',\n 'message.order.notfound': 'Ordem não encontrada',\n 'message.parser.error': 'Erro ao converter',\n 'message.password.weak': 'Senha inválida',\n 'message.person-type.mandatory': 'Tipo de pessoa obrigatório',\n 'message.recipient.mandatory': 'Recebedor obrigatório',\n 'message.reset-password.code.expired': 'Código de reset da senha expirou',\n 'message.sign-in.wrong-username-password': 'Usuário ou senha inválida',\n 'message.sign-up.email-phone-constraint': 'E-mail e telefone obrigatório',\n 'message.sign-up.email.duplicity': 'E-mail já existe',\n 'message.sign-up.social-account.already.logged.in': 'Login social já existe',\n 'message.sign-up.username.duplicity': 'Usuário já existe',\n 'message.token.expired': 'Token expirado',\n 'message.type.mandatory': 'Tipo obrigatório',\n 'message.user.not-found': 'Usuário não encontrado',\n 'message.orders.time-zone.format-length': 'Tamanho do fuso horário inválido',\n 'message.orders.association-code.format-length': 'Tamanho do código da empresa inválido',\n 'message.orders.customer.format-length': 'Tamanho do documento inválido',\n 'message.orders.payment.token.format-length': 'Tamanho do token pagamento inválido',\n 'message.orders.payment.type.format-length': 'Tamanho do tipo de pagamento inválido',\n 'message.service_regions.unavailable': 'Fora da área de atuação da Picktow.',\n 'message.calculation.source.mandatory': 'Origem obrigatória',\n 'message.contractor.evaluation.social-security.mandatory': 'Documento obrigatório',\n 'message.contractor.evaluation.order-id.mandatory': 'ID da ordem obrigatório',\n 'message.old-password.length': 'Tamanho da senha antiga inválido',\n 'message.orders.in-progress': 'Já existe uma ordem em execução',\n 'message.app.destination.mandatory': 'Destino é obrigatório',\n 'message.app.origin.mandatory': 'Origem é obrigatória',\n 'message.app.invalid.password':\n 'Nova Senha inválida!\\n\\nDeve conter 8 caracteres, sendo.\\nLetras maiúsculas,\\nletras minúsculas e números.',\n 'message.app.password.not-matched': 'Senhas não são iguais!',\n 'message.app.password.new.mandatory': 'Nova Senha obrigatória!',\n 'message.app.password.old.mandatory': 'Senha Atual obrigatória!',\n 'message.app.confirmation-code.mandatory': 'Código de Confirmação obrigatório!',\n 'message.app.usename.mandatory': 'CPF / CNPJ obrigatório!',\n 'message.app.password.mandatory': 'Senha é obrigatória!',\n 'message.app.email.not-matched': 'E-mails não são iguais!',\n 'message.app.phoneNumber.not-matched': 'Telefones não são iguais!',\n};\n\nexport default messages;\n","import messages from '~/config/messages';\n\nexport function handleApiErrorResponse(error, defaultMessage = messages['message-default-error']) {\n const errors = error?.response?.data ?? error?.message;\n\n if (!errors) {\n return;\n }\n\n if (errors && Array.isArray(errors)) {\n const msgTranslated = errors.map(errorItem => messages[errorItem] ?? defaultMessage);\n\n const uniqMessages = Array.from(new Set(msgTranslated));\n\n const stringErrors = uniqMessages.join('\\n');\n\n return {\n applicationErrorMessage: stringErrors,\n apiError: '',\n };\n } else if (errors.error) {\n return {\n applicationErrorMessage: messages[errors.error] ? messages[errors.error] : defaultMessage,\n apiError: '',\n };\n } else if (errors?.messages && Array.isArray(errors?.messages)) {\n const errorsMessages = errors?.messages;\n\n const msgTranslated = errorsMessages.map(errorItem => messages[errorItem] ?? defaultMessage);\n\n const uniqMessages = Array.from(new Set(msgTranslated));\n\n const stringErrors = uniqMessages.join('\\n');\n\n return {\n applicationErrorMessage: stringErrors,\n apiError: '',\n };\n }\n\n return {\n applicationErrorMessage: error.message,\n apiError: errors.errorDescription || errors.data,\n apiResponseStatus: error.response && error.response.status,\n handledMessage: messages[errors] ?? defaultMessage,\n };\n}\n","import { createBrowserHistory } from 'history';\n\nconst history = createBrowserHistory();\n\nexport default history;\n","import { all, put, call, takeLatest } from 'redux-saga/effects';\nimport jwtDecode from 'jwt-decode';\n\nimport {\n loginApi,\n setAuthorizationHeader,\n forgotApi,\n resetPasswordApi,\n resendConfirmationCodeApi,\n changePasswordApi,\n resendAliasConfirmationCodeApi,\n signUpApi,\n} from '~/services/api';\n\nimport { handleApiErrorResponse } from '~/services/handleErrors';\nimport {\n Types as AuthTypes,\n // loginRequest,\n // getClientRequest,\n loginSuccess,\n loginFailure,\n logoutSuccess,\n logoutFailure,\n refreshTokenSuccess,\n refreshTokenFailure,\n userPopulateToken,\n forgotFailure,\n resetPasswordSuccess,\n resetPasswordFailure,\n updateAuthData,\n changePasswordSuccess,\n changePasswordFailure,\n logout,\n resendAliasConfirmationCodeSuccess,\n resendAliasConfirmationCodeError,\n resendAliasConfirmationCodeClear,\n signUpFailure,\n signUpSuccess,\n userPopulate,\n signUpConfirmation,\n} from '~/store/ducks/auth';\nimport history from '~/services/history';\nimport { clearOrder } from '../ducks/order';\nimport { clearBalance } from '../ducks/associationBalance';\nimport { clearSnapshot } from '../ducks/snapShot';\n\nexport function* forgotSaga(action) {\n try {\n const { username } = action.payload;\n yield call(forgotApi, username);\n } catch (err) {\n yield put(forgotFailure(handleApiErrorResponse(err)));\n }\n}\n\nexport function* setAuthorizationHeaderSaga(token) {\n yield call(setAuthorizationHeader, token);\n}\n\nexport function* updateAuthDataSaga(action) {\n const { authorization: authData } = action;\n // Set api X-Authorization header\n yield call(setAuthorizationHeaderSaga, authData.id_token);\n\n // Persist authorization data\n authData.expires_in *= 1000;\n authData.expiration_date = new Date().getTime() + authData.expires_in;\n\n // dispatch modified auth data to store\n}\n\nexport function* refreshTokenSaga() {\n try {\n // const { refresh_token } = action.payload;\n const { data: authData } = yield call();\n yield call(updateAuthDataSaga, { authorization: authData });\n yield put(refreshTokenSuccess(authData));\n } catch (err) {\n yield put(refreshTokenFailure(handleApiErrorResponse(err)));\n }\n}\n\nexport function* logoutSaga() {\n try {\n yield put(updateAuthData({}));\n yield put(clearOrder());\n yield put(clearBalance());\n yield put(clearSnapshot());\n yield put(logoutSuccess());\n } catch (err) {\n yield put(logoutFailure(err));\n }\n}\n\nexport function* userPopulateSaga(token) {\n if (!token) {\n return;\n }\n\n const tokenDecoded = jwtDecode(token);\n yield put(userPopulateToken(tokenDecoded));\n}\n\nexport function* loadAuthorizationFromStorageSaga() {\n // const storageAtuhData = yield call(AsyncStorage.getItem, 'authorization');\n // let lastAuthData = null;\n // if (storageAtuhData) {\n // lastAuthData = JSON.parse(storageAtuhData);\n // }\n // return lastAuthData;\n}\n\nexport function* loadUserFromStorageSaga() {\n // const storageUserData = yield call(AsyncStorage.getItem, 'user');\n // let lastUserData = null;\n // if (storageUserData) {\n // lastUserData = JSON.parse(storageUserData);\n // delete lastUserData?.password;\n // }\n // return lastUserData;\n}\n\nexport function* resetPasswordSaga(action) {\n try {\n const { username, password, resetCode } = action.payload;\n yield call(resetPasswordApi, username, password, resetCode);\n yield put(resetPasswordSuccess());\n history.push('/');\n } catch (err) {\n yield put(resetPasswordFailure(handleApiErrorResponse(err)));\n }\n}\n\nexport function* resendConfirmationCodeSaga(action) {\n try {\n const { username } = action.payload;\n const { data } = yield call(resendConfirmationCodeApi, username);\n yield put(signUpSuccess(data));\n // yield put(ToastActionsCreators.displayInfo('Novo Código Enviado!'));\n } catch (err) {\n // const errorMessages = handleApiErrorResponse(err);\n // yield put(\n // ToastActionsCreators.displayError(\n // errorMessages.applicationErrorMessage + '\\n' + errorMessages.apiError,\n // ),\n // );\n }\n}\n\nexport function* changePasswordSaga(action) {\n try {\n const { username, currentPassword, newPassword } = action.payload;\n yield call(changePasswordApi, username, currentPassword, newPassword);\n yield put(changePasswordSuccess());\n yield put(logout());\n } catch (err) {\n yield put(changePasswordFailure(handleApiErrorResponse(err)));\n }\n}\n\nexport function* loginSaga(action) {\n try {\n const { username, password } = action.payload;\n const { data: authData } = yield call(loginApi, username, password);\n\n yield call(userPopulateSaga, authData.id_token);\n yield call(updateAuthDataSaga, { authorization: authData });\n yield put(loginSuccess(authData));\n } catch (error) {\n if (error?.response?.data === 'message.login.not-confirmed') {\n const { username } = action.payload;\n\n yield put(userPopulate({ username }));\n yield put(signUpConfirmation());\n } else {\n yield put(loginFailure(handleApiErrorResponse(error)));\n }\n }\n}\n\nexport function* resendAliasConfirmationCodeSaga(action) {\n try {\n const { data } = action.payload;\n yield call(resendAliasConfirmationCodeApi, data);\n yield put(resendAliasConfirmationCodeSuccess());\n yield put(resendAliasConfirmationCodeClear());\n } catch (err) {\n const errorMessages = handleApiErrorResponse(err);\n yield put(\n resendAliasConfirmationCodeError(\n errorMessages?.handledMessage || errorMessages?.apiError || errorMessages?.applicationErrorMessage,\n ),\n );\n yield put(resendAliasConfirmationCodeClear());\n }\n}\n\nexport function* signUpSaga(action) {\n try {\n const { user } = action;\n const { data } = yield call(signUpApi, user);\n yield put(signUpSuccess(data));\n } catch (err) {\n const errorMessages = handleApiErrorResponse(err, 'Erro ao criar a conta, tente novamente');\n yield put(\n signUpFailure(errorMessages?.handledMessage || errorMessages?.apiError || errorMessages?.applicationErrorMessage),\n );\n }\n}\n\nexport default all([\n takeLatest(AuthTypes.LOGIN_REQUEST, loginSaga),\n takeLatest(AuthTypes.FORGOT_PASSWORD, forgotSaga),\n takeLatest(AuthTypes.LOGOUT, logoutSaga),\n takeLatest(AuthTypes.RESET_PASSWORD_REQUEST, resetPasswordSaga),\n takeLatest(AuthTypes.RESEND_CONFIRMATION_CODE, resendConfirmationCodeSaga),\n takeLatest(AuthTypes.CHANGE_PASSWORD_REQUEST, changePasswordSaga),\n takeLatest(AuthTypes.UPDATE_AUTH_DATA, updateAuthDataSaga),\n takeLatest(AuthTypes.RESEND_ALIAS_CONFIRMATION_CODE_REQUEST, resendAliasConfirmationCodeSaga),\n takeLatest(AuthTypes.SIGN_UP_REQUEST, signUpSaga),\n]);\n","import { put, call, takeEvery } from 'redux-saga/effects';\nimport { loadVehicleBenefitQuota, loadVehicleBenefits } from '~/services/api';\nimport { ReduxAction } from '../@types/Action';\nimport { BenefitState, CustomerBenefitType as ActionTypes } from '../ducks/customerBenefit';\n\nfunction* loadBenefitSaga(action: ReduxAction) {\n try {\n const associationId = action.payload?.associationId ?? '';\n const serviceId = action.payload?.serviceId ?? '';\n const socialSecurity = action.payload?.socialSecurity ?? '';\n const vehicleId = action.payload?.vehicleId ?? '';\n const vin = action.payload?.vin ?? '';\n\n const benefit = yield call(loadVehicleBenefits, associationId, serviceId, socialSecurity, vehicleId);\n const benefitQuota = yield call(loadVehicleBenefitQuota, {\n benefits_date_created: benefit.data.created_at,\n customer_id: socialSecurity,\n benefits_quantity: benefit.data.quantity,\n service_id: serviceId,\n vin: vin,\n });\n\n yield put({\n type: ActionTypes.ON_SUCESS,\n payload: {\n vehicleBenefits: {\n benefits: { ...benefit.data, quota_expended: benefitQuota.data.quota_expended },\n id: vehicleId,\n },\n associationId: associationId,\n serviceId: serviceId,\n socialSecurity: socialSecurity,\n vehicleId: vehicleId,\n loading: false,\n },\n });\n } catch (error) {\n console.log(error);\n yield put({\n type: ActionTypes.ON_FAILURE,\n payload: {\n loading: false,\n },\n });\n }\n}\n\nexport default function* benefitsSaga() {\n yield takeEvery(ActionTypes.ON_REQUEST, loadBenefitSaga);\n}\n","import { all } from 'redux-saga/effects';\nimport authSagas from './auth';\nimport benefitsSaga from './customerBenefitSaga';\n\nexport default function* rootSaga() {\n yield all([authSagas, benefitsSaga()]);\n}\n","import { createTransform } from 'redux-persist';\n\nconst SetTransform = createTransform(inboundState => {\n return { ...inboundState, loading: false, error: '' };\n});\n\nexport default SetTransform;\n","import { createStore, compose, applyMiddleware } from 'redux';\nimport createSagaMiddleware from 'redux-saga';\nimport { persistStore } from 'redux-persist';\n\nimport reducers from './ducks';\nimport sagas from './sagas';\nimport persistReducers from './persisties/persistReducers';\n\nconst middlewares = [];\n\nconst sagaMonitor = process.env.NODE_ENV === 'development' ? console.tron.createSagaMonitor() : null;\n\nconst sagaMiddleware = createSagaMiddleware({ sagaMonitor });\n\nmiddlewares.push(sagaMiddleware);\n\nconst composer =\n process.env.NODE_ENV === 'development'\n ? compose(applyMiddleware(...middlewares), console.tron.createEnhancer())\n : compose(applyMiddleware(...middlewares));\n\nconst store = createStore(persistReducers(reducers), composer);\nconst persistor = persistStore(store);\n\nsagaMiddleware.run(sagas);\n\nexport { store, persistor };\n","import storage from 'redux-persist/lib/storage';\nimport { persistReducer } from 'redux-persist';\nimport SetTransform from './SetTransform';\n\nexport default reducers => {\n const persistedReducer = persistReducer(\n {\n key: 'picktow-app-web',\n storage,\n // TODO persist snapshot\n // whitelist: ['auth', 'order', 'customerBenefits', 'snapshot'],\n whitelist: ['auth', 'order', 'customerBenefits'],\n transforms: [SetTransform],\n },\n reducers,\n );\n\n return persistedReducer;\n};\n","import * as React from 'react';\nimport { SVGProps } from 'react';\n\nconst LogoPicktow = ({ fill, ...rest }: SVGProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default LogoPicktow;\n","const colors = {\n blue: '#00DEF5',\n lightBlue: '#cdd8db',\n darkYellow: '#FEDB00',\n green: '#009C54',\n lightGrey: '#f3f3f3',\n grey: '#6a6c6e',\n white: '#fff',\n black: '#000',\n red: '#f00',\n darkBlue: '#2e397b',\n picktowBlue: '#2f397c',\n done: '#10cc52',\n strokeColor: '#FF0000',\n backButton: '#497fe5',\n purple: '#7030A0',\n orange: '#FFC000',\n pureRed: '#fe0000',\n pureYellow: '#ffff02',\n pureLightBlue: '#00b0ee',\n pureGreen: '#02af52',\n darkGolden: '#B8860B',\n lightGreyNew: '#f2f2f2',\n background: '#dfdfdf',\n};\n\nfunction hexToRgb(hex: string) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : [255, 255, 255];\n}\n\nfunction rgbaString(red = 0, green = 0, blue = 0, alpha = 0) {\n const fixBoundariesIfNeeded = (value: number) => Math.min(Math.max(value, 0), 255);\n const formatFloat = (value: number) => value.toFixed(2);\n const formatInt = (value: number) => fixBoundariesIfNeeded(Math.round(value));\n return `rgba(${formatInt(red)},${formatInt(green)},${formatInt(blue)},${formatFloat(alpha)})`;\n}\n\nconst rgbaColors = {\n blue: (opacity: number) => rgbaString(...hexToRgb(Colors.blue), opacity), // '#00DEF5'\n lightBlue: (opacity: number) => rgbaString(...hexToRgb(Colors.lightBlue), opacity), // '#cdd8db'\n darkYellow: (opacity: number) => rgbaString(...hexToRgb(Colors.darkYellow), opacity), // '#FEDB00'\n green: (opacity: number) => rgbaString(...hexToRgb(Colors.green), opacity), // '#009C54'\n lightGrey: (opacity: number) => rgbaString(...hexToRgb(Colors.lightGrey), opacity), // '#f3f3f3'\n grey: (opacity: number) => rgbaString(...hexToRgb(Colors.grey), opacity), // '#6a6c6e'\n white: (opacity: number) => rgbaString(...hexToRgb(Colors.white), opacity), // '#fff'\n black: (opacity: number) => rgbaString(...hexToRgb(Colors.black), opacity), // '#000'\n red: (opacity: number) => rgbaString(...hexToRgb(Colors.red), opacity), // '#f00'\n darkBlue: (opacity: number) => rgbaString(...hexToRgb(Colors.darkBlue), opacity), // '#2e397b'\n done: (opacity: number) => rgbaString(...hexToRgb(Colors.done), opacity), // '#10cc52'\n strokeColor: (opacity: number) => rgbaString(...hexToRgb(Colors.strokeColor), opacity), // '#FF0000'\n backButton: (opacity: number) => rgbaString(...hexToRgb(Colors.backButton), opacity), // '#497fe5'\n picktowBlue: (opacity: number) => rgbaString(...hexToRgb(Colors.picktowBlue), opacity), // '#2f397c'\n purple: (opacity: number) => rgbaString(...hexToRgb(Colors.purple), opacity), // '#7030A0'\n orange: (opacity: number) => rgbaString(...hexToRgb(Colors.orange), opacity), // '#FFC000'\n darkGolden: (opacity: number) => rgbaString(...hexToRgb(Colors.darkGolden), opacity), // '#B8860B'\n};\n\nexport const RgbaColors = {\n primary: rgbaColors.darkBlue,\n secondary: rgbaColors.blue,\n textBody: rgbaColors.lightGrey,\n textFeatured: rgbaColors.darkBlue,\n textHighlight: rgbaColors.darkYellow,\n error: rgbaColors.red,\n textLink: rgbaColors.blue,\n ...rgbaColors,\n};\n\n/**\n * Exports the application colors.\n *\n * @example\n * // Using HEX color\n * Colors.primary // Returns #00DEF5\n *\n * @example\n * // Using RGBA color\n * Colors.rgba.primary(.5) // Returns rgb(0,222,245,0.5)\n *\n */\nconst Colors = {\n primary: colors.darkBlue,\n secondary: colors.blue,\n textBody: colors.lightGrey,\n textFeatured: colors.darkBlue,\n textHighlight: colors.darkYellow,\n error: colors.red,\n textLink: colors.blue,\n rgba: { ...RgbaColors },\n ...colors,\n};\n\nexport default Colors;\n","import styled from 'styled-components';\nimport Colors from '~/styles/colors';\n\nexport const DivContainer = styled.div`\n min-height: 100vh;\n background: ${Colors.lightGreyNew};\n\n display: flex;\n flex: 1;\n justify-content: center;\n align-items: center;\n padding: 0 16px;\n`;\n\nexport const Div = styled.div`\n max-width: 360px;\n text-align: center;\n display: flex;\n flex-direction: column;\n flex: 1;\n /* align-items: center; */\n\n form {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n }\n`;\n","import React from 'react';\n\nimport LogoPicktow from '~/assets/svg/logo_p_picktow';\nimport { LayoutProps } from '~/types';\nimport { DivContainer, Div } from './styles';\n\nexport default function AuthLayout({ children, marginTop }: LayoutProps) {\n return (\n \n
\n
\n
\n \n
\n {children}\n
\n \n );\n}\n","import styled from 'styled-components';\nimport { NavLink as BaseLink } from 'react-router-dom';\n\nimport Colors from '~/styles/colors';\n\nexport const Link = styled(BaseLink).attrs({\n activeStyle: {\n color: Colors.blue,\n },\n})`\n display: flex;\n padding: 0 10px;\n align-items: center;\n color: ${Colors.primary};\n\n &:hover {\n color: ${Colors.blue};\n\n svg {\n color: ${Colors.blue};\n }\n }\n\n &.active {\n svg {\n color: ${Colors.blue};\n }\n }\n svg {\n color: ${Colors.primary};\n }\n`;\n\nexport const Button = styled.a`\n display: flex;\n padding: 0 10px;\n align-items: center;\n color: ${Colors.primary};\n cursor: pointer;\n\n &:hover {\n color: ${Colors.blue};\n\n svg {\n color: ${Colors.blue};\n }\n }\n\n svg {\n color: ${Colors.primary};\n }\n`;\n","import React, { ReactNode } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { ExitToApp, VpnKey, AddCircleOutline } from '@material-ui/icons';\nimport { List, ListItem, ListItemText, ListItemIcon, Tooltip } from '@material-ui/core';\n\nimport history from '~/services/history';\n\nimport { logout } from '~/store/ducks/auth';\n\nimport { Link, Button } from './styles';\n\nexport interface MenuProps {\n toggleDrawer?: (option: boolean) => void;\n menuIsOpen: boolean;\n}\n\nexport function Menu({ toggleDrawer, menuIsOpen }: MenuProps) {\n const dispatch = useDispatch();\n\n function handleLink(url: string) {\n history.push(url);\n if (typeof toggleDrawer === 'function') {\n toggleDrawer(false);\n }\n }\n\n function logoutApp() {\n history.push('/');\n dispatch(logout());\n }\n\n function Item(props: Omit) {\n return ;\n }\n\n return (\n <>\n \n } />\n\n } />\n\n \n \n \n \n \n );\n}\n\nexport default Menu;\n\ninterface MenuItemProps {\n to: string;\n handleLink: (url: string) => void;\n text: string;\n icon: ReactNode;\n menuIsOpen: boolean;\n}\n\nfunction MenuItem(props: MenuItemProps) {\n return (\n \n props.handleLink(props.to)}>\n \n {props.icon}\n \n\n {props.text}\n \n \n );\n}\n","import styled from 'styled-components';\nimport { AppBar as BaseAppBar } from '@material-ui/core';\n\nexport const AppBar = styled(BaseAppBar)``;\n\nexport const BoxLogo = styled.div`\n flex-grow: 1;\n\n img {\n height: 40px;\n }\n`;\n\nexport const Header = styled.header`\n width: 100%;\n grid-area: 1 / 1 / 1 / 3;\n\n display: flex;\n align-items: center;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2);\n\n img {\n height: 40px;\n }\n`;\n\nexport const Main = styled.main`\n /* padding: 20px; */\n`;\n","import { initializeApp } from 'firebase/app';\nimport { getAnalytics } from 'firebase/analytics';\nimport { getFirestore } from 'firebase/firestore';\n\nconst firebaseConfig = {\n apiKey: 'AIzaSyAoOBBjKMR7l89FBFKXw3JGRtPmYSZJZHE',\n authDomain: 'picktow-1e30e.firebaseapp.com',\n databaseURL: 'https://picktow-1e30e.firebaseio.com',\n projectId: 'picktow-1e30e',\n storageBucket: 'picktow-1e30e.appspot.com',\n messagingSenderId: '69293472283',\n appId: '1:69293472283:web:8df72f5c47a3bf3ebdd6be',\n measurementId: 'G-PJ5214QTSS',\n};\n\nconst app = initializeApp(firebaseConfig);\ngetAnalytics(app);\nconst db = getFirestore(app);\n\nexport { db };\n","import {\n deleteDoc,\n doc,\n DocumentData,\n getDoc,\n onSnapshot,\n setDoc,\n collection,\n query,\n QueryConstraint,\n} from 'firebase/firestore';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { db } from '~/config/firebase';\n\nconst useFirestore = (collectionPath?: string, documentPath?: string, create = true) => {\n const [snapshot, setSnapshot] = useState({} as T);\n const [snapshotQuery, setSnapshotQuery] = useState();\n\n useEffect(() => {\n if (!collectionPath || !documentPath) {\n return undefined;\n }\n\n const unsubscribe = onSnapshot(\n doc(db, collectionPath, documentPath),\n snapshot => {\n if (!snapshot.exists && create) {\n setDoc(doc(db, collectionPath, documentPath), {});\n }\n\n setSnapshot(snapshot.data() as T);\n },\n error => {\n console.error(error);\n },\n );\n\n return unsubscribe;\n }, [collectionPath, create, documentPath]);\n\n const getDocument = async (collectionPathParam: string, documentPathParam: string) => {\n const docRef = doc(db, collectionPathParam, documentPathParam);\n\n try {\n const doc = await getDoc(docRef);\n if (doc.exists()) {\n return doc.data() as T;\n } else {\n return undefined;\n }\n } catch (error) {\n console.error('Error getting document:', error);\n }\n };\n\n const setDocument = async (\n collectionPathParam: string,\n documentPathParam: string,\n data: Record,\n options?: {\n merge?: boolean;\n },\n ) => {\n setDoc(doc(db, collectionPathParam, documentPathParam), data, { merge: options?.merge ?? false });\n };\n\n const removeDocument = async (collectionPathParam: string, documentPathParam: string) => {\n await deleteDoc(doc(db, collectionPathParam, documentPathParam));\n };\n\n const snapshotWithWhere = useCallback((collectionPathParam: string, ...queryConstraints: QueryConstraint[]) => {\n const q = query(collection(db, collectionPathParam), ...queryConstraints);\n const unsubscribe = onSnapshot(q, querySnapshot => {\n if (querySnapshot.empty) {\n setSnapshotQuery(undefined);\n return;\n }\n\n setSnapshotQuery(querySnapshot.docs);\n });\n\n return unsubscribe;\n }, []);\n\n return { snapshot, getDocument, setDocument, removeDocument, snapshotWithWhere, snapshotQuery };\n};\n\nexport { useFirestore };\n","import React, { useEffect, useState } from 'react';\nimport { NavLink, useHistory } from 'react-router-dom';\nimport { IconButton, SwipeableDrawer, Toolbar, makeStyles } from '@material-ui/core';\nimport { Menu as MenuIcon, PlayCircleOutline } from '@material-ui/icons';\nimport { where } from 'firebase/firestore';\nimport { useSelector } from 'react-redux';\n\nimport LogoPicktow from '~/assets/svg/logo_p_picktow.svg';\nimport Menu from '~/components/Menu';\nimport { BoxLogo, AppBar, Main } from './styles';\nimport { LayoutProps, OrderFirestore } from '~/types';\nimport Colors from '~/styles/colors';\nimport { useFirestore } from '~/services/hooks/useFirestore';\n\nconst useStyles = makeStyles(theme => ({\n appBar: {\n zIndex: theme.zIndex.drawer + 1,\n },\n}));\n\nexport function DefaultLayout({ children, showFirebaseOrder }: LayoutProps) {\n const classes = useStyles();\n\n const [open, setOpen] = useState(false);\n const [hasOrderInFirestore, setHasOrderInFirestore] = useState(false);\n\n const history = useHistory();\n const userName = useSelector(state => state.auth.user['cognito:username']);\n const { snapshotWithWhere, snapshotQuery } = useFirestore();\n\n useEffect(() => {\n const unsubscribe = snapshotWithWhere('orders', where('customer_id', '==', userName));\n\n return unsubscribe;\n }, [snapshotWithWhere, userName]);\n\n useEffect(() => {\n const snapshotFiltered = snapshotQuery?.filter(doc => {\n const docData = doc.data() as OrderFirestore;\n return !docData.customer_survey && docData.license_plate;\n });\n\n setHasOrderInFirestore((snapshotFiltered || []).length > 0);\n }, [snapshotQuery]);\n\n const toggleDrawer = (status?: boolean) => {\n if (status === undefined) {\n setOpen(!open);\n } else {\n setOpen(status);\n }\n };\n\n return (\n
\n \n \n {\n toggleDrawer();\n }}\n >\n \n \n\n \n \n Picktow\n \n \n\n {showFirebaseOrder && hasOrderInFirestore && (\n {\n history.push('/orders-in-execution');\n }}\n >\n \n \n )}\n \n \n\n toggleDrawer(false)} onOpen={() => toggleDrawer(true)} open={open}>\n \n \n\n \n {children}\n
\n );\n}\n\nexport default DefaultLayout;\n","import styled from 'styled-components';\n\nimport Colors from '~/styles/colors';\n\nexport const DivContainer = styled.div`\n min-height: 100vh;\n background: ${Colors.lightGreyNew};\n\n display: flex;\n flex: 1;\n justify-content: center;\n align-items: center;\n padding: 0 16px;\n`;\n\nexport const Div = styled.div`\n max-width: 360px;\n text-align: center;\n display: flex;\n flex-direction: column;\n flex: 1;\n\n form {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n }\n`;\n","import React from 'react';\n\nimport { LayoutProps } from '~/types';\nimport { DivContainer, Div } from './styles';\n\nexport default function LoginLayout({ children }: LayoutProps) {\n return (\n \n
{children}
\n
\n );\n}\n","import React, { ReactElement } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Route, RouteProps } from 'react-router-dom';\n\nimport AuthLayout from '~/pages/_layouts/auth';\nimport DefaultLayout from '~/pages/_layouts/default';\nimport LoginLayout from '~/pages/_layouts/login';\n\nexport interface RouterWrapperProps extends RouteProps {\n component: (props: any) => ReactElement;\n layout?: 'DEFAULT' | 'AUTH' | 'LOGIN';\n showFirebaseOrder?: boolean;\n marginTop?: number;\n}\n\nexport function RouterWrapper({\n component: Component,\n layout,\n showFirebaseOrder = true,\n marginTop,\n ...props\n}: RouterWrapperProps) {\n const { authenticated } = useSelector(state => ({\n authenticated: state.auth.authorization.authenticated,\n }));\n\n let Layout = authenticated ? DefaultLayout : AuthLayout;\n\n switch (layout) {\n case 'DEFAULT':\n Layout = DefaultLayout;\n break;\n\n case 'AUTH':\n Layout = AuthLayout;\n break;\n\n case 'LOGIN':\n Layout = LoginLayout;\n break;\n\n default:\n break;\n }\n\n return (\n (\n \n \n \n )}\n />\n );\n}\n\nexport default RouterWrapper;\n","import styled from 'styled-components';\nimport { Icon as BaseIcon } from '@material-ui/core';\n\nimport Colors from '~/styles/colors';\n\ninterface BaseButtonProps {\n filled?: boolean;\n backgroundColor?: string;\n width?: string;\n border?: React.CSSProperties['border'];\n}\n\nexport const BaseButton = styled.button`\n width: ${({ filled, width }) => (filled ? '100%' : width ? width : 'auto')};\n height: 45px;\n border: ${({ border }) => border || '0'};\n background: ${({ filled, backgroundColor }) => (filled ? Colors.blue : backgroundColor ?? 'transparent')};\n color: ${({ color }) => color ?? Colors.primary};\n margin-top: 20px;\n border-radius: 5px;\n transition: opacity 0.3s;\n\n &:hover {\n opacity: 0.7;\n }\n\n &:disabled {\n opacity: 0.7;\n cursor: default;\n }\n`;\n\nexport const Icon = styled(BaseIcon)`\n & svg {\n animation: rotate 1s linear infinite;\n }\n\n @keyframes rotate {\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n","import React from 'react';\n\nimport { Refresh } from '@material-ui/icons';\nimport { BaseButton, Icon } from './styles';\n\nexport interface ButtonProps {\n label?: string;\n loading?: boolean;\n disabled?: boolean;\n [key: string]: any;\n}\n\nexport default function Button({ label, loading, disabled, ...rest }: ButtonProps) {\n return (\n \n {loading ? (\n \n \n \n ) : (\n label\n )}\n \n );\n}\n","import styled from 'styled-components';\nimport { TextField, Input as BaseInput } from '@material-ui/core';\n\nimport Colors from '~/styles/colors';\n\nexport const Container = styled.div`\n margin-top: 15px;\n margin-bottom: 10px;\n position: relative;\n flex: 1;\n width: 100%;\n\n p {\n font-size: 11px;\n margin-top: 0px;\n }\n`;\n\nexport const InputText = styled(TextField)`\n width: 100%;\n height: 40px;\n border-bottom: 1px solid ${({ error }) => (error ? 'red' : Colors.white)};\n\n & label.Mui-focused {\n color: #999;\n }\n\n & .MuiInput-underline::after {\n border-bottom: 1px solid ${({ error }) => (error ? 'red' : Colors.blue)};\n }\n\n && .MuiInput-underline:hover::before {\n border-bottom: 1px solid ${({ error }) => (error ? 'red' : Colors.blue)};\n }\n`;\n\nexport const Input = styled(BaseInput)`\n &&:hover:not(.Mui-disabled)::before {\n border-bottom: 1px solid ${({ error }) => (error ? 'red' : Colors.blue)};\n transition: none;\n }\n\n &.Mui-focused::after {\n border-bottom: 1px solid ${({ error }) => (error ? 'red' : Colors.blue)};\n }\n\n &&::after {\n border-bottom: 1px solid ${({ error }) => (error ? 'red' : Colors.blue)};\n }\n`;\n","import React, { forwardRef } from 'react';\nimport { Container, InputText, Input } from './styles';\n\ninterface InputComponentProps {\n label: string;\n placeholder?: string;\n style?: React.CSSProperties;\n error: any;\n name: string;\n [key: string]: any;\n}\n\nfunction InputComponent({ label, placeholder, style, error, name, ...rest }: InputComponentProps, ref: React.Ref) {\n return label ? (\n \n \n \n ) : (\n \n );\n}\nexport default forwardRef(InputComponent);\n","import styled from 'styled-components';\nimport { Link as BaseLink } from 'react-router-dom';\nimport { Typography } from '@material-ui/core';\n\nimport Colors from '~/styles/colors';\nimport InputComponent from '~/components/InputComponent';\n\ninterface LabelProps {\n data?: {\n fontWeight?: string;\n marginTop?: number;\n marginHorizontal?: number;\n fontSize?: number;\n textAlign?: string;\n };\n}\n\nexport const Input = styled(InputComponent)`\n input {\n color: ${Colors.primary};\n border-bottom: 1px solid ${({ error }) => (error ? 'red' : Colors.white)};\n\n &:hover {\n border-bottom-color: ${Colors.white};\n }\n }\n & label {\n color: ${Colors.primary};\n }\n\n & .MuiInput-underline:after {\n border-bottom-color: ${Colors.primary};\n }\n\n && .MuiInput-underline:before {\n border-bottom-color: ${Colors.primary};\n }\n && .MuiInput-underline:hover:before {\n border-bottom: 1px solid ${Colors.primary};\n }\n\n & .MuiOutlinedInput-root {\n & fieldset {\n border-color: red;\n }\n &:hover fieldset {\n border-bottom-color: ${Colors.primary};\n }\n &.Mui-focused fieldset {\n border-bottom-color: ${Colors.primary};\n }\n }\n`;\n\nexport const Link = styled(BaseLink)`\n color: ${Colors.primary};\n margin-top: 15px;\n transition: opacity 0.3s;\n text-align: left;\n\n &:hover {\n opacity: 0.7;\n }\n`;\n\nexport const Label = styled(Typography).attrs({\n variant: 'inherit',\n})`\n color: ${Colors.primary};\n font-weight: ${({ data }) => data?.fontWeight ?? 'normal'};\n margin-top: ${({ data }) => data?.marginTop ?? 0}px;\n margin-left: ${({ data }) => data?.marginHorizontal ?? 20}px;\n margin-right: ${({ data }) => data?.marginHorizontal ?? 20}px;\n font-size: ${({ data }) => data?.fontSize ?? 16}px;\n text-align: ${({ data }) => data?.textAlign ?? 'center'};\n`;\n\nexport const FormLogin = styled.form`\n display: flex;\n flex-direction: column;\n flex: 1;\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n`;\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n align-items: start;\n`;\n\nexport const Fields = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n`;\n\nexport const Divider = styled.div`\n display: flex;\n flex-direction: column;\n height: 32px;\n`;\n","export const removeFormat = (text, length = 14) => {\n if (!text) {\n return '';\n }\n\n return text.replace(/\\D/g, '').substring(0, length);\n};\n\nexport const formatCPF = valor => {\n return valor.replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})/g, '$1.$2.$3-$4');\n};\n\nexport const formatCNPJ = s => {\n return s.length > 12\n ? s.replace(/(^\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{0,2}$)/g, '$1.$2.$3/$4-$5')\n : s.length > 8\n ? s.replace(/(^\\d{2})(\\d{3})(\\d{3})(\\d{0,4}$)/g, '$1.$2.$3/$4')\n : s.length > 5\n ? s.replace(/(^\\d{2})(\\d{3})(\\d{0,3}$)/g, '$1.$2.$3')\n : s.length > 2\n ? s.replace(/(^\\d{2})(\\d{0,3}$)/g, '$1.$2')\n : s;\n};\n\nexport const formatUsername = (text, onlyCNPJ = false, onlyCPF = false) => {\n if (!text) {\n return '';\n }\n\n let textFormated = removeFormat(text);\n\n if (onlyCPF) {\n textFormated = textFormated.substr(0, 11);\n }\n\n if (textFormated.length <= 11 && !onlyCNPJ) {\n textFormated = formatCPF(textFormated);\n } else if (!onlyCPF) {\n textFormated = formatCNPJ(textFormated);\n }\n return textFormated;\n};\n\nexport const replaceSpecialChars = str => {\n if (!str) {\n return;\n }\n\n return str\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '') // Remove acentos\n .replace(/([^\\w]+|\\s+)/g, '-') // Substitui espaço e outros caracteres por hífen\n .replace(/--+/g, '-') // Substitui multiplos hífens por um único hífen\n .replace(/(^-+|-+$)/, '')\n .toLowerCase(); // Remove hífens extras do final ou do inicio da string\n};\n\nexport function formatCellPhone(phone) {\n if (!phone) {\n return '';\n }\n\n return phone\n .replace(/^0/, '')\n .replace(/(\\d{2})(\\d{4,5})(\\d{4})/, '($1)$2-$3')\n .trim();\n}\n\nexport const onlyNumbers = text => text.replace(/[^0-9]+/g, '');\n\nexport const removeSpaces = text => text.replace(/\\s/g, '');\n\nexport const splitWords = (phrase, wordsNumber) => {\n if (!phrase) {\n return;\n }\n\n return phrase.split(' ').slice(0, wordsNumber).join(' ');\n};\n","export const validCPF = cpf => {\n if (\n !cpf ||\n cpf.length !== 11 ||\n cpf === '00000000000' ||\n cpf === '11111111111' ||\n cpf === '22222222222' ||\n cpf === '33333333333' ||\n cpf === '44444444444' ||\n cpf === '55555555555' ||\n cpf === '66666666666' ||\n cpf === '77777777777' ||\n cpf === '88888888888' ||\n cpf === '99999999999'\n ) {\n return false;\n }\n let soma = 0;\n let resto;\n for (let i = 1; i <= 9; i++) {\n soma = soma + parseInt(cpf.substring(i - 1, i), 10) * (11 - i);\n }\n resto = (soma * 10) % 11;\n if (resto === 10 || resto === 11) {\n resto = 0;\n }\n if (resto !== parseInt(cpf.substring(9, 10), 10)) {\n return false;\n }\n soma = 0;\n for (let i = 1; i <= 10; i++) {\n soma = soma + parseInt(cpf.substring(i - 1, i), 10) * (12 - i);\n }\n resto = (soma * 10) % 11;\n if (resto === 10 || resto === 11) {\n resto = 0;\n }\n if (resto !== parseInt(cpf.substring(10, 11), 10)) {\n return false;\n }\n return true;\n};\n\nexport const validCNPJ = cnpj => {\n if (\n !cnpj ||\n cnpj.length !== 14 ||\n cnpj === '00000000000000' ||\n cnpj === '11111111111111' ||\n cnpj === '22222222222222' ||\n cnpj === '33333333333333' ||\n cnpj === '44444444444444' ||\n cnpj === '55555555555555' ||\n cnpj === '66666666666666' ||\n cnpj === '77777777777777' ||\n cnpj === '88888888888888' ||\n cnpj === '99999999999999'\n ) {\n return false;\n }\n let tamanho = cnpj.length - 2;\n let numeros = cnpj.substring(0, tamanho);\n const digitos = cnpj.substring(tamanho);\n let soma = 0;\n let pos = tamanho - 7;\n for (let i = tamanho; i >= 1; i--) {\n soma += numeros.charAt(tamanho - i) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n let resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);\n if (resultado !== parseInt(digitos.charAt(0), 10)) {\n return false;\n }\n tamanho = tamanho + 1;\n numeros = cnpj.substring(0, tamanho);\n soma = 0;\n pos = tamanho - 7;\n for (let i = tamanho; i >= 1; i--) {\n soma += numeros.charAt(tamanho - i) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);\n if (resultado !== parseInt(digitos.charAt(1), 10)) {\n return false;\n }\n return true;\n};\n\nexport const validPassword = password => {\n //Letras número, caracteres especiais e mínimo de 8 dígitos\n // const regexp = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{8,}$/;\n\n //Letra maiúscula, minuscula, número, caracteres especiais e mínimo de 8 dígitos\n // const regexp = /^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{8,}$/;\n\n //Letra maiúscula, minuscula, número e mínimo de 8 dígitos\n const regexp = /^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])[a-zA-Z0-9]{8,}$/;\n\n if (password.match(regexp)) {\n return true;\n }\n\n return false;\n};\n\nexport const isNumeric = str => {\n return /^\\d+$/.test(str);\n};\n\nexport const validEmail = email => {\n const regexp = /^(([^<>()[\\]\\\\.,;:\\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\n if (email.match(regexp)) {\n return true;\n }\n return false;\n};\n","import styled from 'styled-components';\nimport { Link as BaseLink } from 'react-router-dom';\n\nimport Colors from '~/styles/colors';\nimport InputComponent from '~/components/InputComponent';\nimport { Typography } from '@material-ui/core';\n\nexport const DivContainer = styled.div`\n width: 100%;\n height: 100%;\n background: ${Colors.primary};\n\n display: flex;\n flex: 1;\n justify-content: center;\n align-items: center;\n`;\n\nexport const Form = styled.form`\n width: 360px;\n flex-direction: column;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const Logo = styled.img`\n width: 300px;\n margin-bottom: 10px;\n`;\n\nexport const Input = styled(InputComponent)`\n input {\n color: ${Colors.primary};\n border-bottom: 1px solid ${({ error }) => (error ? 'red' : Colors.primary)};\n\n &:hover {\n border-bottom-color: ${Colors.primary};\n }\n }\n & label {\n color: ${Colors.primary};\n }\n\n & .MuiInput-underline:after {\n border-bottom-color: ${Colors.blue};\n }\n\n && .MuiInput-underline:before {\n border-bottom-color: ${Colors.primary};\n }\n && .MuiInput-underline:hover:before {\n border-bottom: 1px solid ${Colors.primary};\n }\n\n & .MuiOutlinedInput-root {\n & fieldset {\n border-color: red;\n }\n &:hover fieldset {\n border-bottom-color: ${Colors.blue};\n }\n &.Mui-focused fieldset {\n border-bottom-color: ${Colors.blue};\n }\n }\n`;\n\nexport const Link = styled(BaseLink)`\n color: ${Colors.primary};\n margin-top: 15px;\n transition: opacity 0.3s;\n\n &:hover {\n opacity: 0.7;\n }\n`;\n\nexport const Label = styled(Typography)`\n color: ${Colors.primary};\n text-align: center;\n font-weight: bold;\n font-size: 20px;\n`;\n","import styled from 'styled-components';\n\nimport Colors from '~/styles/colors';\nimport InputComponent from '~/components/InputComponent';\n\nexport const DivContainer = styled.div`\n width: 100%;\n height: 100%;\n background: ${Colors.primary};\n\n display: flex;\n flex: 1;\n justify-content: center;\n align-items: center;\n`;\n\nexport const Form = styled.form`\n width: 360px;\n flex-direction: column;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const Logo = styled.img`\n width: 300px;\n margin-bottom: 10px;\n`;\n\nexport const Input = styled(InputComponent)`\n input {\n color: ${Colors.primary};\n border-bottom: 1px solid ${({ error }) => (error ? 'red' : Colors.primary)};\n\n &:hover {\n border-bottom-color: ${Colors.primary};\n }\n }\n & label {\n color: ${Colors.primary};\n }\n\n & .MuiInput-underline:after {\n border-bottom-color: ${Colors.blue};\n }\n\n && .MuiInput-underline:before {\n border-bottom-color: ${Colors.primary};\n }\n && .MuiInput-underline:hover:before {\n border-bottom: 1px solid ${Colors.primary};\n }\n\n & .MuiOutlinedInput-root {\n & fieldset {\n border-color: red;\n }\n &:hover fieldset {\n border-bottom-color: ${Colors.blue};\n }\n &.Mui-focused fieldset {\n border-bottom-color: ${Colors.blue};\n }\n }\n`;\n","import styled from 'styled-components';\nimport Colors from '~/styles/colors';\n\nexport const Form = styled.form`\n display: grid;\n`;\n\nexport const Title = styled.h1`\n font-size: 36px;\n color: ${Colors.primary};\n`;\n","import styled from 'styled-components';\nimport { Link as BaseLink } from 'react-router-dom';\nimport Colors from '~/styles/colors';\n\nexport const Link = styled(BaseLink)`\n color: ${Colors.white};\n margin-top: 15px;\n transition: opacity 0.3s;\n display: block;\n &:hover {\n opacity: 0.7;\n }\n`;\n","import React from 'react';\n\nimport { Link } from './styles';\n\nexport default function NotFound() {\n return (\n <>\n

Página não encontrada

\n Voltar\n \n );\n}\n","import { replaceSpecialChars } from '~/util/format';\n\nimport BateriaIcon from '~/assets/svg/bateria.svg';\nimport ChaveiroIcon from '~/assets/svg/chaveiro.svg';\nimport GasolinaIcon from '~/assets/svg/gasolina.svg';\nimport GuinchoIcon from '~/assets/svg/guincho.svg';\nimport PneuIcon from '~/assets/svg/pneu.svg';\n\nimport BusIcon from '~/assets/svg/bus.svg';\nimport CaminhaoIcon from '~/assets/svg/caminhao.svg';\nimport MaquinaIcon from '~/assets/svg/maquina.svg';\nimport MotoIcon from '~/assets/svg/moto.svg';\nimport PasseioIcon from '~/assets/svg/passeio.svg';\nimport UtilitarioIcon from '~/assets/svg/utilitario.svg';\nimport VUCIcon from '~/assets/svg/vuc.svg';\n\nconst getIconService = (description: string) => {\n switch (replaceSpecialChars(description)) {\n case 'chaveiro':\n return ChaveiroIcon;\n\n case 'troca-de-pneu':\n return PneuIcon;\n\n case 'pane-seca':\n return GasolinaIcon;\n\n case 'pane-eletrica-bateria':\n return BateriaIcon;\n\n case 'reboque':\n return GuinchoIcon;\n\n default:\n break;\n }\n};\n\nconst getIconVehicle = (description: string) => {\n switch (replaceSpecialChars(description)) {\n case 'utilitario':\n return UtilitarioIcon;\n\n case 'passeio':\n return PasseioIcon;\n\n case 'motocicleta':\n return MotoIcon;\n\n case 'caminhao':\n return CaminhaoIcon;\n\n case 'onibus':\n return BusIcon;\n\n case 'vuc':\n return VUCIcon;\n\n case 'maquinas':\n return MaquinaIcon;\n\n default:\n return GuinchoIcon;\n }\n};\n\nexport { getIconService, getIconVehicle };\n","import { useEffect, useState } from 'react';\n\nimport { loadServices } from '../api';\n\nimport { ServicesResponse } from '~/types';\n\nexport function useServices() {\n const [services, setServices] = useState();\n const [loadingServices, setLoadingServices] = useState(false);\n\n useEffect(() => {\n setLoadingServices(true);\n loadServices()\n .then(response => response.data)\n .then(setServices)\n .finally(() => {\n setLoadingServices(false);\n });\n }, []);\n\n return { services, loadingServices };\n}\n\nexport default useServices;\n","import styled from 'styled-components';\nimport Colors from '~/styles/colors';\n\ninterface TitleProps {\n fontSize?: string;\n}\n\nconst Title = styled.h1`\n font-size: ${({ fontSize }) => `${fontSize ?? '36px'}`};\n color: ${Colors.primary};\n margin-bottom: 20px;\n`;\n\nexport default Title;\n","import React from 'react';\nimport { BottomNavigation, Paper } from '@material-ui/core';\nimport { WithChildren } from '~/types';\n\ninterface SimpleBottomNavigationProps extends WithChildren {}\n\nexport default function SimpleBottomNavigation({ children }: SimpleBottomNavigationProps) {\n return (\n <>\n \n {children}\n \n \n );\n}\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n flex: 1;\n justify-content: center;\n align-items: center;\n`;\n","import React from 'react';\nimport { CircularProgress, CircularProgressProps } from '@material-ui/core';\n\nimport { Container } from './styles';\n\nconst Loading = ({ ...rest }: CircularProgressProps) => {\n return (\n \n \n \n );\n};\n\nexport default Loading;\n","import React from 'react';\nimport { BottomNavigationAction, Theme, withStyles } from '@material-ui/core';\nimport { SvgIconComponent } from '@material-ui/icons';\n\nimport Loading from '../Loading';\nimport Colors from '~/styles/colors';\n\ninterface SimpleBottomActionProps {\n label: string;\n icon: SvgIconComponent;\n onClick?: () => void;\n loading?: boolean;\n disabled?: boolean;\n classes?: any;\n}\n\nconst styles = (theme: Theme) => ({\n child: {\n backgroundColor: Colors.primary,\n },\n rippleVisible: {\n opacity: 0.5,\n animation: `$enter 50ms ${theme.transitions.easing.easeInOut}`,\n },\n '@keyframes enter': {\n '0%': {\n transform: 'scale(0)',\n opacity: 0.1,\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 0.5,\n },\n },\n});\n\nfunction SimpleBottomAction({ classes, label, icon: Icon, onClick, loading, disabled }: SimpleBottomActionProps) {\n return (\n : }\n onClick={onClick}\n disabled={disabled}\n selected\n TouchRippleProps={{ classes, center: true }}\n />\n );\n}\n\nexport default withStyles(styles)(SimpleBottomAction);\n","import styled from 'styled-components';\nimport { Typography } from '@material-ui/core';\nimport { ChevronRight } from '@material-ui/icons';\n\nimport Colors from '~/styles/colors';\n\nexport const Container = styled.div`\n display: flex;\n background-color: ${Colors.green};\n padding: 24px 8px;\n flex-direction: row;\n align-items: center;\n`;\n\nexport const Label = styled(Typography)`\n color: ${Colors.white};\n font-weight: bold;\n`;\n\nexport const Icon = styled(ChevronRight)`\n color: ${Colors.white};\n`;\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport { Container, Label, Icon } from './styles';\n\nconst HasOrderInFirestore = () => {\n const hystory = useHistory();\n\n const handleOrdersInExecution = () => {\n hystory.push('/orders-in-execution');\n };\n\n return (\n \n \n \n \n );\n};\n\nexport default HasOrderInFirestore;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { Avatar, Card, CardContent, Container, List, ListItem, ListItemAvatar, ListItemText } from '@material-ui/core';\nimport { v4 as uuidV4 } from 'uuid';\nimport { ChevronRight } from '@material-ui/icons';\nimport { where } from 'firebase/firestore';\n\nimport { getIconService } from '~/util/getIcon';\nimport useServices from '~/services/hooks/useServices';\nimport { useToast } from '~/services/hooks/toast';\nimport { clearOrder, setOrderInitial, setOrderService } from '~/store/ducks/order';\nimport Title from '../../components/Title';\nimport { OrderFirestore, ServicesResponse } from '~/types';\nimport SimpleBottomNavigation from '~/components/SimpleBottomNavigation';\nimport SimpleBottomAction from '~/components/SimpleBottomAction';\nimport { clearBalance } from '~/store/ducks/associationBalance';\nimport HasOrderInFirestore from '~/components/HasOrderInFirestore';\nimport { useFirestore } from '~/services/hooks/useFirestore';\n\nconst OpportunityServices = () => {\n const [service, setService] = useState();\n const [hasOrderInFirestore, setHasOrderInFirestore] = useState(false);\n\n const { services, loadingServices } = useServices();\n const { addToast } = useToast();\n const history = useHistory();\n const dispatch = useDispatch();\n const location = useLocation();\n const userName = useSelector(state => state.auth.user['cognito:username']);\n const { snapshotWithWhere, snapshotQuery } = useFirestore();\n\n useEffect(() => {\n const unsubscribe = snapshotWithWhere('orders', where('customer_id', '==', userName));\n\n return unsubscribe;\n }, [snapshotWithWhere, userName]);\n\n useEffect(() => {\n const snapshotFiltered = snapshotQuery?.filter(doc => {\n const docData = doc.data() as OrderFirestore;\n return !docData.customer_survey && docData.license_plate;\n });\n\n setHasOrderInFirestore((snapshotFiltered || []).length > 0);\n }, [snapshotQuery]);\n\n useEffect(() => {\n if (location.pathname === '/login') {\n history.replace('/');\n }\n }, [history, location.pathname]);\n\n const { service: serviceState } = useSelector(state => state.order);\n\n useEffect(() => {\n setService(serviceState);\n dispatch(clearOrder());\n dispatch(clearBalance());\n dispatch(setOrderInitial({ uuid: uuidV4() }));\n }, [dispatch, serviceState]);\n\n const handleListItemClick = useCallback((service: ServicesResponse) => {\n setService(service);\n }, []);\n\n const handleSubmit = useCallback(() => {\n if (!service?.id) {\n addToast({ title: 'Validação', type: 'error', description: 'Tipo do serviço obrigatório!' });\n return;\n }\n\n dispatch(setOrderService(service));\n history.push('/new-opportunity/vehicles');\n }, [addToast, dispatch, history, service]);\n\n return (\n <>\n {hasOrderInFirestore && }\n\n \n Tipo de serviço\n\n \n \n \n {services?.map(item => (\n handleListItemClick(item)}\n >\n \n \n \n\n \n \n ))}\n \n \n \n \n\n \n \n \n \n );\n};\n\nexport default OpportunityServices;\n","import { useCallback, useState } from 'react';\n\nimport { getQuizzByAssociationServiceApi, getQuizzByServiceApi } from '../api';\n\nimport { handleApiErrorResponse } from '../handleErrors';\n\nimport { useToast } from './toast';\n\nimport { QuizAssociationResponse } from '~/types';\n\nexport function useQuizAssociation() {\n const [loadQuiz, setLoadQuiz] = useState(false);\n\n const { addToast } = useToast();\n\n const getQuiz = useCallback(\n async (associationId?: string, serviceId?: string): Promise => {\n try {\n setLoadQuiz(true);\n\n if (associationId && serviceId) {\n const response = await getQuizzByAssociationServiceApi(associationId, serviceId);\n\n return response.data;\n } else if (serviceId) {\n const response = await getQuizzByServiceApi(serviceId);\n\n return response.data;\n } else {\n return [];\n }\n } catch (error) {\n const errorMessages = handleApiErrorResponse(error, 'Erro ao consultar o quiz!');\n\n addToast({\n title: 'Erro Inesperado',\n type: 'error',\n description:\n errorMessages?.handledMessage || errorMessages?.apiError || errorMessages?.applicationErrorMessage,\n });\n } finally {\n setLoadQuiz(false);\n }\n },\n [addToast],\n );\n\n return {\n getQuiz,\n loadQuiz,\n };\n}\n","import React from 'react';\nimport {\n Dialog,\n useTheme,\n useMediaQuery,\n DialogActions,\n Button,\n DialogProps,\n DialogTitle,\n makeStyles,\n} from '@material-ui/core';\n\ninterface CancelConfirmProps extends DialogProps {\n onConfirm: () => void;\n onCancel: () => void;\n}\n\nconst useStyles = makeStyles(() => ({\n container: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n title: {\n textAlign: 'center',\n },\n}));\n\nconst ModalCancel = ({ onConfirm, onCancel, ...props }: CancelConfirmProps) => {\n const theme = useTheme();\n const classes = useStyles();\n\n const fullscreen = useMediaQuery(theme.breakpoints.down('xs'));\n\n return (\n onCancel()} {...props}>\n
\n Tem certeza de que deseja cancelar essa solicitação?\n\n \n onCancel()}\n >\n Cancelar\n \n onConfirm()}\n >\n Confirmar\n \n \n
\n
\n );\n};\n\nexport default ModalCancel;\n","import styled from 'styled-components';\nimport Colors from '~/styles/colors';\n\ninterface DividerProps {\n height?: number;\n width?: number;\n}\n\nexport const TitleModal = styled.h1`\n font-size: 22px;\n color: ${Colors.darkBlue};\n text-align: center;\n margin-bottom: 15px;\n`;\n\nexport const Divider = styled.div`\n ${({ height }) => (height ? `height: ${height}px` : '')};\n ${({ width }) => (width ? `width: ${width}px;` : '')};\n`;\n","import styled from 'styled-components';\nimport { Autocomplete } from '@material-ui/lab';\n\nexport const CustomAutocomplete = styled(Autocomplete).attrs({\n clearText: 'Limpar',\n noOptionsText: 'Nenhum valor encontrado',\n openText: 'Abrir',\n closeText: 'Fechar',\n})`` as typeof Autocomplete;\n","import React, { useEffect } from 'react';\nimport { FormHelperText, TextField } from '@material-ui/core';\n\nimport Loading from '~/components/Loading';\nimport { CategoryType, ManufacturerType, ModelType, useFipe, VehicleType } from '~/services/hooks/useFipe';\nimport { onlyNumbers } from '~/util/format';\nimport { Divider, TitleModal } from '~/pages/NewOpportunity/styles';\nimport { Association } from '~/types';\nimport { CustomAutocomplete } from './styles';\n\ninterface NewVehicleProps {\n modalVehicleIsOpen: boolean;\n fipeModel: FipeModel;\n setFipeModel: (value: FipeModel) => void;\n initialData?: VehicleInitialData;\n title?: string;\n}\n\nexport interface FipeModel {\n association?: Association;\n association_error?: boolean;\n status?: VehicleStatusType;\n status_error?: boolean;\n category?: CategoryType;\n category_error?: boolean;\n manufacturer?: ManufacturerType;\n manufacturer_value?: string;\n manufacturer_error?: boolean;\n vehicle?: VehicleType;\n vehicle_value?: string;\n vehicle_error?: boolean;\n model?: ModelType;\n model_value?: string;\n model_error?: boolean;\n license_plate?: string;\n license_plate_error?: boolean;\n vin?: string;\n color?: string;\n color_error?: boolean;\n city?: string;\n city_error?: boolean;\n state?: string;\n state_error?: boolean;\n}\n\nexport type SelectedBenefits = Record;\n\nexport type VehicleInitialData = {\n vehicleId?: string;\n associationId?: string;\n categoryId?: string;\n manufacturerDescription?: string;\n vehicleDescription?: string;\n modelDescription?: string;\n licensePlate?: string;\n vin?: string;\n color?: string;\n state?: string;\n city?: string;\n status?: string;\n};\n\nexport type VehicleStatusType = keyof typeof VehicleStatus | undefined;\n\nexport const VehicleStatus = {\n ACTIVE: 'ATIVO',\n INACTIVE: 'INATIVO',\n SUSPENDED: 'SUSPENSO',\n PENDING: 'PENDENTE',\n};\n\nexport function VehicleRegistration({\n modalVehicleIsOpen,\n fipeModel,\n setFipeModel,\n initialData,\n title = 'Novo veículo',\n}: NewVehicleProps) {\n const {\n categoryTypes: fipeTypes,\n loadingCategory: loadingFipe,\n manufacturerTypes,\n loadingManufacturer,\n loadingVehicles: loadingVehiclesFipe,\n vehiclesTypes,\n modelsTypes,\n loadingModels,\n isSpecialVehicle,\n } = useFipe({\n getInfo: modalVehicleIsOpen,\n category: fipeModel.category,\n manufacturer: fipeModel.manufacturer,\n vehicle: fipeModel.vehicle,\n });\n\n const handleChangeSelect = (type: keyof typeof fipeModel, value?: string, upperCase = false) => {\n const newValue =\n type === 'model' && isSpecialVehicle(fipeModel.category?.description)\n ? onlyNumbers(value?.toUpperCase())\n : type === 'license_plate'\n ? value\n ?.toUpperCase()\n .replace(/-/, '')\n .replace(/(\\w{3})(\\w{4})/, '$1-$2')\n : upperCase\n ? value?.toUpperCase()\n : value;\n\n switch (type) {\n case 'category':\n setFipeModel({\n ...fipeModel,\n [type]: newValue,\n [`${type}_error`]: false,\n manufacturer: undefined,\n manufacturer_error: false,\n vehicle: undefined,\n vehicle_error: false,\n model: undefined,\n model_error: false,\n });\n break;\n\n case 'manufacturer':\n setFipeModel({\n ...fipeModel,\n [type]: newValue,\n [`${type}_error`]: false,\n vehicle: undefined,\n vehicle_error: false,\n model: undefined,\n model_error: false,\n });\n break;\n\n case 'vehicle':\n setFipeModel({\n ...fipeModel,\n [type]: newValue,\n [`${type}_error`]: false,\n model: undefined,\n model_error: false,\n });\n break;\n\n default:\n setFipeModel({ ...fipeModel, [type]: newValue, [`${type}_error`]: false });\n break;\n }\n };\n\n useEffect(() => {\n if (!initialData) {\n return;\n }\n\n const categoryFound = fipeTypes.find(category => category.id === initialData.categoryId);\n\n setFipeModel({\n ...fipeModel,\n category: categoryFound,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fipeTypes, initialData, setFipeModel]);\n\n useEffect(() => {\n if (!initialData) {\n return;\n }\n\n const manufacturerFound = manufacturerTypes.find(\n manufacture => manufacture.name.toUpperCase() === initialData.manufacturerDescription?.toUpperCase(),\n );\n\n setFipeModel({\n ...fipeModel,\n manufacturer: manufacturerFound,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [manufacturerTypes, initialData, setFipeModel]);\n\n useEffect(() => {\n if (!initialData) {\n return;\n }\n\n const vehicleFound = vehiclesTypes.find(\n vehicle => vehicle.name.toUpperCase() === initialData.vehicleDescription?.toUpperCase(),\n );\n\n setFipeModel({\n ...fipeModel,\n vehicle: vehicleFound,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [vehiclesTypes, initialData, setFipeModel]);\n\n useEffect(() => {\n if (!initialData) {\n return;\n }\n\n const modelFound = modelsTypes.find(\n model => model.name.toUpperCase() === initialData.modelDescription?.toUpperCase(),\n );\n setFipeModel({\n ...fipeModel,\n model: modelFound,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [modelsTypes, initialData, setFipeModel]);\n\n useEffect(() => {\n if (!initialData) {\n return;\n }\n\n const statusFound = VehicleStatus[initialData.status || VehicleStatus.ACTIVE];\n\n setFipeModel({\n ...fipeModel,\n license_plate: initialData.licensePlate,\n vin: initialData.vin,\n color: initialData.color,\n state: initialData.state,\n city: initialData.city,\n status: statusFound,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initialData, setFipeModel]);\n\n if (loadingFipe) {\n return ;\n }\n\n return (\n
\n {title}\n \n\n type.description}\n style={{ width: 300 }}\n renderInput={params => }\n onChange={(_, value) => {\n setFipeModel({\n ...fipeModel,\n category: value ?? undefined,\n category_error: false,\n manufacturer: undefined,\n manufacturer_error: false,\n vehicle: undefined,\n vehicle_error: false,\n model: undefined,\n model_error: false,\n });\n }}\n value={fipeModel.category ?? null}\n />\n {fipeModel.category_error ? 'Categoria obrigatória' : undefined}\n\n {isSpecialVehicle(fipeModel.category?.description) ? (\n {\n handleChangeSelect('manufacturer', target.value, true);\n }}\n error={fipeModel.manufacturer_error}\n helperText={fipeModel.manufacturer_error ? 'Marca obrigatória' : ''}\n />\n ) : loadingManufacturer ? (\n \n ) : (\n <>\n type.name}\n style={{ width: 300 }}\n renderInput={params => }\n onChange={(_, value) => {\n setFipeModel({\n ...fipeModel,\n manufacturer: value ?? undefined,\n manufacturer_error: false,\n vehicle: undefined,\n vehicle_error: false,\n model: undefined,\n model_error: false,\n });\n }}\n value={fipeModel.manufacturer ?? null}\n />\n {fipeModel.manufacturer_error ? 'Marca obrigatória' : undefined}\n \n )}\n\n {isSpecialVehicle(fipeModel.category?.description) ? (\n {\n handleChangeSelect('vehicle', target.value, true);\n }}\n error={fipeModel.vehicle_error}\n helperText={fipeModel.vehicle_error ? 'Modelo obrigatório' : ''}\n />\n ) : loadingVehiclesFipe ? (\n \n ) : (\n <>\n type.name}\n style={{ width: 300 }}\n renderInput={params => }\n onChange={(_, value) => {\n setFipeModel({\n ...fipeModel,\n vehicle: value ?? undefined,\n vehicle_error: false,\n model: undefined,\n model_error: false,\n });\n }}\n value={fipeModel.vehicle ?? null}\n />\n {fipeModel.vehicle_error ? 'Modelo obrigatório' : undefined}\n \n )}\n\n {isSpecialVehicle(fipeModel.category?.description) ? (\n {\n handleChangeSelect('model', target.value, true);\n }}\n error={fipeModel.model_error}\n helperText={fipeModel.model_error ? 'Ano obrigatório' : ''}\n inputProps={{ maxLength: 4 }}\n />\n ) : loadingModels ? (\n \n ) : (\n <>\n type.name}\n style={{ width: 300 }}\n renderInput={params => }\n onChange={(_, value) => {\n setFipeModel({ ...fipeModel, model: value ?? undefined, vehicle_error: false });\n }}\n value={fipeModel.model ?? null}\n />\n {fipeModel.model_error ? 'Ano obrigatório' : undefined}\n \n )}\n\n {\n handleChangeSelect('license_plate', target.value, true);\n }}\n error={fipeModel.license_plate_error}\n helperText={fipeModel.license_plate_error ? 'Placa inválida' : ''}\n inputProps={{ maxLength: 7 }}\n />\n\n {\n handleChangeSelect('vin', target.value, true);\n }}\n />\n\n {\n handleChangeSelect('color', target.value, true);\n }}\n error={fipeModel.color_error}\n helperText={fipeModel.color_error ? 'Cor obrigatória' : ''}\n />\n\n {\n handleChangeSelect('city', target.value, true);\n }}\n error={fipeModel.city_error}\n helperText={fipeModel.city_error ? 'Cidade obrigatória' : ''}\n />\n\n {\n handleChangeSelect('state', target.value, true);\n }}\n error={fipeModel.state_error}\n helperText={fipeModel.state_error ? 'Estado obrigatório' : ''}\n inputProps={{ maxLength: 2 }}\n />\n
\n );\n}\n","import { useEffect, useState } from 'react';\n\nimport {\n getFipeManufacturersByCategoryApi,\n getFipeModelsByVehiclesAndManufacturersAndCategoryApi,\n getFipeVehiclesByManufacturersAndCategoryApi,\n getVehicleTypesApi,\n} from '../api';\n\nexport interface CategoryType {\n id: string;\n description: string;\n}\n\nexport interface ManufacturerType {\n id: string;\n name: string;\n}\n\nexport interface VehicleType {\n id: string;\n name: string;\n}\n\nexport interface ModelType {\n id: string;\n name: string;\n}\n\ninterface UseFipeProps {\n getInfo?: boolean;\n category?: CategoryType;\n manufacturer?: ManufacturerType;\n vehicle?: VehicleType;\n}\n\nexport function useFipe({ getInfo, category, manufacturer, vehicle }: UseFipeProps) {\n const [loadingCategory, setLoadingCategory] = useState(false);\n const [categoryTypes, setCategoryTypes] = useState([]);\n const [manufacturerTypes, setManufacturerTypes] = useState([]);\n const [loadingManufacturer, setLoadingManufacturer] = useState(false);\n const [vehiclesTypes, setVehiclesTypes] = useState([]);\n const [loadingVehicles, setLoadingVehicles] = useState(false);\n const [modelsTypes, setModelsTypes] = useState([]);\n const [loadingModels, setLoadingModels] = useState(false);\n\n const categoryFipe = (categoryId: string) =>\n categoryId.toLowerCase() === 'motocicleta'\n ? 'MOTORCYCLE'\n : categoryId.toLowerCase() === 'caminhao'\n ? 'TRUCK'\n : 'CAR';\n\n const isSpecialVehicle = (categoryName?: string) => ['ÔNIBUS', 'MÁQUINAS'].includes(categoryName || '');\n\n const getManufacturers = async (categoryName: string) => {\n try {\n setLoadingManufacturer(true);\n const { data } = await getFipeManufacturersByCategoryApi(categoryName);\n setManufacturerTypes(data);\n } catch (error) {\n console.log('error', error);\n } finally {\n setLoadingManufacturer(false);\n }\n };\n\n const getVehicles = async (categoryName: string, manufactureId: string) => {\n try {\n setLoadingVehicles(true);\n const { data } = await getFipeVehiclesByManufacturersAndCategoryApi(categoryName, manufactureId);\n setVehiclesTypes(data);\n } catch (error) {\n console.log('error', error);\n } finally {\n setLoadingVehicles(false);\n }\n };\n\n const getModels = async (categoryName: string, manufactureId: string, vehicleId: string) => {\n try {\n setLoadingModels(true);\n const { data } = await getFipeModelsByVehiclesAndManufacturersAndCategoryApi(\n categoryName,\n manufactureId,\n vehicleId,\n );\n setModelsTypes(data);\n } catch (error) {\n console.log('error', error);\n } finally {\n setLoadingModels(false);\n }\n };\n\n useEffect(() => {\n setManufacturerTypes([]);\n setVehiclesTypes([]);\n setModelsTypes([]);\n\n if (!category?.description || isSpecialVehicle(category.description)) {\n return;\n }\n\n const fipe = categoryFipe(category.description);\n getManufacturers(fipe);\n }, [category]);\n\n useEffect(() => {\n setVehiclesTypes([]);\n setModelsTypes([]);\n\n if (!category?.description || !manufacturer?.id || isSpecialVehicle(category.description)) {\n return;\n }\n\n const fipe = categoryFipe(category.description);\n\n getVehicles(fipe, manufacturer.id);\n }, [category, manufacturer]);\n\n useEffect(() => {\n if (!category?.description || !manufacturer?.id || !vehicle?.id || isSpecialVehicle(category.description)) {\n return;\n }\n\n const fipe = categoryFipe(category.description);\n\n getModels(fipe, manufacturer.id, vehicle.id);\n }, [category, manufacturer, vehicle]);\n\n useEffect(() => {\n const loadFipeTypes = async () => {\n if (!getInfo) {\n return;\n }\n\n setLoadingCategory(true);\n\n try {\n const { data } = await getVehicleTypesApi();\n setCategoryTypes(data);\n } catch (error) {\n console.log('error', error);\n } finally {\n setLoadingCategory(false);\n }\n };\n\n loadFipeTypes();\n }, [getInfo]);\n\n return {\n categoryTypes,\n loadingCategory,\n manufacturerTypes,\n loadingManufacturer,\n vehiclesTypes,\n loadingVehicles,\n modelsTypes,\n loadingModels,\n isSpecialVehicle,\n };\n}\n","import styled from 'styled-components';\nimport { DialogContent } from '@material-ui/core';\nimport React from 'react';\n\ninterface ContentProps {\n flex?: boolean;\n align?: React.CSSProperties['alignItems'];\n}\n\nexport const Content = styled(DialogContent)`\n ${({ flex }) => (flex ? `display: 'flex';` : '')}\n ${({ align }) => (align ? `align-items: ${align};` : '')}\n`;\n","import React from 'react';\nimport {\n Dialog,\n useTheme,\n useMediaQuery,\n DialogActions,\n Button,\n DialogProps,\n CircularProgress,\n makeStyles,\n} from '@material-ui/core';\n\nimport { Content } from './styles';\n\ninterface CancelConfirmProps extends DialogProps {\n question?: boolean;\n haveCustomButton?: boolean;\n buttonNegative?: string;\n buttonPositive?: string;\n buttonCustom?: string;\n onConfirm: () => void;\n onCancel?: () => void;\n onCustom?: () => void;\n disabledConfirmButton?: boolean;\n loadingConfirmButton?: boolean;\n disabledCustomButton?: boolean;\n loadingCustomButton?: boolean;\n contentFlex?: boolean;\n contentAlign?: React.CSSProperties['alignItems'];\n hasContent?: boolean;\n}\n\nconst Modal = ({\n onConfirm,\n onCancel,\n onCustom,\n question,\n haveCustomButton,\n buttonNegative,\n buttonPositive,\n buttonCustom,\n children,\n disabledConfirmButton,\n loadingConfirmButton,\n disabledCustomButton,\n loadingCustomButton,\n contentFlex,\n contentAlign,\n hasContent = true,\n ...props\n}: CancelConfirmProps) => {\n const useStyles = makeStyles(() => ({\n contentFlex: {\n display: 'flex',\n },\n contentAlign: {\n alignItems: contentAlign,\n },\n contentFlexAlign: {\n display: 'flex',\n alignItems: contentAlign,\n },\n }));\n\n const theme = useTheme();\n const classes = useStyles();\n\n const fullscreen = useMediaQuery(theme.breakpoints.down('xs'));\n\n const handleConfirm = () => {\n if (loadingConfirmButton) {\n return;\n }\n\n onConfirm();\n };\n\n const handleCustom = () => {\n if (loadingCustomButton) {\n return;\n }\n\n onCustom && onCustom();\n };\n\n return (\n onCancel && onCancel()}\n {...props}\n >\n {hasContent ? (\n \n {children}\n \n ) : (\n children\n )}\n\n \n {question && (\n onCancel && onCancel()}\n >\n {buttonNegative ?? 'Cancelar'}\n \n )}\n {haveCustomButton && (\n \n {loadingCustomButton ? : buttonCustom ?? 'Não'}\n \n )}\n \n {loadingConfirmButton ? : buttonPositive ?? (question ? 'Sim' : 'OK')}\n \n \n \n );\n};\n\nexport default Modal;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport {\n Avatar,\n Card,\n CardContent,\n Container,\n IconButton,\n List,\n ListItem,\n ListItemAvatar,\n ListItemText,\n Typography,\n} from '@material-ui/core';\n\nimport { getIconVehicle } from '~/util/getIcon';\n\nimport { useCustomerVehicles } from '~/services/hooks/useCustomerVehicles';\nimport { useToast } from '~/services/hooks/toast';\nimport { useQuizAssociation } from '~/services/hooks/useQuizAssociation';\n\nimport { setOrderQuizAnswers, setOrderVehicle } from '~/store/ducks/order';\n\nimport Title from '../../components/Title';\nimport ModalCancel from '../../components/ModalCancel';\n\nimport { CustomerVehicle, CustomerVehicleRequest } from '~/types';\nimport { AddCircleOutline, Cancel, ChevronLeft, ChevronRight } from '@material-ui/icons';\nimport { FipeModel, VehicleRegistration, VehicleInitialData, VehicleStatus } from './components/VehicleRegistration';\nimport { createCustomerVehicleApi } from '~/services/api';\nimport Modal from '~/components/ModalNewVehicle';\nimport SimpleBottomNavigation from '~/components/SimpleBottomNavigation';\nimport SimpleBottomAction from '~/components/SimpleBottomAction';\n\nconst OpportunityVehicles = () => {\n const [selectedVehicle, setSelectedVehicle] = useState();\n const [modalCancel, setModalCancel] = useState(false);\n const [openModal, setOpenModal] = useState(false);\n const [modalVehicleIsOpen, setModalVehicleIsOpen] = useState(false);\n const [fipeModel, setFipeModel] = useState({} as FipeModel);\n const [vehicleInitialData, setVehicleInitialData] = useState();\n const [newVehicleId, setNewVehicleId] = useState();\n\n const { addToast } = useToast();\n const history = useHistory();\n const dispatch = useDispatch();\n\n const { customerId, service, vehicle } = useSelector(state => ({\n service: state.order.service,\n vehicle: state.order.vehicle,\n customerId: state.auth.user['cognito:username'],\n }));\n\n const { customerVehicles, loadingVehicles, getVehicleBySocialSecurity } = useCustomerVehicles(customerId);\n const { getQuiz, loadQuiz } = useQuizAssociation();\n\n useEffect(() => {\n setSelectedVehicle(vehicle);\n }, [vehicle]);\n\n useEffect(() => {\n if (!service?.id) {\n history.push('/new-opportunity/services');\n }\n }, [history, service]);\n\n const handleSubmit = useCallback(\n async (vehicle?: CustomerVehicleRequest) => {\n if (!vehicle?.id) {\n addToast({ title: 'Validação', type: 'error', description: 'Veículo obrigatório!' });\n return;\n }\n\n dispatch(setOrderVehicle(vehicle));\n\n const quiz = await getQuiz(vehicle.association_id, service?.id);\n\n if (quiz && quiz.length > 0) {\n history.push('/new-opportunity/additional-information');\n } else {\n if (vehicle.association_code) {\n dispatch(setOrderQuizAnswers(false, []));\n } else {\n dispatch(setOrderQuizAnswers(true, []));\n }\n history.push('/new-opportunity/map');\n }\n },\n [addToast, dispatch, getQuiz, history, service],\n );\n\n const handleGoBack = useCallback(() => {\n history.goBack();\n }, [history]);\n\n const handleCancel = useCallback(() => {\n setModalCancel(true);\n }, []);\n\n const handleConfirmCancel = useCallback(async () => {\n history.push('/new-opportunity');\n }, [history]);\n\n const selectInactiveVehicle = useCallback(async () => {\n if (!selectedVehicle) {\n addToast({ title: 'Validação', type: 'error', description: 'Veículo obrigatório!' });\n return;\n }\n\n dispatch(setOrderVehicle(selectedVehicle));\n\n const quiz = await getQuiz(undefined, service?.id);\n\n if (quiz && quiz.length > 0) {\n history.push('/new-opportunity/additional-information');\n } else {\n dispatch(setOrderQuizAnswers(false, {}));\n history.push('/new-opportunity/map');\n }\n }, [addToast, dispatch, getQuiz, history, selectedVehicle, service]);\n\n useEffect(() => {\n if (!newVehicleId) {\n return;\n }\n\n const vehicleFound = customerVehicles.find(vehicle => vehicle.id === newVehicleId);\n\n if (!vehicleFound) {\n return;\n }\n\n setSelectedVehicle(vehicleFound);\n handleSubmit(vehicleFound);\n }, [customerVehicles, handleSubmit, newVehicleId]);\n\n const handleListItemClick = useCallback((item: CustomerVehicle) => {\n setSelectedVehicle(item);\n\n if (item.status === 'INATIVO') {\n setOpenModal(true);\n return;\n }\n }, []);\n\n const handleCancelInactive = useCallback(() => {\n setSelectedVehicle(undefined);\n setOpenModal(false);\n }, []);\n\n const handleRegisterVehicle = async () => {\n const errors: FipeModel = {};\n\n if (!fipeModel.category?.description.trim()) {\n errors.category_error = true;\n }\n\n if (!fipeModel.manufacturer?.name.trim()) {\n errors.manufacturer_error = true;\n }\n\n if (!fipeModel.vehicle?.name.trim()) {\n errors.vehicle_error = true;\n }\n\n if (!fipeModel.model?.name.trim()) {\n errors.model_error = true;\n }\n\n if ((fipeModel.license_plate?.length || 0) < 7) {\n errors.license_plate_error = true;\n }\n\n if (!fipeModel.color?.trim()) {\n errors.color_error = true;\n }\n\n if (!fipeModel.city?.trim()) {\n errors.city_error = true;\n }\n\n if (!fipeModel.state?.trim()) {\n errors.state_error = true;\n }\n\n setFipeModel({ ...fipeModel, ...errors });\n\n if (Object.keys(errors).length !== 0) {\n return;\n }\n\n const fipe_data = {\n model_id: fipeModel.vehicle?.id,\n manufacture_id: fipeModel.manufacturer?.id,\n model_year_id: fipeModel.model?.id,\n };\n\n const data = {\n social_security: customerId,\n vehicle_customer_type_id: fipeModel.category?.id,\n license_plate: fipeModel.license_plate,\n manufacture: fipeModel.manufacturer?.name.toUpperCase(),\n model: fipeModel.vehicle?.name.toUpperCase(),\n model_year: fipeModel.model?.name,\n color: fipeModel.color,\n vin: fipeModel.vin || `${customerId}${fipeModel.license_plate?.replace(/-/g, '')}`,\n state: fipeModel.state,\n city: fipeModel.city,\n status: VehicleStatus.ACTIVE,\n fipe_data: JSON.stringify(fipe_data),\n };\n\n try {\n const { headers } = await createCustomerVehicleApi(data);\n const location = headers?.location;\n if (location) {\n const vehicleId = location.split('/').pop();\n setNewVehicleId(vehicleId);\n }\n\n setModalVehicleIsOpen(false);\n await getVehicleBySocialSecurity(customerId);\n } catch (error) {\n console.log('error', error);\n }\n };\n\n const handleCancelModalVehicle = () => {\n setFipeModel({} as FipeModel);\n setModalVehicleIsOpen(false);\n };\n\n const handleNewVehicle = () => {\n setVehicleInitialData(undefined);\n setFipeModel({} as FipeModel);\n setModalVehicleIsOpen(true);\n };\n\n return (\n \n Veículo\n\n \n \n Novo veículo\n \n\n \n \n \n {customerVehicles.length === 0 && !loadingVehicles\n ? 'Sem veículos cadastrados'\n : customerVehicles.map(item => (\n handleListItemClick(item)}\n >\n \n \n \n\n \n \n ))}\n \n \n \n\n \n \n \n handleSubmit(selectedVehicle)}\n loading={loadingVehicles || loadQuiz}\n disabled={loadingVehicles || loadQuiz}\n />\n \n\n {\n setModalCancel(false);\n }}\n open={modalCancel}\n />\n\n selectInactiveVehicle()} onCancel={handleCancelInactive} question open={openModal}>\n O Veículo selecionado está inativo, por isso o pedido será avulso.\n \n\n \n \n \n \n );\n};\n\nexport default OpportunityVehicles;\n","import { useState, useEffect, useCallback } from 'react';\nimport { CustomerVehicle } from '~/types';\nimport { getVehicleBySocialSecurityApi } from '../api';\n\nexport function useCustomerVehicles(customerId?: string) {\n const [customerVehicles, setCustomerVehicles] = useState([]);\n const [loadingVehicles, setLoadingVehicles] = useState(false);\n\n const getVehicleBySocialSecurity = useCallback(async (socialSecurity?: string) => {\n if (!socialSecurity) {\n setCustomerVehicles([]);\n return;\n }\n\n try {\n setLoadingVehicles(true);\n const { data } = await getVehicleBySocialSecurityApi(socialSecurity);\n setCustomerVehicles(data);\n } catch (error) {\n console.log('error', error);\n } finally {\n setLoadingVehicles(false);\n }\n }, []);\n\n useEffect(() => {\n getVehicleBySocialSecurity(customerId);\n }, [customerId, getVehicleBySocialSecurity]);\n\n return {\n customerVehicles,\n loadingVehicles,\n setCustomerVehicles,\n getVehicleBySocialSecurity,\n };\n}\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { Card, CardContent, Container, FormControl, Grid, List, MenuItem, Select, Typography } from '@material-ui/core';\n\nimport { setOrderQuizAnswers } from '~/store/ducks/order';\n\nimport { useQuizAssociation } from '~/services/hooks/useQuizAssociation';\n\nimport Title from '../../components/Title';\nimport ModalCancel from '../../components/ModalCancel';\nimport Modal from '~/components/ModalNewVehicle';\n\nimport { Answers, QuizAssociationResponse, QuizForm, QuizFormatted, QuizResponse } from '~/types';\nimport SimpleBottomNavigation from '~/components/SimpleBottomNavigation';\nimport SimpleBottomAction from '~/components/SimpleBottomAction';\nimport { Cancel, ChevronLeft, ChevronRight } from '@material-ui/icons';\n\nfunction useQuery() {\n return new URLSearchParams(useLocation().search);\n}\n\nconst OpportunityAdditionalInformation = () => {\n const query = useQuery();\n const quizPicktow = query.get('quizPicktow') ?? false;\n\n const [modalCancel, setModalCancel] = useState(false);\n const [formattedQuiz, setFormattedQuiz] = useState([]);\n const [formResponse, setFormResponse] = useState([]);\n const [openModal, setOpenModal] = useState(false);\n const [message, setMessage] = useState();\n const [quizAssociation, setQuizAssociation] = useState();\n\n const history = useHistory();\n const dispatch = useDispatch();\n\n const { vehicle, service, quizAnswers } = useSelector(state => state.order);\n\n const { getQuiz, loadQuiz } = useQuizAssociation();\n\n useEffect(() => {\n setFormResponse(quizAnswers);\n }, [quizAnswers]);\n\n useEffect(() => {\n const callQuiz = async () => {\n const quiz = await getQuiz(\n vehicle?.status === 'INATIVO' || quizPicktow ? undefined : vehicle?.association_id,\n service?.id,\n );\n\n setQuizAssociation(quiz);\n };\n\n callQuiz();\n }, [getQuiz, quizPicktow, service, vehicle]);\n\n useEffect(() => {\n if (!service?.id) {\n history.push('/new-opportunity/vehicles');\n return;\n }\n\n let formattedForm: QuizFormatted[] = [];\n\n if (quizAssociation && quizAssociation[0]) {\n const form = JSON.parse(quizAssociation[0].form) as QuizResponse[];\n const answers: Answers[] = [];\n\n form.forEach(fm => {\n let object = {\n question: fm.title,\n answers,\n title: '',\n };\n\n let yesBlockResponse = false;\n let noBlockResponse = false;\n if (!fm.children && fm.block) {\n yesBlockResponse = fm.blockingResponse === true ? true : false;\n noBlockResponse = fm.blockingResponse === false ? true : false;\n }\n\n fm.children\n ? fm.children.forEach(\n fmChildren =>\n (object = {\n ...object,\n answers: [\n ...object.answers,\n {\n title: fmChildren.title,\n block: fmChildren.block,\n },\n ],\n }),\n )\n : (object = {\n ...object,\n answers: [\n {\n title: 'Sim',\n block: yesBlockResponse,\n },\n {\n title: 'Não',\n block: noBlockResponse,\n },\n ],\n });\n\n formattedForm = [...formattedForm, object];\n });\n }\n\n setFormattedQuiz(formattedForm);\n }, [history, quizAssociation, service]);\n\n const confirmSeparateService = useCallback(() => {\n if (!!vehicle?.association_code && !quizPicktow) {\n setFormResponse([]);\n setFormattedQuiz([]);\n history.replace('/new-opportunity/additional-information?quizPicktow=true');\n } else if (!vehicle?.association_code || quizPicktow) {\n dispatch(setOrderQuizAnswers(true, formResponse));\n history.push('/new-opportunity/map');\n }\n setOpenModal(false);\n }, [dispatch, formResponse, history, quizPicktow, vehicle]);\n\n const handleSubmit = useCallback(() => {\n const responseBlock = formResponse.filter(res => res.block);\n\n if (responseBlock.length > 0) {\n if (!!vehicle?.association_code && !quizPicktow) {\n const messagesBlock = (\n <>\n \n Uma das respostas informadas bloqueia a solicitação para o pacote de serviços.\n \n \n Deseja solicitar particular?\n \n \n );\n\n setMessage(messagesBlock);\n setOpenModal(true);\n return;\n }\n\n confirmSeparateService();\n return;\n } else {\n dispatch(setOrderQuizAnswers(!!vehicle?.association_code && !quizPicktow ? false : true, formResponse));\n history.push('/new-opportunity/map');\n }\n }, [confirmSeparateService, dispatch, formResponse, history, quizPicktow, vehicle]);\n\n const handleGoBack = useCallback(() => {\n if (quizPicktow) {\n setFormResponse([]);\n setFormattedQuiz([]);\n history.replace('/new-opportunity/additional-information');\n return;\n }\n\n history.goBack();\n }, [history, quizPicktow]);\n\n const handleCancel = useCallback(() => {\n setModalCancel(true);\n }, []);\n\n const handleConfirmCancel = useCallback(async () => {\n history.push('/new-opportunity');\n }, [history]);\n\n const changePicker = useCallback(\n (index, question, answer, block) => {\n const newResponse = [...formResponse];\n\n newResponse[index] = { question, answer, block };\n setFormResponse(newResponse);\n },\n [formResponse],\n );\n\n return (\n \n Informações adicionais\n\n \n \n \n {Object.keys(formattedQuiz).length > 0 &&\n formattedQuiz.map((qz, index) => {\n !formResponse[index] && changePicker(index, qz.question, qz.answers[0].title, qz.answers[0].block);\n\n return (\n \n \n \n

{qz.question}

\n {\n const qzIndex = qz.answers.findIndex(qzItem => qzItem.title === e.target.value);\n changePicker(index, qz.question, e.target.value, qz.answers[qzIndex].block);\n }}\n style={{ fontSize: 14 }}\n >\n {qz.answers.map((answers, i) => (\n \n {answers.title}\n \n ))}\n \n
\n
\n
\n );\n })}\n
\n
\n
\n\n \n \n \n \n \n\n {\n setModalCancel(false);\n }}\n open={modalCancel}\n />\n\n setOpenModal(false)}\n question={!!vehicle?.association_code && !quizPicktow}\n open={openModal}\n >\n {message}\n \n
\n );\n};\n\nexport default OpportunityAdditionalInformation;\n","import { AddressComponent } from '~/types';\n\nconst getAddress = (components: google.maps.GeocoderAddressComponent[]) => {\n const address: AddressComponent = {} as AddressComponent;\n\n components.forEach(component => {\n if (component.types.includes('street_number')) {\n address.number = component.long_name;\n }\n\n if (component.types.includes('route')) {\n address.street = component.long_name;\n }\n\n if (\n component.types.includes('sublocality_level_1') ||\n (component.types.includes('administrative_area_level_4') && !address.neighborhood)\n ) {\n address.neighborhood = component.long_name;\n }\n\n if (component.types.includes('administrative_area_level_2')) {\n address.city = component.long_name;\n }\n\n if (component.types.includes('point_of_interest')) {\n address.point_of_interest = component.long_name;\n }\n });\n\n address.fullAddress = `${address?.street ?? address?.point_of_interest ?? '-'}${\n address?.number ? `, ${address?.number}` : ''\n }`;\n\n return address;\n};\n\nexport default getAddress;\n","import React, { useCallback, useRef, useState } from 'react';\nimport PlacesAutocomplete, { geocodeByAddress, getLatLng } from 'react-places-autocomplete';\n\nimport InputComponent from '~/components/InputComponent';\nimport { AddressComponent } from '~/types';\nimport getAddress from '../../util/getAddress';\n\ninterface FullAddress {\n address?: string;\n lat?: number;\n lng?: number;\n}\n\ninterface LocationSearchInputProps {\n label: string;\n setLatLng: (latLng: google.maps.LatLngLiteral | undefined) => void;\n fnSetAddress: (address: AddressComponent) => void;\n fnOnChange?: () => void;\n}\n\nconst LocationSearchInput = ({ label, setLatLng, fnSetAddress, fnOnChange }: LocationSearchInputProps) => {\n const [address, setAddress] = useState('');\n const refText = useRef(null);\n\n const handleChange = useCallback(\n address => {\n setAddress(address);\n\n fnOnChange && fnOnChange();\n },\n [fnOnChange],\n );\n\n const handleSelect = useCallback(\n async (addressSelected: string) => {\n try {\n const results = await geocodeByAddress(addressSelected);\n\n const addressDetail = getAddress(results[0].address_components);\n\n const formattedAddress = results[0].formatted_address;\n const latLng = await getLatLng(results[0]);\n\n setLatLng(latLng);\n fnSetAddress(addressDetail);\n\n setAddress(formattedAddress);\n } catch (error) {\n return undefined;\n }\n },\n [fnSetAddress, setLatLng],\n );\n\n return (\n \n {({ getInputProps, suggestions, getSuggestionItemProps, loading }) => (\n
\n \n\n
\n {loading &&
Carregando...
}\n {suggestions.map((suggestion, index) => {\n const className = suggestion.active ? 'suggestion-item--active' : 'suggestion-item';\n\n const style = suggestion.active\n ? { backgroundColor: '#fafafa', cursor: 'pointer', lineHeight: 3 }\n : { backgroundColor: '#ffffff', cursor: 'pointer', lineHeight: 3 };\n\n return (\n \n {suggestion.description}\n
\n );\n })}\n
\n
\n )}\n \n );\n};\n\nexport default LocationSearchInput;\n","import styled from 'styled-components';\nimport { FaMapMarkerAlt } from 'react-icons/fa';\nimport { Card } from '@material-ui/core';\n\nimport Colors from '~/styles/colors';\n\ninterface ModalSuccessProps {\n fullscreen: boolean;\n}\n\nexport const Pin = styled(FaMapMarkerAlt).attrs<{ color?: string }>(({ color }) => ({\n size: 24,\n color: color ?? Colors.primary,\n}))<{\n lat: number;\n lng: number;\n}>`\n position: absolute;\n top: -20px;\n transform-origin: 50% 50%;\n`;\n\nexport const Container = styled.div`\n padding: 0 16px 16px 16px;\n`;\n\nexport const ModalSuccessContainer = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: center;\n`;\n\nexport const ModalSuccessTop = styled.div`\n display: flex;\n min-height: 30vh;\n flex-direction: column;\n position: relative;\n align-items: center;\n flex: ${({ fullscreen }) => (fullscreen ? 1 : 'auto')};\n`;\n\nexport const ModalSuccessBottom = styled.div`\n display: flex;\n background-color: ${Colors.green};\n align-items: center;\n justify-content: center;\n min-height: 30vh;\n padding: 16px;\n flex: ${({ fullscreen }) => (fullscreen ? 1 : 'auto')};\n`;\n\nexport const ModalSuccessCard = styled(Card)`\n position: absolute;\n bottom: -50px;\n padding: 24px;\n max-width: 85%;\n`;\n\nexport const ModalSuccessLink = styled.a`\n font-style: italic;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const GridItemContainer = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n padding: 8px;\n border-radius: 4px;\n box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);\n margin-top: 8px;\n`;\n\nexport const Content = styled.div`\n padding-bottom: 80px;\n`;\n","import { useEffect, useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { loadAssociationBalance } from '../api';\nimport { handleApiErrorResponse } from '../handleErrors';\nimport { useToast } from './toast';\nimport { clearBalance, setBalance, setBalanceError } from '~/store/ducks/associationBalance';\n\nexport interface AssociationBalance {\n account_statement?: {\n available_balance: number;\n };\n}\n\nexport function useAssociationBalance(associationId?: string) {\n const { addToast } = useToast();\n const dispatch = useDispatch();\n\n const getAssociationBalance = useCallback(async () => {\n if (!associationId) {\n dispatch(clearBalance());\n return;\n }\n\n try {\n const { data } = await loadAssociationBalance(associationId);\n dispatch(setBalance(data));\n } catch (error) {\n const errorMessages = handleApiErrorResponse(error, 'Erro ao consultar o saldo');\n\n addToast({\n title: 'Erro Inesperado',\n type: 'error',\n description: errorMessages?.handledMessage || errorMessages?.apiError || errorMessages?.applicationErrorMessage,\n });\n dispatch(clearBalance());\n dispatch(\n setBalanceError(\n errorMessages?.handledMessage || errorMessages?.apiError || errorMessages?.applicationErrorMessage,\n ),\n );\n }\n }, [addToast, associationId, dispatch]);\n\n useEffect(() => {\n getAssociationBalance();\n }, [getAssociationBalance]);\n}\n\nexport default useAssociationBalance;\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link, useHistory } from 'react-router-dom';\nimport { Avatar, Grid, makeStyles, Typography, useMediaQuery, useTheme } from '@material-ui/core';\nimport GoogleMapReact, { fitBounds } from 'google-map-react';\nimport { doc, onSnapshot, deleteDoc, setDoc } from 'firebase/firestore';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport { AttachMoney, Cancel, ChevronLeft, ChevronRight, Loop } from '@material-ui/icons';\nimport { GrCopy } from 'react-icons/gr';\n\nimport { db } from '~/config/firebase';\nimport WhatsAppIcon from '~/assets/svg/whats-app.svg';\nimport { getIconService } from '~/util/getIcon';\nimport { formatCellPhone, removeFormat } from '~/util/format';\nimport { useNewOrder } from '~/services/hooks/useNewOrder';\nimport { useToast } from '~/services/hooks/toast';\nimport { handleApiErrorResponse } from '~/services/handleErrors';\nimport Colors from '~/styles/colors';\nimport Title from '../../components/Title';\nimport ModalCancel from '../../components/ModalCancel';\nimport Modal from '~/components/ModalNewVehicle';\nimport LocationSearchInput from '../../components/LocationSearchInput';\nimport Loading from '~/components/Loading';\nimport InputComponent from '~/components/InputComponent';\nimport {\n Container,\n Content,\n GridItemContainer,\n ModalSuccessBottom,\n ModalSuccessCard,\n ModalSuccessContainer,\n ModalSuccessLink,\n ModalSuccessTop,\n Pin,\n} from './styles';\nimport {\n AddressComponent,\n Coords,\n CoordsOrder,\n ErrorResponse,\n LatLng,\n MapCalculatorCostParameters,\n MapCalculatorRequest,\n MapCalculatorResponse,\n OrderRequest,\n OrderResponse,\n PaymentStatus,\n} from '~/types';\nimport { needClear } from '~/store/ducks/order';\nimport SimpleBottomNavigation from '~/components/SimpleBottomNavigation';\nimport SimpleBottomAction from '~/components/SimpleBottomAction';\nimport { Divider } from '../../styles';\nimport { useAssociationBalance } from '~/services/hooks';\nimport { GridContainer } from './components/GridContainer';\n\nenum CalcStatus {\n 'NEW',\n 'CALCULATING',\n 'CALCULATED',\n 'ERROR',\n 'SEARCH',\n}\n\nenum OrderStatus {\n 'PAYMENT_PENDING',\n 'PAYMENT_APPROVED',\n 'PAYMENT_REFUSED',\n 'ALLOCATING',\n 'ON_GOING',\n}\n\ninterface MapLinkResponse {\n solution?: {\n id: string;\n clientId: string;\n legs: Array<{\n points: Array<{\n latitude: number;\n longitude: number;\n }>;\n }>;\n totalDistance?: number;\n totalSpeedProfilePenalty?: number;\n };\n}\n\ninterface Points {\n lat: number;\n lng: number;\n}\n\ntype ValueType = {\n [key: string]: {\n value: number;\n };\n};\n\nconst useStyles = makeStyles(() => ({\n container: {\n display: 'flex',\n flex: 1,\n justifyContent: 'center',\n flexDirection: 'column',\n },\n}));\n\nconst OpportunityMap = () => {\n const [modalCancel, setModalCancel] = useState(false);\n const [loading, setLoading] = useState(false);\n const [origin, setOrigin] = useState();\n const [destination, setDestination] = useState();\n const [openModal, setOpenModal] = useState(false);\n const [message, setMessage] = useState();\n const [calcStatus, setCalcStatus] = useState();\n const [forcePickTow, setForcePickTow] = useState(false);\n const [mapLinkID, setMapLinkID] = useState();\n const [currentLatLng, setCurrentLatLng] = useState();\n const [map, setMap] = useState();\n const [points, setPoints] = useState();\n const [dataCalculator, setDataCalculator] = useState();\n const [valueOverDistance, setValueOverDistance] = useState();\n const [timeZone, setTimeZone] = useState();\n const [orderStatus, setOrderStatus] = useState();\n const [mapLinkData, setMapLinkData] = useState();\n const [contactPhoneNumber, setContactPhoneNumber] = useState('');\n const [confirmationType, setConfirmationType] = useState();\n const [openModalPhoneNumber, setOpenModalPhoneNumber] = useState(false);\n const [addressOrigin, setAddressOrigin] = useState();\n const [addressDestination, setAddressDestination] = useState();\n const [paymentError, setPaymentError] = useState();\n const [orderId, setOrderId] = useState();\n const [positionCenter, setPositionCenter] = useState<{ lat: number; lng: number }>();\n const [zoomPosition, setZoomPosition] = useState(16);\n const [pixCode, setPixCode] = useState('');\n const [modalSuccess, setModalSuccess] = useState(false);\n\n const refPhone = useRef(null);\n const refAllocation = useRef(false);\n const classes = useStyles();\n\n const history = useHistory();\n const dispatch = useDispatch();\n const {\n validateRegionsService,\n getTimeZoneByGoogle,\n maplinkTrip,\n mapCalculator,\n payments,\n createOrder,\n } = useNewOrder();\n const { addToast } = useToast();\n\n const theme = useTheme();\n const fullscreen = useMediaQuery(theme.breakpoints.down('xs'));\n\n const {\n service,\n vehicle,\n customerId,\n separateService,\n uuid,\n quizAnswers,\n associationBalance,\n errorBalance,\n } = useSelector(state => ({\n service: state.order.service,\n vehicle: state.order.vehicle,\n customerId: state.auth.user['cognito:username'],\n separateService: state.order.separateService,\n uuid: state.order.uuid,\n quizAnswers: state.order.quizAnswers,\n associationBalance: state.associationBalance.account_statement,\n errorBalance: state.associationBalance.error,\n }));\n\n useAssociationBalance(vehicle?.association_id);\n\n const flightPath = useMemo(() => {\n const google = window.google;\n\n return new google.maps.Polyline({\n strokeColor: Colors.strokeColor,\n strokeOpacity: 1.0,\n strokeWeight: 2,\n });\n }, []);\n\n useEffect(() => {\n navigator.geolocation.getCurrentPosition(position => {\n const {\n coords: { latitude, longitude },\n } = position;\n setCurrentLatLng({ latitude, longitude });\n });\n }, []);\n\n useEffect(() => {\n if (!points) {\n flightPath.setMap(null);\n return;\n }\n\n const flightPathCoordinates: google.maps.LatLngLiteral[] = points;\n\n flightPath.setPath(flightPathCoordinates);\n\n flightPath.setMap(map);\n }, [flightPath, map, points]);\n\n const handleCancel = useCallback(() => {\n setModalCancel(true);\n }, []);\n\n const handleConfirmCancel = useCallback(async () => {\n history.push('/new-opportunity');\n }, [history]);\n\n const calculator = useCallback(\n async (points, mapLinkData?: MapLinkResponse) => {\n setCalcStatus(CalcStatus.CALCULATING);\n try {\n const timeZoneId = origin && (await getTimeZoneByGoogle(origin));\n\n let data: MapCalculatorRequest = {\n time_zone_id: timeZoneId || 'America/Sao_Paulo',\n displace: service?.displace,\n service_id: service?.id,\n association_id: vehicle?.association_id,\n vehicle_id: vehicle?.id,\n social_security: customerId,\n has_picktow: forcePickTow || separateService,\n points,\n source: addressOrigin?.city,\n };\n\n if (service?.displace) {\n data = {\n ...data,\n total_distance: mapLinkData?.solution?.totalDistance,\n total_speed_profile_penalty: mapLinkData?.solution?.totalSpeedProfilePenalty,\n destination: addressDestination?.city,\n };\n }\n\n const responseCalculator = await mapCalculator(data);\n\n setDataCalculator(responseCalculator.data);\n\n if (responseCalculator.data.charge_additional_fee) {\n setMessage(Um valor excedente será cobrado!);\n setOpenModal(true);\n }\n\n if (service?.displace) {\n const parameters = responseCalculator.data.cost_parameters;\n const filterCostParameters = parameters.filter(f => f.type === 'OVER_DISTANCE' && f.payer === 'CUSTOMER');\n setValueOverDistance(filterCostParameters[0]);\n }\n\n setTimeZone(timeZoneId);\n setCalcStatus(CalcStatus.CALCULATED);\n } catch (error) {\n const errorMessages = handleApiErrorResponse(error, 'Erro ao realizar o calculo');\n\n addToast({\n title: 'Erro Inesperado',\n type: 'error',\n description:\n errorMessages?.handledMessage || errorMessages?.apiError || errorMessages?.applicationErrorMessage,\n });\n } finally {\n setLoading(false);\n }\n },\n [\n addToast,\n addressDestination,\n addressOrigin,\n customerId,\n forcePickTow,\n getTimeZoneByGoogle,\n mapCalculator,\n origin,\n separateService,\n service,\n vehicle,\n ],\n );\n\n const showModalSuccess = useCallback(() => {\n setModalSuccess(true);\n }, []);\n\n const handleCloseModalSuccess = () => {\n dispatch(needClear());\n history.push('/new-opportunity');\n };\n\n const confirmLocations = useCallback(async () => {\n if (!origin || !origin.latitude || !origin.longitude) {\n addToast({ title: 'Validação', type: 'error', description: 'Origem é obrigatória!' });\n return;\n }\n\n if (service?.displace && (!destination || !destination.latitude || !destination.longitude)) {\n addToast({ title: 'Validação', type: 'error', description: 'Destino é obrigatório!' });\n return;\n }\n\n setLoading(true);\n const regionValid = origin && (await validateRegionsService(origin));\n\n if (!regionValid) {\n setMessage(\n <>\n Não podemos atender sua solicitação\n Fora da área de atuação da Picktow.\n ,\n );\n setLoading(false);\n setOpenModal(true);\n return;\n }\n\n if (!service?.displace) {\n calculator([origin]);\n return;\n }\n\n try {\n setLoading(true);\n\n const response = await maplinkTrip({\n problem: {\n calculationMode: 'THE_FASTEST',\n points: [\n {\n ...origin,\n siteId: 'source',\n },\n {\n ...destination,\n siteId: 'destination',\n },\n ],\n useRealSpeeds: true,\n startDate: 0,\n },\n identity: uuid,\n });\n\n const location = response.headers?.location;\n\n if (location) {\n const linkId = location.split('/').pop();\n setMapLinkID(linkId);\n }\n\n setCalcStatus(CalcStatus.NEW);\n } catch (error) {\n const errorMessages = handleApiErrorResponse(error, 'Erro ao realizar a rota!');\n\n addToast({\n title: 'Erro Inesperado',\n type: 'error',\n description: errorMessages?.handledMessage || errorMessages?.apiError || errorMessages?.applicationErrorMessage,\n });\n\n setLoading(false);\n }\n }, [addToast, calculator, destination, maplinkTrip, origin, service, uuid, validateRegionsService]);\n\n useEffect(() => {\n const unsubscribe = onSnapshot(doc(db, 'users', uuid), snapshot => {\n if (!snapshot) {\n return;\n }\n\n const data = snapshot.data() as MapLinkResponse | undefined;\n setMapLinkData(data);\n\n if (\n service?.displace &&\n loading &&\n !!mapLinkID &&\n mapLinkID === data?.solution?.id &&\n calcStatus === CalcStatus.NEW\n ) {\n setPoints(data.solution.legs[0].points.map(item => ({ lat: item.latitude, lng: item.longitude })));\n calculator(data.solution.legs[0].points, data);\n }\n });\n\n return unsubscribe;\n }, [calcStatus, calculator, loading, mapLinkID, service, uuid]);\n\n useEffect(() => {\n if (!orderId) {\n return;\n }\n\n const unsubscribe = onSnapshot(doc(db, 'orders', orderId), async snapshot => {\n if (!snapshot) {\n return;\n }\n\n const orderDocument = snapshot.data() as OrderResponse | undefined;\n\n if (orderDocument && (orderDocument.status === 'PAYMENT_APPROVED' || orderDocument.status === 'ALLOCATING')) {\n try {\n await deleteDoc(doc(db, 'users', uuid));\n showModalSuccess();\n } catch {\n addToast({\n title: 'Erro Inesperado',\n type: 'error',\n description: 'Erro ao excluir oportunidade do Firebase!',\n });\n }\n }\n });\n\n return unsubscribe;\n }, [addToast, orderId, showModalSuccess, uuid]);\n\n useEffect(() => {\n if (!orderId) {\n return;\n }\n\n // get Pix Code\n const unsubscribe = onSnapshot(doc(db, 'payments', orderId), snapshot => {\n if (!snapshot) {\n return;\n }\n\n const orderPayment = snapshot?.data() as PaymentStatus | undefined;\n\n if (orderPayment?.gatewayDetails?.pixText) {\n setPixCode(orderPayment.gatewayDetails.pixText);\n }\n });\n\n return unsubscribe;\n }, [orderId]);\n\n const handleOrigin = useCallback((latLng: google.maps.LatLngLiteral | undefined) => {\n if (!latLng) {\n return;\n }\n\n setOrigin({ latitude: latLng.lat, longitude: latLng.lng });\n }, []);\n\n const handleDestination = useCallback((latLng: google.maps.LatLngLiteral | undefined) => {\n if (!latLng) {\n return;\n }\n\n setDestination({ latitude: latLng.lat, longitude: latLng.lng });\n }, []);\n\n const handleOnChange = useCallback(() => {\n setPoints(undefined);\n }, []);\n\n const statusMessage = useCallback(() => {\n switch (orderStatus) {\n case OrderStatus.PAYMENT_PENDING:\n return 'Aguardando pagamento...';\n case OrderStatus.PAYMENT_APPROVED:\n return 'Pagamento aprovado...';\n case OrderStatus.PAYMENT_REFUSED:\n return 'Pagamento recusado...';\n case OrderStatus.ALLOCATING:\n return 'Procurando prestador de serviço...';\n case OrderStatus.ON_GOING:\n return 'Prestador de serviço indo até você...';\n default:\n return '';\n }\n }, [orderStatus]);\n\n const showPixCode = useCallback(\n (showMessagePix: boolean) => {\n return showMessagePix && pixCode === ''\n ? 'Gerando código Pix, aguarde'\n : showMessagePix && (\n <>\n Código Pix: {pixCode}\n\n \n \n addToast({\n title: 'Sucesso!',\n type: 'success',\n description: 'O código Pix foi copiado com sucesso!',\n })\n }\n >\n \n \n \n \n );\n },\n [addToast, loading, pixCode],\n );\n\n const paymentsType = useMemo(() => {\n if (!payments) {\n return undefined;\n }\n\n const paymentPix = payments.filter(payment => payment.type === 'ONLINE' && payment.payment_method === 'PIX');\n\n if (!paymentPix) {\n return undefined;\n }\n\n return [paymentPix[0].type, 'Pagar com PIX'];\n }, [payments]);\n\n const associationTotalValue: ValueType = useMemo(\n () =>\n dataCalculator?.cost_parameters\n .filter(\n item => !['CANCELLATION_FEE', 'COMMISSION_PERCENTAGE'].includes(item.type) && item.payer === 'ASSOCIATION',\n )\n .reduce((acc, item) => {\n const valueSum = item.value * item.multiplier * item.amount;\n\n if (acc[item.payer]) {\n acc[item.payer]['value'] = acc[item.payer]['value'] + valueSum;\n } else {\n acc[item.payer] = { value: valueSum };\n }\n return acc;\n }, {} as ValueType) || ({} as ValueType),\n [dataCalculator],\n );\n\n const confirmSolicitation = useCallback(\n async (type: string) => {\n if (!contactPhoneNumber || contactPhoneNumber.length < 13) {\n setConfirmationType(type);\n setOpenModalPhoneNumber(true);\n return;\n }\n\n refAllocation.current = false;\n\n if (!origin || !origin.latitude || !origin.longitude) {\n addToast({ title: 'Validação', type: 'error', description: 'Origem é obrigatória!' });\n return;\n }\n\n if (service?.displace && (!destination || !destination.latitude || !destination.longitude)) {\n addToast({ title: 'Validação', type: 'error', description: 'Destino é obrigatório!' });\n return;\n }\n\n if (\n (associationTotalValue['ASSOCIATION']?.value || 0) > (associationBalance?.available_balance || 0) &&\n !errorBalance\n ) {\n // setPaymentError('Saldo insuficiente na empresa. deseja solicitar particular?');\n setPaymentError('Desculpe-nos, mas estamos com problemas para fazer a solicitação pelo app. Entre em contato com a Central de Atendimento.');\n return;\n }\n\n setLoading(true);\n\n let coordinates: CoordsOrder[] = [\n {\n position: 'SOURCE',\n ordination: 0,\n latitude: origin.latitude,\n longitude: origin.longitude,\n address: addressOrigin?.fullAddress,\n neighborhood: addressOrigin?.neighborhood,\n city: addressOrigin?.city,\n },\n ];\n\n if (service?.displace) {\n coordinates = [\n ...coordinates,\n {\n position: 'DESTINATION',\n ordination: 1,\n latitude: destination?.latitude,\n longitude: destination?.longitude,\n address: addressDestination?.fullAddress,\n neighborhood: addressDestination?.neighborhood,\n city: addressDestination?.city,\n },\n ];\n }\n\n try {\n const quizWithPhone = [\n ...(quizAnswers.length > 0 ? quizAnswers : []),\n {\n question: 'Telefone de contato',\n answer: contactPhoneNumber,\n block: false,\n },\n {\n question: 'Alocação manual',\n answer: false,\n block: false,\n },\n ];\n\n const data: OrderRequest = {\n payment: {\n token: '3fa85f64-5717-4562-b3fc-2c963f66afa6', // id do payment (mockar)\n type,\n },\n association_name: vehicle?.association_trading_name,\n detached: separateService,\n customer_id: customerId,\n association_id: vehicle?.association_id,\n time_zone: timeZone,\n service_type: service?.description,\n cost: dataCalculator,\n vehicle: {\n type: vehicle?.vehicle_customer_type_description,\n model: vehicle?.model,\n model_year: vehicle?.model_year,\n color: vehicle?.color,\n manufacture: vehicle?.manufacture,\n status: vehicle?.status,\n vin: vehicle?.vin,\n license_plate: vehicle?.license_plate,\n state: vehicle?.state,\n city: vehicle?.city,\n },\n coordinates,\n association_code: vehicle?.association_code,\n service_id: service?.id,\n quiz_answers: JSON.stringify(quizWithPhone),\n disable_auto_allocation: refAllocation.current,\n };\n\n const response = await createOrder(data);\n const location = response.headers?.location;\n let locationOrderId: string;\n\n if (location) {\n locationOrderId = location.split('/').pop();\n setOrderId(locationOrderId);\n setOrderStatus(OrderStatus.PAYMENT_PENDING);\n\n setDoc(\n doc(db, 'orders', locationOrderId),\n {\n vin: vehicle?.vin,\n license_plate: vehicle?.license_plate,\n service_id: service?.id,\n service_type: service?.description,\n vehicle_type: vehicle?.vehicle_customer_type_description,\n association_code: vehicle?.association_code,\n service_displace: service?.displace,\n latitude: origin.latitude,\n longitude: origin.longitude,\n association_id: vehicle?.association_id,\n vehicle_id: vehicle?.id,\n separate_service: separateService,\n cost: {\n surcharge: dataCalculator?.surcharge,\n },\n },\n { merge: true },\n );\n\n addToast({ title: 'Sucesso', type: 'success', description: 'Oportunidade criada com sucesso!' });\n\n if (type === 'PIX') {\n return history.replace('/pix', { orderId: locationOrderId });\n }\n }\n\n setCalcStatus(CalcStatus.SEARCH);\n } catch (error) {\n const errorResponse = error as ErrorResponse;\n\n if (errorResponse.response?.data?.messages[0] === 'message.payment.association.balance.insufficient') {\n setForcePickTow(true);\n confirmLocations();\n return;\n }\n\n const errorMessages = handleApiErrorResponse(errorResponse, 'Erro ao criar oportunidade!');\n\n addToast({\n title: 'Erro Inesperado',\n type: 'error',\n description:\n errorMessages?.handledMessage || errorMessages?.apiError || errorMessages?.applicationErrorMessage,\n });\n } finally {\n setLoading(false);\n setContactPhoneNumber('');\n }\n },\n [\n addToast,\n addressDestination,\n addressOrigin,\n associationBalance,\n associationTotalValue,\n confirmLocations,\n contactPhoneNumber,\n createOrder,\n customerId,\n dataCalculator,\n destination,\n errorBalance,\n history,\n origin,\n quizAnswers,\n separateService,\n service,\n timeZone,\n vehicle,\n ],\n );\n\n const handleSubmit = useCallback(() => {\n const payment = payments?.find(payment => payment.type === 'ONLINE' && payment.payment_method === 'PIX');\n\n if (!payment) {\n addToast({ title: 'Validação', type: 'error', description: 'Pagamento obrigatório!' });\n return;\n }\n\n confirmSolicitation(payment.payment_method);\n }, [addToast, confirmSolicitation, payments]);\n\n const cancel = useCallback(() => {\n setCalcStatus(undefined);\n setMapLinkID(undefined);\n setOrigin(undefined);\n setDestination(undefined);\n setPoints(undefined);\n }, []);\n\n const handlePhoneNumber = useCallback(() => {\n if (!contactPhoneNumber) {\n addToast({ title: 'Validação', type: 'error', description: 'Telefone para contato é obrigatório' });\n return;\n }\n\n if (contactPhoneNumber.length < 13) {\n addToast({ title: 'Validação', type: 'error', description: 'Telefone inválido. (XX)XXXX-XXXX' });\n return;\n }\n\n setOpenModalPhoneNumber(false);\n\n if (!confirmationType) {\n addToast({ title: 'Erro Inesperado', type: 'error', description: 'Tipo de confirmação inválido!' });\n return;\n }\n\n confirmSolicitation(confirmationType);\n }, [addToast, confirmSolicitation, confirmationType, contactPhoneNumber]);\n\n const descriptionAndValue = useMemo(\n () => (\n
\n {service?.description && (\n \n )}\n {dataCalculator?.surcharge && (\n {`R$ ${dataCalculator.surcharge\n .toFixed(2)\n .replace('.', ',')}`}\n )}\n
\n ),\n [dataCalculator, service],\n );\n\n useEffect(() => {\n if (origin && !destination) {\n setPositionCenter({ lat: origin.latitude, lng: origin.longitude });\n return;\n }\n\n if (!origin && destination) {\n setPositionCenter({ lat: destination.latitude, lng: destination.longitude });\n return;\n }\n\n if (!origin || !destination) {\n return;\n }\n\n const latitudes = [origin.latitude, destination.latitude];\n const longitudes = [origin.longitude, destination.longitude];\n\n const bounds = {\n ne: {\n lat: Math.min(...latitudes),\n lng: Math.max(...longitudes),\n },\n sw: {\n lat: Math.max(...latitudes),\n lng: Math.min(...longitudes),\n },\n };\n\n const size = {\n width: 300, // Map width in pixels\n height: 600, // Map height in pixels\n };\n\n const { center, zoom } = fitBounds(bounds, size);\n\n setPositionCenter(center);\n setZoomPosition(zoom);\n }, [destination, origin]);\n\n const reasonsMessages = () => {\n const messages: string[] = [];\n\n if (dataCalculator?.benefits_quota_exceeded) {\n messages.push(\n 'A cota foi consumida do pacote de benefício. Estamos a disposição caso queira solicitar particular.',\n );\n }\n\n if (dataCalculator?.charge_additional_fee) {\n messages.push('O beneficio permite que o destino seja cidade domicilio ou da cidade mais próxima da origem.');\n }\n\n if (\n (associationTotalValue['ASSOCIATION']?.value || 0) > (associationBalance?.available_balance || 0) &&\n !errorBalance\n ) {\n // messages.push('Saldo insuficiente na empresa.');\n messages.push('Estamos com problemas para fazer a solicitação pelo app');\n }\n\n if (messages.length === 0) return null;\n\n return (\n \n \n \n \n {messages.length > 0 ? (messages.length === 1 ? 'Mensagem' : 'Mensagens') : ''}\n \n {messages.map((message, index) => (\n {message}\n ))}\n \n \n \n );\n };\n\n const showMessagePix =\n !dataCalculator?.has_benefits ||\n dataCalculator?.benefits_quota_exceeded ||\n (dataCalculator?.surcharge || 0) > 0 ||\n false;\n\n return (\n \n \n Endereço\n \n\n {(!calcStatus || calcStatus === CalcStatus.ERROR) && (\n \n \n\n {service?.displace && (\n \n )}\n \n )}\n\n {currentLatLng?.latitude && currentLatLng?.longitude && (\n
\n {\n setMap(map);\n }}\n yesIWantToUseGoogleMapApiInternals\n >\n {origin && }\n {destination && }\n \n
\n )}\n\n {(!calcStatus || calcStatus === CalcStatus.ERROR) && (\n \n \n \n \n \n )}\n\n {(calcStatus === CalcStatus.NEW ||\n calcStatus === CalcStatus.CALCULATING ||\n calcStatus === CalcStatus.CALCULATED ||\n calcStatus === CalcStatus.SEARCH) && (\n
\n {calcStatus === CalcStatus.SEARCH ? (\n
\n \n {statusMessage()}\n {showPixCode(showMessagePix)}\n
\n ) : (\n calcStatus !== CalcStatus.NEW &&\n calcStatus !== CalcStatus.CALCULATING && (\n <>\n {dataCalculator?.has_benefits && !dataCalculator?.benefits_quota_exceeded ? (\n <>\n \n {service?.displace\n ? `Sua rota é de ${((mapLinkData?.solution?.totalDistance ?? 0) / 1000).toFixed(0)} km${\n dataCalculator?.surcharge\n ? `, porém excedeu em ${\n valueOverDistance?.amount?.toFixed(0) ?? 0\n } km o benefício contratado`\n : ''\n }`\n : 'Solicitação aprovada'}\n \n\n {dataCalculator?.surcharge ? (\n <>\n {descriptionAndValue}\n\n {reasonsMessages()}\n\n \n \n {paymentsType && (\n \n )}\n \n \n ) : (\n <>\n {reasonsMessages()}\n\n \n \n\n confirmSolicitation('VOUCHER')}\n loading={loading}\n disabled={loading}\n />\n \n \n )}\n \n ) : (\n <>\n \n {service?.displace\n ? `Sua rota é de ${((mapLinkData?.solution?.totalDistance ?? 0) / 1000).toFixed(0)} km`\n : 'Solicitação aprovada, abaixo o valor para ser executado'}\n \n\n {/* Encontramos sua rota, abaixo o valor para executar o serviço */}\n {descriptionAndValue}\n\n {reasonsMessages()}\n\n \n \n {paymentsType && (\n \n )}\n \n \n )}\n \n )\n )}\n
\n )}\n\n {\n setModalCancel(false);\n }}\n open={modalCancel}\n />\n\n setOpenModal(false)} open={openModal}>\n {message}\n \n\n {\n setOpenModalPhoneNumber(false);\n\n setContactPhoneNumber('');\n }}\n open={openModalPhoneNumber}\n buttonPositive='Confirmar'\n >\n
\n Informe um telefone, para o prestador de serviço entrar em contato\n setContactPhoneNumber(formatCellPhone(removeFormat(e.target.value)))}\n value={contactPhoneNumber}\n ref={refPhone}\n inputProps={{ maxLength: 14 }}\n />\n
\n \n\n {\n setForcePickTow(true);\n setPaymentError(undefined);\n confirmLocations();\n }}\n onCancel={() => {\n setPaymentError(undefined);\n setCalcStatus(CalcStatus.NEW);\n }}\n >\n
\n {paymentError}\n
\n \n\n \n \n \n \n \n Solicitação Realizada com sucesso, aguarde o contato do prestador. Na próxima solicitação você pode usar{' '}\n \n aplicativo da Picktow.\n \n \n \n\n

\n Para cancelar\n \n

\n\n \n fale com a Picktow!\n WhatsApp\n \n
\n
\n\n \n \n SOLICITAÇÃO REALIZADA COM SUCESSO\n \n \n
\n \n
\n );\n};\n\nexport default OpportunityMap;\n","import { Grid } from '@material-ui/core';\nimport React from 'react';\n\nimport { WithChildren } from '~/types';\n\ninterface GridContainerProps extends WithChildren {}\n\nexport function GridContainer({ children }: GridContainerProps) {\n return (\n \n {children}\n \n );\n}\n","import { useCallback, useEffect, useState } from 'react';\nimport { AxiosResponse } from 'axios';\n\nimport {\n validateRegionsServiceApi,\n getTimeZoneByGoogleApi,\n maplinkTripApi,\n mapCalculatorApi,\n getAllPaymentMethodsApi,\n createOrderApi,\n} from '../api';\n\nimport {\n Coords,\n MapCalculatorRequest,\n MapCalculatorResponse,\n OrderRequest,\n PaymentMethodResponse,\n TripRequest,\n} from '~/types';\n\ninterface TimeZoneResponse {\n data: {\n timeZoneId: string;\n };\n}\n\nexport function useNewOrder() {\n const [payments, setPayments] = useState();\n\n useEffect(() => {\n const callApi = async () => {\n const response = (await getAllPaymentMethodsApi()) as AxiosResponse;\n\n setPayments(response.data);\n };\n\n callApi();\n }, []);\n\n const validateRegionsService = useCallback(async (origin: Coords): Promise => {\n try {\n await validateRegionsServiceApi(origin);\n return true;\n } catch (_) {\n return false;\n }\n }, []);\n\n const getTimeZoneByGoogle = useCallback(async (origin: Coords): Promise => {\n try {\n const {\n data: { timeZoneId },\n } = (await getTimeZoneByGoogleApi(\n process.env.REACT_APP_GOOGLE_API_KEY,\n origin.latitude,\n origin.longitude,\n )) as TimeZoneResponse;\n\n return timeZoneId;\n } catch (error) {\n return undefined;\n }\n }, []);\n\n const maplinkTrip = useCallback(async (request: TripRequest): Promise> => {\n return await maplinkTripApi(request);\n }, []);\n\n const mapCalculator = useCallback(async (request: MapCalculatorRequest): Promise<\n AxiosResponse\n > => {\n return await mapCalculatorApi(request);\n }, []);\n\n const createOrder = useCallback(async (request: OrderRequest): Promise> => {\n return await createOrderApi(request);\n }, []);\n\n return {\n validateRegionsService,\n getTimeZoneByGoogle,\n maplinkTrip,\n mapCalculator,\n payments,\n createOrder,\n };\n}\n","import styled from 'styled-components';\nimport { Link as BaseLink } from 'react-router-dom';\n\nimport Colors from '~/styles/colors';\nimport InputComponent from '~/components/InputComponent';\n\nexport const Form = styled.form`\n display: grid;\n`;\n\nexport const Title = styled.h1`\n font-size: 1rem;\n color: ${Colors.primary};\n`;\n\nexport const Input = styled(InputComponent)`\n input {\n color: ${Colors.primary};\n border-bottom: 1px solid ${({ error }) => (error ? 'red' : Colors.primary)};\n\n &:hover {\n border-bottom-color: ${Colors.primary};\n }\n }\n & label {\n color: ${Colors.primary};\n }\n\n & .MuiInput-underline:after {\n border-bottom-color: ${Colors.blue};\n }\n\n && .MuiInput-underline:before {\n border-bottom-color: ${Colors.primary};\n }\n && .MuiInput-underline:hover:before {\n border-bottom: 1px solid ${Colors.primary};\n }\n\n & .MuiOutlinedInput-root {\n & fieldset {\n border-color: red;\n }\n &:hover fieldset {\n border-bottom-color: ${Colors.blue};\n }\n &.Mui-focused fieldset {\n border-bottom-color: ${Colors.blue};\n }\n }\n`;\n\nexport const Link = styled(BaseLink)`\n color: ${Colors.primary};\n margin-top: 15px;\n transition: opacity 0.3s;\n\n &:hover {\n opacity: 0.7;\n }\n`;\n","import { Radio, RadioGroup, Typography } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nimport Button from '~/components/Button';\nimport { changeEmailApi, changePhoneNumberApi } from '~/services/api';\nimport { handleApiErrorResponse } from '~/services/handleErrors';\nimport { useToast } from '~/services/hooks/toast';\n\nimport { logout } from '~/store/ducks/auth';\nimport Colors from '~/styles/colors';\nimport { ConfirmationType, Error } from '~/types';\nimport { formatCellPhone, removeFormat, removeSpaces } from '~/util/format';\nimport { validEmail } from '~/util/validate';\nimport { Input, Title } from './styles';\n\nexport default function SetEmail() {\n const { accessToken, emailValidationRequired, phoneNumberValidationRequired } = useSelector(state => ({\n accessToken: state.auth.authorization.access_token,\n emailValidationRequired: state.auth.authorization.email_validation_required,\n phoneNumberValidationRequired: state.auth.authorization.phone_number_validation_required,\n }));\n\n const [field, setField] = useState('');\n const [confirmField, setConfirmField] = useState('');\n const [error, setError] = useState(null);\n const [selectedConfirmation, setSelectedConfirmation] = useState('email');\n\n const dispatch = useDispatch();\n const history = useHistory();\n const { addToast } = useToast();\n const location = useLocation();\n\n const unconfirmedEmailAndPhone = emailValidationRequired && phoneNumberValidationRequired;\n\n const handleSubmit = async (event: React.FormEvent) => {\n event.preventDefault();\n setError(null);\n\n if (!field.trim()) {\n return setError({ message: `${selectedConfirmation === 'email' ? 'E-mail' : 'Telefone'} não informado!` });\n }\n\n if (field !== confirmField) {\n return setError({ message: `${selectedConfirmation === 'email' ? 'E-mails' : 'Telefones'} não conferem!` });\n }\n\n if (!validEmail(field) && selectedConfirmation === 'email') {\n return setError({ message: 'E-mail inválido!' });\n }\n\n try {\n selectedConfirmation === 'email'\n ? await changeEmailApi(field, accessToken)\n : await changePhoneNumberApi(`+55${removeFormat(field)}`, accessToken);\n\n history.push('/set-email/confirmation', { selectedConfirmation });\n } catch (error) {\n const errorMessages = handleApiErrorResponse(error, 'Erro ao alterar o e-mail, tente novamente');\n\n addToast({\n title: 'Erro Inesperado',\n type: 'error',\n description: errorMessages?.handledMessage || errorMessages?.apiError || errorMessages?.applicationErrorMessage,\n });\n }\n };\n\n const handleLogout = () => {\n history.push('/');\n dispatch(logout());\n };\n\n const handleChangeConfirmation = (event: React.ChangeEvent) => {\n setSelectedConfirmation(event.target.value as ConfirmationType);\n };\n\n const populateField = (func: (param: string) => void, value: string) => {\n let newValue = removeSpaces(value);\n\n if (selectedConfirmation === 'phone_number') {\n newValue = formatCellPhone(removeFormat(newValue));\n }\n\n func(newValue);\n };\n\n useEffect(() => {\n if (location.pathname === '/login') {\n history.replace('/');\n }\n }, [history, location.pathname]);\n\n useEffect(() => {\n setError(null);\n setField('');\n setConfirmField('');\n }, [selectedConfirmation]);\n\n return (\n
\n {unconfirmedEmailAndPhone ? (\n Cadastre um e-mail ou telefone para poder continuar!\n ) : emailValidationRequired ? (\n Cadastre um e-mail para poder continuar!\n ) : (\n Cadastre um telefone para poder continuar!\n )}\n\n {unconfirmedEmailAndPhone && (\n \n \n E-mail\n
\n\n \n Telefone\n \n )}\n\n ) => populateField(setField, e.target.value)}\n autoFocus\n error={error}\n inputProps={{\n inputMode: selectedConfirmation === 'email' ? 'email' : 'numeric',\n ...(selectedConfirmation === 'phone_number' ? { maxLength: 14 } : {}),\n }}\n />\n\n ) => populateField(setConfirmField, e.target.value)}\n autoFocus\n error={error}\n inputProps={{\n inputMode: selectedConfirmation === 'email' ? 'email' : 'numeric',\n ...(selectedConfirmation === 'phone_number' ? { maxLength: 14 } : {}),\n }}\n />\n\n \n\n \n \n );\n}\n","import styled from 'styled-components';\nimport { Link as BaseLink } from 'react-router-dom';\n\nimport Colors from '~/styles/colors';\nimport InputComponent from '~/components/InputComponent';\n\nexport const Form = styled.form`\n display: grid;\n`;\n\nexport const Title = styled.h1`\n font-size: 1rem;\n color: ${Colors.primary};\n`;\n\nexport const Input = styled(InputComponent)`\n input {\n color: ${Colors.primary};\n border-bottom: 1px solid ${({ error }) => (error ? 'red' : Colors.primary)};\n\n &:hover {\n border-bottom-color: ${Colors.primary};\n }\n }\n & label {\n color: ${Colors.primary};\n }\n\n & .MuiInput-underline:after {\n border-bottom-color: ${Colors.blue};\n }\n\n && .MuiInput-underline:before {\n border-bottom-color: ${Colors.primary};\n }\n && .MuiInput-underline:hover:before {\n border-bottom: 1px solid ${Colors.primary};\n }\n\n & .MuiOutlinedInput-root {\n & fieldset {\n border-color: red;\n }\n &:hover fieldset {\n border-bottom-color: ${Colors.blue};\n }\n &.Mui-focused fieldset {\n border-bottom-color: ${Colors.blue};\n }\n }\n`;\n\nexport const Link = styled(BaseLink)`\n color: ${Colors.primary};\n margin-top: 15px;\n transition: opacity 0.3s;\n\n &:hover {\n opacity: 0.7;\n }\n`;\n","import styled from 'styled-components';\nimport { Link as BaseLink } from 'react-router-dom';\n\nimport Colors from '~/styles/colors';\nimport InputComponent from '~/components/InputComponent';\n\nexport const Form = styled.form`\n display: grid;\n`;\n\nexport const Title = styled.h1`\n font-size: 1rem;\n color: ${Colors.primary};\n`;\n\nexport const Input = styled(InputComponent)`\n input {\n color: ${Colors.primary};\n border-bottom: 1px solid ${({ error }) => (error ? 'red' : Colors.primary)};\n\n &:hover {\n border-bottom-color: ${Colors.primary};\n }\n }\n & label {\n color: ${Colors.primary};\n }\n\n & .MuiInput-underline:after {\n border-bottom-color: ${Colors.blue};\n }\n\n && .MuiInput-underline:before {\n border-bottom-color: ${Colors.primary};\n }\n && .MuiInput-underline:hover:before {\n border-bottom: 1px solid ${Colors.primary};\n }\n\n & .MuiOutlinedInput-root {\n & fieldset {\n border-color: red;\n }\n &:hover fieldset {\n border-bottom-color: ${Colors.blue};\n }\n &.Mui-focused fieldset {\n border-bottom-color: ${Colors.blue};\n }\n }\n`;\n\nexport const Link = styled(BaseLink)`\n color: ${Colors.primary};\n margin-top: 15px;\n transition: opacity 0.3s;\n\n &:hover {\n opacity: 0.7;\n }\n`;\n","import React, { useState, useCallback, useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nimport { Title, Input } from './styles';\n\nimport { logout, resendAliasConfirmationCodeRequest } from '~/store/ducks/auth';\n\nimport { removeSpaces } from '~/util/format';\nimport { changeEmailConfirmation } from '~/services/api';\nimport { handleApiErrorResponse } from '~/services/handleErrors';\nimport Button from '~/components/Button';\nimport { useToast } from '~/services/hooks/toast';\nimport Colors from '~/styles/colors';\n\nconst EmailRequired = () => {\n const [confirmationCode, setConfirmationCode] = useState();\n\n const { user, access_token, resendAlias } = useSelector(state => ({\n user: state?.auth?.user,\n access_token: state?.auth?.authorization?.access_token,\n resendAlias: state.auth.resendAlias,\n }));\n\n const dispatch = useDispatch();\n const history = useHistory();\n const { addToast } = useToast();\n const location = useLocation();\n\n const handleLogout = () => {\n history.push('/');\n dispatch(logout());\n };\n\n const validation = useCallback(\n error => {\n addToast({\n title: 'Erro Inesperado',\n type: 'error',\n description: error,\n });\n },\n [addToast],\n );\n\n const submitForm = useCallback(\n async (event: React.FormEvent) => {\n event.preventDefault();\n\n try {\n if (!confirmationCode?.trim()) {\n return validation('Código de Confirmação não informado!');\n }\n\n await changeEmailConfirmation(\n user['cognito:username'],\n confirmationCode,\n !user.email_verified && user.email ? 'EMAIL' : 'PHONE_NUMBER',\n access_token,\n );\n\n addToast({\n title: 'Faça login no sistema',\n type: 'info',\n });\n\n history.push('/');\n dispatch(logout());\n } catch (error) {\n const errorMessages = handleApiErrorResponse(error);\n\n addToast({\n title: 'Erro Inesperado',\n type: 'error',\n description:\n errorMessages?.handledMessage || errorMessages?.apiError || errorMessages?.applicationErrorMessage,\n });\n }\n },\n [access_token, addToast, confirmationCode, dispatch, history, user, validation],\n );\n\n const handleResendConfirmationCode = useCallback(async () => {\n dispatch(\n resendAliasConfirmationCodeRequest({\n confirmation_type: !user.email_verified && user.email ? 'EMAIL' : 'PHONE_NUMBER',\n access_token,\n }),\n );\n }, [access_token, dispatch, user.email, user.email_verified]);\n\n useEffect(() => {\n if (location.pathname === '/login') {\n history.replace('/');\n }\n }, [history, location.pathname]);\n\n useEffect(() => {\n if (resendAlias.success) {\n addToast({ title: 'Novo Código Enviado!', type: 'success' });\n }\n\n if (resendAlias.error) {\n addToast({ title: 'Erro Inesperado', type: 'error', description: resendAlias.message });\n }\n }, [addToast, resendAlias]);\n\n return (\n
\n \n {user.name}, enviamos\n {!user.email_verified && user.email ? ' por e-mail' : ' por SMS'} um código de verificação!\n \n\n ) => setConfirmationCode(removeSpaces(e.target.value))}\n autoFocus\n />\n\n ;\n}\n\nexport default Evaluation;\n","import React, { useState, useCallback } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { TextField } from '@material-ui/core';\n\nimport { Container, Label, Spacer, ViewButton } from './styles';\nimport Evaluation from '~/components/Evaluation';\nimport { createSurveyContractorApi } from '~/services/api';\nimport { handleApiErrorResponse } from '~/services/handleErrors';\nimport { useFirestore } from '~/services/hooks/useFirestore';\nimport { useToast } from '~/services/hooks/toast';\nimport { OrderFirestore } from '~/types';\nimport Button from '~/components/Button';\nimport Colors from '~/styles/colors';\n\nconst ContractorEvaluation = () => {\n const [rating, setRating] = useState(5);\n const [feedback, setFeedback] = useState('');\n const [loading, setLoading] = useState(false);\n\n const { orderId } = (useLocation().state || {}) as { orderId?: string };\n const { snapshot: order, setDocument, getDocument, removeDocument } = useFirestore(\n 'orders',\n orderId,\n false,\n );\n const { addToast } = useToast();\n const history = useHistory();\n\n const onSubmit = useCallback(async () => {\n if (!order) {\n return;\n }\n\n if (rating <= 3 && feedback.trim().length === 0) {\n return addToast({\n title: 'O feedback é obrigatório',\n type: 'error',\n });\n }\n\n setLoading(true);\n\n try {\n await createSurveyContractorApi({\n order_id: orderId,\n social_security: order.contractor_id,\n feedback,\n rating,\n });\n\n if (!orderId) {\n return history.push('/');\n }\n\n await setDocument('orders', orderId, { customer_survey: true }, { merge: true });\n\n const document = await getDocument('orders', orderId);\n\n if (document && document.customer_survey && document.contractor_survey) {\n await removeDocument('orders', orderId);\n }\n\n history.push('/');\n } catch (error) {\n const errorMessages = handleApiErrorResponse(error, 'Erro ao avaliar, tente novamente');\n\n addToast({\n title: 'Erro Inesperado',\n type: 'error',\n description: errorMessages?.handledMessage || errorMessages?.apiError || errorMessages?.applicationErrorMessage,\n });\n } finally {\n setLoading(false);\n }\n }, [addToast, feedback, getDocument, history, order, orderId, rating, removeDocument, setDocument]);\n\n return (\n \n \n\n \n\n \n\n \n\n \n\n setFeedback(event.target.value)}\n variant='outlined'\n />\n\n \n\n \n\n \n\n \n \n \n\n \n \n );\n};\n\nexport default ContractorEvaluation;\n","import React, { useCallback, useEffect } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { Container } from '@material-ui/core';\n\nimport { handleApiErrorResponse } from '~/services/handleErrors';\nimport { useFirestore } from '~/services/hooks/useFirestore';\nimport Loading from '~/components/Loading';\nimport { useToast } from '~/services/hooks/toast';\n\nconst RouteConfirmation = () => {\n const { orderId } = (useLocation().state || {}) as { orderId?: string };\n const history = useHistory();\n const { addToast } = useToast();\n\n const { setDocument } = useFirestore();\n\n useEffect(() => {\n if (!orderId) {\n history.push('/');\n }\n }, [history, orderId]);\n\n const handleConfirmAddress = useCallback(async () => {\n try {\n if (!orderId) {\n return;\n }\n\n await setDocument('route-confirmation', orderId, { confirmed: true });\n\n history.replace('/waiting-contractor-pictures');\n } catch (error) {\n const errorMessages = handleApiErrorResponse(error, 'Erro ao consultar a ordem, tente novamente');\n addToast({\n title: 'Erro Inesperado',\n type: 'error',\n description: errorMessages?.handledMessage || errorMessages?.apiError || errorMessages?.applicationErrorMessage,\n });\n }\n }, [addToast, history, orderId, setDocument]);\n\n useEffect(() => {\n handleConfirmAddress();\n }, [handleConfirmAddress]);\n\n return (\n \n \n \n );\n};\n\nexport default RouteConfirmation;\n","import styled from 'styled-components';\nimport { Typography } from '@material-ui/core';\nimport { Clipboard } from 'phosphor-react';\n\nimport Button from '~/components/Button';\nimport Colors from '~/styles/colors';\nimport { PaymentsFirestore } from '~/types';\nimport { CSSProperties } from 'react';\n\ninterface BackgroundWithColorProps {\n status?: PaymentsFirestore['status'];\n}\n\ninterface TextCodeContainerProps {\n cursor?: CSSProperties['cursor'];\n}\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n width: 100%;\n justify-content: center;\n align-items: center;\n background: ${Colors.background};\n height: 100vh;\n padding: 24px;\n`;\n\nexport const ImageContainer = styled.div`\n padding: 20px;\n align-items: center;\n justify-content: center;\n`;\n\nexport const HoldMobileImage = styled.img`\n width: 125px;\n height: 188px;\n`;\n\nexport const Card = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n margin: 10px 0;\n text-align: center;\n flex: 1;\n`;\n\nexport const CardItem = styled(Button).attrs({\n activeOpacity: 0.7,\n})`\n height: 40px;\n border-radius: 7px;\n align-items: center;\n flex-direction: row;\n background: ${Colors.white};\n margin: 5px 0;\n`;\n\nexport const TextCard = styled(Typography)`\n padding: 0 5px;\n color: ${Colors.primary};\n font-size: 12px;\n text-align: center;\n`;\nexport const TextMessage = styled(Typography)`\n padding: 25px 10px;\n flex: 1;\n color: ${Colors.primary};\n font-size: 8px;\n flex-wrap: wrap;\n text-align: center;\n`;\n\nexport const TextTitle = styled(Typography)`\n text-align: center;\n padding: 0 5px;\n color: ${Colors.primary};\n font-size: 16px;\n font-weight: bold;\n`;\n\nexport const TextCodeContainer = styled.div`\n ${({ cursor }) => (cursor ? `cursor: ${cursor};` : '')}\n display: flex;\n background-color: ${Colors.white};\n border-width: 1px;\n border-color: ${Colors.primary};\n border-radius: 10px;\n border-style: dashed;\n margin: 10px;\n padding: 6px 12px 6px 6px;\n flex-direction: row;\n justify-content: center;\n align-items: center; /* */\n`;\n\nexport const TextMessageContainer = styled.div`\n background-color: ${Colors.white};\n border-width: 1px;\n border-color: ${Colors.primary};\n border-radius: 10px;\n border-style: solid;\n margin: 35px;\n padding: 40px 10px 0;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n min-height: 10%;\n flex: 1;\n`;\n\nexport const TextCode = styled(Typography)`\n color: ${Colors.primary};\n font-size: 12px;\n text-align: center;\n`;\n\nexport const ContentCard = styled.div`\n flex-direction: row;\n padding: 0 10px;\n flex: 1;\n align-items: center;\n`;\n\nexport const Icon = styled(Clipboard).attrs({\n color: Colors.primary,\n weight: 'duotone',\n})`\n font-size: 32px;\n`;\n\nexport const ViewPicker = styled.div`\n flex: 1;\n height: 40px;\n border: 1px solid ${Colors.primary};\n border-radius: 20px;\n padding: 0 5px;\n margin: 0 0 20px;\n`;\n\nexport const BackgroundWithColor = styled.div`\n background-color: ${({ status }) =>\n status\n ? status === 'PAYMENT_APPROVED'\n ? Colors.green\n : status === 'PAYMENT_REFUSED'\n ? Colors.red\n : status === 'CANCELED'\n ? Colors.blue\n : 'transparent'\n : Colors.blue};\n height: 60%;\n position: absolute;\n width: 100%;\n bottom: 0;\n`;\n\nexport const PixButton = styled(Button)`\n margin: 10px 0px;\n`;\n","import React, { useEffect, useState } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nimport Like from '~/assets/svg/like.svg';\nimport Sad from '~/assets/svg/sad.svg';\nimport ImgHoldMobile from '~/assets/images/hold-mobile-pix.png';\nimport { cancelOrderByReasonApi } from '~/services/api';\nimport { useToast } from '~/services/hooks/toast';\nimport { useFirestore } from '~/services/hooks/useFirestore';\nimport Colors from '~/styles/colors';\nimport { PaymentsFirestore } from '~/types';\nimport {\n // BackgroundWithColor,\n Card,\n Container,\n HoldMobileImage,\n ImageContainer,\n PixButton,\n TextCard,\n TextCode,\n TextCodeContainer,\n TextMessage,\n TextMessageContainer,\n TextTitle,\n Icon,\n} from './styles';\nimport Loading from '~/components/Loading';\n\ninterface OrderStatusProps {\n status?: PaymentsFirestore['status'];\n title: string;\n message: string;\n}\n\nconst STATUS_MESSAGE: OrderStatusProps[] = [\n {\n status: 'PAYMENT_PENDING',\n title: 'Aguardando aprovação do pagamento',\n message:\n 'Clique no código ou no botão abaixo para copiar o código e pagar via PIX em qualquer aplicativo habilitado.',\n },\n {\n status: 'PRE_AUTHORIZATION',\n title: 'Aprovação do pagamento em andamento',\n message: 'Aguarde só mais um pouco, seu pagamento já está sendo processado.',\n },\n {\n status: 'PAYMENT_APPROVED',\n title: 'PAGAMENTO APROVADO',\n message: 'Tudo certo. Aguarde alguns instantes, seu chamado está sendo processado.',\n },\n {\n status: 'PAYMENT_REFUSED',\n title: 'FALHA NO PAGAMENTO',\n message: 'Tente novamente através de uma nova forma de pagamento.',\n },\n {\n status: 'CANCELED',\n title: 'PAGAMENTO CANCELADO',\n message: 'Sua ordem foi cancelada.',\n },\n];\n\nexport default function Pix() {\n const history = useHistory();\n const { orderId } = (useLocation().state || {}) as { orderId?: string };\n const { addToast } = useToast();\n const { snapshot: snapshotPayment, removeDocument } = useFirestore('payments', orderId, false);\n\n const [orderStatus, setOrderStatus] = useState(STATUS_MESSAGE[0]);\n const [code, setCode] = useState();\n\n useEffect(() => {\n if (!orderId) {\n history.replace('/');\n }\n }, [history, orderId]);\n\n useEffect(() => {\n setCode(snapshotPayment?.gatewayDetails?.pixText);\n snapshotPayment?.status &&\n setOrderStatus(STATUS_MESSAGE[STATUS_MESSAGE.findIndex(st => st.status === snapshotPayment.status)]);\n }, [snapshotPayment]);\n\n useEffect(() => {\n switch (orderStatus?.status) {\n case 'CANCELED':\n history.replace('/pix');\n break;\n\n case 'PAYMENT_REFUSED':\n if (orderId) {\n removeDocument('payments', orderId);\n }\n break;\n\n case 'PAYMENT_APPROVED':\n addToast({\n title: 'Pagamento aprovado!',\n type: 'info',\n });\n history.replace('/');\n break;\n\n default:\n break;\n }\n }, [addToast, history, orderId, orderStatus, removeDocument]);\n\n const copyToClipboard = (content?: string) => {\n if (!content) {\n return;\n }\n\n navigator.clipboard.writeText(content);\n addToast({\n title: 'Código copiado com sucesso!',\n type: 'info',\n });\n };\n\n const cancelOrder = async () => {\n const data = {\n reason: 'Canceled by Payment Refused PIX',\n penalty_charge: false,\n };\n\n await cancelOrderByReasonApi(orderId, data);\n history.goBack();\n };\n\n return (\n \n {orderStatus?.status === 'PAYMENT_PENDING' || orderStatus?.status === 'PRE_AUTHORIZATION' ? (\n <>\n \n \n \n\n \n {code ? (\n <>\n {orderStatus?.title}\n\n {orderStatus?.message}\n\n copyToClipboard(code)}>\n {code?.slice(0, 60)}...\n \n \n\n copyToClipboard(code)}\n backgroundColor={Colors.primary}\n color={Colors.white}\n />\n \n ) : (\n <>\n \n Estamos criando seu código, isso pode demorar um pouco, aguarde por favor.\n \n \n \n )}\n \n \n ) : (\n \n \n {orderStatus?.status === 'PAYMENT_REFUSED' ? Sad : Like}\n\n {orderStatus?.message}\n \n\n {orderStatus?.title}\n {orderStatus?.status === 'PAYMENT_REFUSED' ? (\n \n ) : (\n orderStatus?.status === 'PAYMENT_APPROVED' && \n )}\n \n )}\n \n );\n}\n","import styled from 'styled-components';\nimport { Typography } from '@material-ui/core';\n\ninterface LabelProps {\n data?: {\n fontSize?: number;\n textAlign?: string;\n fontWeight?: string;\n };\n}\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 85vh;\n`;\n\nexport const ViewContent = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n justify-content: center;\n align-items: center;\n`;\n\nexport const ViewButton = styled.div`\n display: flex;\n flex-direction: column;\n margin: 30px;\n`;\n\nexport const Label = styled(Typography)`\n ${({ data }) => (data?.fontSize ? `font-size: ${data.fontSize}px;` : '')}\n ${({ data }) => (data?.textAlign ? `text-align: ${data.textAlign};` : '')}\n ${({ data }) => (data?.fontWeight ? `font-weight: ${data.fontWeight};` : '')}\n display: inline;\n`;\n","import React, { useCallback, useEffect } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nimport { Container, ViewContent, ViewButton, Label } from './styles';\nimport Button from '~/components/Button';\nimport { PICKTOW_PHONE } from '~/config/constants';\nimport { useFirestore } from '~/services/hooks/useFirestore';\nimport Colors from '~/styles/colors';\n\nconst RequestCanceled = () => {\n const history = useHistory();\n const { orderId, licensePlate, serviceType, canceledByUser } = (useLocation().state || {}) as {\n orderId: string;\n licensePlate: string;\n serviceType: string;\n canceledByUser: boolean;\n };\n const { removeDocument } = useFirestore();\n\n useEffect(() => {\n if (!orderId) {\n history.push('/');\n }\n }, [history, orderId]);\n\n const handleGoTop = useCallback(async () => {\n if (orderId) {\n await removeDocument('orders', orderId);\n }\n\n history.push('/');\n }, [history, orderId, removeDocument]);\n\n const handleCallPicktow = useCallback(() => {\n document.location.href = `tel:${PICKTOW_PHONE}`;\n }, []);\n\n const handleGoBackAndRemoveOrder = async () => {\n if (orderId) {\n await removeDocument('orders', orderId);\n }\n\n history.replace('/');\n };\n\n useEffect(() => {\n if (canceledByUser) {\n handleGoTop();\n }\n }, [canceledByUser, handleGoTop]);\n\n return (\n \n \n \n\n {serviceType && }\n\n {licensePlate && }\n\n {(serviceType || licensePlate) && (\n \n )}\n\n \n\n \n \n\n \n \n \n \n );\n};\n\nexport default RequestCanceled;\n","import styled from 'styled-components';\nimport { Typography } from '@material-ui/core';\n\nimport BaseButton from '~/components/Button';\nimport Button from '~/components/Button';\nimport InputComponent from '~/components/InputComponent';\nimport Colors from '~/styles/colors';\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n /* background-color: ${Colors.primary}; */\n flex: 1;\n padding: 0px 16px;\n`;\n\nexport const FormInput = styled(InputComponent)`\n margin-bottom: 10px;\n color: ${Colors.primary};\n`;\n\nexport const SubmitButton = styled(BaseButton)`\n margin-top: 10px;\n`;\n\nexport const BackLink = styled(Button).attrs({\n activeOpacity: 0.7,\n})`\n margin-bottom: 20px;\n`;\n\nexport const LabelError = styled(Typography)`\n color: ${Colors.primary};\n text-align: center;\n font-weight: bold;\n`;\n\nexport const Label = styled(Typography)`\n color: ${Colors.primary};\n text-align: center;\n font-weight: bold;\n font-size: 20px;\n`;\n","import React from 'react';\nimport { Switch } from 'react-router-dom';\n\nimport RouterWrapper, { RouterWrapperProps } from './Route';\n\nimport Login from '~/pages/Login';\nimport ForgotPassword from '~/pages/ForgotPassword';\nimport ForgotPasswordCode from '~/pages/ForgotPasswordCode';\nimport { ChangePassword } from '~/pages/ChangePassword';\nimport NotFound from '~/pages/NotFound';\nimport OpportunityServices from '~/pages/NewOpportunity/pages/OpportunityServices';\nimport OpportunityVehicles from '~/pages/NewOpportunity/pages/OpportunityVehicles';\nimport OpportunityAdditionalInformation from '~/pages/NewOpportunity/pages/OpportunityAdditionalInformation';\nimport OpportunityMap from '~/pages/NewOpportunity/pages/OpportunityMap';\nimport SetEmail from '~/pages/SetEmail';\nimport { useSelector } from 'react-redux';\nimport SetEmailConfirm from '~/pages/SetEmailConfirm';\nimport EmailRequired from '~/pages/EmailRequired';\nimport ConfirmSignUp from '~/pages/ConfirmSignUp';\nimport { Initial } from '~/pages/Initial';\nimport UpdateOrder from '~/pages/UpdateOrder';\nimport WaitingSearchingContractor from '~/pages/WaitingSearchingContractor';\nimport RequestCanceledByCustomer from '~/pages/RequestCanceledByCustomer';\nimport Tracking from '~/pages/Tracking';\nimport OrdersInExecution from '~/pages/OrdersInExecution';\nimport StatusOrder from '~/pages/StatusOrder';\nimport WaitingContractorPictures from '~/pages/WaitingContractorPictures';\nimport ContractorEvaluation from '~/pages/ContractorEvaluation';\nimport RouteConfirmation from '~/pages/RouteConfirmation';\nimport Pix from '~/pages/Pix';\nimport RequestCanceled from '~/pages/RequestCanceled';\nimport SignUp from '~/pages/SignUp';\n\nconst loginRoutes: RouterWrapperProps[] = [\n {\n path: '/',\n component: Initial,\n exact: true,\n layout: 'LOGIN',\n },\n {\n path: '/login',\n component: Login,\n exact: true,\n layout: 'LOGIN',\n },\n {\n path: '/forgot-password',\n component: ForgotPassword,\n },\n {\n path: '/forgot-confirmation',\n component: ForgotPasswordCode,\n },\n {\n path: '/sign-up',\n component: SignUp,\n marginTop: 24,\n },\n];\n\nconst loggedRoutes: RouterWrapperProps[] = [\n {\n path: '/',\n component: OpportunityServices,\n exact: true,\n showFirebaseOrder: false,\n },\n {\n path: '/login',\n component: OpportunityServices,\n exact: true,\n showFirebaseOrder: false,\n },\n {\n path: '/new-opportunity',\n component: OpportunityServices,\n exact: true,\n showFirebaseOrder: false,\n },\n {\n path: '/new-opportunity/services',\n component: OpportunityServices,\n exact: true,\n showFirebaseOrder: false,\n },\n {\n path: '/new-opportunity/vehicles',\n component: OpportunityVehicles,\n exact: true,\n },\n {\n path: '/new-opportunity/additional-information',\n component: OpportunityAdditionalInformation,\n exact: true,\n },\n {\n path: '/new-opportunity/map',\n component: OpportunityMap,\n exact: true,\n },\n {\n path: '/change-password',\n component: ChangePassword,\n },\n {\n path: '/update-order',\n component: UpdateOrder,\n },\n {\n path: '/waiting-searching-contractor',\n component: WaitingSearchingContractor,\n },\n {\n path: '/request-canceled-by-customer',\n component: RequestCanceledByCustomer,\n },\n {\n path: '/tracking',\n component: Tracking,\n },\n {\n path: '/orders-in-execution',\n component: OrdersInExecution,\n showFirebaseOrder: false,\n },\n {\n path: '/status-order',\n component: StatusOrder,\n },\n {\n path: '/waiting-contractor-pictures',\n component: WaitingContractorPictures,\n },\n {\n path: '/contractor-evaluation',\n component: ContractorEvaluation,\n },\n {\n path: '/route-confirmation',\n component: RouteConfirmation,\n },\n {\n path: '/pix',\n component: Pix,\n },\n {\n path: '/request-canceled',\n component: RequestCanceled,\n },\n];\n\nconst requireEmailRoute: RouterWrapperProps[] = [\n {\n path: '/',\n component: SetEmail,\n exact: true,\n layout: 'AUTH',\n },\n {\n path: '/login',\n component: SetEmail,\n exact: true,\n layout: 'AUTH',\n },\n {\n path: '/set-email',\n component: SetEmail,\n exact: true,\n layout: 'AUTH',\n },\n {\n path: '/set-email/confirmation',\n component: SetEmailConfirm,\n exact: true,\n layout: 'AUTH',\n },\n];\n\nconst requireValidationRoute: RouterWrapperProps[] = [\n {\n path: '/',\n component: EmailRequired,\n exact: true,\n layout: 'AUTH',\n },\n {\n path: '/login',\n component: EmailRequired,\n exact: true,\n layout: 'AUTH',\n },\n];\n\nconst confirmSignUp: RouterWrapperProps[] = [\n {\n path: '/',\n component: ConfirmSignUp,\n exact: true,\n },\n {\n path: '/login',\n component: ConfirmSignUp,\n exact: true,\n },\n];\n\nexport default function Routes() {\n const {\n authenticated,\n emailValidationRequired,\n phoneNumberValidationRequired,\n email,\n phoneNumber,\n confirmCodeSignUp,\n } = useSelector(state => ({\n authenticated: state.auth.authorization.authenticated,\n emailValidationRequired: state.auth.authorization.email_validation_required,\n phoneNumberValidationRequired: state.auth.authorization.phone_number_validation_required,\n email: state.auth.user.email,\n phoneNumber: state.auth.user.phone_number,\n confirmCodeSignUp: state.auth.authorization.confirmCodeSignUp,\n }));\n\n return (\n \n {!confirmCodeSignUp && !authenticated\n ? loginRoutes.map((route, index) => (\n \n ))\n : (emailValidationRequired && !email && phoneNumberValidationRequired && !phoneNumber) ||\n (emailValidationRequired && phoneNumberValidationRequired && confirmCodeSignUp)\n ? requireEmailRoute.map((route, index) => (\n \n ))\n : emailValidationRequired && phoneNumberValidationRequired\n ? requireValidationRoute.map((route, index) => (\n \n ))\n : confirmCodeSignUp\n ? confirmSignUp.map((route, index) => (\n \n ))\n : loggedRoutes.map((route, index) => (\n \n ))}\n\n \n \n );\n}\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport { Title, Subtitle } from './styles';\nimport Button from '~/components/Button';\nimport { Divider } from '../NewOpportunity/styles';\nimport RobotImage from '~/assets/images/robot.png';\nimport Colors from '~/styles/colors';\nimport LogoPicktow from '~/assets/svg/logo_p_picktow';\nimport ImageHome from '~/assets/svg/vetor_login-user.svg';\n\nexport function Initial() {\n const history = useHistory();\n\n const handleWhatsApp = () => {\n window.open('https://wa.me/557140421162?text=Olá, sou usuário da Picktow e necessito de ajuda', '_blank');\n };\n\n const handleLogin = (isAssociate?: boolean) => {\n history.push('/login', { isAssociate });\n };\n\n const handleSignUp = () => {\n history.push('/sign-up');\n };\n\n return (\n <>\n
\n \n Home\n
\n\n Bem vindo a Picktow\n Tenha agilidade e excelência!\n\n handleLogin(true)}\n />\n\n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { InputAdornment } from '@material-ui/core';\nimport { Visibility, VisibilityOff } from '@material-ui/icons';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nimport { loginRequest, signUpClear } from '~/store/ducks/auth';\n\nimport Button from '~/components/Button';\n\nimport { Content, Divider, Fields, FormLogin, Header, Input, Label, Link } from './styles';\nimport { formatUsername, removeFormat } from '~/util/format';\nimport { validCNPJ, validCPF } from '~/util/validate';\nimport Colors from '~/styles/colors';\n\ninterface MessageError {\n message: string;\n}\n\nexport default function Login() {\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n const [userError, setUserError] = useState();\n const [passError, setPassError] = useState();\n const [secureText, setSecureText] = useState(true);\n\n const { loading, error } = useSelector(state => state.auth);\n const { isAssociate } = (useLocation().state || {}) as { isAssociate?: boolean };\n const history = useHistory();\n\n useEffect(() => {\n if (error) {\n setUserError({ message: 'Usuário/senha inválido' });\n setPassError(undefined);\n }\n }, [error]);\n\n const dispatch = useDispatch();\n\n function handleSubmit(event) {\n event.preventDefault();\n setUserError(undefined);\n setPassError(undefined);\n let newUsername = removeFormat(username);\n\n if (!newUsername.trim()) {\n return setUserError({ message: 'CPF / CNPJ não informado!' });\n }\n\n if (newUsername.length <= 11) {\n newUsername = newUsername.padStart(11, '0');\n if (!validCPF(newUsername)) {\n return setUserError({ message: 'CPF inválido!' });\n }\n } else {\n newUsername = newUsername.padStart(14, '0');\n if (!validCNPJ(newUsername)) {\n return setUserError({ message: 'CNPJ inválido!' });\n }\n }\n\n if (!password.trim()) {\n return setPassError({ message: 'Senha não informada!' });\n }\n dispatch(loginRequest(newUsername.trim().toLowerCase(), password));\n return true;\n }\n\n useEffect(() => {\n dispatch(signUpClear());\n }, [dispatch]);\n\n return (\n \n \n
\n \n \n
\n\n \n setUsername(formatUsername(e.target.value))}\n error={userError}\n autoFocus\n style={{ flex: '0 1 auto' }}\n />\n\n setPassword(e.target.value)}\n error={passError}\n InputProps={{\n endAdornment: (\n setSecureText(secure => !secure)}\n style={{ cursor: 'pointer', color: Colors.primary }}\n >\n {secureText ? : }\n \n ),\n }}\n style={{ flex: '0 1 auto' }}\n />\n \n\n Esqueceu a senha?\n\n {isAssociate && (\n \n )}\n \n\n \n \n \n\n {!isAssociate && (\n \n Ainda não tem conta? \n \n )}\n \n
\n
\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { forgotPasswordRequest, clearError } from '~/store/ducks/auth';\nimport Button from '~/components/Button';\nimport { Input, Label } from './styles';\nimport { formatUsername, removeFormat } from '~/util/format';\nimport { validCNPJ, validCPF } from '~/util/validate';\nimport Colors from '~/styles/colors';\nimport { Error } from '~/types';\n\nexport default function ForgotPassword({ history }) {\n const [username, setUsername] = useState('');\n const [error, setError] = useState(null);\n const dispatch = useDispatch();\n\n const handleSubmit = (event: React.FormEvent) => {\n event.preventDefault();\n setError(null);\n let newUsername = removeFormat(username);\n\n if (!newUsername.trim()) {\n return setError({ message: 'CPF / CNPJ não informado!' });\n }\n\n if (newUsername.length <= 11) {\n newUsername = newUsername.padStart(11, '0');\n if (!validCPF(newUsername)) {\n return setError({ message: 'CPF inválido!' });\n }\n } else {\n newUsername = newUsername.padStart(14, '0');\n if (!validCNPJ(newUsername)) {\n return setError({ message: 'CNPJ inválido!' });\n }\n }\n\n dispatch(forgotPasswordRequest(newUsername));\n history.push('/forgot-confirmation', newUsername);\n return true;\n };\n\n const handleGoBack = () => {\n history.goBack();\n };\n\n useEffect(() => {\n dispatch(clearError());\n }, [dispatch]);\n\n return (\n
\n \n\n ) => setUsername(formatUsername(e.target.value))}\n autoFocus\n error={error}\n />\n\n \n\n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { InputAdornment } from '@material-ui/core';\nimport { Visibility, VisibilityOff } from '@material-ui/icons';\n\nimport { resetPasswordRequest, resendConfirmationCode, clearError } from '~/store/ducks/auth';\nimport { validPassword } from '~/util/validate';\nimport Button from '~/components/Button';\nimport { Input } from './styles';\nimport history from '~/services/history';\nimport { Error } from '~/types';\nimport Colors from '~/styles/colors';\n\nexport default function ForgotPasswordCode({ location }) {\n const [code, setCode] = useState('');\n const [password, setPassword] = useState('');\n const [confirmPassword, setConfirmPassword] = useState('');\n const [secureText, setSecureText] = useState(true);\n const [secureConfirmText, setSecureConfirmText] = useState(true);\n const [codeError, setCodeError] = useState(null);\n const [passError, setPassError] = useState(null);\n const [confirmError, setConfirmError] = useState(null);\n const { loading, error } = useSelector(state => state.auth);\n const dispatch = useDispatch();\n const username = location.state;\n\n const handleSubmit = (event: React.FormEvent) => {\n event.preventDefault();\n setCodeError(null);\n setPassError(null);\n setConfirmError(null);\n\n if (!code.trim()) {\n return setCodeError({ message: 'Código de Confirmação não informado!' });\n }\n\n if (!password.trim()) {\n return setPassError({ message: 'Senha não informado!' });\n }\n\n if (password !== confirmPassword) {\n setPassError({ message: 'Senhas não conferem!' });\n setConfirmError({ message: 'Senhas não conferem!' });\n return true;\n }\n\n if (!validPassword(password)) {\n return setPassError({\n message: 'Deve conter 8 caracteres, sendo. Letras maiúsculas, letras minúsculas e números.',\n });\n }\n\n dispatch(resetPasswordRequest(username, password, code));\n return true;\n };\n\n const resendCode = () => {\n dispatch(resendConfirmationCode(username));\n };\n\n const goBack = () => {\n dispatch(clearError());\n history.push('/');\n };\n\n useEffect(() => {\n if (error) {\n return setCodeError({\n message: error.apiError && error.apiError.message,\n });\n }\n }, [error]);\n\n return (\n
\n ) => setCode(e.target.value)}\n error={codeError}\n autoFocus\n />\n ) => setPassword(e.target.value)}\n error={passError}\n InputProps={{\n endAdornment: (\n setSecureText(secure => !secure)}\n style={{ cursor: 'pointer', color: Colors.primary }}\n >\n {secureText ? : }\n \n ),\n }}\n />\n ) => setConfirmPassword(e.target.value)}\n error={confirmError}\n InputProps={{\n endAdornment: (\n setSecureConfirmText(secure => !secure)}\n style={{ cursor: 'pointer', color: Colors.primary }}\n >\n {secureConfirmText ? : }\n \n ),\n }}\n />\n\n \n\n