{"version":3,"sources":["context/DataContext.js","helpers/getURL.js","helpers/getConfig.js","helpers/getConstants.js","components/Utilities/General.jsx","helpers/APIServices.js","context/TokenStatusContext.jsx","components/Register/ButtonRegister.jsx","components/Register/ButtonToStreaming.jsx","components/Register/WatchCatalog.jsx","components/Home/CarouselItem.jsx","components/Home/CarouselIndicators.jsx","components/Home/Carousel.jsx","components/Home/AuctionsItem.jsx","components/Home/Auctions.jsx","components/Home/AuctionsCarousel.jsx","components/Register/Offer.jsx","components/Home/AuctionsHighlightItem.jsx","components/Home/AuctionsHighlight.jsx","components/Home/AuctionsHighlightSection.jsx","components/Home/AuctionsHighlightCarousel.jsx","components/Home/Video.jsx","components/Utilities/Animation.jsx","components/Home/Home.jsx","components/Home/CloseModalIcon.jsx","context/CaptchaContext.jsx","components/Login/Login.jsx","components/CheckIn/CheckIn.jsx","components/Home/Header.jsx","components/Home/FooterMain.jsx","components/Menu/CountDownCatalog.jsx","components/Menu/OrderCatalog.jsx","components/Menu/PaginationCatalog.jsx","components/Menu/ProductGridItem.jsx","components/Menu/ProductGrid.jsx","components/Menu/SearchDescription.jsx","components/Menu/CartGridItem.jsx","components/Menu/CartGrid.jsx","components/Menu/Cart.jsx","components/Profile/customerData/CustomerChangePass.jsx","components/Profile/ConfigurationAccount.jsx","components/Profile/SelectNationality.jsx","components/Profile/SelectCountry.jsx","components/Profile/SelectState.jsx","components/Profile/SelectTown.jsx","components/Profile/SelectCity.jsx","components/Profile/SelectEconomicActivity.jsx","components/Profile/SelectJustCountry.jsx","components/Profile/customerData/CustomerComplementaryData.jsx","components/Profile/customerData/CustomerData.jsx","components/Profile/customerData/ModalCustomerData.jsx","components/Menu/FiltersCatalog.jsx","components/Menu/PriceFilter.jsx","components/Menu/Catalog.jsx","components/Menu/AboutUs.jsx","components/Menu/AuctionsMenu.jsx","components/Menu/Services.jsx","components/Menu/Contact.jsx","components/Utilities/ToTop.jsx","components/Utilities/Loading.jsx","components/streaming/MiniPlayer/ClosingModal.jsx","components/Message/Message.jsx","components/Register/StreamingRegisterMessage.jsx","components/Menu/OfferSuccess.jsx","components/Login/RecoveryPassword.jsx","components/Login/ResetPassword.jsx","components/Login/TokenNotValid.jsx","components/CheckIn/VerifyUser.jsx","components/Profile/AuctionAccount.jsx","components/Profile/paymentProcess/AdressConfirmDelete.jsx","components/Profile/AddressBilling.jsx","components/Profile/ModalAddressBilling.jsx","components/Profile/AddressBillingAccount.jsx","components/Profile/AddressShipping.jsx","components/Profile/ModalAddressShipping.jsx","components/Profile/AddressShippingAccount.jsx","components/Profile/AwardActive.jsx","components/Profile/AwardHistory.jsx","components/Profile/paymentProcess/PaymentGateways.jsx","components/Profile/Orders.jsx","components/Profile/Bids.jsx","components/Profile/ProfileGrid.jsx","components/Profile/paymentProcess/ShoppingCart.jsx","components/Profile/paymentProcess/Send.jsx","components/Profile/paymentProcess/OrderPanel.jsx","components/Profile/paymentProcess/Mail.jsx","components/Profile/paymentProcess/Invoice.jsx","components/Profile/paymentProcess/AddressBilling.jsx","components/Profile/paymentProcess/AddressShipping.jsx","components/Profile/paymentProcess/Payment.jsx","components/Profile/paymentProcess/ConfirmOrder.jsx","components/Profile/paymentProcess/PaymentProcessGrid.jsx","components/Profile/paymentProcess/ReceivePay.jsx","components/Profile/orderDetail/SummaryOrder.jsx","components/Profile/orderDetail/OrderDetail.jsx","components/Profile/orderDetail/OrderDetailGrid.jsx","components/streaming/Carousel.jsx","components/streaming/Video.jsx","components/streaming/Information.jsx","components/streaming/MenuStreaming.jsx","components/streaming/Streaming.jsx","components/Register/MePago/CardFormToken.jsx","components/Register/RegisterToOffer.jsx","components/streaming/WaitNextAuctions.jsx","components/streaming/WaitNextAuctionsDeclineClient.jsx","components/Register/ReceivePayToken.jsx","components/Profile/paymentProcess/ReceiveActnetPay.jsx","components/Register/MePago/ChallengePayToken.jsx","App.js","reportWebVitals.js","index.js"],"names":["reducer","validate","newValidate","intitialState","valid","registeredAuctions","idAuction","nameAuction","dateAuction","palletAuction","idPallet","localState","JSON","parse","localStorage","getItem","DataContext","createContext","DataProvider","children","useReducer","setValidate","useEffect","setItem","stringify","Provider","value","URLServices","getUrls","sessionStorage","ServiceCarousel","URLs","catalog","ServiceAuctionCustomerStatus","id","PATH","ServiceLastCatalog","ServiceAuctionById","ServiceFavoritesGetById","auctionsClients","ServiceGetAddressShippingByIdCustomer","idCustomer","customers","ServiceGetGeneralParameterById","ServiceGetAddressBillingByIdCustomer","ServiceInfoAddressShippingById","ServiceInfoAddressBillingById","ServiceGetByZipCode","zipCode","announcement","ServiceGetCountries","ServiceGenericParameters","idParameter","ServiceRefreshToken","refreshToken","clients","ServiceCompleteOrder","checkout","ServiceClientData","ServiceUpdateClientData","ServiceLotCatalogByAuctionFilter","getConfig","file","a","url","fetch","headers","Accept","then","response","json","resp","data","Constants","getConstants","getImgDefault","imgDefault","getIdStreaming","idStreaming","getExecution","execution","getIdGoldenMinutes","idGoldenMinutes","getLimitShippingInvoice","limitShippingInvoice","getLimitShipping","limitShipping","getAvailableLot","available","getRetiredLot","retired","getPenaltyDaysDefault","penaltyDaysDefault","getGuidEmpty","guidEmpty","getUserRejectedStatus","userRejected","getBillPocketID","billPocket","getactnetID","actnet","getMercadoPagoId","getDisableCheckoutMessageID","idDisableCheckoutMessage","getMercadoPagoPublicKey","CloseModal","elementID","modal","document","getElementById","modalBootstrap","bootstrap","Modal","getInstance","hide","backdrops","getElementsByClassName","length","i","remove","OpenModal","toggle","CloseAllModal","modals","OpenMessage","type","messageService","contact","messageSubText","dataMessage","success","warning","error","confirm","message","icon","text","text2","button","arrIcon","split","innerHTML","classList","add","forEach","element","messageText2","style","OpenStreamingRegisterMessage","OpenOfferSuccess","redirectHome","OpenCloseStreaming","OpenWaitNextAuction","verifyFieldsRequerid","elements","trim","validEmail","email","test","restoreInputs","inputs","validRFC","input","esFiscoMoral","rfc","replace","match","validPassword","msg","search","validSession","token","setSession","open","items","login","loginMobile","itemsMobile","userName","userNameMobile","name","auctions","expiration","expirationRefresh","idPalleteVIP","undefined","mercadoPagoPublicKey","initMercadoPago","locale","idMercadoPagoPublicKey","endpointMercadoPagoPublicKey","GET","clear","setMinMaxDate","currentDate","Date","currentMonth","getMonth","currentDay","getDate","dateMax","getFullYear","setAttribute","validMinMaxDate","limitDate","setFullYear","date","minDate","min","maxDate","onlyText","event","target","onlyMail","onlyNumber","onlyTextNumber","onlyTextNumber2","convertToDate","d","hours","getHours","minutes","getMinutes","meridiem","convertToDatePenaltyDay","days","setDate","convertToTime","seconds","getSeconds","changePasswordText","getAttribute","attributes","class","nodeValue","setAttributePassword","formatCurrency","numberFormat","Intl","NumberFormat","currency","isNaN","format","capitalize","string","letter","charAt","toUpperCase","slice","toLowerCase","resetRadios","getElementsByName","checked","closeMenuMobile","contains","click","CloseBackdrops","getIP","axios","get","ip","removeArt","word","showLoading","loading","hideLoading","Token","method","catch","POST","params","Authorization","body","status","setTimeout","window","location","href","ok","PUT","DELETE","TokenStatusContext","TokenStatusProvider","useState","tokenStatus","setTokenStatus","onTokenValidate","setOnTokenValidate","mercadoPagoInitialized","setMercadoPagoInitialized","paymentFormError","setPaymentFormError","renderMpPaymentForm","setRenderMpPaymentForm","tokenAmount","setTokenAmount","ButtonRegister","classStyle","useContext","history","useHistory","clearState","saveToken","pallet","description","streaming","idPalette","openRegisterModal","URLServiceValidationRegisterToken","ServiceValidationRegisterToken","statusToken","redirectToValidation","push","urlValidation","className","onClick","e","ButtonToStreaming","props","statusRejected","userStatusLastCatalog","setButton","messagge","setMessagge","IdClient","checkOnToJoinStreming","URL","ServiceCheckOnToJoinStreming","auctionClient","IdAuction","WatchCatalog","goCatalog","clasStyle","heightA","CarouselItem","statusCustomer","link","nuevaPestania","active","rel","src","img","alt","height","title","place","auctionRegistered","auctionType","auctionStatus","description1","description2","description3","CarouselIndicators","idCarousel","slide","nameClass","Carousel","dataCarousel","setDataCarousel","dataAnnouncement","setDataAnnouncement","interval","setInterval","classIndicator","classItem","getCarousel","URLCarousel","URLAnnouncement","ServiceAnnouncement","IdInterval","carouselTime","URLTimeInterval","filter","carousel","bannerIni","bannerFin","item","auctionCustomerStatus","users","find","auction","idAuctionCustomerStatus","checkStatus","idType","idStatus","auctionValue","getIsStreaming","auctionDate","imageUrl","map","substr","AuctionsItem","to","category","productName","Auctions","isStreaming","state","setState","prevState","parseInt","title2","AuctionsCarousel","Offer","offerLot","offer","setOffer","offerSelected","setOfferSelected","setConfirm","handleScroll","handleOffer","handleConfirm","auctionTypes","idLoteStatus","addCartItem","enablePostSale","clicked","setClicked","idLot","addEventListener","directSale","disabled","scheduled","width","stopPropagation","onScroll","dropdown","ul","elementDrop","elementUl","precio","hideDropdown","AuctionsHighlightItem","reference","price","registered","AuctionsHighlight","AuctionsHighlightSection","articles","auctionName","rowsItems","itemsArray","div","dangerouslySetInnerHTML","__html","index","article","renderToString","order","lstImageLote","startingPrice","lstOffertsLot","divRow","j","k","setAuctionsHigh","AuctionsHighlightCarousel","role","Video","setData","video","controls","preload","autoPlay","muted","loop","playsInline","text1","PAGE","innerHeight","setSlideIn","selector","querySelector","elementTop","getBoundingClientRect","top","Home","mobile","setMobile","lastCatalog","setLastCatalog","setArticles","setAuctions","setUserStatusLastCatalog","getArticles","URLCatalog","ServiceCatalog","PageNumber","Destacado","Order","Object","keys","key","searchParams","append","lots","useLayoutEffect","handleResize","innerWidth","removeEventListener","getData","URLLastCatalog","URLAuctionCustomerStatus","CloseModalIcon","onHandleClick","CaptchaContext","CaptchaProvider","captchaSiteKey","setCaptchaSiteKey","Login","inputMail","setinputMail","inputPassword","setinputPassword","disabledBtn","setdisabledBtn","URLLogin","ServiceLogin","pathname","captchaRef","useRef","current","reset","Logueo","captchaValue","getValue","password","captcha","onPaymentValidate","enterKey","keyCode","onChange","maxLength","onInput","onKeyUp","autoComplete","htmlFor","ref","sitekey","CheckIn","inputName","setinputName","inputLastName","setinputLastName","inputSecondLastName","setinputSecondLastName","inputBirthday","setinputBirthday","inputPhone","setinputPhone","inputVerifyPassword","setinputVerifyPassword","setChecked","ServiceClients","setCaptcha","captchaContact","options","setOptions","alliance","setAlliance","loadAllianceCompanyCatalog","enableBtn","URLAllianceCompany","ServiceAllianceCompany","localOptions","label","console","log","chk","verifyPassword","onBlur","mask","onValueChange","isSearchable","placeholder","components","DropdownIndicator","selectProps","menuIsOpen","Name","LastName","SecondLastName","Birthdate","Phone","Email","Password","IdAllianceCompany","grecaptcha","errors","Header","useLocation","isHome","URLSearchParams","billingUrl","billing","diamondUrl","diamond","constants","PROTOCOL","protocol","redirectSSL","host","urlServices","LOCATION","aboutActive","auctionActive","catalogActive","servicesActive","contactActive","hideMenu","btnExitStreaming","exitStreaming","path","exitStreamingLogOut","menuActive","logo","preventDefault","FooterMain","phone1","phone2","phone3","phone4","desc1","desc2","desc3","desc4","schedule","address","socialMedia","socialKey","hideFooter","footer","CountDownCatalog","startAuctionDate","endAuctionDate","classAuction","onCourseCountDown","onEndCountDown","textStatusAuction","titleColor","statusAuction","timerHours","setTimerHours","timerMinutes","setTimerMinutes","timerSeconds","setTimerSeconds","countDownDate","getTime","now","Math","sign","distance","floor","clearInterval","startTimer","OrderCatalog","orders","searchOrder","handleSelectOrder","PaginationCatalog","pageLinks","currentPage","nextPage","pages","page","ProductGridItem","setLoading","setOfferLot","statusDescription","setStatusDescription","cardColor","setCardColor","headerCard","setheaderCard","iconLot","setIconLot","awardID","award","availableID","retiredID","paidID","paid","IdCustomer","actual","favorities","idPaleta","consigna","consignaSAP","finalPrice","actualLotID","idClient","statusLot","addFavorite","isFavorite","URLFavoritesDelete","ServiceFavoritesDeletetById","err","URLFavoritesPost","ServiceFavoritesPost","nextLotOffer","URLMaxOfert","ServicePostMaxOfert","idCliente","idLote","monto","validado","lastElement","URLGetNextOffert","mont","ServiceGetNextLotOffer","nextOfferLot","idSubasta","incremento","increment","newPrice","includes","favorite","isfavorite","toString","node","scrollHeight","scrollTop","clientHeight","cart","IdLot","Description","Price","Image","lote","setCart","ProductGrid","handdleAddCartItem","numCards","setNumCards","resizing","intFrameWidth","onresize","consignacion","consignacionSAP","imageLote","sort","b","SearchDescription","action","onSubmit","handleSubmit","handleChange","searchTerm","CartGridItem","dellCartItem","delCartItem","pullCart","CartGrid","handdleDeleteCartItem","Cart","ShoppingCart","total","clientData","GeneralData","ContactData","EconomicActivityData","contador","customerGeneralData","customerContactData","customerEconomicActivity","validDataComplementary","visible","collapseOne","collapseTwo","headingOne","headingTwo","descripcionLote","lot","images","nombreLote","precioSalida","origin","detail","enableInvoice","shoppingCart","CustomerChangePassword","dataPassword","setDataPassword","dataPassword2","setDataPassword2","dataShow","setDataShow","classInput","setClassInput","classPassword","setClassPassword","disableInput","setDisableInput","disableCancel","setDisableCancel","URLChangePassword","ServiceChangePassword","edit","btnEdit","innerText","NewPassword","cancel","save","ConfigurationAccount","dataName","setDataName","dataLastName","setDataLastName","dataSecondLastName","setDataSecondLastName","dataBirthday","setDataBirthday","dataTelefono","setDataTelefono","dataCorreo","setDataCorreo","URLClients","generalData","birthday","month","day","convertToDateFormatEnglish","lastName","secondLastName","phoneNumber","updateProfile","parent","close","SelectNationality","setStyle","nationality","control","base","borderColor","singleValue","provided","color","nationalities","setNationalities","ServiceNationality","mountNationality","setMountNationality","nacionalidad","obj","setNationality","styles","isDisabled","SelectCountry","countries","setCountries","URLCountries","idPais","country","idState","setAddress","idEdo","idMun","idCol","SelectState","states","setStates","idCountry","ServiceGetState","sState","SelectTown","town","towns","setTowns","ServiceGetTown","idTown","sTown","colonia","setListCities","SelectCity","city","cities","setCities","ServiceGetCity","listCities","idCity","sCity","col","SelectEconomicActivity","economicActivity","activity","setActivity","ServiceEconomicActivity","mountEconomicActivity","setMountEconomicActivity","actividadEconomica","actEconomica","setActEconomica","SelectJustCountry","countryBirth","setCountry","CustomerComplementaryData","dataNationality","setDataNationality","dataCURP","setDataCURP","dataRFC","setDataRFC","dataCalle","setDataCalle","dataNumero","setDataNumero","dataNumeroInt","setDataNumeroInt","dataTelefonoSec","setDataTelefonoSec","dataCorreoSec","setDataCorreoSec","dataActEconomica","setDataActEconomica","dataPaisNac","setDataPaisNac","setErrors","scp","numero","numeroInt","razonSocial","calle","alias","referencia","esFisicoMoral","verifyCurpRfc","hasAttribute","birthDay","c","calcRFC","idNationality","curp","secondaryPhoneNumber","secondaryEmail","street","number","numberInt","idEconomicActivity","idCountryOfBirth","load","verifyFields","validSelect","errorSelect","verifySelect","inputCURP","validCURP","URLUpdate","getZipCode","changeCP","CustomerData","setLoad","cerrarModal","ModalCustomerData","clearForm","updateData","FiltersCatalog","idSection","filters","getByChecks","displayed","setDisplayed","arrayFilters","setArrayFilters","idFilter","filterSections","onCheckFilter","PriceFilter","max","getByPrice","cleanPrice","minVal","setMinVal","maxVal","setMaxVal","minValRef","maxValRef","range","getPercent","useCallback","round","clean","minPercent","maxPercent","left","onMouseUp","classnames","prefix","defaultValue","decimalsLimit","allowNegativeValue","Catalog","visibleModal","setVisibleModal","setClientData","searchCategory","selectedCategory","selectedOrder","totalResults","filterItems","numberPages","itemsPerPage","filsers","perPageOptions","exibitionDate","eventEndDate","shopingCart","minPrice","maxPrice","priceSection","atualLot","setFavorities","setStatusCustomer","setEnableInvoice","partialClosure","partialTotal","priceFilterID","getClientData","getCatalog","isTrue","getBySP","saleEndDate","saleStartDate","getFavorities","itemsCartAuction","URLAuctionById","eventDate","idTypeAuction","sessionCart","getCart","pageNumber","getLotCatalogFilter","URLFavoritesGet","checks","byPrice","bySearch","priceJson","auxFilters","minprice","jsonLots","URLLOTCATALOG","lotActual","actualLot","ceil","maxItems","idLotActual","scrollTo","URLClientData","tabIndex","AboutUs","title1","paragraph1","paragraph2","paragraph3","paragraph4","AuctionsMenu","getAuctions","auctionsList","Services","title3","Contact","fullName","setFullName","postEmail","setPostEmail","tel","setTel","setMessage","termsConditions","setTermsConditions","setDisabledBtn","ServiceContact","checkContact","chkCaptcha","text3","text4","text5","facebook","twitter","onSendContact","phone","rows","ToTop","Loading","ClosingModal","cancelExit","isGoAccount","has","isLogOut","Message","fontSize","StreamingRegisterMessage","onClear","OfferSuccess","closeOfferSuccess","redirect","RecoveryPassword","ServiceRequestPassword","ResetPassword","inputPasswordReset","setinputPasswordReset","inputVerifyPasswordReset","setinputVerifyPasswordReset","disabledBtnReset","setdisabledBtnReset","URLReset","ServiceResetPasswordReset","ServiceValidateTokenPasswordReset","enableBtnReset","newpassword","TokenNotValid","VerifyUser","URLConfirm","ServiceConfirmEmailNewUser","ActionAccount","dataAuction","setDataAuction","ServiceGetLastAuctions","AdressConfirmDelete","deleteAddress","modalType","AddressBilling","AddressRefresh","getAddress","setTitleModal","focus","x","list","listAddress","municipio","estado","ModalAddressBilling","nombreCompleto","correo","Send","flag","errorSet","bandera","ServiceCustomerInfoAddressBilling","titleModal","AddressBillingAccount","setListAddress","maxAddress","setMaxAddress","flagDelete","URLParameter","valor","Address","AddressShipping","substring","predeterminado","ModalAddressShipping","ServiceCustomerInfoAddressShipping","AddressShippingAccount","NDirectionsValidation","AwardActive","awardActive","setAwardActive","deliveryLimitID","URLDeliveryLimit","getAwardActive","URLGetAwardsActive","ServiceGetAwardsActive","URLPenaltyDays","penaltyDays","arrayGrouped","array","kay","koy","grouped","el","nombreSubasta","fechaSubasta","awards","datePenalty","values","groupBy","validaDatos","AwardHistory","awardHistory","setAwardHistory","ServiceGetAwardsHistory","PaymentGateways","retryPAyment","hideBillPocket","hideActnet","hideMercadoPago","sure","setSure","BILLPOCKETID","ACTNETID","MERCADOPAGOID","clickRadio","payment","Orders","idOrder","setIdOrder","setHideBillPocket","setHideActnet","setHideMercadoPago","pending","orderPending","pendingPayment","orderPendingPayment","completedtStatus","orderCompletedStatus","noteCancelled","getOrders","Promise","resolve","reject","ServiceGetOrdersByUser","result","ServicePaymentRetry","idNota","idTpv","urlRedirect","folio","created","amount","openOrderDetail","idOrderStatus","updatedOrders","updatedOrder","Bids","clientDataBids","setDataBids","clientDataDetailsBids","setDataDetailsBids","setAuctionName","ServiceGetListBids","openDetailBids","URLDetail","ServiceGetListBidsDetails","formatDate","time","converDate","join","dateTime","fecha","hora","numberLot","clientBid","typeOffert","ProfileGrid","dataGeneral","setDataGeneral","dataAwardActive","setDataAwardActive","dataAwardHistory","setDataAwardHistory","dataBid","setBid","dataOrders","setDataOrders","dataAddress","setDataAdress","dataAddressInvoice","setDataAdressInvoice","option","removeMenuActive","openTab","form","setItems","getElementsByTagName","consiga","sap","consignaSap","details","addAllCart","idCheckAll","addCart","step","setStep","officeDelivery","setOfficeDelivery","deliveryLimit","activateMessagingID","activateMessaging","URLActivateMessagingID","getActivate","isOffice","lastStep","send","setOrigen","setOrigen2","eventButton","OrderPanel","count","subTotal","lotPaymentLimitDefault","lotPaymentLimit","setLotPaymentLimit","NLotPaymentLimitValidation","getParams","orderDetails","isDeliveryRequired","idDeliveryType","deliveryOffice","rateDelivery","idRateDelivery","nombreMensajeria","montoMensajeria","idDireccionEnvio","isBillingRequired","idBillingAdress","montoSeguro","selectItem","arr","precioVenta","lotName","deliveryMail","mail","carrier","rate","amountInsurance","addressMail","invoice","addressInvoice","tipoPasarelaTPV","paymentGateway","deliveryService","idBillingUser","saveOrder","ServiceAddDirectSale","ServiceAddOrder","removeItem","deleteCart","limitPayment","backTo","Mail","notification","ServiceQuotationMail","idPresential","listMail","setListMail","idSystem","referenceObject","packageList","contentValue","weight","originAddress","getZipCodeOrigen","destinationAddress","shippingOptions","zipCodeOrigenMO","zipCodeOrigenStreaming","zipCodeOrigenPresential","totalRate","rateId","idRate","AmountInsurance","Invoice","originStep","Payment","externStep","originStep2","ConfirmOrder","setMail","setAddressInvoice","addressInvoiceTitle","setAddressInvoiceTitle","setAddressMail","setPayment","hideInvoice","setHideInvoice","hideMail","setHideMail","stepSend","setStepSend","messageInsurance","setMessageInsurance","dataConsigna","messageInsuranceID","URLMessageInsurance","PaymentProcessGrid","visibleShopping","setVisibleShopping","visibleSend","setVisibleSend","visibleAddressBilling","setVisibleAddressBilling","visibleMail","setVisibleMail","visibleInvoice","setVisibleInvoice","visibleAddressShipping","setVisibleAddressShipping","visiblePayment","setVisiblePayment","visibleConfirmOrder","setVisibleConfirmOrder","setLastStep","setRate","setOrigenStep","setOrigenStep2","setIdTypeAuction","dataSubTotal","setDataSubTotal","dataCount","setDataCount","setDataConsigna","dataInformation","setDataInformation","disabledBtnOrderPanel","setDisabledBtnOrderPanel","continueOrderPanel","select","allItem","deletePropertie","assignInformation","propertie","check","idElement","checkAll","totalItems","ReceivePay","PARAMS","successOrder","orderMessage","SummaryOrder","quantity","setQuantity","setSubtotal","delivery","setDelivery","setTotal","subtotal","deliveryPrice","OrderDetail","addressBilling","setAddressBilling","addressBillingTitle","setAddressBillingTitle","setLots","hideDelivery","setHideDelivery","firstImageLote","nameLote","descriptionLote","priceLote","OrderDetailGrid","setBilling","billingTitle","setBillingTitle","cardClass","setCardClass","setConsiga","ServiceGetOrderById","deliveryServiceName","consignation","typePayment","GuidEmpty","idDeliveryAddress","URLAddressShipping","idAddress","ServiceInfoAddressShippingByCustomer","addressShipping","idBillingClient","URLAddressBilling","ServiceInfoAddressBillingByCustomer","idLotList","watchLot","carouselMovil","findIndex","statusSubasta","container","scrollLeft","headerClass","borderClass","imagesList","titleStatus","STREAM_PLAYBACK_URL","streamPlayBackUrlQA","dataContent","updateCarousel","update","setUpdate","updateNotice","streamingText","annoucement","streamingFinish","connection","setConnection","adviceOffer","setAdviceOffer","bid","nextLot","setNextLot","waitingStreaming","setWaitingStreaming","waitingText","setWaitingText","lastLot","setLastLot","oldPrice","currentBid","setCurrentBid","SIGNALR","ServiceConnectionSignalr","URLMakeBids","ServiceMakeBids","URLGetCurrentBid","ServiceGetCurrentBid","URLBids","ServiceBidsStreaming","latestBid","startConnection","getCurrentBid","getBids","lastLotStatus","lastLotStatusSubasta","start","registerToAuctionLot","on","onReceiveNotification","onclose","onClose","onreconnecting","openToastNotification","onreconnected","connectionId","onReload","connect","HubConnectionBuilder","withUrl","withAutomaticReconnect","build","Array","isArray","actionCode","timestamp","bidAmount","userPallette","idUser","onBidCancelled","counterOfferMessage","newAmount","idBid","adviceWin","insertBid","bidId","newBids","clientId","paleta","oferta","ofertar","idPuja","bids","connectionStarted","jsonContent","confirmOffert","user","objMessage","Amount","jsonMessage","bidSuccess","sendBid","frameBorder","allowFullScreen","allow","Information","dataAwards","setDataAwards","setPages","maxReg","setMaxReg","setCurrentPage","CurrentLot","idCurrentLot","displayActualLot","displayAwards","imgLot","viewfavorite","URLAwards","ServiceAwardsStreaming","getAwards","Pagina","TamanioPagina","totalRecords","tabActive","querySelectorAll","anuncio","colorStatus","hidden","MenuStreaming","displayVideo","setDisplayActualLot","setDisplayAwards","position","Streaming","allCarousel","setAllCarousel","dataCurrentLot","setDataCurrentLot","lotToShow","setLotToShow","notice","setNotice","setCarouselMovil","URLAuction","ServiceCarouselStreaming","updateOffer","setUpdateOffer","setDisplayVideo","streamingToStart","streamingInPause","streamingInProcess","streamingEnded","setStreamingFinish","getCurrentLot","checkStatusStreaming","statusStreaming","haveCurrentLot","idClicked","numberOfLots","CardFormToken","IPAddress","setIPAddress","browser","setBrowser","sBrowser","sUsrAg","navigator","userAgent","indexOf","responsePayment","pendingChallenge","redirectUrl","creq","externalResourceUrl","extractedText","setDisabledActions","createPayment","disabledActions","cardPaymentBrickController","getFormData","cardFormData","customer_username","first_name","last_name","zip_code","name_on_card","card_number","expiration_year","expiration_month","cvv","browserUserAgent","ipAddress","URLTokenPayment","ServicePaymentTokenMercadoPago","renderPaymentForm","useMemo","initialization","customization","paymentMethods","maxInstallments","visual","hidePaymentButton","onReady","onError","erro","warrantyMessage","RegisterToOffer","setWarrantyMessage","getWarrantyMesage","warrantyID","warranty","URLWarrantyMessage","getDataWarranty","getBillPocketPayment","paymentBillPocketID","paymentBillPocket","getDataBillPocketPayment","parseFloat","WaitNextAuctions","WaitNextAuctionsDeclineClient","ReceivePayToken","external_transaction_id","transaction_id","status_code","error_code","error_message","setRedirect","validToken","setValidToken","setError","URLValidate","ServiceMePagoPaymentValidate","validateData","statusDetail","existRegisteredAuction","some","auctionId","ReceiveActnetPay","setExternalTransactionId","setTransactionId","urlCompleteOrder","showOrderMessage","ChallengePayToken","setId","setStatus","setStatusDetail","setCreq","setExternalResourceUrl","setRedirectUrl","complete","setComplete","receiveMessage","iframeName","iframeRootName","formName","root","existingIframe","removeChild","iframe","createElement","appendChild","idocument","contentWindow","myform","hiddenField","submit","alert","doChallenge","localCreq","localExternalResourceUrl","localId","localStatus","localStatusDetail","localRedirectUrl","App","reload","captchaSiteKeyId","endpointCaptchaSiteKey","exact","component","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode"],"mappings":"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","file":"static/js/main.23df0273.chunk.js","sourcesContent":["import React, { useReducer, useEffect, createContext } from \"react\";\r\nlet reducer = ( validate, newValidate ) => {\r\n return {...validate, ...newValidate}\r\n}\r\nconst intitialState = {\r\n valid: false,\r\n registeredAuctions: [],\r\n idAuction: \"\",\r\n nameAuction: \"\",\r\n dateAuction: \"\",\r\n palletAuction: \"\",\r\n idPallet: \"\",\r\n}\r\nconst localState = JSON.parse(localStorage.getItem(\"dataContent\"));\r\nexport const DataContext = createContext();\r\n\r\nexport const DataProvider = ({ children }) => {\r\n const [validate, setValidate] = useReducer(reducer,localState || intitialState);\r\n useEffect(() => {\r\n localStorage.setItem(\"dataContent\", JSON.stringify(validate));\r\n }, [validate]);\r\n return (\r\n <DataContext.Provider\r\n value={{\r\n validate,\r\n setValidate,\r\n }}\r\n >\r\n {children}\r\n </DataContext.Provider>\r\n );\r\n};\r\n","let URLServices = null;\r\n\r\nconst getUrls = () => {\r\n // Se asigna al sessionStorage desde App.js\r\n URLServices = sessionStorage.getItem('URLServices');\r\n if (URLServices) {\r\n return JSON.parse(URLServices);\r\n }\r\n return null;\r\n};\r\n\r\nexport const ServiceLogin = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Clients/login';\r\n if (URLs && URLs.clients) {\r\n let url = URLs.clients + PATH;\r\n return url;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceClients = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Clients/';\r\n if (URLs && URLs.clients) {\r\n return URLs.clients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceChangePassword = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Clients/ChangePassword';\r\n if (URLs && URLs.clients) {\r\n return URLs.clients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceContact = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Contact';\r\n if (URLs && URLs.customers) {\r\n let url = URLs.customers + PATH;\r\n return url;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceCarousel = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Auction/WebCatalog';\r\n if (URLs && URLs.catalog) {\r\n return URLs.catalog + PATH;\r\n }\r\n return '';\r\n};\r\nexport const ServiceAuctionCustomerStatus = (id) => {\r\n const URLs = getUrls();\r\n const PATH = `/Auction/AuctionCustomerStatus/${id}`;\r\n if (URLs && URLs.catalog) {\r\n return URLs.catalog + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceAnnouncement = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Announcement';\r\n if (URLs && URLs.announcement) {\r\n return URLs.announcement + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceRequestPassword = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Clients/RequestPasswordReset';\r\n if (URLs && URLs.clients) {\r\n return URLs.clients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceValidateTokenPasswordReset = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Clients/ValidateTokenPasswordReset';\r\n if (URLs && URLs.clients) {\r\n return URLs.clients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceResetPasswordReset = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Clients/ResetPassword';\r\n if (URLs && URLs.clients) {\r\n return URLs.clients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceConfirmEmailNewUser = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Clients/ConfirmEmailNewUser';\r\n if (URLs && URLs.clients) {\r\n return URLs.clients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetCustomerInfo = () => {\r\n const id = localStorage.getItem('id');\r\n const URLs = getUrls();\r\n const PATH = '/Clients/' + id;\r\n if (URLs && URLs.clients) {\r\n return URLs.clients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceCatalog = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Lot/GetbyFilters';\r\n if (URLs && URLs.catalog) {\r\n return URLs.catalog + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceLastCatalog = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Auction/LastCatalog';\r\n if (URLs && URLs.catalog) {\r\n return URLs.catalog + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetCustomerAuctions = () => {\r\n const id = localStorage.getItem('id');\r\n const URLs = getUrls();\r\n const PATH = '/Customer/Auctions/' + id;\r\n if (URLs && URLs.catalog) {\r\n return URLs.catalog + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetLastAuctions = () => {\r\n const id = localStorage.getItem('id');\r\n const URLs = getUrls();\r\n const PATH = '/Customer/LastAuctions/' + id;\r\n if (URLs && URLs.catalog) {\r\n return URLs.catalog + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceAuctionById = (id) => {\r\n const URLs = getUrls();\r\n const PATH = `/Auction/${id}`;\r\n if (URLs && URLs.catalog) {\r\n return URLs.catalog + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceFavoritesGetById = (idAuction) => {\r\n const URLs = getUrls();\r\n const PATH = `Favorites/Auction/${idAuction}`;\r\n if (URLs && URLs.auctionsClients) {\r\n return URLs.auctionsClients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceFavoritesDeletetById = (id) => {\r\n const URLs = getUrls();\r\n const PATH = `Favorites/Customer/${id}`;\r\n if (URLs && URLs.auctionsClients) {\r\n return URLs.auctionsClients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceFavoritesPost = () => {\r\n const URLs = getUrls();\r\n const PATH = `Favorites`;\r\n if (URLs && URLs.auctionsClients) {\r\n return URLs.auctionsClients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceValidationRegisterToken = (token, idAuction) => {\r\n const URLs = getUrls();\r\n const PATH = `/ActnetCustomerToken/${token}/${idAuction}`;\r\n if (URLs && URLs.clients) {\r\n return URLs.clients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServicePaymentToken = () => {\r\n const URLs = getUrls();\r\n const PATH = '/ActnetPayment';\r\n if (URLs && URLs.customers) {\r\n return URLs.customers + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServicePaymentTokenMercadoPago = () => {\r\n const URLs = getUrls();\r\n const PATH = '/MePagoPayment';\r\n if (URLs && URLs.customers) {\r\n return URLs.customers + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetAddressShippingByIdCustomer = (idCustomer) => {\r\n const URLs = getUrls();\r\n const PATH = `/CustomerInfoAddress/Customer/${idCustomer}`;\r\n if (URLs && URLs.customers) {\r\n return URLs.customers + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetGeneralParameterById = (id) => {\r\n const URLs = getUrls();\r\n const PATH = `/GeneralParameters/${id}`;\r\n if (URLs && URLs.customers) {\r\n return URLs.customers + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetAddressBillingByIdCustomer = (idCustomer) => {\r\n const URLs = getUrls();\r\n const PATH = `/CustomerInfoFactura/Customer/${idCustomer}`;\r\n if (URLs && URLs.customers) {\r\n return URLs.customers + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceCustomerInfoAddressShipping = () => {\r\n const URLs = getUrls();\r\n const PATH = `/CustomerInfoAddress/`;\r\n if (URLs && URLs.customers) {\r\n return URLs.customers + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceCustomerInfoAddressBilling = () => {\r\n const URLs = getUrls();\r\n const PATH = `/CustomerInfoFactura/`;\r\n if (URLs && URLs.customers) {\r\n return URLs.customers + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceCarouselStreaming = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Lot/GetCarouselbySp';\r\n if (URLs && URLs.streaming) {\r\n return URLs.streaming + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceBidsStreaming = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Lot/Bids';\r\n if (URLs && URLs.streaming) {\r\n return URLs.streaming + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetAwardsActive = (idCustomer) => {\r\n const URLs = getUrls();\r\n const PATH = '/Auctions/Awards/' + idCustomer;\r\n if (URLs && URLs.auctionsClients) {\r\n return URLs.auctionsClients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetAwardsHistory = (idCustomer) => {\r\n const URLs = getUrls();\r\n const PATH = '/Auctions/Awards/History/' + idCustomer;\r\n if (URLs && URLs.auctionsClients) {\r\n return URLs.auctionsClients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceAwardsStreaming = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Lot/Awards';\r\n if (URLs && URLs.streaming) {\r\n return URLs.streaming + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceInfoAddressShippingById = (id) => {\r\n const URLs = getUrls();\r\n const PATH = `/CustomerInfoAddress/${id}`;\r\n if (URLs && URLs.customers) {\r\n return URLs.customers + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceInfoAddressShippingByCustomer = (idAddress) => {\r\n const idCustomer = localStorage.getItem('id');\r\n const URLs = getUrls();\r\n const PATH = `/CustomerInfoAddress/Customer/${idCustomer}/${idAddress}`;\r\n if (URLs && URLs.customers) {\r\n return URLs.customers + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceInfoAddressBillingById = (id) => {\r\n const URLs = getUrls();\r\n const PATH = `/CustomerInfoFactura/${id}`;\r\n if (URLs && URLs.customers) {\r\n return URLs.customers + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceInfoAddressBillingByCustomer = (idAddress) => {\r\n const idCustomer = localStorage.getItem('id');\r\n const URLs = getUrls();\r\n const PATH = `/CustomerInfoFactura/Customer/${idCustomer}/${idAddress}`;\r\n if (URLs && URLs.customers) {\r\n return URLs.customers + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetByZipCode = (zipCode) => {\r\n const URLs = getUrls();\r\n const PATH = `/ZipCode/GetByZipCode/${zipCode}`;\r\n if (URLs && URLs.announcement) {\r\n return URLs.announcement + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetCountries = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Country/';\r\n if (URLs && URLs.announcement) {\r\n return URLs.announcement + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetCountriesISO = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Country/GetByIso';\r\n if (URLs && URLs.announcement) {\r\n return URLs.announcement + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetState = (idCountry) => {\r\n const URLs = getUrls();\r\n const PATH = `/State/Country/${idCountry}`;\r\n if (URLs && URLs.announcement) {\r\n return URLs.announcement + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetTown = (id) => {\r\n const URLs = getUrls();\r\n const PATH = `/Town/State/${id}`;\r\n if (URLs && URLs.announcement) {\r\n return URLs.announcement + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetCity = (idState, idTown) => {\r\n const URLs = getUrls();\r\n const PATH = `/City/Town?idState=${idState}&idTown=${idTown}`;\r\n if (URLs && URLs.announcement) {\r\n return URLs.announcement + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceConnectionSignalr = () => {\r\n const URLs = getUrls();\r\n const PATH = '/hubs/bidder';\r\n if (URLs && URLs.bid) {\r\n return URLs.bid + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceMakeBids = () => {\r\n const URLs = getUrls();\r\n const PATH = '/bid/makebid';\r\n if (URLs && URLs.bid) {\r\n return URLs.bid + PATH;\r\n }\r\n return '';\r\n};\r\nexport const ServiceGetCurrentBid = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Bid/GetCurrentBid';\r\n if (URLs && URLs.bid) {\r\n return URLs.bid + PATH;\r\n }\r\n return '';\r\n};\r\nexport const ServiceGetNextLotOffer = (idAuction, idLot, mont, elements) => {\r\n const URLs = getUrls();\r\n const PATH = `/LotOffert/GetNextLotOffert/${idAuction}/${idLot}/${mont}/${elements}`;\r\n if (URLs && URLs.catalog) {\r\n return URLs.catalog + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServicePostMaxOfert = () => {\r\n const URLs = getUrls();\r\n const PATH = `/MaxOfert`;\r\n if (URLs && URLs.catalog) {\r\n return URLs.catalog + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceQuotationMail = () => {\r\n const URLs = getUrls();\r\n const PATH = 'Quotation/Quotation';\r\n if (URLs && URLs.notification) {\r\n return URLs.notification + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGenericParameters = (idParameter) => {\r\n const URLs = getUrls();\r\n const PATH = `/GenericParameter/${idParameter}`;\r\n if (URLs && URLs.announcement) {\r\n return URLs.announcement + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceRefreshToken = (refreshToken) => {\r\n const URLs = getUrls();\r\n const PATH = '/Clients/RefreshToken/' + refreshToken;\r\n if (URLs && URLs.clients) {\r\n return URLs.clients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceCheckOnToJoinStreming = () => {\r\n const URLs = getUrls();\r\n const PATH = '/AuctionClient/CheckOnToJoinStreming/';\r\n if (URLs && URLs.catalog) {\r\n return URLs.catalog + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetOrdersByUser = () => {\r\n const id = localStorage.getItem('id');\r\n const URLs = getUrls();\r\n const PATH = '/Checkout/GetOrdersByUser?idUser=' + id;\r\n if (URLs && URLs.checkout) {\r\n return URLs.checkout + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceAddOrder = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Checkout/AddOrder';\r\n if (URLs && URLs.checkout) {\r\n return URLs.checkout + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceCompleteOrder = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Checkout/CompleteOrder';\r\n if (URLs && URLs.checkout) {\r\n return URLs.checkout + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceClientData = () => {\r\n const idCustomer = localStorage.getItem('id');\r\n const URLs = getUrls();\r\n const PATH = '/Clients/DataClient/' + idCustomer;\r\n if (URLs && URLs.clients) {\r\n return URLs.clients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceUpdateClientData = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Clients/DataComplementaryClient';\r\n if (URLs && URLs.clients) {\r\n return URLs.clients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceUpdateClientGeneralData = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Clients/DataGeneralClient';\r\n if (URLs && URLs.clients) {\r\n return URLs.clients + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceStatusClient = () => {\r\n const URLs = getUrls();\r\n const PATH = '/ClientStatus/GetAllClientStatus';\r\n if (URLs && URLs.announcement) {\r\n return URLs.announcement + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceNationality = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Nationality';\r\n if (URLs && URLs.announcement) {\r\n return URLs.announcement + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceEconomicActivity = () => {\r\n const URLs = getUrls();\r\n const PATH = '/EconomicActivity';\r\n if (URLs && URLs.announcement) {\r\n return URLs.announcement + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetOrderById = (idOrder) => {\r\n const URLs = getUrls();\r\n const PATH = '/Checkout/GetOrderById?orderId=' + idOrder;\r\n if (URLs && URLs.checkout) {\r\n return URLs.checkout + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceAddDirectSale = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Checkout/AddDirectSale';\r\n if (URLs && URLs.checkout) {\r\n return URLs.checkout + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServicePaymentRetry = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Checkout/PaymentRetry';\r\n if (URLs && URLs.checkout) {\r\n return URLs.checkout + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceActnetPaymentValidate = () => {\r\n const URLs = getUrls();\r\n const PATH = '/ActnetPayment/validate';\r\n if (URLs && URLs.customers) {\r\n return URLs.customers + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceMePagoPaymentValidate = () => {\r\n const URLs = getUrls();\r\n const PATH = '/MePagoPayment/validate';\r\n if (URLs && URLs.customers) {\r\n return URLs.customers + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetListBids = () => {\r\n const URLs = getUrls();\r\n const IdClient = localStorage.getItem('id');\r\n const PATH = '/MaxOfert/GetListBids/'+IdClient;\r\n if (URLs && URLs.catalog) {\r\n return URLs.catalog + PATH;\r\n }\r\n return '';\r\n};\r\n\r\nexport const ServiceGetListBidsDetails = (IdAuction) => {\r\n const URLs = getUrls();\r\n const IdClient = localStorage.getItem('id');\r\n const PATH = '/MaxOfert/GetListBidsDetails/' + IdClient + '/' + IdAuction;\r\n if (URLs && URLs.catalog) {\r\n return URLs.catalog + PATH;\r\n }\r\n return '';\r\n}\r\n\r\nexport const ServiceLotCatalogByAuctionFilter = () => {\r\n const URLs = getUrls();\r\n const PATH = '/Lot/LotCatalogByAuctionFilter';\r\n if (URLs && URLs.catalog) {\r\n return URLs.catalog + PATH;\r\n }\r\n return '';\r\n}\r\n\r\nexport const ServiceAllianceCompany = () => {\r\n const URLs = getUrls();\r\n const PATH = '/AllianceCompany';\r\n if (URLs && URLs.announcement) {\r\n return URLs.announcement + PATH;\r\n }\r\n return '';\r\n};\r\n","export const getConfig = async (file) => {\r\n const url = '/resources/Config/' + file;\r\n const data = await fetch(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n },\r\n })\r\n .then((response) => {\r\n return response.json();\r\n })\r\n .then((resp) => {\r\n return resp;\r\n });\r\n return data;\r\n};\r\n","let Constants = null;\r\n\r\nconst getConstants = () => {\r\n // Se asigna al sessionStorage desde el Header.jsx\r\n Constants = sessionStorage.getItem(\"constants\");\r\n if (Constants) {\r\n return JSON.parse(Constants);\r\n }\r\n return null;\r\n};\r\n\r\nexport const getImgDefault = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.imgDefault) {\r\n return Constants.imgDefault;\r\n }\r\n return \"/resources/imagenUnavailable.jpg\";\r\n};\r\n\r\nexport const getIdStreaming = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.idStreaming) {\r\n return Constants.idStreaming;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getExecution = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.execution) {\r\n return Constants.execution;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getIdGoldenMinutes = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.idGoldenMinutes) {\r\n return Constants.idGoldenMinutes;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getIdPresential = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.idPresential) {\r\n return Constants.idPresential;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getScheduled = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.scheduled) {\r\n return Constants.scheduled;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getDirectSale = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.directSale) {\r\n return Constants.directSale;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getPartialClosure = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.partialClosure) {\r\n return Constants.partialClosure;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getPartialTotal = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.partialTotal) {\r\n return Constants.partialTotal;\r\n }\r\n return \"\";\r\n};\r\n\r\n/*export const getAddresShipping = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.addresShipping) {\r\n return Constants.addresShipping;\r\n }\r\n return '';\r\n};\r\n\r\nexport const getAddresBilling = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.addresBilling) {\r\n return Constants.addresBilling;\r\n }\r\n return '';\r\n};*/\r\n\r\nexport const getCarouselTime = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.carouselTime) {\r\n return Constants.carouselTime;\r\n }\r\n return \"\";\r\n};\r\nexport const getStreamingToStart = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.streamingToStart) {\r\n return Constants.streamingToStart;\r\n }\r\n return \"\";\r\n};\r\nexport const getStreamingInPause = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.streamingInPause) {\r\n return Constants.streamingInPause;\r\n }\r\n return \"\";\r\n};\r\nexport const getStreamingInProcess = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.streamingInProcess) {\r\n return Constants.streamingInProcess;\r\n }\r\n return \"\";\r\n};\r\nexport const getStreamingEnded = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.streamingEnded) {\r\n return Constants.streamingEnded;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getLimitShippingInvoice = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.limitShippingInvoice) {\r\n return Constants.limitShippingInvoice;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getLimitShipping = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.limitShipping) {\r\n return Constants.limitShipping;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getIdSystem = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.idSystem) {\r\n return Constants.idSystem;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getReferenceObject = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.referenceObject) {\r\n return Constants.referenceObject;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getZipCodeOrigenStreaming = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.zipCodeOrigenStreaming) {\r\n return Constants.zipCodeOrigenStreaming;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getZipCodeOrigenMO = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.zipCodeOrigenMO) {\r\n return Constants.zipCodeOrigenMO;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getZipCodeOrigenPresential = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.zipCodeOrigenPresential) {\r\n return Constants.zipCodeOrigenPresential;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getAvailableLot = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.available) {\r\n return Constants.available;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getRetiredLot = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.retired) {\r\n return Constants.retired;\r\n }\r\n return \"\";\r\n};\r\nexport const getAwardLot = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.award) {\r\n return Constants.award;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getPaidLot = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.paid) {\r\n return Constants.paid;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getPenaltyDays = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.penaltyDays) {\r\n return Constants.penaltyDays;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getPenaltyDaysDefault = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.penaltyDaysDefault) {\r\n return Constants.penaltyDaysDefault;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getDeliveryMail = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.deliveryMail) {\r\n return Constants.deliveryMail;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getDeliveryOffice = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.deliveryOffice) {\r\n return Constants.deliveryOffice;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getGuidEmpty = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.guidEmpty) {\r\n return Constants.guidEmpty;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getLotPaymentLimit = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.lotPaymentLimit) {\r\n return Constants.lotPaymentLimit;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getLotPaymentLimitDefault = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.lotPaymentLimitDefault) {\r\n return Constants.lotPaymentLimitDefault;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getStreamPlayBackUrlQA = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.streamPlayBackUrlQA) {\r\n return Constants.streamPlayBackUrlQA;\r\n }\r\n return \"\";\r\n};\r\nexport const getStreamPlayBackUrlUAT = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.streamPlayBackUrlUAT) {\r\n return Constants.streamPlayBackUrlUAT;\r\n }\r\n return \"\";\r\n};\r\nexport const getUserRejectedStatus = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.userRejected) {\r\n return Constants.userRejected;\r\n }\r\n return \"\";\r\n};\r\nexport const getOrderPendingStatus = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.orderPending) {\r\n return Constants.orderPending;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getOrderPendingPaymentStatus = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.orderPendingPayment) {\r\n return Constants.orderPendingPayment;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getOrderCompletedStatus = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.orderCompletedStatus) {\r\n return Constants.orderCompletedStatus;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getnoteCancelled = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.noteCancelled) {\r\n return Constants.noteCancelled;\r\n }\r\n return \"\";\r\n};\r\nexport const getBillPocketID = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.billPocket) {\r\n return Constants.billPocket;\r\n }\r\n return \"\";\r\n};\r\nexport const getactnetID = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.actnet) {\r\n return Constants.actnet;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getMercadoPagoId = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants[\"mercadoPago\"]) {\r\n return Constants[\"mercadoPago\"];\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getActivateMessagingID = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.activateMessaging) {\r\n return Constants.activateMessaging;\r\n }\r\n return \"\";\r\n};\r\nexport const getDeliveryLimitID = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.deliveryLimit) {\r\n return Constants.deliveryLimit;\r\n }\r\n return \"\";\r\n};\r\nexport const getWarrantyID = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.warranty) {\r\n return Constants.warranty;\r\n }\r\n return \"\";\r\n};\r\nexport const getPaymentBillPocketID = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.paymentBillPocket) {\r\n return Constants.paymentBillPocket;\r\n }\r\n return \"\";\r\n};\r\nexport const getPriceFilterID = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.priceFilterID) {\r\n return Constants.priceFilterID;\r\n }\r\n return \"\";\r\n};\r\nexport const getBillingUrl = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.billing) {\r\n return Constants.billing;\r\n }\r\n return \"\";\r\n};\r\nexport const getDiamondUrl = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.diamond) {\r\n return Constants.diamond;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getDisableCheckoutMessageID = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.idDisableCheckoutMessage) {\r\n return Constants.idDisableCheckoutMessage;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getMessageInsuranceID = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants.messageInsuranceID) {\r\n return Constants.messageInsuranceID;\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getMercadoPagoPublicKey = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants[\"idMercadoPagoPublicKey\"]) {\r\n return Constants[\"idMercadoPagoPublicKey\"];\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getCaptchaSiteKeyId = () => {\r\n Constants = getConstants();\r\n if (Constants && Constants[\"captchaSiteKeyId\"]) {\r\n return Constants[\"captchaSiteKeyId\"];\r\n }\r\n return \"\";\r\n};\r\n","/* eslint-disable no-useless-escape */\r\n/* eslint-disable no-undef */\r\nimport { getConfig } from '../../helpers/getConfig';\r\nimport axios from 'axios';\r\nimport { getMercadoPagoPublicKey } from '../../helpers/getConstants'\r\nimport { ServiceGenericParameters } from '../../helpers/getURL'\r\nimport { GET } from '../../helpers/APIServices'\r\nimport { initMercadoPago } from '@mercadopago/sdk-react'\r\n\r\nexport const CloseModal = (elementID) => {\r\n const modal = document.getElementById(elementID);\r\n const modalBootstrap = bootstrap.Modal.getInstance(modal);\r\n if (modalBootstrap) {\r\n modalBootstrap.hide();\r\n }\r\n const backdrops = document.getElementsByClassName('modal-backdrop fade').length - 1;\r\n for (let i = 0; i < backdrops; i++) {\r\n document.getElementsByClassName('modal-backdrop fade')[i].remove();\r\n }\r\n};\r\n\r\nexport const OpenModal = (elementID) => {\r\n const modal = document.getElementById(elementID);\r\n const modalBootstrap = new bootstrap.Modal(modal);\r\n modalBootstrap.toggle();\r\n};\r\n\r\nexport const CloseAllModal = () => {\r\n const modals = document.getElementsByClassName('modal show');\r\n for (let i = 0; i < modals.length; i++) {\r\n let modalBootstrap = bootstrap.Modal.getInstance(modals[i]);\r\n if (modalBootstrap) {\r\n modalBootstrap.hide();\r\n }\r\n }\r\n const backdrops = document.getElementsByClassName('modal-backdrop fade').length - 1;\r\n for (let i = 0; i < backdrops; i++) {\r\n document.getElementsByClassName('modal-backdrop fade')[i].remove();\r\n }\r\n};\r\n\r\nexport const OpenMessage = (type, messageService, contact = false, messageSubText = null) => {\r\n let dataMessage = getConfig('messages.json').then((data) => {\r\n switch (type) {\r\n case 'success':\r\n return data.success;\r\n case 'warning':\r\n return data.warning;\r\n case 'error':\r\n return data.error;\r\n case 'confirm':\r\n return data.confirm;\r\n default:\r\n return null;\r\n }\r\n });\r\n\r\n dataMessage.then((data) => {\r\n const { message, icon, text, text2, button } = data;\r\n let messageType = 'message-' + type + ' ' + icon;\r\n const arrIcon = messageType.split(' ');\r\n document.getElementById('headerTitle').innerHTML = message;\r\n switch (type) {\r\n case 'success':\r\n document\r\n .getElementById('messageType')\r\n .classList.remove('message-error', 'fas', 'fa-times', 'message-warning', 'fa-exclamation-circle', 'message-confirm');\r\n document.getElementById('buttonClose').classList.remove('btn-outline-warning', 'btn-outline-danger', 'btn-outline-dark');\r\n break;\r\n case 'error':\r\n document\r\n .getElementById('messageType')\r\n .classList.remove('message-success', 'fas', 'fa-check-circle', 'message-warning', 'fa-exclamation-circle', 'message-confirm');\r\n document.getElementById('buttonClose').classList.remove('btn-outline-dark', 'btn-outline-warning', 'btn-outline-success');\r\n break;\r\n case 'warning':\r\n document\r\n .getElementById('messageType')\r\n .classList.remove('message-success', 'fas', 'fa-check-circle', 'message-warning', 'message-error', 'fa-times', 'message-confirm');\r\n document.getElementById('buttonClose').classList.add('btn-outline-dark', 'btn-outline-success', 'btn-outline-error');\r\n break;\r\n case 'confirm':\r\n document\r\n .getElementById('messageType')\r\n .classList.remove('message-success', 'fas', 'fa-check-circle', 'message-warning', 'message-error', 'fa-times');\r\n document.getElementById('buttonClose').classList.add('btn-outline-warning', 'btn-outline-success', 'btn-outline-error');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n arrIcon.forEach((element) => {\r\n document.getElementById('messageType').classList.add(element);\r\n });\r\n\r\n document.getElementById('messageText').innerHTML = messageService ? messageService : text;\r\n if (messageSubText) {\r\n document.getElementById('messageSubText').innerHTML = messageSubText;\r\n }\r\n document.getElementById('messageContact').innerHTML = contact ? 'subastas@montepio.org.mx' : '';\r\n\r\n const messageText2 = document.getElementById('messageText2');\r\n text2 ? (messageText2.innerHTML = text2) : (messageText2.style = 'display:none');\r\n\r\n document.getElementById('buttonClose').classList.add(button);\r\n\r\n const modal = new bootstrap.Modal(document.getElementById('modalMessage'), {});\r\n modal.toggle();\r\n });\r\n};\r\n\r\nexport const OpenStreamingRegisterMessage = () => {\r\n const modal = new bootstrap.Modal(document.getElementById('modalStreamingReisterMesage'), {});\r\n modal.toggle();\r\n};\r\n\r\nexport const OpenOfferSuccess = (message, redirectHome = true) => {\r\n document.getElementById('textMessageSection').innerHTML = message;\r\n document.getElementById('redirectHome').value = redirectHome;\r\n const modal = new bootstrap.Modal(document.getElementById('modalOfferSuccess'), {});\r\n modal.toggle();\r\n};\r\nexport const OpenCloseStreaming = () => {\r\n const modal = new bootstrap.Modal(document.getElementById('modalCloseStreaming'), {});\r\n modal.toggle();\r\n};\r\nexport const OpenWaitNextAuction = () => {\r\n const modal = new bootstrap.Modal(document.getElementById('modalWaitNextAuction'), {});\r\n modal.toggle();\r\n};\r\nexport const OpenDeclineClient = () => {\r\n const modal = new bootstrap.Modal(document.getElementById('modalDeclineClient'), {});\r\n modal.toggle();\r\n};\r\nexport const verifyFieldsRequerid = (elements) => {\r\n let error = false;\r\n elements.forEach((id) => {\r\n let element = document.getElementById(id);\r\n if (!element.value.trim()) {\r\n error = true;\r\n element.classList.add('is-invalid');\r\n } else {\r\n element.classList.remove('is-invalid');\r\n }\r\n });\r\n if (error) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nexport const validEmail = (email) => {\r\n const regex = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\r\n const valid = regex.test(email);\r\n if (!valid) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\n//FORMATO: dd/mm/aaaa\r\nexport const validDate = (date) => {\r\n const regex =\r\n /^(?:(?:(?:0?[1-9]|1\\d|2[0-8])[/](?:0?[1-9]|1[0-2])|(?:29|30)[/](?:0?[13-9]|1[0-2])|31[/](?:0?[13578]|1[02]))[/](?:0{2,3}[1-9]|0{1,2}[1-9]\\d|0?[1-9]\\d{2}|[1-9]\\d{3})|29[/]0?2[/](?:\\d{1,2}(?:0[48]|[2468][048]|[13579][26])|(?:0?[48]|[13579][26]|[2468][048])00))$/;\r\n const valid = regex.test(date);\r\n if (!valid) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nexport const restoreInputs = (inputs) => {\r\n inputs.forEach((id) => {\r\n let element = document.getElementById(id);\r\n element.classList.remove('active');\r\n element.classList.remove('is-invalid');\r\n });\r\n};\r\n\r\nexport const validRFC = (input, esFiscoMoral) => {\r\n let rfc = input.value;\r\n if (rfc === '') {\r\n OpenMessage('warning', 'El RFC no tiene un formato válido');\r\n return false;\r\n }\r\n\r\n input.classList.remove('is-invalid');\r\n rfc = rfc.replace(/\\-/g, '');\r\n\r\n if (esFiscoMoral && rfc.match(/^([A-Z]{3}[0-9]{6}[A-Z0-9]{3})$/i)) {\r\n return true;\r\n } else if (!esFiscoMoral && rfc.match(/^([A-Z]{4}[0-9]{6}[A-Z0-9]{3})$/i)) {\r\n return true;\r\n }\r\n\r\n input.classList.add('is-invalid');\r\n\r\n OpenMessage('warning', 'El RFC no tiene un formato válido');\r\n return false;\r\n};\r\n\r\nexport const validPassword = (value) => {\r\n let msg = '';\r\n if (value.length < 8) {\r\n msg = 'La contraseña debe contar con 8 caracteres como mÃnimo';\r\n } else if (value.search(/[A-Z]/) < 0) {\r\n msg = 'La contraseña debe de tener al menos una mayúscula';\r\n } else if (value.search(/[a-z]/) < 0) {\r\n msg = 'La contraseña debe de tener al menos una minúscula';\r\n } else if (value.search(/[0-9]/) < 0) {\r\n msg = 'La contraseña debe de tener al menos un dÃgito del 0 al 9';\r\n } else if (value.search(/[`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?¿~]/) < 0) {\r\n msg = 'La contraseña debe de tener al menos un caracter especial';\r\n }\r\n return msg;\r\n};\r\n\r\nexport const validSession = () => {\r\n const token = localStorage.getItem('token');\r\n if (token) {\r\n setSession(true, token);\r\n return true;\r\n }\r\n setSession(false, '');\r\n return false;\r\n};\r\n\r\nexport const setSession = (open, data) => {\r\n let items = document.getElementsByClassName('container__users--item');\r\n let login = document.getElementsByClassName('container__users--login');\r\n let loginMobile = document.getElementsByClassName('loginMobile');\r\n let itemsMobile = document.getElementsByClassName('loginMobile--items');\r\n let userName = document.getElementById('userName');\r\n let userNameMobile = document.getElementById('userName2');\r\n let add = '';\r\n let remove = '';\r\n\r\n if (open) {\r\n if (data && data.token) {\r\n localStorage.setItem('id', data.id);\r\n localStorage.setItem('token', data.token); //Se hace una actualizacion en APIServices\r\n localStorage.setItem('userName', data.name);\r\n localStorage.setItem('auctions', data.auctions);\r\n localStorage.setItem('refreshToken', data.refreshToken); //Se hace una actualizacion en APIServices\r\n localStorage.setItem('expiration', data.expiration); //Se hace una actualizacion en APIServices\r\n localStorage.setItem('expirationRefresh', data.expirationRefresh);\r\n //tambien se asigna en ReceivePayToken y RegisterToOffer\r\n localStorage.setItem('IdPalleteVIP', (data.idPalleteVIP !== null && data.idPalleteVIP !== undefined) ? data.idPalleteVIP: '' );\r\n }\r\n if (userName) {\r\n userName.innerHTML = localStorage.getItem('userName');\r\n userNameMobile.innerHTML = localStorage.getItem('userName');\r\n }\r\n add = 'hide';\r\n remove = 'show';\r\n\r\n const mercadoPagoPublicKey = localStorage.getItem('MercadoPagoPublicKey')\r\n if (!mercadoPagoPublicKey) {\r\n const idMercadoPagoPublicKey = getMercadoPagoPublicKey();\r\n const endpointMercadoPagoPublicKey = ServiceGenericParameters(idMercadoPagoPublicKey);\r\n GET(endpointMercadoPagoPublicKey).then((data) => {\r\n if (data && data.value) {\r\n localStorage.setItem('MercadoPagoPublicKey', data.value);\r\n initMercadoPago(data.value, {locale: \"es-MX\"});\r\n }\r\n });\r\n }\r\n else {\r\n initMercadoPago(mercadoPagoPublicKey, {locale: \"es-MX\"});\r\n }\r\n\r\n } else {\r\n localStorage.clear();\r\n if (userName) {\r\n userName.innerHTML = '';\r\n userNameMobile.innerHTML = '';\r\n }\r\n add = 'show';\r\n remove = 'hide';\r\n }\r\n items.forEach((element) => {\r\n element.classList.add(add);\r\n element.classList.remove(remove);\r\n });\r\n\r\n login.forEach((element) => {\r\n element.classList.add(add === 'show' ? 'hide' : 'show');\r\n element.classList.remove(remove === 'hide' ? 'show' : 'hide');\r\n });\r\n\r\n loginMobile.forEach((element) => {\r\n element.classList.add(add);\r\n element.classList.remove(remove);\r\n });\r\n\r\n itemsMobile.forEach((element) => {\r\n element.classList.add(add === 'show' ? 'hide' : 'show');\r\n element.classList.remove(remove === 'hide' ? 'show' : 'hide');\r\n });\r\n};\r\n\r\n//Establece el minimo, maximo de un campo de tipo fecha\r\nexport const setMinMaxDate = (id) => {\r\n let element = document.getElementById(id);\r\n if (element) {\r\n const currentDate = new Date();\r\n let currentMonth = currentDate.getMonth();\r\n if (currentMonth < 10) {\r\n currentMonth = '0' + currentDate.getMonth();\r\n }\r\n let currentDay = currentDate.getDate();\r\n if (currentDay < 10) {\r\n currentDay = '0' + currentDate.getDate();\r\n }\r\n const dateMax = currentDate.getFullYear() - 18 + '-' + currentMonth + '-' + currentDay;\r\n element.setAttribute('min', currentDate.getFullYear() - 100 + '-01-01');\r\n element.setAttribute('max', dateMax);\r\n return dateMax;\r\n }\r\n return '';\r\n};\r\n\r\nexport const validMinMaxDate = (id) => {\r\n let element = document.getElementById(id);\r\n if (element) {\r\n let limitDate = new Date();\r\n limitDate.setFullYear(limitDate.getFullYear() - 18);\r\n const date = new Date(element.value);\r\n const minDate = new Date(element.min);\r\n const maxDate = new Date(limitDate);\r\n if (date >= minDate && date <= maxDate) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n\r\nexport const onlyText = (event) => {\r\n let element = document.getElementById(event.target.id);\r\n if (element) {\r\n element.value = element.value.replace(/[^a-zA-Z\\s\\u00f1\\u00d1]/g, '').replace(/(\\..*)\\./g, '$1');\r\n }\r\n};\r\n\r\nexport const onlyMail = (event) => {\r\n let element = document.getElementById(event.target.id);\r\n if (element) {\r\n element.value = element.value.replace(/[^a-zA-Z0-9@_.-]/g, '');\r\n }\r\n};\r\n\r\nexport const onlyNumber = (event) => {\r\n let element = document.getElementById(event.target.id);\r\n if (element) {\r\n element.value = element.value.replace(/[^0-9]/g, '');\r\n }\r\n};\r\n//texto, numeros, espacio en blanco y guion medio\r\nexport const onlyTextNumber = (event) => {\r\n let element = document.getElementById(event.target.id);\r\n if (element) {\r\n element.value = element.value.replace(/[^a-zA-Z0-9\\u00f1\\u00d1\\s.-]/g, '');\r\n }\r\n};\r\n\r\n//texto y numeros\r\nexport const onlyTextNumber2 = (event) => {\r\n let element = document.getElementById(event.target.id);\r\n if (element) {\r\n element.value = element.value.replace(/[^a-zA-Z0-9\\u00f1\\u00d1]/g, '');\r\n }\r\n};\r\n\r\n//Entrada: 2021-06-01T03:51:00\r\n//Salida: 01 junio 2021 | 03:51 AM\r\nexport const convertToDate = (value) => {\r\n const monthNames = [\r\n 'Enero',\r\n 'Febrero',\r\n 'Marzo',\r\n 'Abril',\r\n 'Mayo',\r\n 'Junio',\r\n 'Julio',\r\n 'Agosto',\r\n 'Septiembre',\r\n 'Octubre',\r\n 'Noviembre',\r\n 'Diciembre',\r\n ];\r\n const d = new Date(value);\r\n let hours = d.getHours();\r\n let minutes = d.getMinutes();\r\n let meridiem = 'A.M.';\r\n if (hours >= 12) {\r\n meridiem = 'P.M.';\r\n }\r\n if (hours > 12) {\r\n hours -= 12;\r\n }\r\n if (hours === 0) {\r\n hours = 1;\r\n }\r\n if (hours <= 9) {\r\n hours = '0' + hours;\r\n }\r\n if (minutes <= 9) {\r\n minutes = '0' + minutes;\r\n }\r\n return d.getDate() + ' ' + monthNames[d.getMonth()] + ' ' + d.getFullYear() + ' | ' + hours + ':' + minutes + ' ' + meridiem;\r\n};\r\n\r\n//Entrada: 2021-06-01T03:51:00\r\n//Salida: 01 junio 2021 | 03:51 AM\r\nexport const convertToDatePenaltyDay = (value, days) => {\r\n const monthNames = [\r\n 'Enero',\r\n 'Febrero',\r\n 'Marzo',\r\n 'Abril',\r\n 'Mayo',\r\n 'Junio',\r\n 'Julio',\r\n 'Agosto',\r\n 'Septiembre',\r\n 'Octubre',\r\n 'Noviembre',\r\n 'Diciembre',\r\n ];\r\n let d = new Date(value);\r\n d.setDate(d.getDate() + days);\r\n let hours = d.getHours();\r\n let minutes = d.getMinutes();\r\n let meridiem = 'A.M.';\r\n if (hours >= 12) {\r\n meridiem = 'P.M.';\r\n }\r\n if (hours > 12) {\r\n hours -= 12;\r\n }\r\n if (hours === 0) {\r\n hours = 1;\r\n }\r\n if (hours <= 9) {\r\n hours = '0' + hours;\r\n }\r\n if (minutes <= 9) {\r\n minutes = '0' + minutes;\r\n }\r\n return d.getDate() + ' ' + monthNames[d.getMonth()] + ' ' + d.getFullYear() + ' | ' + hours + ':' + minutes + ' ' + meridiem;\r\n};\r\n\r\n//Entrada: 2021-06-01T03:51:00\r\n//Salida: 01/06/2021\r\nexport const convertToDateWithTime = (value) => {\r\n const d = new Date(value);\r\n let month = d.getMonth() + 1;\r\n if (month < 10) {\r\n month = '0' + month;\r\n }\r\n return d.getDate() + '/' + month + '/' + d.getFullYear();\r\n};\r\n\r\n//Entrada: 2021-06-01T03:51:00\r\n//Salida: 2021-06-01\r\nexport const convertToDateFormatEnglish = (value) => {\r\n const d = new Date(value);\r\n let month = d.getMonth() + 1;\r\n let day = d.getDate();\r\n if (month < 10) {\r\n month = '0' + month;\r\n }\r\n if (day < 10) {\r\n day = '0' + day;\r\n }\r\n return d.getFullYear() + '-' + month + '-' + day;\r\n};\r\n\r\n//Entrada: 2021-06-01T03:51:00\r\n//Salida: 03:51:00 AM\r\nexport const convertToTime = (value) => {\r\n const d = new Date(value);\r\n let hours = d.getHours();\r\n let minutes = d.getMinutes();\r\n let seconds = d.getSeconds();\r\n let meridiem = 'A.M.';\r\n if (hours >= 12) {\r\n meridiem = 'P.M.';\r\n }\r\n if (hours <= 9) {\r\n hours = '0' + hours;\r\n }\r\n if (minutes <= 9) {\r\n minutes = '0' + minutes;\r\n }\r\n if (seconds <= 9) {\r\n seconds = '0' + seconds;\r\n }\r\n return hours + ':' + minutes + ':' + seconds + ' ' + meridiem;\r\n};\r\n\r\nexport const cancelHref = (event) => {\r\n event.preventDefault();\r\n return false;\r\n};\r\n\r\nexport const changePasswordText = (id, event) => {\r\n let element = document.getElementById(id);\r\n if (element) {\r\n const type = element.getAttribute('type') === 'password' ? 'text' : 'password';\r\n event.target.attributes.class.nodeValue = type === 'password' ? 'fas fa-eye-slash' : 'fas fa-eye';\r\n element.setAttribute('type', type);\r\n }\r\n};\r\n\r\nexport const setAttributePassword = (id) => {\r\n let element = document.getElementById(id);\r\n if (element) {\r\n element.setAttribute('type', 'password');\r\n }\r\n};\r\n\r\nexport const formatCurrency = (value) => {\r\n const options = { style: 'currency', currency: 'USD' };\r\n const numberFormat = new Intl.NumberFormat('en-US', options);\r\n if (isNaN(value)) {\r\n value = 0;\r\n }\r\n return numberFormat.format(value);\r\n};\r\n\r\nexport const capitalize = (value) => {\r\n if (!value) {\r\n return '';\r\n }\r\n let string = '';\r\n let letter = value.split(' ');\r\n for (let i = 0; i < letter.length; i++) {\r\n string += letter[i].charAt(0).toUpperCase() + letter[i].slice(1).toLowerCase() + ' ';\r\n }\r\n return string.trim();\r\n};\r\n\r\nexport const setCart = (lote) => {\r\n let cart = JSON.parse(localStorage.getItem('cart'));\r\n if (!cart) {\r\n cart = [];\r\n }\r\n if (\r\n cart.filter((item) => {\r\n return item.IdLot === lote.IdLot;\r\n }).length === 0\r\n )\r\n localStorage.setItem('cart', JSON.stringify([...cart, lote]));\r\n};\r\nexport const pullCart = (lote) => {\r\n let cart = JSON.parse(localStorage.getItem('cart'));\r\n if (!cart) {\r\n cart = [];\r\n }\r\n cart = cart.filter((item) => {\r\n return item.IdLot !== lote.IdLot;\r\n });\r\n localStorage.setItem('cart', JSON.stringify(cart));\r\n};\r\n\r\nexport const getCart = () => {\r\n let cart = JSON.parse(localStorage.getItem('cart'));\r\n if (!cart) {\r\n cart = [];\r\n }\r\n return cart;\r\n};\r\n\r\nexport const resetRadios = (name) => {\r\n let element = document.getElementsByName(name);\r\n if (element && element.length > 0) {\r\n for (let i = 0; i < element.length; i++) {\r\n element[i].checked = false;\r\n }\r\n }\r\n};\r\n\r\nexport const closeMenuMobile = () => {\r\n const menu = document.getElementById('menu');\r\n const open = menu.classList.contains('show');\r\n if (open) {\r\n const element = document.getElementById('navbarMenu');\r\n if (element) {\r\n element.click();\r\n }\r\n }\r\n};\r\n\r\n//Solo valida un formato general, sin digito verificador\r\nexport const validCURP = (inputCURP) => {\r\n let curp = inputCURP.value;\r\n if (curp === '') {\r\n OpenMessage('warning', 'El CURP no tiene un formato válido');\r\n return false;\r\n }\r\n\r\n inputCURP.classList.remove('is-invalid');\r\n curp = curp.replace(/\\-/g, '');\r\n\r\n const expReg =\r\n /^([A-Z][AEIOUX][A-Z]{2}\\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\\d|3[01])[HM](?:AS|B[CS]|C[CLMSH]|D[FG]|G[TR]|HG|JC|M[CNS]|N[ETL]|OC|PL|Q[TR]|S[PLR]|T[CSL]|VZ|YN|ZS)[B-DF-HJ-NP-TV-Z]{3}[A-Z\\d])(\\d)$/;\r\n const valid = curp.match(expReg);\r\n\r\n if (!valid) {\r\n inputCURP.classList.add('is-invalid');\r\n OpenMessage('warning', 'El CURP no tiene un formato válido');\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\n//Verifica la fecha de expiracion del token\r\n//se comenta la funcion, se esta viendo otra forma de validar el TOKEN\r\n/*export const validDateExpire = () => {\r\n const expiration = localStorage.getItem('expiration');\r\n if (!expiration) {\r\n return -1;\r\n }\r\n\r\n const dateExp = new Date(expiration);\r\n const currentDate = new Date();\r\n\r\n const date1utc = Date.UTC(dateExp.getFullYear(), dateExp.getMonth(), dateExp.getDate());\r\n const date2utc = Date.UTC(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());\r\n const day = 86400000; //milisegundos\r\n const differenceDays = (date2utc - date1utc) / day;\r\n if (differenceDays !== 0) {\r\n //0 = mismo dia\r\n return -1;\r\n }\r\n\r\n const hours = dateExp.getHours() - currentDate.getHours();\r\n if (hours < 0) {\r\n //excede la hora\r\n return -1;\r\n }\r\n const minutes = dateExp.getMinutes() - currentDate.getMinutes();\r\n if (hours === 0 && minutes <= 0) {\r\n //excede los minutos\r\n return -1;\r\n }\r\n return 0;\r\n};*/\r\n\r\nexport const CloseBackdrops = () => {\r\n const backdrops = document.getElementsByClassName('modal-backdrop fade show').length;\r\n for (let i = 0; i < backdrops; i++) {\r\n document.getElementsByClassName('modal-backdrop fade')[i].remove();\r\n }\r\n};\r\n\r\nexport const ResetStyleBody = () => {\r\n document.getElementsByTagName('body')[0].style = '';\r\n};\r\n\r\nexport const getIP = async () => {\r\n const response = await axios.get('https://api.ipify.org?format=json');\r\n if (response && response.data && response.data.ip) {\r\n return response.data.ip;\r\n }\r\n return '';\r\n};\r\n\r\nexport const addFieldsRequerid = (id) => {\r\n let element = document.getElementById(id);\r\n element.classList.add('is-invalid');\r\n};\r\n\r\n//obliga a tener el label arriba del input\r\nexport const verifyInputField = (container) => {\r\n const element = document.getElementById(container);\r\n if (element) {\r\n new mdb.Input(element).update();\r\n }\r\n};\r\n\r\nconst removeArt = (word) => {\r\n return word.replace('DEL ', '').replace('LAS ', '').replace('DE ', '').replace('LA ', '').replace('Y ', '').replace('A ', '');\r\n};\r\nconst isVowel = (letter) => {\r\n if (letter === 'A' || letter === 'E' || letter === 'I' || letter === 'O' || letter === 'U') return true;\r\n else return false;\r\n};\r\n\r\n//Calcula el RFC/CURP sin homoclave\r\n//birthDay YYYY-mm-dd\r\nexport const calcRFC = (name, lastName, secondLastName, birthDay) => {\r\n name = name.toUpperCase();\r\n lastName = lastName.toUpperCase();\r\n secondLastName = secondLastName.toUpperCase();\r\n birthDay = birthDay.toUpperCase();\r\n\r\n let rfc = '';\r\n lastName = removeArt(lastName);\r\n secondLastName = removeArt(secondLastName);\r\n\r\n if (lastName.length === 0) {\r\n return '';\r\n }\r\n\r\n rfc = lastName.substr(0, 1);\r\n let c;\r\n for (let i = 0; i < lastName.length; i++) {\r\n c = lastName.charAt(i);\r\n if (isVowel(c)) {\r\n rfc += c;\r\n break;\r\n }\r\n }\r\n\r\n if (secondLastName.length === 0) {\r\n return rfc;\r\n }\r\n rfc += secondLastName.substr(0, 1);\r\n\r\n if (name.length === 0) {\r\n return rfc;\r\n }\r\n rfc += name.substr(0, 1);\r\n\r\n if (birthDay.length === 0) {\r\n return rfc;\r\n }\r\n rfc += birthDay.substr(2, 2); //YY\r\n rfc += birthDay.substr(5, 2); //mm\r\n rfc += birthDay.substr(8, 5); //dd\r\n return rfc;\r\n};\r\n\r\nexport const validDataComplementary = (clientData) => {\r\n let GeneralData = [\r\n 'customerName',\r\n 'customerLastname',\r\n 'customerSecondLastname',\r\n 'customerBirthday',\r\n 'customerCURP',\r\n 'customerRFC',\r\n 'customerNationalityId',\r\n ];\r\n let ContactData = ['country', 'idState', 'idTown', 'idCity', 'street', 'zipCode', 'number', 'phoneNumber', 'email'];\r\n let EconomicActivityData = ['idActEconomica', 'idPais'];\r\n let contador = 0;\r\n for (let key in clientData) {\r\n if (key === 'customerGeneralData') {\r\n for (let customerGeneralData in clientData[key]) {\r\n let campo = GeneralData.find((item) => {\r\n return item === customerGeneralData;\r\n });\r\n if (campo) {\r\n if (!clientData[key][customerGeneralData]) {\r\n contador++;\r\n }\r\n }\r\n }\r\n }\r\n if (key === 'customerContactData') {\r\n for (let customerContactData in clientData[key]) {\r\n let campo = ContactData.find((item) => {\r\n return item === customerContactData;\r\n });\r\n if (campo) {\r\n if (!clientData[key][customerContactData] && !clientData[key][customerContactData] !== '') {\r\n contador++;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (key === 'customerEconomicActivity') {\r\n for (let customerEconomicActivity in clientData[key]) {\r\n let campo = EconomicActivityData.find((item) => {\r\n return item === customerEconomicActivity;\r\n });\r\n if (campo) {\r\n if (!clientData[key][customerEconomicActivity]) {\r\n contador++;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return contador;\r\n};\r\n","import { HubConnectionBuilder } from '@microsoft/signalr';\r\nimport { setSession, OpenMessage, CloseAllModal } from '../components/Utilities/General';\r\nimport { ServiceRefreshToken } from './getURL';\r\n\r\nexport const showLoading = () => {\r\n let loading = document.getElementById('loading');\r\n if (loading) {\r\n loading.classList.remove('hide');\r\n loading.classList.add('show');\r\n }\r\n};\r\n\r\nexport const hideLoading = () => {\r\n let loading = document.getElementById('loading');\r\n if (loading) {\r\n loading.classList.remove('show');\r\n loading.classList.add('hide');\r\n }\r\n};\r\n\r\nexport const refreshToken = async () => {\r\n const Token = localStorage.getItem('refreshToken');\r\n let url = ServiceRefreshToken(Token);\r\n if (!Token) {\r\n return 0;\r\n }\r\n\r\n const data = await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n Accept: 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then((response) => {\r\n return response.json();\r\n })\r\n .catch((resp) => {\r\n return resp;\r\n });\r\n\r\n if (data && data !== 'Refresh Token inválido') {\r\n //TODO: decirle al menso del back que regrese false\r\n const id = localStorage.getItem('id');\r\n if (id) {\r\n const expirationRefresh = localStorage.getItem('expirationRefresh');\r\n localStorage.setItem('token', data.token);\r\n localStorage.setItem('refreshToken', data.refreshToken);\r\n localStorage.setItem('expiration', expirationRefresh);\r\n }\r\n return 1;\r\n }\r\n return 2;\r\n};\r\n\r\nexport const POST = async (url, params) => {\r\n showLoading();\r\n const token = localStorage.getItem('token');\r\n params = JSON.stringify(params);\r\n const data = await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n Accept: 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Content-Type': 'application/json',\r\n Authorization: 'Bearer ' + token,\r\n },\r\n body: params,\r\n })\r\n .then((response) => {\r\n return response.json();\r\n })\r\n .catch((resp) => {\r\n return resp;\r\n });\r\n hideLoading();\r\n return data;\r\n};\r\n\r\nexport const GET = async (url) => {\r\n if (!url) {\r\n return '';\r\n }\r\n const token = localStorage.getItem('token');\r\n\r\n showLoading();\r\n const data = await fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n Accept: 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Content-Type': 'application/json',\r\n Authorization: 'Bearer ' + token,\r\n },\r\n })\r\n .then((response) => {\r\n if (response.status === 401) {\r\n return refreshToken().then((token) => {\r\n if (token === 1) {\r\n //window.location.reload();\r\n return '401';\r\n } else if (token === 2) {\r\n setSession(false, '');\r\n CloseAllModal();\r\n OpenMessage('warning', 'Su sesión ha expirado, favor de ingresar nuevamente sus credenciales');\r\n setTimeout(function () {\r\n window.location.href = './?home=true';\r\n }, 4000);\r\n return '';\r\n }\r\n });\r\n } else if (response.ok) {\r\n return response.json();\r\n }\r\n return '';\r\n })\r\n .catch((resp) => {\r\n return resp;\r\n });\r\n hideLoading();\r\n return data;\r\n};\r\n\r\nexport const PUT = async (url, params) => {\r\n const token = localStorage.getItem('token');\r\n showLoading();\r\n params = JSON.stringify(params);\r\n const data = await fetch(url, {\r\n method: 'PUT',\r\n headers: {\r\n Accept: 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Content-Type': 'application/json',\r\n Authorization: 'Bearer ' + token,\r\n },\r\n body: params,\r\n })\r\n .then((response) => {\r\n return response.json();\r\n })\r\n .catch((resp) => {\r\n return resp;\r\n });\r\n hideLoading();\r\n return data;\r\n};\r\n\r\nexport const DELETE = async (url, params) => {\r\n const token = localStorage.getItem('token');\r\n showLoading();\r\n params = JSON.stringify(params);\r\n const data = await fetch(url, {\r\n method: 'DELETE',\r\n headers: {\r\n Accept: 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Content-Type': 'application/json',\r\n Authorization: 'Bearer ' + token,\r\n },\r\n body: params,\r\n })\r\n .then((response) => {\r\n return response.json();\r\n })\r\n .catch((resp) => {\r\n return resp;\r\n });\r\n hideLoading();\r\n return data;\r\n};\r\n\r\nexport const ConnectionSignalr = (url) => {\r\n const newConnection = new HubConnectionBuilder().withUrl(url).withAutomaticReconnect().build();\r\n return newConnection;\r\n};\r\n","import { createContext, useState } from 'react'\r\n\r\nexport const TokenStatusContext = createContext(null);\r\n\r\nexport const TokenStatusProvider = ({ children }) => {\r\n const [tokenStatus, setTokenStatus] = useState(0);\r\n const [onTokenValidate, setOnTokenValidate] = useState(false);\r\n const [mercadoPagoInitialized, setMercadoPagoInitialized] = useState(false);\r\n const [paymentFormError, setPaymentFormError] = useState(false);\r\n const [renderMpPaymentForm, setRenderMpPaymentForm] = useState(false);\r\n const [tokenAmount, setTokenAmount] = useState(0);\r\n return (\r\n <TokenStatusContext.Provider value={{\r\n tokenStatus,\r\n setTokenStatus,\r\n onTokenValidate,\r\n setOnTokenValidate,\r\n mercadoPagoInitialized,\r\n setMercadoPagoInitialized,\r\n paymentFormError,\r\n setPaymentFormError,\r\n renderMpPaymentForm,\r\n setRenderMpPaymentForm,\r\n tokenAmount,\r\n setTokenAmount,\r\n }}>\r\n {children}\r\n </TokenStatusContext.Provider>\r\n );\r\n};\r\n","import React, { useContext } from 'react'\r\nimport { DataContext } from '../../context/DataContext';\r\nimport { ServiceValidationRegisterToken } from '../../helpers/getURL'\r\nimport { GET } from '../../helpers/APIServices'\r\nimport { OpenMessage, OpenModal, OpenStreamingRegisterMessage } from '../Utilities/General'\r\nimport { TokenStatusContext } from '../../context/TokenStatusContext'\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nexport const ButtonRegister = ({ idAuction, nameAuction, dateAuction, idPallet, classStyle }) => {\r\n const {\r\n validate,\r\n setValidate,\r\n } = useContext(DataContext);\r\n\r\n const {setRenderMpPaymentForm, setTokenStatus} = useContext(TokenStatusContext);\r\n\r\n const history = useHistory();\r\n\r\n const { token = '' } = localStorage;\r\n\r\n const clearState = () => {\r\n setValidate({\r\n valid: false,\r\n registeredAuctions: [...validate.registeredAuctions],\r\n idAuction: '',\r\n nameAuction: '',\r\n dateAuction: '',\r\n palletAuction: '',\r\n idPallet: '',\r\n });\r\n };\r\n\r\n const saveToken = (data) => {\r\n OpenStreamingRegisterMessage();\r\n setValidate({\r\n valid: false,\r\n registeredAuctions: [\r\n ...validate.registeredAuctions,\r\n {\r\n idAuction,\r\n pallet: data.description,\r\n streaming: data.streaming,\r\n idPallet: data.idPalette,\r\n },\r\n ],\r\n idAuction,\r\n nameAuction,\r\n dateAuction,\r\n palletAuction: data.description,\r\n idPallet: data.idPalette,\r\n });\r\n };\r\n\r\n function openRegisterModal (idAuction, nameAuction, dateAuction, idPallet) {\r\n const { id = ''} = localStorage;\r\n const URLServiceValidationRegisterToken = ServiceValidationRegisterToken(\r\n id,\r\n idAuction\r\n );\r\n GET(URLServiceValidationRegisterToken).then((data) => {\r\n if (data.success) {\r\n const response = data.data;\r\n setTokenStatus(response.statusToken)\r\n if (response.redirectToValidation === true){\r\n history.push(response.urlValidation)\r\n setValidate({\r\n valid: true,\r\n registeredAuctions: [...validate.registeredAuctions],\r\n idAuction,\r\n nameAuction,\r\n dateAuction,\r\n idPallet,\r\n })\r\n }\r\n else {\r\n if (response.statusToken === 1) {\r\n saveToken(response)\r\n }\r\n else if (response.statusToken === 3) {\r\n OpenMessage('warning', 'Si pago esta pendiente, intente nuevamente en unos minutos.')\r\n clearState()\r\n }\r\n else if (response.statusToken === 0 || response.statusToken === 2) {\r\n setRenderMpPaymentForm(true)\r\n OpenModal('modalRegisterToOffer')\r\n setValidate({\r\n valid: true,\r\n registeredAuctions: [...validate.registeredAuctions],\r\n idAuction,\r\n nameAuction,\r\n dateAuction,\r\n idPallet,\r\n })\r\n } else {\r\n OpenMessage('warning', 'Ocurrió un error al validar su tóken.')\r\n clearState()\r\n }\r\n }\r\n } else {\r\n OpenMessage('warning', 'Ocurrió un error al validar su tóken.')\r\n clearState()\r\n }\r\n }).catch((error) => {\r\n })\r\n }\r\n\r\n function openLoginModal () {\r\n OpenModal('modalLogin');\r\n }\r\n\r\n return (\r\n <button\r\n id={'btnRegister_' + idAuction}\r\n className={`btn btn-outline-secondary btn-lg ${classStyle}`}\r\n onClick={(e) =>\r\n token !== ''\r\n ? openRegisterModal(idAuction, nameAuction, dateAuction, idPallet)\r\n : openLoginModal()\r\n }\r\n >\r\n Registrarse para ofertar\r\n </button>\r\n );\r\n};\r\n","import React, { useEffect, useState, Fragment, useContext } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { POST } from '../../helpers/APIServices';\r\nimport { validSession, OpenMessage } from '../Utilities/General';\r\nimport { ServiceCheckOnToJoinStreming } from '../../helpers/getURL';\r\nimport { DataContext } from '../../context/DataContext';\r\nimport { getUserRejectedStatus } from '../../helpers/getConstants';\r\n\r\nexport const ButtonToStreaming = (props) => {\r\n const history = useHistory();\r\n const statusRejected = getUserRejectedStatus();\r\n const { userStatusLastCatalog = '' } = props;\r\n const [button, setButton] = useState(\r\n <button\r\n id={'btnToStreaming_' + props.idAuction}\r\n className={`btn btn-outline-danger btn-lg button-streaming ${props.classStyle}`}\r\n >\r\n Unirse a streaming\r\n </button>\r\n );\r\n const [messagge, setMessagge] = useState('');\r\n const IdClient = localStorage.getItem('id');\r\n const {\r\n validate: { valid, idPallet },\r\n } = useContext(DataContext);\r\n const modalError = () => {\r\n if (userStatusLastCatalog === statusRejected) {\r\n OpenMessage(\r\n 'warning',\r\n 'Su cuenta se encuentra bloqueada, favor de contactarnos.'\r\n );\r\n } else {\r\n OpenMessage('warning', messagge);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n checkOnToJoinStreming();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (idPallet) {\r\n checkOnToJoinStreming();\r\n }\r\n }, [valid]);\r\n\r\n useEffect(() => {\r\n if (IdClient) {\r\n checkOnToJoinStreming();\r\n }\r\n }, [IdClient]);\r\n\r\n const checkOnToJoinStreming = () => {\r\n if (!validSession()) {\r\n return;\r\n }\r\n const URL = ServiceCheckOnToJoinStreming();\r\n\r\n const auctionClient = {\r\n IdClient,\r\n IdAuction: props.idAuction,\r\n };\r\n\r\n const onValidate = () => {\r\n if (userStatusLastCatalog === statusRejected) {\r\n OpenMessage(\r\n 'warning',\r\n 'Su cuenta se encuentra bloqueada, favor de contactarnos.'\r\n );\r\n } else {\r\n history.push(`/streaming?id=${props.idAuction}`);\r\n }\r\n };\r\n POST(URL, auctionClient).then((data) => {\r\n if (data && data === true) {\r\n setButton(\r\n <button\r\n id={'btnToStreaming_' + props.idAuction}\r\n className={`btn btn-outline-danger btn-lg button-streaming ${props.classStyle}`}\r\n onClick={() => onValidate()}\r\n >\r\n Unirse a streaming\r\n </button>\r\n );\r\n }\r\n if (data && data !== true) {\r\n setButton(\r\n <button\r\n id={'btnToStreaming_' + props.idAuction}\r\n type='button'\r\n onClick={() => modalError()}\r\n className={`btn btn-outline-danger btn-lg button-streaming ${props.classStyle}`}\r\n >\r\n Unirse a streaming\r\n </button>\r\n );\r\n setMessagge(data);\r\n }\r\n });\r\n };\r\n return <Fragment>{button}</Fragment>;\r\n};\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { CloseModal } from '../Utilities/General';\r\n\r\nexport const WatchCatalog = ({ idAuction, modal, goCatalog, clasStyle = '' }) => {\r\n const history = useHistory();\r\n const onCloseModal = () => {\r\n CloseModal('modalStreamingReisterMesage');\r\n history.push('/catalogo?id=' + idAuction);\r\n goCatalog();\r\n };\r\n const openCatalog = () => {\r\n history.push('/catalogo?id=' + idAuction);\r\n };\r\n return (\r\n <button className={`btn btn-outline-danger btn-lg ${clasStyle}`} onClick={(e) => (modal ? onCloseModal() : openCatalog())}>\r\n Ver catálogo\r\n </button>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { ButtonRegister } from '../Register/ButtonRegister';\r\nimport { ButtonToStreaming } from '../Register/ButtonToStreaming';\r\nimport { WatchCatalog } from '../Register/WatchCatalog';\r\nimport { getIdStreaming, getExecution } from '../../helpers/getConstants';\r\n\r\n//const widthA = '1280px';\r\nconst heightA = '700px';\r\nconst idStreaming = getIdStreaming();\r\nconst execution = getExecution();\r\n\r\nfunction CarouselItem(props) {\r\n const { statusCustomer = '' } = props;\r\n if (props.announcement) {\r\n //con publicidad\r\n if (props.link && props.nuevaPestania) {\r\n //con link de publicidad\r\n return (\r\n <div className={'carousel-item ' + (props.active === 'true' ? 'active' : '')}>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-12 text-center\">\r\n <a href={props.link} target=\"_blank\" rel=\"noreferrer\">\r\n <img className=\"announcement\" src={props.img} alt=\"...\" height={heightA} />\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }else if(props.link && !props.nuevaPestania){\r\n return (\r\n <div className={'carousel-item ' + (props.active === 'true' ? 'active' : '')}>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-12 text-center\">\r\n <a href={props.link}>\r\n <img className=\"announcement\" src={props.img} alt=\"...\" height={heightA} />\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n return (\r\n <div className={'carousel-item ' + (props.active === 'true' ? 'active' : '')}>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-12 text-center\">\r\n <img className=\"announcement\" src={props.img} alt=\"...\" height={heightA} />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n return (\r\n <div className={'carousel-item ' + (props.active === 'true' ? 'active' : '')}>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-6\">\r\n <div className=\"row panel__left justify-content-center\">\r\n <div className=\"col-10 offset-md-2\">\r\n <h1>SUBASTA</h1>\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-10 offset-md-2\">\r\n <h2>{props.title}</h2>\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-10 offset-md-2\">\r\n <h3>{props.date}</h3>\r\n </div>\r\n </div>\r\n <div className=\"row mt-2\">\r\n <div className=\"col-12 col-sm-10 offset-1 offset-md-2\">\r\n <p className=\"carousel-item__place\">{props.place}</p>\r\n </div>\r\n </div>\r\n <div className=\"row mt-2 mb-3 mb-mobile\">\r\n <div className=\"col-12 col-sm-10 offset-1 offset-md-2\">\r\n <WatchCatalog idAuction={props.idAuction} modal={false} clasStyle={'btn-carousel-secondary'} />\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 col-sm-10 offset-1 offset-md-2\">\r\n {props.auctionRegistered.pallet > 0 && props.auctionType === idStreaming && props.auctionStatus === execution && (\r\n <ButtonToStreaming\r\n idAuction={props.idAuction}\r\n userStatusLastCatalog={statusCustomer}\r\n classStyle={''}\r\n />\r\n )}\r\n {props.auctionRegistered.pallet <= 0 && (\r\n <ButtonRegister idAuction={props.idAuction} nameAuction={props.title} dateAuction={props.date} classStyle={''} />\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"row mt-3 mt-mobile\">\r\n <div className=\"col-12 offset-1 offset-md-2\">\r\n <p className=\"carousel-item__description\">{props.description1}</p>\r\n </div>\r\n <div className=\"col-12 offset-1 offset-md-2\">\r\n <p className=\"carousel-item__description\">{props.description2}</p>\r\n </div>\r\n <div className=\"col-12 offset-1 offset-md-2\">\r\n <p className=\"carousel-item__description\">{props.description3}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-6 text-center\">\r\n <img src={props.img} alt=\"...\" />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default CarouselItem;\r\n","import React from 'react';\r\n\r\nfunction CarouselIndicators(props) {\r\n return (\r\n <button\r\n type=\"button\"\r\n data-bs-target={'#' + props.idCarousel}\r\n data-bs-slide-to={props.slide}\r\n className={'rounded-circle ' + props.nameClass}\r\n aria-current={props.nameClass === 'active' ? 'true' : ''}\r\n ></button>\r\n );\r\n}\r\n\r\nexport default CarouselIndicators;\r\n","import React, { useState, useEffect, useContext } from 'react';\r\n\r\n//Componentes\r\nimport CarouselItem from './CarouselItem';\r\nimport CarouselIndicators from './CarouselIndicators';\r\n\r\n//Servicios\r\nimport { ServiceAnnouncement, ServiceCarousel, ServiceGenericParameters } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { getImgDefault, getCarouselTime } from '../../helpers/getConstants';\r\n\r\n//Utiles\r\nimport { convertToDate } from '../Utilities/General';\r\nimport { DataContext } from '../../context/DataContext';\r\n\r\nexport const Carousel = ({ auctions }) => {\r\n const data = [];\r\n const [dataCarousel, setDataCarousel] = useState([]);\r\n const [dataAnnouncement, setDataAnnouncement] = useState([]);\r\n const [interval, setInterval] = useState(0);\r\n let classIndicator = 'active';\r\n let classItem = 'true';\r\n let slide = 0;\r\n const {\r\n validate: { valid, registeredAuctions, idPallet },\r\n } = useContext(DataContext);\r\n\r\n const getIsStreaming = (idAuction) => {\r\n let auctionRegistered = {\r\n pallet: 0,\r\n streaming: false,\r\n idPallet: '',\r\n };\r\n const auctionValue = registeredAuctions.find((auction) => auction.idAuction === idAuction);\r\n if (auctionValue) {\r\n auctionRegistered.pallet = auctionValue.pallet;\r\n auctionRegistered.streaming = auctionValue.streaming;\r\n auctionRegistered.idPallet = auctionValue.idPallet;\r\n }\r\n return auctionRegistered;\r\n };\r\n\r\n const getCarousel = () => {\r\n const URLCarousel = ServiceCarousel();\r\n const URLAnnouncement = ServiceAnnouncement();\r\n const IdInterval = getCarouselTime();\r\n const URLTimeInterval = ServiceGenericParameters(IdInterval);\r\n\r\n GET(URLTimeInterval).then((data) => {\r\n if (data) {\r\n const value = data.value ? data.value * 1000 : 5000;\r\n setInterval(value);\r\n }\r\n GET(URLCarousel).then((response) => {\r\n if (response && response.length > 0) {\r\n const items = response.filter(\r\n (carousel) =>\r\n carousel.bannerIni === null ||\r\n carousel.bannerFin === null ||\r\n (new Date(carousel.bannerIni) < new Date() && new Date() < new Date(carousel.bannerFin))\r\n );\r\n setDataCarousel(items);\r\n }\r\n GET(URLAnnouncement).then((resp) => {\r\n if (resp && resp.length > 0) {\r\n setDataAnnouncement(resp);\r\n }\r\n });\r\n });\r\n });\r\n };\r\n\r\n const checkStatus = (item) => {\r\n let value = '';\r\n const users = auctions.find((auction) => auction.idAuction === item.id);\r\n if (users) {\r\n value = users.idAuctionCustomerStatus;\r\n }\r\n return value;\r\n };\r\n\r\n dataCarousel.forEach((item) => {\r\n item.auctionCustomerStatus = checkStatus(item);\r\n item.auctionType = item.idType;\r\n item.auctionStatus = item.idStatus;\r\n item.auctionRegistered = getIsStreaming(item.id);\r\n item.classIndicator = classIndicator;\r\n item.classItem = classItem;\r\n item.slide = slide;\r\n item.date = convertToDate(item.auctionDate);\r\n item.announcement = false;\r\n item.link = '';\r\n slide++;\r\n classIndicator = '';\r\n classItem = '';\r\n if (!item.url[0]) {\r\n item.url[0] = getImgDefault();\r\n }\r\n data.push(item);\r\n });\r\n slide = dataCarousel.length;\r\n dataAnnouncement.forEach((item) => {\r\n item.announcement = true;\r\n item.slide = slide;\r\n item.url = [];\r\n item.url[0] = item.imageUrl;\r\n item.classIndicator = classIndicator;\r\n item.classItem = classItem;\r\n item.name = '';\r\n item.place = '';\r\n classIndicator = '';\r\n classItem = '';\r\n item.date = convertToDate(new Date());\r\n slide++;\r\n data.push(item);\r\n });\r\n\r\n useEffect(() => {\r\n if (idPallet) {\r\n getCarousel();\r\n }\r\n }, [valid]);\r\n\r\n useEffect(() => {\r\n getCarousel();\r\n }, []);\r\n return (\r\n <div className=\"container-carousel\">\r\n {data.length > 0 ? (\r\n <div className=\"row\">\r\n <div className=\"col\">\r\n <div id=\"carouselMLS\" className=\"carousel carousel-dark slide\" data-bs-ride=\"carousel\" data-bs-interval={interval}>\r\n <div className=\"carousel-indicators\">\r\n {data.map((item) => {\r\n return <CarouselIndicators idCarousel=\"carouselMLS\" key={item.id} slide={item.slide} nameClass={item.classIndicator} />;\r\n })}\r\n </div>\r\n <div className=\"carousel-inner\">\r\n {data.map((item) => {\r\n return (\r\n <CarouselItem\r\n idAuction={item.id}\r\n key={item.id}\r\n active={item.classItem}\r\n title={item.name}\r\n description1={item.description ? item.description.substr(0, 40) : ''}\r\n description2={item.description ? item.description.substr(40, 40) : ''}\r\n description3={item.description ? item.description.substr(80) : ''}\r\n place={item.place}\r\n img={item.url[0]}\r\n date={item.date}\r\n nuevaPestania={item.nuevaPestania}\r\n announcement={item.announcement}\r\n link={item.link}\r\n auctionRegistered={item.auctionRegistered}\r\n auctionType={item.auctionType}\r\n auctionStatus={item.auctionStatus}\r\n statusCustomer={item.auctionCustomerStatus}\r\n />\r\n );\r\n })}\r\n </div>\r\n <button className=\"carousel-control-prev\" type=\"button\" data-bs-target=\"#carouselMLS\" data-bs-slide=\"prev\">\r\n <span className=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\r\n </button>\r\n <button className=\"carousel-control-next\" type=\"button\" data-bs-target=\"#carouselMLS\" data-bs-slide=\"next\">\r\n <span className=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nfunction AuctionsItem(props) {\r\n return (\r\n <div className={'col-3 col-sm-3 col-xxl-2 container-auctions-items ' + props.class}>\r\n <Link to={`/catalogo?id=${props.idAuction}&categoria=${props.category}`}>\r\n <div className=\"card h-100\">\r\n <div className=\"container-auctions-items--img\">\r\n <img src={props.img} className=\"card-img-top\" alt=\"...\" />\r\n </div>\r\n <div className=\"card-body\">\r\n <h5 className=\"card-title container-auctions-items--title\">{props.productName}</h5>\r\n <p className=\"card-text\">{props.description}</p>\r\n </div>\r\n </div>\r\n </Link>\r\n </div>\r\n );\r\n}\r\n\r\nexport default AuctionsItem;\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { DataContext } from '../../context/DataContext';\r\n\r\nimport { ButtonRegister } from '../Register/ButtonRegister';\r\nimport { ButtonToStreaming } from '../Register/ButtonToStreaming';\r\nimport { WatchCatalog } from '../Register/WatchCatalog';\r\nimport { convertToDate } from '../Utilities/General';\r\nimport AuctionsItem from './AuctionsItem';\r\nimport { getIdStreaming, getExecution } from '../../helpers/getConstants';\r\n\r\nfunction Auctions(props) {\r\n const [state, setState] = useState({\r\n name: '',\r\n idAuction: '',\r\n auctionDate: new Date(),\r\n pallet: 0,\r\n isStreaming: false,\r\n idPallet: '',\r\n idType: '',\r\n idStatus: '',\r\n title: '',\r\n });\r\n const { userStatusLastCatalog = '' } = props;\r\n const idStreaming = getIdStreaming();\r\n const execution = getExecution();\r\n const {\r\n validate: { registeredAuctions },\r\n } = useContext(DataContext);\r\n\r\n const getIsStreaming = (idAuction) => {\r\n const auctionValue = registeredAuctions.find((auction) => auction.idAuction === idAuction);\r\n if (auctionValue) {\r\n setState((prevState) => ({\r\n ...prevState,\r\n pallet: parseInt(auctionValue.pallet, 10),\r\n isStreaming: auctionValue.streaming,\r\n idPallet: auctionValue.idPallet,\r\n }));\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const data = props.data;\r\n if (data) {\r\n getIsStreaming(data.id);\r\n setState((prevState) => ({\r\n ...prevState,\r\n name: data.id ? data.name : '',\r\n idAuction: data.id,\r\n auctionDate: convertToDate(data.auctionDate),\r\n idType: data.idType,\r\n idStatus: data.idStatus,\r\n }));\r\n }\r\n }, [props]);\r\n\r\n if (state.idAuction) {\r\n return (\r\n <div className=\"container-fluid container-auctions mb-4 pb-4\">\r\n <div className=\"row\">\r\n <div className=\"col-11 offset-1 \">\r\n <h2>\r\n {' '}\r\n <span className=\"container-auctions--title\">{props.title}</span> {props.title2}\r\n </h2>\r\n </div>\r\n </div>\r\n <div className=\"row container-auctions-row\">\r\n <div className=\"col-12 col-sm-5 offset-sm-1 text-center-mobile\">\r\n <span className=\"container-auctions--subtitle\">{state.name}</span>\r\n </div>\r\n <div className=\"col-12 col-sm-5 text-center-mobile container-auctions-col\">\r\n {state.pallet > 0 && state.idType === idStreaming && state.idStatus === execution && (\r\n <ButtonToStreaming streaming={state.isStreaming} idAuction={state.idAuction} userStatusLastCatalog={userStatusLastCatalog} />\r\n )}\r\n {state.pallet <= 0 && <ButtonRegister idAuction={state.idAuction} nameAuction={state.name} dateAuction={state.auctionDate} />}\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-11 offset-1 text-center-mobile\">\r\n <span className=\"container-auctions--subtitle2\">{state.auctionDate}</span>\r\n </div>\r\n </div>\r\n <div className=\"row container-auctions-row\">\r\n <div className=\"col-11 container-auctions-col container-auctions-btn2\">\r\n <WatchCatalog idAuction={state.idAuction} modal={false} clasStyle={'watch-catalog'} />\r\n </div>\r\n </div>\r\n <div className=\"row container-auctions-row\">\r\n <div className=\"col-11 offset-1 mt-5 mb-5\">\r\n <span className=\"container-auctions--description\">\r\n Contaremos con una gran variedad de piezas únicas en distintas categorÃas:{' '}\r\n </span>\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center container-auctions-row\">{props.children}</div>\r\n\r\n <div className=\"row justify-content-sm-center container__auctions--types\">\r\n <AuctionsItem productName=\"Relojes\" img=\"resources/SV-343.jpg\" idAuction={state.idAuction} category={'02'} class={''} />\r\n <AuctionsItem\r\n productName=\"Alhajas\"\r\n img=\"resources/SV-010.jpg\"\r\n idAuction={state.idAuction}\r\n category={'01'}\r\n class={'container-auctions-items--ml offset-xxl-2'}\r\n />\r\n <AuctionsItem\r\n productName=\"ArtÃculos personales\"\r\n img=\"resources/SV-231.jpg\"\r\n idAuction={state.idAuction}\r\n category={'03'}\r\n class={'container-auctions-items--ml offset-xxl-2'}\r\n />\r\n </div>\r\n </div>\r\n );\r\n }\r\n return (\r\n <div className=\"container-fluid container-auctions mb-4 pb-4\">\r\n <div className=\"row\">\r\n <div className=\"col-12 text-center\">\r\n <h2>\r\n <span className=\"container-auctions--title\"> Espera nuestras próximas Subastas.</span>\r\n </h2>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Auctions;\r\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { DataContext } from '../../context/DataContext';\r\nimport { ButtonRegister } from '../Register/ButtonRegister';\r\nimport { ButtonToStreaming } from '../Register/ButtonToStreaming';\r\nimport { WatchCatalog } from '../Register/WatchCatalog';\r\nimport { convertToDate } from '../Utilities/General';\r\nimport { getIdStreaming, getExecution } from '../../helpers/getConstants';\r\n\r\nexport const AuctionsCarousel = (props) => {\r\n const [state, setState] = useState({\r\n name: '',\r\n idAuction: '',\r\n auctionDate: new Date(),\r\n pallet: 0,\r\n isStreaming: false,\r\n idPallet: '',\r\n idType: '',\r\n idStatus: '',\r\n title: '',\r\n });\r\n\r\n const { userStatusLastCatalog } = props;\r\n const {\r\n validate: { registeredAuctions },\r\n } = useContext(DataContext);\r\n\r\n const idStreaming = getIdStreaming();\r\n const execution = getExecution();\r\n\r\n const getIsStreaming = (idAuction) => {\r\n const auctionValue = registeredAuctions.find((auction) => auction.idAuction === idAuction);\r\n if (auctionValue) {\r\n setState((prevState) => ({\r\n ...prevState,\r\n pallet: parseInt(auctionValue.pallet, 10),\r\n isStreaming: auctionValue.streaming,\r\n idPallet: auctionValue.idPallet,\r\n }));\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const data = props.data;\r\n if (data) {\r\n getIsStreaming(data.id);\r\n setState((prevState) => ({\r\n ...prevState,\r\n name: data.id ? data.name : '',\r\n idAuction: data.id,\r\n auctionDate: convertToDate(data.auctionDate),\r\n idType: data.idType,\r\n idStatus: data.idStatus,\r\n }));\r\n }\r\n }, [props]);\r\n\r\n if (state.idAuction) {\r\n return (\r\n <div className=\"container-fluid container-auctions mb-4 pb-4 container__auctions--types\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <h2>\r\n <span className=\"container-auctions--title\">Próxima</span> subasta\r\n </h2>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row container-auctions-row\">\r\n <div className=\"col-12 text-center-mobile\">\r\n <span className=\"container-auctions--subtitle\">{state.name}</span>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row container-auctions-row\">\r\n <div className=\"col-12 text-center-mobile\">\r\n <span className=\"container-auctions--subtitle2\">{state.auctionDate}</span>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row container-auctions-row\">\r\n <div className=\"col-12 mt-2 mb-2 text-center-mobile\">\r\n <span className=\"container-auctions--description\">\r\n Contaremos con una gran variedad de piezas únicas en distintas categorÃas:\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row container-auctions-row\">\r\n <div className=\"col-12 text-center-mobile\">\r\n {state.pallet > 0 && state.idType === idStreaming && state.idStatus === execution && (\r\n <ButtonToStreaming streaming={state.isStreaming} idAuction={state.idAuction} userStatusLastCatalog={userStatusLastCatalog} />\r\n )}\r\n {state.pallet <= 0 && <ButtonRegister idAuction={state.idAuction} nameAuction={state.name} dateAuction={state.auctionDate} />}\r\n </div>\r\n </div>\r\n\r\n <div className=\"row container-auctions-row\">\r\n <div className=\"col-12 mb-5 text-center-mobile\">\r\n <WatchCatalog idAuction={state.idAuction} modal={false} clasStyle={'watch-catalog'} />\r\n </div>\r\n </div>\r\n\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div id=\"carouselAuction\" className=\"carousel carousel-dark slide\" data-bs-ride=\"carousel\">\r\n <div className=\"carousel-indicators auctionsCarousel-indicators\">\r\n <button\r\n type=\"button\"\r\n data-bs-target=\"#carouselAuction\"\r\n data-bs-slide-to=\"0\"\r\n className=\"rounded-circle active\"\r\n aria-current=\"true\"\r\n ></button>\r\n\r\n <button\r\n type=\"button\"\r\n data-bs-target=\"#carouselAuction\"\r\n data-bs-slide-to=\"1\"\r\n className=\"rounded-circle\"\r\n aria-current=\"false\"\r\n ></button>\r\n\r\n <button\r\n type=\"button\"\r\n data-bs-target=\"#carouselAuction\"\r\n data-bs-slide-to=\"2\"\r\n className=\"rounded-circle\"\r\n aria-current=\"false\"\r\n ></button>\r\n </div>\r\n <div className=\"carousel-inner\">\r\n <div className=\"carousel-item active\">\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-8\">\r\n <Link to={`/catalogo?id=${state.idAuction}&categoria=02`}>\r\n <div className=\"card\">\r\n <div className=\"container-auctions-items--img\">\r\n <img src=\"resources/SV-343.jpg\" className=\"card-img-top\" alt=\"...\" />\r\n </div>\r\n <div className=\"card-body\">\r\n <h5 className=\"card-title container-auctions-items--title\">Relojes</h5>\r\n </div>\r\n </div>\r\n </Link>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"carousel-item\">\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-8\">\r\n <Link to={`/catalogo?id=${state.idAuction}&categoria=01`}>\r\n <div className=\"card\">\r\n <div className=\"container-auctions-items--img\">\r\n <img src=\"resources/SV-010.jpg\" className=\"card-img-top\" alt=\"...\" />\r\n </div>\r\n <div className=\"card-body\">\r\n <h5 className=\"card-title container-auctions-items--title\">Alhajas</h5>\r\n </div>\r\n </div>\r\n </Link>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"carousel-item\">\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-8\">\r\n <Link to={`/catalogo?id=${state.idAuction}&categoria=03`}>\r\n <div className=\"card\">\r\n <div className=\"container-auctions-items--img\">\r\n <img src=\"resources/SV-231.jpg\" className=\"card-img-top\" alt=\"...\" />\r\n </div>\r\n <div className=\"card-body\">\r\n <h5 className=\"card-title container-auctions-items--title\">ArtÃculos personales</h5>\r\n </div>\r\n </div>\r\n </Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <button className=\"carousel-control-prev\" type=\"button\" data-bs-target=\"#carouselAuction\" data-bs-slide=\"prev\">\r\n <span className=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\r\n </button>\r\n <button className=\"carousel-control-next\" type=\"button\" data-bs-target=\"#carouselAuction\" data-bs-slide=\"next\">\r\n <span className=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n return (\r\n <div className=\"container-fluid container-auctions mb-4 pb-4 container__auctions--types\">\r\n <div className=\"row\">\r\n <div className=\"col-12 text-center\">\r\n <h2>\r\n <span className=\"container-auctions--title\"> Espera nuestras próximas Subastas.</span>\r\n </h2>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport { getAvailableLot, getRetiredLot } from '../../helpers/getConstants';\r\nimport { formatCurrency } from '../Utilities/General';\r\n\r\nexport const Offer = ({\r\n offerLot,\r\n format,\r\n offer,\r\n setOffer,\r\n offerSelected,\r\n setOfferSelected,\r\n confirm,\r\n setConfirm,\r\n handleScroll,\r\n handleOffer,\r\n loading,\r\n handleConfirm,\r\n idType,\r\n idStatus,\r\n auctionTypes,\r\n auctionStatus,\r\n idLoteStatus,\r\n addCartItem,\r\n enablePostSale,\r\n clicked,\r\n setClicked,\r\n idLot,\r\n}) => {\r\n const available = getAvailableLot();\r\n const retired = getRetiredLot();\r\n useEffect(() => {\r\n const onClick = (e) => {\r\n setClicked('');\r\n };\r\n document.addEventListener('click', onClick);\r\n\r\n if (clicked === idLot) {\r\n setOffer(true);\r\n setConfirm(false);\r\n } else if (clicked !== idLot) {\r\n setOffer(false);\r\n }\r\n }, [clicked, idLot, setOffer, setConfirm, setClicked]);\r\n\r\n const hideDropdown = (e, item, idLot) => {\r\n const dropdown = 'dropdown_' + idLot;\r\n const ul = 'ul_dropdown_' + idLot;\r\n const elementDrop = document.getElementById(dropdown);\r\n const elementUl = document.getElementById(ul);\r\n elementDrop.classList.remove('show');\r\n elementUl.classList.remove('show');\r\n setOfferSelected(item.precio);\r\n setClicked(idLot);\r\n e.stopPropagation();\r\n };\r\n\r\n return (\r\n <div className=\"row justify-content-center \">\r\n {idType === auctionTypes.idGoldenMinutes &&\r\n idStatus === auctionStatus.directSale &&\r\n (idLoteStatus === available || idLoteStatus === retired) &&\r\n enablePostSale === true && (\r\n <div className=\"col-12\">\r\n <button\r\n className={`btn button-danger-offerted ${format !== 1 ? ' button-eye-2' : ' button-eye'} `}\r\n onClick={(e) => addCartItem()}\r\n disabled={loading}\r\n >\r\n <i className=\"fas fa-shopping-cart\"></i>\r\n <span> Comprar</span>\r\n </button>\r\n </div>\r\n )}\r\n {(confirm && idType === auctionTypes.idGoldenMinutes && idStatus === auctionStatus.execution) ||\r\n (confirm &&\r\n idType === auctionTypes.idStreaming &&\r\n idLoteStatus === available &&\r\n (idStatus === auctionStatus.scheduled || idStatus === auctionStatus.execution)) ? (\r\n <div className=\"col-12\">\r\n <button\r\n className={`btn button-danger-offerted ${format !== 1 ? ' button-eye-2' : ' button-eye'} `}\r\n disabled={loading}\r\n onClick={(e) => [setOffer(true), setConfirm(false)]}\r\n >\r\n <i className=\"fas fa-clock\"></i>\r\n <span> Ofertado</span>\r\n </button>\r\n </div>\r\n ) : null}\r\n\r\n <div className={`align-buttons col-12`}>\r\n {(!confirm && idType === auctionTypes.idGoldenMinutes && idStatus === auctionStatus.execution) ||\r\n (!confirm &&\r\n idType === auctionTypes.idStreaming &&\r\n idLoteStatus === available &&\r\n (idStatus === auctionStatus.scheduled || idStatus === auctionStatus.execution)) ? (\r\n <button\r\n className={`btn ${!offer ? 'btn-outline-danger' : ' button-danger-offerted'} button-eye align-buttons-items`}\r\n onClick={(e) => [!offer ? handleOffer(e) : handleConfirm(), setClicked(idLot)]}\r\n disabled={loading}\r\n >\r\n {!offer ? <img src=\"./resources/Ofertar@2x.png\" alt=\"\" width=\"20px\" /> : null}\r\n <strong>{!offer ? ' Ofertar' : ' Confirmar'}</strong>\r\n </button>\r\n ) : null}\r\n {(!confirm && offer && idType === auctionTypes.idGoldenMinutes && idStatus === auctionStatus.execution) ||\r\n (!confirm &&\r\n offer &&\r\n idType === auctionTypes.idStreaming &&\r\n (idStatus === auctionStatus.scheduled || idStatus === auctionStatus.execution)) ? (\r\n <div className=\"dropdown shadow-0 align-buttons-items buttons-offer\">\r\n <button\r\n className={`btn dropdown-toggle ${format !== 1 ? 'drop-element-offer-2' : 'drop-element-offer'} shadow-0`}\r\n data-mdb-toggle=\"dropdown\"\r\n id={'dropdown_' + idLot}\r\n aria-expanded=\"false\"\r\n onClick={(e) => e.stopPropagation()}\r\n >\r\n {formatCurrency(offerSelected)}\r\n </button>\r\n <ul\r\n id={'ul_dropdown_' + idLot}\r\n className=\"dropdown-menu drop-scroll\"\r\n aria-labelledby={'dropdown_' + idLot}\r\n onScroll={handleScroll}\r\n >\r\n {offerLot.map((item, i) => {\r\n return (\r\n <li key={i}>\r\n <button\r\n className={`dropdown-item ${format !== 1 ? 'drop-items-2' : 'drop-items'} `}\r\n onClick={(e) => hideDropdown(e, item, idLot)}\r\n >\r\n {formatCurrency(item.precio)}\r\n </button>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n ) : null}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Offer } from '../Register/Offer';\r\nimport { formatCurrency } from '../Utilities/General';\r\n\r\nfunction AuctionsHighlightItem(props) {\r\n return (\r\n <div className={'col-3 col-xxl-2 mb-5 ' + props.nameClass}>\r\n <div className=\"card h-100\">\r\n <div className=\"row h-100\">\r\n <div className=\"container-products-items--img\">\r\n <img src={props.url} className=\"card-img-top \" alt=\"...\" />\r\n </div>\r\n\r\n <div className=\"card-body text-center\">\r\n <p className=\"container-products-items--title\">{props.title}</p>\r\n <p className=\"product-text\">\r\n Lote <span>{props.reference}</span>\r\n </p>\r\n <span className=\"product-text\">\r\n PRECIO DE SALIDA: <span className=\"price-text\">{formatCurrency(props.price)}</span>\r\n </span>\r\n </div>\r\n {props.registered && (\r\n <div className=\"card-footer text-center article-footer\">\r\n <Offer offerLot={props.offerLot} format={props.format} />\r\n </div>\r\n )}\r\n <div className=\"card-footer text-center\">\r\n <button className=\"btn btn-outline-secondary\" data-mdb-toggle=\"modal\" data-mdb-target={`#modal${props.id}`}>\r\n <i className=\"fas fa-eye\"></i>\r\n <strong> Detalles</strong>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"modal fade\" id={`modal${props.id}`} aria-hidden=\"true\">\r\n <div className=\"modal-dialog\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-body\">\r\n <img src={props.url} alt=\"\" className=\"img-fluid\" />\r\n </div>\r\n <h4 className=\"text-desc text-center\">{props.description}</h4>\r\n <div className=\"modal-footer\">\r\n <button type=\"button\" className=\"btn btn-outline-danger\" data-mdb-dismiss=\"modal\">\r\n Cerrar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default AuctionsHighlightItem;\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nfunction AuctionsHighlight(props) {\r\n return (\r\n <div className=\"container-fluid container-auctionsHighlight\">\r\n <div className=\"row\">\r\n <div className=\"col-11 offset-1 text-uppercase\">\r\n <h2>\r\n {' '}\r\n <span className=\"container-auctionsHighlight--title\">{props.title}</span> {props.title2}\r\n </h2>\r\n </div>\r\n </div>\r\n <div className=\"row container-auctionsHighlight-row\">\r\n <div className=\"col-7 offset-1\">\r\n <span className=\"container-auctionsHighlight--description\">\r\n Contaremos con una gran variedad de piezas únicas en distintas categorÃas:{' '}\r\n </span>\r\n </div>\r\n </div>\r\n <div className=\"row container-auctionsHighlight-row\">\r\n <div className=\"col-11 container-auctionsHighlight-col container-auctionsHighlight-btn2 text-end\">\r\n <Link to=\"/catalogo\">\r\n <button className=\"btn btn-outline-danger btn-lg\">Catálogo completo</button>\r\n </Link>\r\n </div>\r\n </div>\r\n <div className=\"container-auctionsHighlight-row container__auctionsHighlight--types\">{props.children}</div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default AuctionsHighlight;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { renderToString } from 'react-dom/server';\r\n\r\nimport AuctionsHighlightItem from './AuctionsHighlightItem';\r\nimport AuctionsHighlight from './AuctionsHighlight';\r\nimport { ButtonRegister } from '../Register/ButtonRegister';\r\nimport { getImgDefault } from '../../helpers/getConstants';\r\nimport { convertToDate } from '../Utilities/General';\r\n\r\nexport const AuctionsHighlightSection = (props) => {\r\n const [state, setState] = useState({\r\n articles: [],\r\n auctionName: '',\r\n auctionDate: new Date(),\r\n idAuction: '',\r\n rowsItems: '',\r\n });\r\n const itemsArray = [];\r\n\r\n const setAuctionsHigh = () => {\r\n let index = 0;\r\n state.articles.map((article, i) => {\r\n if (i % 3 === 0) {\r\n itemsArray.push([]);\r\n index++;\r\n }\r\n\r\n let item = renderToString(\r\n <AuctionsHighlightItem\r\n id={article.idLot}\r\n idAuction={props.idAuction}\r\n title={article.name}\r\n description={article.description}\r\n reference={article.order}\r\n url={\r\n article.lstImageLote && article.lstImageLote.length > 0 && article.lstImageLote[0] ? article.lstImageLote[0] : getImgDefault()\r\n }\r\n price={article.startingPrice}\r\n key={article.idLot}\r\n offerLot={article.lstOffertsLot}\r\n nameClass={i === 0 || i % 3 === 0 ? '' : 'col-xxl-2 container-auctionsHighlight-items--ml offset-xxl-2'}\r\n />\r\n );\r\n itemsArray[index - 1].push(item);\r\n return ''; //asi esta bien que regrese vacio\r\n });\r\n\r\n let divRow = '';\r\n for (let i = 0; i < itemsArray.length; i++) {\r\n divRow += '<div class=\"row justify-content-center\">';\r\n for (let j = 0; j < itemsArray[i].length; j++) {\r\n divRow += itemsArray[i][j];\r\n }\r\n //se acomodan a 3 columnas siempre, va de acuerdo a la seccion de \"Proxima Subasta\" del home\r\n //los estilos van de acuerdo a los que se encuentran en el componente AuctionsHighlightItem\r\n for (let k = itemsArray[i].length; k < 3; k++) {\r\n divRow += '<div class=\"col-3 col-xxl-2 mb-5 container-auctionsHighlight-items--ml offset-xxl-2\" ></div>';\r\n }\r\n divRow += '</div>';\r\n }\r\n return divRow;\r\n };\r\n\r\n useEffect(() => {\r\n const data = props.data;\r\n if (data) {\r\n setState((prevState) => ({\r\n ...prevState,\r\n name: data.id ? data.name : '',\r\n idAuction: data.id,\r\n auctionDate: convertToDate(data.auctionDate),\r\n }));\r\n }\r\n setState((prevState) => ({\r\n ...prevState,\r\n articles: [],\r\n }));\r\n if (props.articles) {\r\n setState((prevState) => ({\r\n ...prevState,\r\n articles: props.articles,\r\n }));\r\n const div = document.getElementById('AuctionsHighlightDiv');\r\n if (div && props.articles.length > 0) {\r\n div.classList.remove('visually-hidden');\r\n }\r\n }\r\n }, [props]);\r\n\r\n if (state.idAuction) {\r\n return (\r\n <div id=\"AuctionsHighlightDiv\" className=\"visually-hidden\">\r\n <AuctionsHighlight title=\"Destacados\" title2=\"de subasta\">\r\n <div dangerouslySetInnerHTML={{ __html: setAuctionsHigh() }}></div>\r\n <div className=\"row\">\r\n <div className=\"col text-center container-auctions-button\">\r\n <ButtonRegister\r\n idAuction={state.idAuction}\r\n nameAuction={state.name}\r\n dateAuction={state.auctionDate}\r\n classStyle={'btn-carousel-secondary'}\r\n />\r\n </div>\r\n </div>\r\n </AuctionsHighlight>\r\n </div>\r\n );\r\n }\r\n return null;\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { convertToDate, formatCurrency } from '../Utilities/General';\r\nimport { ButtonRegister } from '../Register/ButtonRegister';\r\nimport { getImgDefault } from '../../helpers/getConstants';\r\n\r\nexport const AuctionsHighlightCarousel = (props) => {\r\n const [state, setState] = useState({\r\n articles: [],\r\n auctionName: '',\r\n auctionDate: new Date(),\r\n idAuction: '',\r\n });\r\n\r\n useEffect(() => {\r\n const data = props.data;\r\n if (data) {\r\n setState((prevState) => ({\r\n ...prevState,\r\n name: data.id ? data.name : '',\r\n idAuction: data.id,\r\n auctionDate: convertToDate(data.auctionDate),\r\n }));\r\n }\r\n setState((prevState) => ({\r\n ...prevState,\r\n articles: [],\r\n }));\r\n if (props.articles) {\r\n setState((prevState) => ({\r\n ...prevState,\r\n articles: props.articles,\r\n }));\r\n }\r\n }, [props]);\r\n\r\n if (state.idAuction && state.articles.length > 0) {\r\n return (\r\n <div className=\"container-fluid container-auctionsHighlight container__auctionsHighlight--types\">\r\n <div className=\"row\">\r\n <div className=\"col-12 text-uppercase text-center-mobile\">\r\n <h2>\r\n <span className=\"container-auctionsHighlight--title\">destacados</span> de subasta\r\n </h2>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row container-auctionsHighlight-row\">\r\n <div className=\"col-12 text-center-mobile\">\r\n <span className=\"container-auctionsHighlight--description\">\r\n Contaremos con una gran variedad de piezas únicas en distintas categorÃas:{' '}\r\n </span>\r\n </div>\r\n </div>\r\n <div className=\"row container-auctionsHighlight-row mb-5\">\r\n <div className=\"col-12 container-auctionsHighlight-col container-auctionsHighlight-btn2 text-center-mobile\">\r\n <Link to=\"/catalogo\">\r\n <button className=\"btn btn-outline-danger btn-lg\">Catálogo completo</button>\r\n </Link>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-12\">\r\n <div id=\"carouselAuctionHighlight\" className=\"carousel carousel-dark slide\" data-bs-ride=\"carousel\">\r\n <div className=\"carousel-indicators auctionsCarousel-indicators\">\r\n {state.articles.map((item, i) => (\r\n <button\r\n type=\"button\"\r\n data-bs-target=\"#carouselAuctionHighlight\"\r\n data-bs-slide-to={i}\r\n className={i === 0 ? 'rounded-circle active' : 'rounded-circle'}\r\n aria-current={i === 0 ? 'true' : ''}\r\n key={i}\r\n ></button>\r\n ))}\r\n </div>\r\n <div className=\"carousel-inner\">\r\n {state.articles.map((item, i) => (\r\n <div className={i === 0 ? 'carousel-item active' : 'carousel-item'} key={i}>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-8\">\r\n <div className=\"card\">\r\n <div className=\"container-products-items--img\">\r\n <img\r\n src={\r\n item.lstImageLote && item.lstImageLote.length > 0 && item.lstImageLote[0]\r\n ? item.lstImageLote[0]\r\n : getImgDefault()\r\n }\r\n className=\"card-img-top \"\r\n alt=\"...\"\r\n />\r\n </div>\r\n\r\n <div className=\"card-body text-center\">\r\n <p className=\"container-products-items--title\">{item.name}</p>\r\n <p className=\"product-text\">\r\n Lote <span>{item.order}</span>\r\n </p>\r\n <span className=\"product-text\">\r\n PRECIO DE SALIDA: <span className=\"price-text\">{formatCurrency(item.startingPrice)}</span>\r\n </span>\r\n </div>\r\n <div className=\"card-footer text-center\">\r\n <button className=\"btn btn-outline-secondary\" data-mdb-toggle=\"modal\" data-mdb-target={`#modal${item.idLot}`}>\r\n <i className=\"fas fa-eye\"></i>\r\n <strong> Detalles</strong>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n\r\n <button className=\"carousel-control-prev\" type=\"button\" data-bs-target=\"#carouselAuctionHighlight\" data-bs-slide=\"prev\">\r\n <span className=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\r\n </button>\r\n <button className=\"carousel-control-next\" type=\"button\" data-bs-target=\"#carouselAuctionHighlight\" data-bs-slide=\"next\">\r\n <span className=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n {state.articles.map((item, i) => (\r\n <div\r\n className=\"modal\"\r\n id={`modal${item.idLot}`}\r\n data-bs-backdrop=\"static\"\r\n data-bs-keyboard=\"false\"\r\n aria-modal=\"true\"\r\n role=\"dialog\"\r\n key={i}\r\n >\r\n <div className=\"modal-dialog modal-sm modal-dialog-centered\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-body\">\r\n <img src={item.lstImageLote[0]} alt=\"\" className=\"img-fluid\" />\r\n </div>\r\n <h4 className=\"text-desc text-center\">{item.name}</h4>\r\n <div className=\"modal-footer\">\r\n <button type=\"button\" className=\"btn btn-outline-danger\" data-mdb-dismiss=\"modal\">\r\n Cerrar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n\r\n <div className=\"row\">\r\n <div className=\"col text-center container-auctions-button\">\r\n <ButtonRegister\r\n idAuction={state.idAuction}\r\n nameAuction={state.name}\r\n dateAuction={state.auctionDate}\r\n classStyle={'btn-carousel-secondary'}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n return null;\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { getConfig } from '../../helpers/getConfig';\r\n\r\nfunction Video() {\r\n const [data, setData] = useState([]);\r\n\r\n useEffect(() => {\r\n getConfig('video.json').then((data) => {\r\n setData(data);\r\n });\r\n const video = document.getElementById('videoAuction');\r\n if (video) {\r\n video.controls = true;\r\n video.preload = 'auto';\r\n video.autoPlay = true;\r\n video.muted = true;\r\n video.loop = true;\r\n video.playsInline = true;\r\n }\r\n }, []);\r\n\r\n const { title = '', text1 = '', url = '', text2 = '' } = data;\r\n\r\n return (\r\n <div className=\"container-fluid container-video\">\r\n <div className=\"row\">\r\n <div className=\"col\">\r\n <div dangerouslySetInnerHTML={{ __html: title }} />\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center container-video--description\">\r\n <div className=\"col-10\">\r\n <div dangerouslySetInnerHTML={{ __html: text1 }} />\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-10\">\r\n <div className=\"embed-responsive embed-responsive-16by9\">\r\n <video\r\n id=\"videoAuction\"\r\n src={url}\r\n width=\"960\"\r\n height=\"480\"\r\n controls\r\n preload=\"auto\"\r\n autoPlay\r\n muted\r\n loop\r\n playsInline\r\n type=\"video/mp4\"\r\n >\r\n <source src={url} type=\"video/mp4\" />\r\n Your browser does not support the video tag.\r\n </video>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center container-video--description\">\r\n <div className=\"col\">\r\n <div dangerouslySetInnerHTML={{ __html: text2 }} />\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col\">\r\n <Link to=\"/contacto\">\r\n <button className=\"btn btn-outline-secondary btn-lg btn-video--footer\">Contáctanos</button>\r\n </Link>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Video;\r\n","const PAGE = window.innerHeight - 100;\r\nexport const setSlideIn = (selector) => {\r\n const element = document.querySelector(selector);\r\n if (element) {\r\n const elementTop = element.getBoundingClientRect().top;\r\n if (!element.classList.contains('slidein')) {\r\n element.style = 'opacity: 0';\r\n //element.classList.remove('slidein');\r\n if (elementTop <= PAGE) {\r\n element.style = '';\r\n element.classList.add('slidein');\r\n }\r\n }\r\n }\r\n};\r\n","import React, { useLayoutEffect, useState, useEffect, useContext } from 'react';\r\n//componentes\r\nimport { Carousel } from './Carousel';\r\nimport Auctions from './Auctions';\r\nimport { AuctionsCarousel } from './AuctionsCarousel';\r\nimport { AuctionsHighlightSection } from './AuctionsHighlightSection';\r\nimport { AuctionsHighlightCarousel } from './AuctionsHighlightCarousel';\r\nimport Video from './Video';\r\n\r\n//Servicios\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { ServiceLastCatalog, ServiceCatalog, ServiceAuctionCustomerStatus } from '../../helpers/getURL';\r\n\r\n//Animaciones\r\nimport { setSlideIn } from '../Utilities/Animation';\r\n\r\n//CSS Index\r\nimport '../../css/index.css';\r\nimport { DataContext } from '../../context/DataContext';\r\n\r\nexport const Home = () => {\r\n const [mobile, setMobile] = useState([]);\r\n const [lastCatalog, setLastCatalog] = useState({});\r\n const [articles, setArticles] = useState([]);\r\n const [auctions, setAuctions] = useState([]);\r\n const [userStatusLastCatalog, setUserStatusLastCatalog] = useState('');\r\n const {\r\n validate: { valid, idPallet },\r\n } = useContext(DataContext);\r\n const getArticles = (idAuction) => {\r\n if (!idAuction) {\r\n return;\r\n }\r\n const URLCatalog = ServiceCatalog();\r\n let url = new URL(URLCatalog);\r\n let params = {\r\n idAuction,\r\n PageNumber: 1,\r\n Destacado: true,\r\n Order: '03',\r\n };\r\n\r\n Object.keys(params).forEach((key) => {\r\n if (!params[key]) {\r\n delete params[key];\r\n }\r\n });\r\n Object.keys(params).forEach((key) => {\r\n url.searchParams.append(key, params[key]);\r\n });\r\n\r\n GET(url).then(({ lots = [] }) => {\r\n if (lots.length === 0) {\r\n setArticles([]);\r\n } else {\r\n setArticles(lots);\r\n }\r\n });\r\n };\r\n\r\n useLayoutEffect(() => {\r\n const handleResize = () => {\r\n setMobile(window.innerWidth);\r\n };\r\n window.addEventListener('resize', handleResize);\r\n handleResize();\r\n return () => {window.removeEventListener('resize',handleResize)};\r\n }, []);\r\n\r\n useLayoutEffect(() => {\r\n const handleScroll = () => {\r\n setSlideIn('.container__auctions--types');\r\n setSlideIn('.container__auctionsHighlight--types');\r\n }\r\n window.addEventListener('scroll', handleScroll);\r\n return () => {window.removeEventListener(\"scroll\", handleScroll)};\r\n }, []);\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if(idPallet){\r\n getData();\r\n }\r\n }, [valid]);\r\n\r\n const getData = () => {\r\n const id = localStorage.getItem('id');\r\n const URLLastCatalog = ServiceLastCatalog();\r\n if (id) {\r\n const URLAuctionCustomerStatus = ServiceAuctionCustomerStatus(id);\r\n GET(URLAuctionCustomerStatus).then((response) => {\r\n if (response) {\r\n setAuctions(response);\r\n GET(URLLastCatalog).then((data) => {\r\n if (data) {\r\n const users = response.find((auction) => auction.idAuction === data.id);\r\n if (users) {\r\n setUserStatusLastCatalog(users.idAuctionCustomerStatus);\r\n }\r\n setLastCatalog(data);\r\n getArticles(data.id);\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n GET(URLLastCatalog).then((data) => {\r\n if (data) {\r\n setLastCatalog(data);\r\n getArticles(data.id);\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (mobile <= 576) {\r\n return (\r\n <div>\r\n <Carousel auctions={auctions} />\r\n <AuctionsCarousel data={lastCatalog} userStatusLastCatalog={userStatusLastCatalog} />\r\n <AuctionsHighlightCarousel data={lastCatalog} articles={articles} />\r\n <Video />\r\n </div>\r\n );\r\n } else {\r\n return (\r\n <div>\r\n <Carousel auctions={auctions} />\r\n <Auctions title=\"Próxima\" title2=\"subasta\" data={lastCatalog} userStatusLastCatalog={userStatusLastCatalog} />\r\n <AuctionsHighlightSection data={lastCatalog} articles={articles} />\r\n <Video />\r\n </div>\r\n );\r\n }\r\n};\r\n","import React from 'react';\r\n\r\nexport const CloseModalIcon = ({ onHandleClick }) => {\r\n return (\r\n <label type='button' onClick={onHandleClick} aria-label='Close'>\r\n <img src='/resources/close.png' alt='close' className='w-50' />\r\n </label>\r\n );\r\n};\r\n","import { createContext, useState } from 'react'\r\n\r\nexport const CaptchaContext = createContext(null)\r\n\r\nexport const CaptchaProvider = ({ children }) => {\r\n const [captchaSiteKey, setCaptchaSiteKey] = useState('')\r\n return (\r\n <CaptchaContext.Provider value={{\r\n captchaSiteKey,\r\n setCaptchaSiteKey,\r\n }}>\r\n {children}\r\n </CaptchaContext.Provider>\r\n )\r\n}\r\n","import React, { useContext, useRef, useState } from 'react'\r\n\r\nimport { POST } from '../../helpers/APIServices';\r\nimport { ServiceLogin } from '../../helpers/getURL';\r\nimport {\r\n CloseModal,\r\n OpenMessage,\r\n restoreInputs,\r\n verifyFieldsRequerid,\r\n validEmail,\r\n setSession,\r\n onlyMail,\r\n changePasswordText,\r\n} from '../Utilities/General';\r\n\r\nimport '../../css/Login/Login.css';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { DataContext } from '../../context/DataContext';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\nimport ReCAPTCHA from 'react-google-recaptcha'\r\nimport { CaptchaContext } from '../../context/CaptchaContext'\r\n\r\nconst Login = () => {\r\n const [inputMail, setinputMail] = useState('');\r\n const [inputPassword, setinputPassword] = useState('');\r\n const [disabledBtn, setdisabledBtn] = useState(false);\r\n const URLLogin = ServiceLogin();\r\n let history = useHistory();\r\n const { pathname = '/', search = '' } = history.location;\r\n const inputs = ['input-mail', 'input-password'];\r\n const { setValidate } = useContext(DataContext);\r\n const { captchaSiteKey } = useContext(CaptchaContext);\r\n const captchaRef = useRef(null);\r\n\r\n const clearState = () => {\r\n setinputMail('');\r\n setinputPassword('');\r\n restoreInputs(inputs);\r\n captchaRef.current?.reset();\r\n CloseModal('modalLogin');\r\n };\r\n\r\n const Logueo = () => {\r\n const validFields = verifyFieldsRequerid(inputs);\r\n\r\n if (!validFields) {\r\n OpenMessage('error', 'Campos obligatorios');\r\n return false;\r\n }\r\n if (!validEmail(inputMail)) {\r\n document.getElementById('input-mail').classList.add('is-invalid');\r\n OpenMessage('error', 'El formato del correo electrónico no es válido');\r\n return false;\r\n }\r\n\r\n const captchaValue = captchaRef.current?.getValue();\r\n if (!captchaValue) {\r\n OpenMessage('error', 'Debe aceptar el captcha');\r\n captchaRef.current.reset();\r\n return false\r\n }\r\n captchaRef.current.reset();\r\n\r\n setdisabledBtn(true);\r\n const params = {\r\n email: inputMail,\r\n password: inputPassword,\r\n captcha: captchaValue,\r\n };\r\n POST(URLLogin, params).then((data) => {\r\n setdisabledBtn(false);\r\n if (data.token) {\r\n setValidate({\r\n valid: false,\r\n registeredAuctions: data.auctions,\r\n idAuction: '',\r\n nameAuction: '',\r\n dateAuction: ' ',\r\n palletAuction: '',\r\n idPallet: '',\r\n onPaymentValidate: false,\r\n });\r\n clearState();\r\n setSession(true, data);\r\n document.getElementById('refreshToken').value = '0';\r\n history.push(`${pathname}${search}`);\r\n } else {\r\n OpenMessage('error', data);\r\n }\r\n });\r\n };\r\n\r\n const enterKey = (keyCode) => {\r\n if (keyCode === 13) {\r\n Logueo();\r\n }\r\n };\r\n\r\n return (\r\n <div className=\"modal\" id=\"modalLogin\" aria-hidden=\"true\" data-bs-backdrop=\"static\" data-bs-keyboard=\"false\">\r\n <div className=\"modal-dialog modal-sm modal-dialog-centered\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-header modal-header-login mt-2 justify-content-end\">\r\n <CloseModalIcon onHandleClick={clearState} />\r\n </div>\r\n <div className=\"modal-body\">\r\n <div className=\"text-center mt-2\">\r\n <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"65%\" />\r\n </div>\r\n <div className=\"text-center mb-4 mt-4\">\r\n <h4 className=\"modal-title fw-bold text-uppercase\">Iniciar Sesión</h4>\r\n </div>\r\n <div className=\"mb-3 form-outline container-input-login\">\r\n <input\r\n type=\"text\"\r\n className=\"form-control\"\r\n id=\"input-mail\"\r\n value={inputMail}\r\n onChange={(e) => setinputMail(e.target.value)}\r\n maxLength=\"80\"\r\n onInput={(e) => onlyMail(e)}\r\n onKeyUp={(e) => enterKey(e.keyCode)}\r\n autoComplete=\"off\"\r\n />\r\n <label htmlFor=\"input-mail\" className=\"form-label\">\r\n Correo electrónico:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n <div className=\"mb-3 form-outline input-group input-password container-input-login\">\r\n <input\r\n type=\"password\"\r\n className=\"form-control\"\r\n id=\"input-password\"\r\n value={inputPassword}\r\n onChange={(e) => setinputPassword(e.target.value)}\r\n maxLength=\"50\"\r\n aria-describedby=\"icon-eyes-login\"\r\n onKeyUp={(e) => enterKey(e.keyCode)}\r\n />\r\n <i className=\"fas fa-eye-slash\" id=\"icon-eyes-login\" onClick={(e) => changePasswordText('input-password', e)}></i>\r\n\r\n <label htmlFor=\"input-password\" className=\"form-label\">\r\n Contraseña:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3 mt-4 justify-content-center\">\r\n <div className=\"col-10 container-captcha\">\r\n {captchaSiteKey && (\r\n <ReCAPTCHA ref={captchaRef} sitekey={captchaSiteKey} />\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"modal-footer modal-header-login\">\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col text-center mb-3\">\r\n <button type=\"button\" className=\"btn btn-outline-secondary btn-lg\" onClick={Logueo} disabled={disabledBtn}>\r\n Iniciar sesión\r\n </button>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col text-center mb-3\">\r\n <a href=\"/recuperarpwd\">¿Olvidó su contraseña?</a>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col text-center mb-4\">\r\n <label>\r\n ¿No eres miembro? \r\n <a href=\"!#\" data-bs-toggle=\"modal\" data-bs-target=\"#modalCheckIn\" onClick={clearState}>\r\n Registrate\r\n </a>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Login;\r\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport NumberFormat from 'react-number-format';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\nimport Select, { components } from 'react-select';\r\n\r\nimport { GET, POST } from '../../helpers/APIServices';\r\nimport {\r\n CloseModal,\r\n OpenMessage,\r\n verifyFieldsRequerid,\r\n validEmail,\r\n validMinMaxDate,\r\n restoreInputs,\r\n validPassword,\r\n setMinMaxDate,\r\n onlyText,\r\n onlyMail,\r\n changePasswordText,\r\n} from '../Utilities/General';\r\nimport { \r\n ServiceClients, \r\n ServiceAllianceCompany\r\n} from '../../helpers/getURL';\r\n\r\nimport '../../css/CheckIn/CheckIn.css';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\n\r\nfunction CheckIn() {\r\n const [inputName, setinputName] = useState('');\r\n const [inputLastName, setinputLastName] = useState('');\r\n const [inputSecondLastName, setinputSecondLastName] = useState('');\r\n const [inputBirthday, setinputBirthday] = useState('');\r\n const [inputMail, setinputMail] = useState('');\r\n const [inputPhone, setinputPhone] = useState('');\r\n const [inputPassword, setinputPassword] = useState('');\r\n const [inputVerifyPassword, setinputVerifyPassword] = useState('');\r\n const [disabledBtn, setdisabledBtn] = useState(true);\r\n const [checked, setChecked] = useState(false);\r\n const URL = ServiceClients();\r\n const [captcha, setCaptcha] = useState(false);\r\n const captchaContact = useRef(null);\r\n const [options, setOptions] = useState([]);\r\n const [alliance, setAlliance] = useState(null);\r\n\r\n useEffect(() => {\r\n setMinMaxDate('input-birthday');\r\n loadAllianceCompanyCatalog();\r\n }, []);\r\n\r\n useEffect(() => {\r\n enableBtn();\r\n }, [alliance]);\r\n\r\n const inputs = [\r\n 'input-nameCheckIn',\r\n 'input-firtsName',\r\n 'input-lastName',\r\n 'input-birthday',\r\n 'input-emailCheckIn',\r\n 'input-phoneCheckIn',\r\n 'input-passwordCheck',\r\n 'input-passwordCheck2',\r\n ];\r\n\r\n const loadAllianceCompanyCatalog = ()=> {\r\n const URLAllianceCompany = ServiceAllianceCompany();\r\n GET(URLAllianceCompany).then((data) => { \r\n if (data === '401') {\r\n return;\r\n }\r\n\r\n let localOptions = [];\r\n data.map((item) => {\r\n localOptions.push({ value: item.id, label: item.name });\r\n return '';\r\n });\r\n //\r\n setOptions(localOptions);\r\n });\r\n }\r\n\r\n const enableBtn = () => {\r\n console.log('Alianza ', alliance);\r\n setdisabledBtn(true);\r\n const chk = document.getElementById('CheckCondition').checked;\r\n\r\n if (\r\n inputName &&\r\n inputLastName &&\r\n inputSecondLastName &&\r\n inputBirthday &&\r\n inputMail &&\r\n inputPhone &&\r\n inputPassword &&\r\n inputVerifyPassword &&\r\n alliance?.value &&\r\n chk\r\n ) {\r\n setdisabledBtn(false);\r\n }\r\n };\r\n\r\n const clearState = () => {\r\n setMinMaxDate('input-birthday');\r\n setinputBirthday('');\r\n setinputName('');\r\n setinputLastName('');\r\n setinputSecondLastName('');\r\n setinputMail('');\r\n setinputPhone('');\r\n setinputPassword('');\r\n setinputVerifyPassword('');\r\n setChecked(false);\r\n restoreInputs(inputs);\r\n CloseModal('modalCheckIn');\r\n setCaptcha(false);\r\n setdisabledBtn(true);\r\n setAlliance(null);\r\n document.getElementById('input-birthday').classList.add('active');\r\n };\r\n\r\n const verifyFields = () => {\r\n const validFields = verifyFieldsRequerid(inputs);\r\n if (!validFields) {\r\n OpenMessage('error', 'Campos obligatorios');\r\n return false;\r\n } else {\r\n if (!validEmail(inputMail)) {\r\n document.getElementById('input-emailCheckIn').classList.add('is-invalid');\r\n OpenMessage('error', 'El formato del correo eléctronico no es válido');\r\n return false;\r\n }\r\n if (!validMinMaxDate('input-birthday')) {\r\n document.getElementById('input-birthday').classList.add('is-invalid');\r\n OpenMessage('error', 'La fecha de nacimiento no es válida');\r\n return false;\r\n }\r\n if (!verifyPassword()) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n };\r\n\r\n const verifyPassword = () => {\r\n const password = ['input-passwordCheck', 'input-passwordCheck2'];\r\n const validFields = verifyFieldsRequerid(password);\r\n if (!validFields) {\r\n return false;\r\n }\r\n const msg = validPassword(inputPassword);\r\n\r\n if (msg) {\r\n OpenMessage('error', msg);\r\n document.getElementById('input-passwordCheck').classList.add('is-invalid');\r\n return false;\r\n }\r\n if (inputPassword !== inputVerifyPassword) {\r\n password.forEach((id) => {\r\n let element = document.getElementById(id);\r\n element.classList.add('is-invalid');\r\n });\r\n OpenMessage('error', 'Las contraseñas no coinciden');\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const onChange = () => {\r\n setCaptcha(true);\r\n enableBtn();\r\n };\r\n\r\n const createUser = () => {\r\n const validFields = verifyFields();\r\n if (!validFields) {\r\n return false;\r\n }\r\n\r\n if (!captcha) {\r\n OpenMessage('error', 'Debe aceptar el captcha');\r\n return false;\r\n }\r\n\r\n if (!checked) {\r\n OpenMessage('error', 'Debe aceptar los términos y condiciones');\r\n return false;\r\n }\r\n\r\n const params = {\r\n Name: inputName,\r\n LastName: inputLastName,\r\n SecondLastName: inputSecondLastName,\r\n Birthdate: inputBirthday,\r\n Phone: inputPhone,\r\n Email: inputMail,\r\n Password: inputPassword,\r\n IdAllianceCompany: alliance.value\r\n };\r\n\r\n POST(URL, params).then((data) => {\r\n setdisabledBtn(true);\r\n if (data === true) {\r\n clearState();\r\n captchaContact.current.props.grecaptcha.reset();\r\n setCaptcha(false);\r\n OpenMessage('success', 'Operación exitosa. Favor de validar su correo para continuar con su registro');\r\n } else {\r\n if (data && data.errors && data.errors.Password.length > 0) {\r\n OpenMessage('error', data.errors.Password[0]);\r\n } else {\r\n OpenMessage('error', data);\r\n }\r\n captchaContact.current.props.grecaptcha.reset();\r\n setCaptcha(false);\r\n }\r\n setdisabledBtn(false);\r\n });\r\n };\r\n\r\n const DropdownIndicator = (props) => {\r\n let icon = 'fas fa-angle-down';\r\n if (props.selectProps.menuIsOpen) {\r\n icon = 'fas fa-search';\r\n }\r\n return (\r\n components.DropdownIndicator && (\r\n <components.DropdownIndicator {...props}>\r\n <i className={icon}></i>\r\n </components.DropdownIndicator>\r\n )\r\n );\r\n };\r\n\r\n return (\r\n <div className=\"modal\" id=\"modalCheckIn\" aria-hidden=\"true\" data-bs-backdrop=\"static\" data-bs-keyboard=\"false\">\r\n <div className=\"modal-dialog modal-sm modal-dialog-centered\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-header modal-header-login mt-2 justify-content-end\">\r\n <CloseModalIcon onHandleClick={clearState} />\r\n </div>\r\n <div className=\"modal-body\">\r\n <div className=\"text-center mb-5\">\r\n <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"65%\" />\r\n </div>\r\n <div className=\"text-center mb-4 mt-4\">\r\n <h4 className=\"modal-title fw-bold text-uppercase\">Registrarse</h4>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-10 form-outline container-input-checkin\">\r\n <input\r\n type=\"text\"\r\n className=\"form-control\"\r\n id=\"input-nameCheckIn\"\r\n value={inputName}\r\n onKeyUp={enableBtn}\r\n onInput={(e) => onlyText(e)}\r\n onChange={(e) => setinputName(e.target.value)}\r\n maxLength=\"50\"\r\n autoComplete=\"off\"\r\n />\r\n <label htmlFor=\"input-nameCheckIn\" className=\"col-form-label form-label\">\r\n Nombre(s):\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-10 form-outline container-input-checkin\">\r\n <input\r\n type=\"text\"\r\n className=\"form-control\"\r\n id=\"input-firtsName\"\r\n value={inputLastName}\r\n onKeyUp={enableBtn}\r\n onInput={(e) => onlyText(e)}\r\n onChange={(e) => setinputLastName(e.target.value)}\r\n maxLength=\"50\"\r\n autoComplete=\"off\"\r\n />\r\n <label htmlFor=\"input-firtsName\" className=\"col-form-label form-label\">\r\n Apellido Paterno:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-10 form-outline container-input-checkin\">\r\n <input\r\n type=\"text\"\r\n className=\"form-control\"\r\n id=\"input-lastName\"\r\n value={inputSecondLastName}\r\n onChange={(e) => setinputSecondLastName(e.target.value)}\r\n onInput={(e) => onlyText(e)}\r\n onKeyUp={enableBtn}\r\n maxLength=\"50\"\r\n autoComplete=\"off\"\r\n />\r\n <label htmlFor=\"input-lastName\" className=\"col-form-label form-label\">\r\n Apellido Materno:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-10 form-outline container-input-checkin\">\r\n <input\r\n type=\"date\"\r\n className=\"form-control active\"\r\n id=\"input-birthday\"\r\n value={inputBirthday}\r\n onKeyUp={enableBtn}\r\n onChange={(e) => setinputBirthday(e.target.value)}\r\n onBlur={(e) => e.target.classList.add('active')}\r\n />\r\n <label htmlFor=\"input-birthday\" className=\"col-form-label form-label\">\r\n Fecha de Nacimiento:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\" style={{ width: '112.8px' }}>\r\n {/* Se deja fijo el estilo porque tiene valor por defecto */}\r\n </div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-10 form-outline container-input-checkin\">\r\n <input\r\n type=\"text\"\r\n className=\"form-control\"\r\n id=\"input-emailCheckIn\"\r\n value={inputMail}\r\n onKeyUp={enableBtn}\r\n onChange={(e) => setinputMail(e.target.value)}\r\n maxLength=\"80\"\r\n onInput={(e) => onlyMail(e)}\r\n autoComplete=\"off\"\r\n />\r\n <label htmlFor=\"input-emailCheckIn\" className=\"col-form-label form-label\">\r\n Correo electrónico:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-10 form-outline container-input-checkin\">\r\n <NumberFormat\r\n format=\"(##) ####-####\"\r\n mask=\"\"\r\n className=\"form-control form-contact\"\r\n id=\"input-phoneCheckIn\"\r\n onKeyUp={enableBtn}\r\n onValueChange={(e) => setinputPhone(e.value)}\r\n value={inputPhone}\r\n autoComplete=\"off\"\r\n />\r\n <label htmlFor=\"input-phoneCheckIn\" className=\"col-form-label form-label\">\r\n Teléfono:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-10 form-outline input-group input-password container-input-checkin\">\r\n <input\r\n type=\"password\"\r\n className=\"form-control\"\r\n id=\"input-passwordCheck\"\r\n value={inputPassword}\r\n onKeyUp={enableBtn}\r\n onChange={(e) => setinputPassword(e.target.value)}\r\n maxLength=\"50\"\r\n aria-describedby=\"icon-eyes-checkin\"\r\n />\r\n <i className=\"fas fa-eye-slash\" id=\"icon-eyes-checkin\" onClick={(e) => changePasswordText('input-passwordCheck', e)}></i>\r\n <label htmlFor=\"input-passwordCheck\" className=\"col-form-label form-label\">\r\n Contraseña:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row mb-3\">\r\n <div className=\"col-10 form-outline container-input-checkin input-group input-password\">\r\n <input\r\n type=\"password\"\r\n className=\"form-control\"\r\n id=\"input-passwordCheck2\"\r\n value={inputVerifyPassword}\r\n onKeyUp={enableBtn}\r\n onChange={(e) => setinputVerifyPassword(e.target.value)}\r\n maxLength=\"50\"\r\n aria-describedby=\"icon-eyes-checkin2\"\r\n />\r\n <i className=\"fas fa-eye-slash\" id=\"icon-eyes-checkin2\" onClick={(e) => changePasswordText('input-passwordCheck2', e)}></i>\r\n <label htmlFor=\"input-passwordCheck2\" className=\"col-form-label form-label\">\r\n Verificar Contraseña:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\" id=\"AQUI\">\r\n \r\n <span className=\"dropdown shadow-0 col-10 p-0 form-outline input-password container-input-checkin\">\r\n <Select\r\n options={options}\r\n isSearchable={true}\r\n onChange={ setAlliance }\r\n placeholder=\"¿Tienes convenio con alguna empresa?\"\r\n value={alliance}\r\n //isDisabled={props.disabled}\r\n //styles={style}\r\n components={{ DropdownIndicator }}\r\n />\r\n </span>\r\n </div>\r\n\r\n <div className=\"mb-3\"></div>\r\n </div>\r\n <div className=\"modal-footer modal-header-login\">\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-9 container-input-checkin\">\r\n <div className=\"form-check\">\r\n <input\r\n className=\"form-check-input\"\r\n type=\"checkbox\"\r\n id=\"CheckCondition\"\r\n onClick={(e) => {\r\n setChecked(e.target.checked);\r\n enableBtn();\r\n }}\r\n checked={checked}\r\n onChange={(e) => {}}\r\n onKeyUp={enableBtn}\r\n />\r\n <label className=\"form-check-label\" htmlFor=\"CheckCondition\">\r\n Acepto todos los \r\n <a href=\"/resources/terminos-y-condiciones-subasta-2021.pdf\" target=\"_blank\" rel=\"noreferrer\">\r\n Términos y condiciones\r\n </a>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3 mt-4 justify-content-center\">\r\n <div className=\"col-10 container-captcha\">\r\n <ReCAPTCHA ref={captchaContact} sitekey=\"6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI\" onChange={onChange} />\r\n </div>\r\n </div>\r\n\r\n <div className=\"row\">\r\n <div className=\"col text-center mb-3 mt-4\">\r\n <button type=\"button\" className=\"btn btn-outline-danger btn-lg\" onClick={createUser} disabled={disabledBtn}>\r\n Crear Cuenta\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default CheckIn;\r\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport { Link, useLocation, useHistory } from 'react-router-dom';\r\n\r\n//Componentes\r\nimport Login from '../Login/Login';\r\nimport CheckIn from '../CheckIn/CheckIn';\r\n\r\n//CSS\r\nimport '../../css/menu.css';\r\n\r\n//helpers\r\nimport { getConfig } from '../../helpers/getConfig';\r\nimport { setSession, validSession, closeMenuMobile, OpenCloseStreaming } from '../Utilities/General';\r\nimport { DataContext } from '../../context/DataContext';\r\nimport { getBillingUrl } from '../../helpers/getConstants';\r\nimport { getDiamondUrl } from '../../helpers/getConstants';\r\n\r\nconst Header = () => {\r\n const [data, setData] = useState([]);\r\n const history = useHistory();\r\n const { search } = useLocation();\r\n const { setValidate } = useContext(DataContext);\r\n const isHome = new URLSearchParams(search).get('home');\r\n const { pathname } = history.location;\r\n const IdAuction = new URLSearchParams(search).get('id');\r\n const billingUrl = getBillingUrl();\r\n const diamondUrl = getDiamondUrl();\r\n\r\n if (isHome) {\r\n window.location.href = '/';\r\n }\r\n\r\n useEffect(() => {\r\n getConfig('header.json').then((data) => {\r\n setData(data);\r\n });\r\n\r\n getConfig('constants.json').then((response) => {\r\n if (response) {\r\n const constants = JSON.stringify(response);\r\n sessionStorage.setItem('constants', constants);\r\n const PROTOCOL = window.location.protocol;\r\n if (response.redirectSSL && PROTOCOL === 'http:') {\r\n const URL = 'https://' + window.location.host + window.location.pathname;\r\n window.location.href = URL;\r\n }\r\n }\r\n });\r\n\r\n const urlServices = sessionStorage.getItem('URLServices');\r\n if (!urlServices || urlServices.length >= 2) {\r\n getConfig('urlServices.json').then((response) => {\r\n const url = JSON.stringify(response);\r\n sessionStorage.setItem('URLServices', url);\r\n });\r\n }\r\n }, []);\r\n\r\n const LOCATION = useLocation();\r\n let aboutActive = '',\r\n auctionActive = '',\r\n catalogActive = '',\r\n servicesActive = '',\r\n contactActive = '',\r\n hideMenu = '',\r\n btnExitStreaming = 'hide';\r\n\r\n const menuActive = () => {\r\n switch (LOCATION.pathname.toLowerCase()) {\r\n case '/quienes-somos':\r\n aboutActive = 'active';\r\n break;\r\n case '/subastas':\r\n auctionActive = 'active';\r\n break;\r\n case '/catalogo':\r\n catalogActive = 'active';\r\n break;\r\n case '/servicios':\r\n servicesActive = 'active';\r\n break;\r\n case '/contacto':\r\n contactActive = 'active';\r\n break;\r\n case '/streaming':\r\n hideMenu = 'hide';\r\n btnExitStreaming = 'show menu__streaming';\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const closeSession = () => {\r\n setValidate({\r\n valid: false,\r\n registeredAuctions: [],\r\n idAuction: '',\r\n nameAuction: '',\r\n dateAuction: '',\r\n palletAuction: '',\r\n idPallet: '',\r\n onPaymentValidate: false,\r\n });\r\n setSession(false, '');\r\n history.push('/?home=true');\r\n };\r\n\r\n const exitStreaming = (path) => {\r\n if (pathname === '/streaming') {\r\n if (path === 'perfil') {\r\n history.push({\r\n search: `?id=${IdAuction}&profile=true`,\r\n });\r\n }\r\n OpenCloseStreaming();\r\n } else {\r\n history.push(`/${path}`);\r\n }\r\n };\r\n const exitStreamingLogOut = (path) => {\r\n if (pathname === '/streaming') {\r\n if (path === 'logout') {\r\n history.push({\r\n search: `?id=${IdAuction}&logout=true`,\r\n });\r\n }\r\n OpenCloseStreaming();\r\n } else {\r\n closeSession();\r\n }\r\n };\r\n\r\n /*useLayoutEffect(() => {\r\n const validToken = () => {\r\n const id = localStorage.getItem('id');\r\n const element = document.getElementById('refreshToken');\r\n const dateExpire = validDateExpire();\r\n\r\n if (dateExpire === -1 && element.value === '0' && id) {\r\n //actualizar TOKEN\r\n element.value = '1'; //valor cambia en el login y en APIServices hay validacion\r\n refreshToken().then((token) => {\r\n if (token === 2) {\r\n setSession(false, '');\r\n OpenMessage('warning', 'Su sesión ha expirado, favor de ingresar nuevamente sus credenciales');\r\n setTimeout(function () {\r\n window.location = './?home=true';\r\n }, 5000);\r\n }\r\n });\r\n }\r\n };\r\n\r\n validToken();\r\n }, []);*/\r\n\r\n validSession();\r\n\r\n menuActive();\r\n const { logo = '' } = data;\r\n\r\n return (\r\n <div className=\"container-header\">\r\n <nav className=\"navbar-expand-sm navbar-light container-menu-primary\">\r\n <div className=\"collapse navbar-collapse justify-content-end\" id=\"menuPrimary\">\r\n <ul className=\"navbar-nav mr-auto container__users\">\r\n <li className=\"nav-item container__users--item hide\">\r\n <a\r\n className=\"nav-link text-uppercase container-menu-primary--login\"\r\n href=\"!#\"\r\n data-bs-toggle=\"modal\"\r\n data-bs-target=\"#modalLogin\"\r\n >\r\n Iniciar sesión\r\n </a>\r\n </li>\r\n <li className=\"nav-item container__users--item hide\">\r\n <a className=\"nav-link\" href=\"!#\" data-bs-toggle=\"modal\" data-bs-target=\"#modalCheckIn\">\r\n <button className=\"btn btn-outline-danger\" type=\"button\">\r\n Registrarse\r\n </button>\r\n </a>\r\n </li>\r\n <li className=\"nav-item container__users--login hide\">\r\n <div className=\"dropdown dropdown-account\">\r\n <a\r\n className=\"btn btn-user dropdown-toggle\"\r\n href=\"!#\"\r\n role=\"button\"\r\n id=\"dropdownMenuLogin\"\r\n data-bs-toggle=\"dropdown\"\r\n aria-expanded=\"false\"\r\n >\r\n <i className=\"fas fa-user-circle\"></i>\r\n <span id=\"userName\">Usuario</span>\r\n </a>\r\n\r\n <ul className=\"dropdown-menu\" aria-labelledby=\"dropdownMenuLogin\">\r\n <li>\r\n <a\r\n href=\"!#\"\r\n className=\"dropdown-item\"\r\n onClick={(e) => {\r\n exitStreaming('perfil');\r\n e.preventDefault();\r\n }}\r\n >\r\n Mi cuenta\r\n </a>\r\n </li>\r\n <li>\r\n <a\r\n href=\"!#\"\r\n className=\"dropdown-item\"\r\n onClick={(e) => {\r\n exitStreamingLogOut('logout');\r\n e.preventDefault();\r\n }}\r\n >\r\n Cerrar Sesión\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </nav>\r\n\r\n <nav className=\"navbar-expand-sm navbar-light\">\r\n <div className=\"navbar-brand\">\r\n <img src={logo} alt=\"logo MLS\" className=\"img-fluid\" onClick={() => exitStreaming('?home=true')} />\r\n </div>\r\n <button id=\"navbarMenu\" className=\"navbar-toggler\" data-bs-toggle=\"collapse\" data-bs-target=\"#menu\">\r\n <i className=\"fas fa-bars\"></i>\r\n </button>\r\n <div className=\"navbar-collapse collapse justify-content-end container-menu\" id=\"menu\">\r\n {/*MENU MOBILE*/}\r\n <div className=\"row mt-4 mb-5 container__menu--secondLogin\">\r\n <div className=\"col-6 text-end container__menu--secondLogin-login loginMobile\">\r\n <a\r\n className=\"nav-link text-uppercase container-menu-primary--login\"\r\n href=\"!#\"\r\n data-bs-toggle=\"modal\"\r\n data-bs-target=\"#modalLogin\"\r\n >\r\n Iniciar sesión\r\n </a>\r\n </div>\r\n <div className=\"col-6 text-start container__menu--secondLogin-register loginMobile\">\r\n <a className=\"nav-link\" href=\"!#\" data-bs-toggle=\"modal\" data-bs-target=\"#modalCheckIn\">\r\n <button className=\"btn btn-outline-danger\" type=\"button\">\r\n Registrarse\r\n </button>\r\n </a>\r\n </div>\r\n </div>\r\n <div className=\"row container__users--secondUser\">\r\n <div className=\"col-12 text-center btn-user loginMobile--items hide\">\r\n <i className=\"fas fa-user-circle\"></i>\r\n <span id=\"userName2\">Usuario</span>\r\n </div>\r\n </div>\r\n <div className=\"row container__users--secondUser\">\r\n <div className=\"col-6 loginMobile--items hide\">\r\n <a\r\n href=\"!#\"\r\n className=\"nav-link text-uppercase container-menu-primary--login\"\r\n onClick={(e) => {\r\n exitStreaming('perfil');\r\n e.preventDefault();\r\n }}\r\n >\r\n Mi perfil\r\n </a>\r\n </div>\r\n <div className=\"col-6 text-start loginMobile--items hide\">\r\n <a\r\n href=\"!#\"\r\n className=\"nav-link text-uppercase container-menu-primary--login\"\r\n onClick={(e) => {\r\n exitStreamingLogOut('logout');\r\n e.preventDefault();\r\n }}\r\n >\r\n Cerrar Sesión\r\n </a>\r\n </div>\r\n </div>\r\n {/*FIN MENU MOBILE*/}\r\n <ul className=\"navbar-nav\">\r\n <li className={'nav-item ' + hideMenu}>\r\n <Link className={'nav-link text-uppercase fw-bold ' + aboutActive} to=\"/quienes-somos\" onClick={() => closeMenuMobile()}>\r\n Quiénes somos\r\n </Link>\r\n </li>\r\n <li className={'nav-item ' + hideMenu}>\r\n <Link className={'nav-link text-uppercase fw-bold ' + auctionActive} to=\"/subastas\" onClick={() => closeMenuMobile()}>\r\n Subastas\r\n </Link>\r\n </li>\r\n <li className={'nav-item ' + hideMenu}>\r\n <Link className={'nav-link text-uppercase fw-bold ' + catalogActive} to=\"/catalogo\" onClick={() => closeMenuMobile()}>\r\n Catálogo\r\n </Link>\r\n </li>\r\n <li className={'nav-item ' + hideMenu}>\r\n <a className='nav-link text-uppercase fw-bold' href={diamondUrl} target=\"_blank\" rel='noreferrer'>\r\n Consignación\r\n </a>\r\n </li>\r\n <li className={'nav-item ' + hideMenu}>\r\n <Link className={'nav-link text-uppercase fw-bold ' + servicesActive} to=\"/servicios\" onClick={() => closeMenuMobile()}>\r\n Servicios\r\n </Link>\r\n </li>\r\n <li className={'nav-item ' + hideMenu}>\r\n <a className='nav-link text-uppercase fw-bold' href={billingUrl} target=\"_blank\" rel='noreferrer'>\r\n Facturación\r\n </a>\r\n </li>\r\n <li className={'nav-item ' + hideMenu}>\r\n <Link className={'nav-link text-uppercase fw-bold ' + contactActive} to=\"/contacto\" onClick={() => closeMenuMobile()}>\r\n Contacto\r\n </Link>\r\n </li>\r\n <li className={'nav-item ' + btnExitStreaming}>\r\n <button className=\"btn btn-outline-danger btn-lg btn-out-streaming\" onClick={() => exitStreaming('?home=true')}>\r\n <i className=\"fas fa-sign-out-alt\"></i>Salir del streaming\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n </nav>\r\n <Login />\r\n <CheckIn />\r\n <input type=\"hidden\" id=\"refreshToken\" value=\"0\" />\r\n </div>\r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { getConfig } from '../../helpers/getConfig';\r\nimport '../../css/footer.css';\r\n\r\nconst FooterMain = () => {\r\n const [data, setData] = useState([]);\r\n const LOCATION = useLocation();\r\n let email = '',\r\n phone1 = '',\r\n phone2 = '',\r\n phone3 = '',\r\n phone4 = '',\r\n desc1 = '',\r\n desc2 = '',\r\n desc3 = '',\r\n desc4 = '',\r\n days = '',\r\n schedule = '',\r\n address = '',\r\n socialMedia = [],\r\n socialKey = 0,\r\n hideFooter = '';\r\n\r\n useEffect(() => {\r\n getConfig('footer2.json').then((data) => setData(data));\r\n }, []);\r\n\r\n if (data && data.footer) {\r\n email = data.footer.email;\r\n phone1 = data.footer.phone1;\r\n phone2 = data.footer.phone2;\r\n phone3 = data.footer.phone3;\r\n phone4 = data.footer.phone4;\r\n desc1 = data.footer.desc1;\r\n desc2 = data.footer.desc2;\r\n desc3 = data.footer.desc3;\r\n desc4 = data.footer.desc4;\r\n days = data.footer.days;\r\n schedule = data.footer.schedule;\r\n address = data.footer.address;\r\n socialMedia = data.footer.socialMedia;\r\n }\r\n\r\n const viewFooter = () => {\r\n if (LOCATION.pathname.toLowerCase() === '/streaming') {\r\n hideFooter = 'hide';\r\n }\r\n };\r\n\r\n viewFooter();\r\n\r\n return (\r\n <footer>\r\n <div className=\"row\">\r\n <section className={hideFooter}>\r\n <div className=\"container text-center text-md-start\">\r\n <div className=\"row container-footer\">\r\n <div className=\"col-12 col-md-4 col-footer\">\r\n <div className=\"row\">\r\n <div className=\"col mb-9\">\r\n <img src=\"./resources/LogoBlanco.svg\" alt=\"logo MLS\" className=\"img-logo-footer img-fluid\" width=\"220px\" />\r\n </div>\r\n </div>\r\n <div className=\"row mb-5\">\r\n <div className=\"col\">\r\n <img src=\"./resources/MLSLogoBlanco.svg\" alt=\"logo MLS\" className=\"img-logo-footer img-fluid\" width=\"220px\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-12 col-md-4 col-footer\">\r\n <div className=\"row mb-4 container-footer__align\">\r\n <div className=\"col-xl-4 col-12\">\r\n <h2 className=\"container-footer-tel\">\r\n <a href={'tel:' + phone1} rel=\"noreferrer\">\r\n <b>{phone1}</b>\r\n </a>\r\n </h2>\r\n </div>\r\n <div className=\"col-xl-8 col-12\">\r\n <h2 className=\"container-footer-tel\">{desc1}</h2>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row mb-4 container-footer__align\">\r\n <div className=\"col-xl-4 col-12\">\r\n <h2 className=\"container-footer-tel\">\r\n <a href={'tel:' + phone2} rel=\"noreferrer\">\r\n <b>{phone2}</b>\r\n </a>\r\n </h2>\r\n </div>\r\n <div className=\"col-xl-8 col-12\">\r\n <h2 className=\"container-footer-tel\">{desc2}</h2>\r\n </div>\r\n </div>\r\n <div className=\"row mb-4 container-footer__align\">\r\n <div className=\"col-xl-4 col-12\">\r\n <h2 className=\"container-footer-tel\">\r\n <a href={'tel:' + phone3} rel=\"noreferrer\">\r\n <b>{phone3}</b>\r\n </a>\r\n </h2>\r\n </div>\r\n <div className=\"col-xl-8 col-12\">\r\n <h2 className=\"container-footer-tel\">{desc3}</h2>\r\n </div>\r\n </div>\r\n <div className=\"row mb-4 container-footer__align\">\r\n <div className=\"col-xl-4 col-12\">\r\n <h2 className=\"container-footer-tel\">\r\n <a href={'tel:' + phone4} rel=\"noreferrer\">\r\n <b>{phone4}</b>\r\n </a>\r\n </h2>\r\n </div>\r\n <div className=\"col-xl-8 col-12\">\r\n <h2 className=\"container-footer-tel\">{desc4}</h2>\r\n </div>\r\n </div>\r\n <p className=\"text-center\">\r\n <a href={`mailto:${email}`} rel=\"noreferrer\" className=\"hover-footer\">\r\n {email}\r\n </a>\r\n </p>\r\n <p className=\"mb-4 fst-italic text-center\">\r\n <label className=\"lbl-direction\">{address}</label>\r\n </p>\r\n\r\n <p className=\"text-center\">\r\n <label>{days}</label>\r\n </p>\r\n <p className=\"text-center\">\r\n <label>{schedule}</label>\r\n </p>\r\n </div>\r\n\r\n <div className=\"col-12 col-md-4 col-footer\">\r\n <a href=\"/resources/terminos-y-condiciones-subasta-2021.pdf\" target=\"_blank\" rel=\"noreferrer\" className=\"hover-footer\">\r\n <h2 className=\"text-center mb-4\">Términos y condiciones</h2>\r\n </a>\r\n <p className=\"text-center\">\r\n <label className=\"mb-4 text-uppercase fw-bold\">Siguenos en:</label>\r\n </p>\r\n <p className=\"text-center\">\r\n {socialMedia.map(({ url, icon }) => {\r\n socialKey++;\r\n return (\r\n <span className=\"mb-4\" key={socialKey}>\r\n <a href={url} target=\"_blank\" rel=\"noreferrer\">\r\n <i className={icon}></i>\r\n </a>\r\n </span>\r\n );\r\n })}\r\n </p>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 text-center\"></div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <div className=\"text-center container-footer2\">\r\n Todos los derechos reservados por MontepÃo Luz Saviñón, I.A.P. | \r\n <a className=\"text-reset fw-bold\" href=\"/resources/aviso-de-privacidad-subastas-2023.pdf\" target=\"_blank\" rel=\"noreferrer\">\r\n Aviso de privacidad\r\n </a>\r\n </div>\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nexport default FooterMain;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { OpenOfferSuccess } from '../Utilities/General';\r\n\r\nexport const CountDownCatalog = ({\r\n startAuctionDate,\r\n endAuctionDate,\r\n classAuction,\r\n onCourseCountDown,\r\n onEndCountDown,\r\n textStatusAuction,\r\n titleColor,\r\n scheduled,\r\n statusAuction\r\n}) => {\r\n const [timerHours, setTimerHours] = useState('00');\r\n const [timerMinutes, setTimerMinutes] = useState('00');\r\n const [timerSeconds, setTimerSeconds] = useState('00');\r\n\r\n let interval = useRef();\r\n\r\n const startTimer = () => {\r\n let countDownDate = startAuctionDate.getTime();\r\n\r\n interval = setInterval(() => {\r\n const now = new Date().getTime();\r\n const status = Math.sign(countDownDate - now);\r\n if (status < 0) {\r\n countDownDate = endAuctionDate;\r\n onCourseCountDown();\r\n }\r\n const distance = countDownDate - now;\r\n let days = Math.floor(distance / (1000 * 60 * 60 * 24));\r\n let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)) + days * 24;\r\n let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n let seconds = Math.floor((distance % (1000 * 60)) / 1000);\r\n if (distance < 0) {\r\n clearInterval(interval);\r\n onEndCountDown();\r\n } else {\r\n if (hours === 0 && minutes === 20 && seconds === 0 && statusAuction === scheduled) {\r\n const message = '<h2>LA SUBASTA ESTà A PUNTO</h2><h2>DE COMENZAR</h2>';\r\n OpenOfferSuccess(message);\r\n }\r\n if (hours < 10) {\r\n hours = '0' + hours;\r\n }\r\n if (minutes < 10) {\r\n minutes = '0' + minutes;\r\n }\r\n if (seconds < 10) {\r\n seconds = '0' + seconds;\r\n }\r\n setTimerHours(hours);\r\n setTimerMinutes(minutes);\r\n setTimerSeconds(seconds);\r\n }\r\n }, 1000);\r\n };\r\n\r\n useEffect(() => {\r\n startTimer();\r\n return () => {\r\n clearInterval(interval);\r\n };\r\n }, []);\r\n return (\r\n <>\r\n <h4 className={`text-center ${titleColor}`}>{textStatusAuction}</h4>\r\n <div className={classAuction}>\r\n <section>\r\n <p>\r\n <img src=\"./resources/Timer@2x.png\" alt=\"\" width=\"30px\" />\r\n </p>\r\n </section>\r\n <section>\r\n <p>{timerHours}</p>\r\n <p>\r\n <small>HORAS</small>\r\n </p>\r\n </section>\r\n <span className=\"separator\">:</span>\r\n <section>\r\n <p>{timerMinutes}</p>\r\n <p>\r\n <small>MINUTOS</small>\r\n </p>\r\n </section>\r\n <span className=\"separator\">:</span>\r\n <section>\r\n <p>{timerSeconds}</p>\r\n <p>\r\n <small>SEGUNDOS</small>\r\n </p>\r\n </section>\r\n </div>\r\n </>\r\n );\r\n};\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\n/* eslint-disable jsx-a11y/no-redundant-roles */\r\nimport React, { useState } from 'react';\r\n\r\nexport const OrderCatalog = (props) => {\r\n const [orders] = useState([\r\n { label: 'Ordenar por', value: '' },\r\n { label: 'Precio: de menor a mayor', value: '01' },\r\n { label: 'Precio: de mayor a menor', value: '02' },\r\n { label: 'Lote: ascendente', value: '03' },\r\n { label: 'Lote: descendente', value: '04' },\r\n { label: 'CategorÃa: ascendente', value: '05' },\r\n { label: 'CategorÃa: descendente', value: '06' },\r\n ]);\r\n\r\n return (\r\n <form>\r\n <div className='dropdown shadow-0'>\r\n <button\r\n className='btn dropdown-toggle drop-element-2 shadow-0'\r\n role='button'\r\n data-mdb-toggle='dropdown'\r\n id='dropdownMenuButton'\r\n aria-expanded='false'\r\n >\r\n {props.searchOrder}\r\n </button>\r\n <ul className='dropdown-menu' aria-labelledby='dropdownMenuButton'>\r\n {orders.map((item, i) => {\r\n return (\r\n <li key={i}>\r\n <a\r\n href='#'\r\n className='dropdown-item drop-items'\r\n onClick={props.handleSelectOrder}\r\n >\r\n {item.label}\r\n </a>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n </form>\r\n );\r\n};\r\n","import React from \"react\";\r\n\r\nexport const PaginationCatalog = (props) => {\r\n let pageLinks = [];\r\n for (let i = 1; i <= props.pages; i++) {\r\n let active = props.currentPage === i ? \"page-active\" : \"\";\r\n pageLinks.push(\r\n <li\r\n className={`page-item`}\r\n key={i}\r\n onClick={(e) => props.nextPage(i)}\r\n >\r\n <button className={`page-link num-pages ${active}`}>{i}</button>\r\n </li>\r\n );\r\n }\r\n if(props.pages > 5 && window.innerWidth < 500){\r\n pageLinks = pageLinks.filter(\r\n (page) =>\r\n parseInt(page.key) >= props.currentPage - 1 &&\r\n parseInt(page.key) <= props.currentPage + 1\r\n );\r\n }\r\n else if (props.pages > 7) {\r\n pageLinks = pageLinks.filter(\r\n (page) =>\r\n parseInt(page.key) >= props.currentPage - 3 &&\r\n parseInt(page.key) <= props.currentPage + 3\r\n );\r\n }\r\n return (\r\n <nav aria-label=\"...\">\r\n <ul className=\"pagination\">\r\n {props.currentPage > 1 ? (\r\n <li\r\n className={`page-item prev-pag`}\r\n onClick={(e) => props.nextPage(props.currentPage - 1)}\r\n >\r\n <button className={`page-link num-pages`} aria-label=\"Previous\">\r\n <i className=\"fas fa-caret-left\"></i>\r\n </button>\r\n </li>\r\n ) : (\r\n \"\"\r\n )}\r\n {props.currentPage > 4 && props.pages > 7&& window.innerWidth > 500 && <li><i className=\"fas fa-ellipsis-h ellipsis\"></i></li>}\r\n {props.currentPage > 2 && props.pages > 5 && window.innerWidth < 500 && <li><i className=\"fas fa-ellipsis-h ellipsis\"></i></li>}\r\n {pageLinks}\r\n {props.currentPage < props.pages - 3 && props.pages > 7 && window.innerWidth > 500 && (\r\n <li><i className=\"fas fa-ellipsis-h ellipsis\"></i></li>\r\n )}\r\n {props.currentPage < props.pages - 1 && props.pages > 5 && window.innerWidth < 500 && (\r\n <li><i className=\"fas fa-ellipsis-h ellipsis\"></i></li>\r\n )}\r\n {props.currentPage < props.pages ? (\r\n <li\r\n className={`page-item next-pag`}\r\n onClick={(e) => props.nextPage(props.currentPage + 1)}\r\n >\r\n <button className={`page-link num-pages`} aria-label=\"Next\">\r\n <i className=\"fas fa-caret-right\"></i>\r\n </button>\r\n </li>\r\n ) : (\r\n \"\"\r\n )}\r\n </ul>\r\n </nav>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport {\r\n formatCurrency,\r\n OpenMessage,\r\n OpenOfferSuccess,\r\n setCart,\r\n validSession,\r\n} from '../Utilities/General';\r\nimport { POST, DELETE, GET } from '../../helpers/APIServices';\r\nimport {\r\n ServiceFavoritesDeletetById,\r\n ServiceFavoritesPost,\r\n ServiceGetNextLotOffer,\r\n ServicePostMaxOfert,\r\n} from '../../helpers/getURL';\r\nimport { Offer } from '../Register/Offer';\r\nimport {\r\n getIdGoldenMinutes,\r\n getUserRejectedStatus,\r\n getAwardLot,\r\n getAvailableLot,\r\n getRetiredLot,\r\n getPaidLot,\r\n} from '../../helpers/getConstants';\r\n\r\nexport const ProductGridItem = (props) => {\r\n const [loading, setLoading] = useState(false);\r\n const [offer, setOffer] = useState(false);\r\n const [offerLot, setOfferLot] = useState(props.offerLot);\r\n const [offerSelected, setOfferSelected] = useState(\r\n props.offerLot?.length > 0 ? props.offerLot[0].precio : props.price\r\n );\r\n const [confirm, setConfirm] = useState(false);\r\n const [statusDescription, setStatusDescription] = useState('');\r\n const [cardColor, setCardColor] = useState('');\r\n const [headerCard, setheaderCard] = useState('');\r\n const [iconLot, setIconLot] = useState('');\r\n const statusRejected = getUserRejectedStatus();\r\n const awardID = getAwardLot().toLowerCase();\r\n const availableID = getAvailableLot();\r\n const retiredID = getRetiredLot();\r\n const paidID = getPaidLot();\r\n const IdCustomer = localStorage.getItem('id');\r\n const actual = 'ACTUAL';\r\n const {\r\n id,\r\n price,\r\n url,\r\n title,\r\n reference,\r\n description,\r\n idAuction,\r\n registered,\r\n favorities,\r\n idPaleta,\r\n idType,\r\n idStatus,\r\n auctionTypes,\r\n auctionStatus,\r\n format,\r\n idLoteStatus,\r\n enablePostSale,\r\n statusCustomer,\r\n clicked,\r\n setClicked,\r\n consigna,\r\n consignaSAP,\r\n finalPrice,\r\n actualLotID,\r\n idClient,\r\n } = props;\r\n\r\n useEffect(() => {\r\n const statusLot =\r\n id === actualLotID &&\r\n idType === auctionTypes.idStreaming &&\r\n idStatus === auctionStatus.execution\r\n ? actual\r\n : idLoteStatus;\r\n //console.log('Lote', id, id =='0fbca6af-7c9b-40f3-a510-72cec305ef9c')\r\n if(id =='0fbca6af-7c9b-40f3-a510-72cec305ef9c') {\r\n console.log('Lote', id)\r\n console.log('statusLot', statusLot)\r\n console.log('idLoteStatus', idLoteStatus)\r\n console.log('Variable', paidID)\r\n console.log('Comparacion', idLoteStatus === paidID)\r\n }\r\n\r\n\r\n switch (statusLot) {\r\n case actual:\r\n setStatusDescription('Estatus: Ahora');\r\n setCardColor('lot-now');\r\n setheaderCard('now-bg');\r\n setIconLot('info2');\r\n break;\r\n case awardID:\r\n if (idClient === IdCustomer) {\r\n setStatusDescription('Estatus: Ganado');\r\n setCardColor('lot-won');\r\n setheaderCard('won-bg');\r\n setIconLot('done2');\r\n } else {\r\n setStatusDescription('Estatus: Vendido');\r\n setCardColor('lot-sold');\r\n setheaderCard('sold-bg');\r\n setIconLot('Group 18329');\r\n }\r\n break;\r\n case availableID:\r\n setStatusDescription('Lote ' + reference);\r\n setCardColor('lot-next');\r\n setheaderCard('next-bg');\r\n setIconLot('minus');\r\n break;\r\n case retiredID:\r\n setStatusDescription('Estatus: Retirado');\r\n setCardColor('lot-retired');\r\n setheaderCard('retired-bg');\r\n setIconLot('cross2');\r\n break;\r\n case paidID:\r\n setStatusDescription('Estatus: Pagado');\r\n setCardColor('lot-paid');\r\n setheaderCard('paid-bg');\r\n setIconLot('done2');\r\n break;\r\n default:\r\n break;\r\n }\r\n }, []);\r\n\r\n const addFavorite = (e) => {\r\n const item = document.getElementById(`favoriteItem-${id}`);\r\n let isFavorite = item.getAttribute('isfavorite');\r\n const idCustomer = localStorage.getItem('id');\r\n if (isFavorite === 'true' ? true : false) {\r\n item.src = './resources/Star6.svg';\r\n item.setAttribute('isfavorite', 'false');\r\n const URLFavoritesDelete = ServiceFavoritesDeletetById(idCustomer);\r\n let url = new URL(URLFavoritesDelete);\r\n let params = {\r\n idLot: id,\r\n };\r\n Object.keys(params).forEach((key) => {\r\n if (!params[key]) {\r\n delete params[key];\r\n }\r\n });\r\n Object.keys(params).forEach((key) => {\r\n url.searchParams.append(key, params[key]);\r\n });\r\n DELETE(url)\r\n .then((data) => {\r\n if (data && typeof data !== 'boolean') {\r\n item.src = './resources/Star4.svg';\r\n item.setAttribute('isfavorite', 'true');\r\n OpenMessage('error', 'Por favor intente nuevamente');\r\n }\r\n })\r\n .catch((err) => {\r\n item.src = './resources/Star4.svg';\r\n item.setAttribute('isfavorite', 'true');\r\n OpenMessage('error', 'Por favor intente nuevamente');\r\n });\r\n } else {\r\n item.src = './resources/Star4.svg';\r\n item.setAttribute('isFavorite', 'true');\r\n const URLFavoritesPost = ServiceFavoritesPost(id);\r\n const params = {\r\n idAuction: idAuction,\r\n idCustomer: idCustomer,\r\n idLot: id,\r\n };\r\n\r\n POST(URLFavoritesPost, params)\r\n .then((data) => {\r\n if (data && typeof data !== 'object') {\r\n item.src = './resources/Star6.svg';\r\n item.setAttribute('isfavorite', 'false');\r\n OpenMessage('error', 'Por favor intente nuevamente');\r\n }\r\n })\r\n .catch((err) => {\r\n item.src = './resources/Star6.svg';\r\n item.setAttribute('isfavorite', 'false');\r\n OpenMessage('error', 'Por favor intente nuevamente');\r\n });\r\n }\r\n };\r\n const handleOffer = (e) => {\r\n e.stopPropagation();\r\n if (statusCustomer.toLowerCase() === statusRejected) {\r\n OpenMessage(\r\n 'warning',\r\n 'Su cuenta se encuentra bloqueada, favor de contactarnos.'\r\n );\r\n } else {\r\n if (offerLot.length <= 0) {\r\n nextLotOffer(price);\r\n } else {\r\n setOfferSelected(offerLot[0].precio);\r\n setOffer(true);\r\n }\r\n }\r\n };\r\n const handleConfirm = () => {\r\n const URLMaxOfert = ServicePostMaxOfert();\r\n const idCliente = localStorage.getItem('id');\r\n const json = {\r\n idAuction,\r\n idLote: id,\r\n idCliente,\r\n idPaleta,\r\n monto: offerSelected,\r\n validado: true,\r\n };\r\n setLoading(true);\r\n POST(URLMaxOfert, json).then((resp) => {\r\n if (resp && typeof resp === 'boolean') {\r\n const message =\r\n '<h2>SU OFERTA HA SIDO</h2><h2>REALIZADA CON ÉXITO.</h2>';\r\n OpenOfferSuccess(message, false);\r\n setConfirm(true);\r\n setLoading(false);\r\n } else if (resp && typeof resp === 'object') {\r\n OpenMessage('error', 'Por favor intente nuevamente.');\r\n setLoading(false);\r\n } else {\r\n OpenMessage('error', resp);\r\n setLoading(false);\r\n }\r\n });\r\n };\r\n const nextLotOffer = (price) => {\r\n setLoading(true);\r\n const lastElement = price ? price : offerLot[offerLot.length - 1].precio;\r\n const URLGetNextOffert = ServiceGetNextLotOffer(\r\n idAuction,\r\n id,\r\n lastElement,\r\n 30\r\n );\r\n GET(URLGetNextOffert).then((data) => {\r\n if (data) {\r\n const nextOfferLot = data.map((price) => {\r\n price.idLote = id;\r\n price.idSubasta = idAuction;\r\n price.incremento = price.increment;\r\n price.precio = price.newPrice;\r\n return price;\r\n });\r\n setOfferLot((prevState) => [...prevState, ...nextOfferLot]);\r\n setOfferSelected(nextOfferLot[0].precio);\r\n setOffer(true);\r\n setLoading(false);\r\n } else {\r\n OpenMessage('error', data);\r\n }\r\n });\r\n };\r\n let img = './resources/Star6.svg';\r\n if (favorities.length > 0)\r\n img = favorities.includes(id)\r\n ? './resources/Star4.svg'\r\n : './resources/Star6.svg';\r\n\r\n const favorite =\r\n validSession() && props.idType !== getIdGoldenMinutes() ? (\r\n <img\r\n src={img}\r\n onClick={() => addFavorite(id)}\r\n isfavorite={favorities.includes(id).toString()}\r\n id={`favoriteItem-${id}`}\r\n alt='favorite'\r\n className='img-fluid'\r\n width='22px'\r\n />\r\n ) : (\r\n ''\r\n );\r\n\r\n const handleScroll = (event) => {\r\n var node = event.target;\r\n const value = node.scrollHeight - node.scrollTop;\r\n const bottom =\r\n Math.floor(value) === node.clientHeight ||\r\n Math.floor(value) === node.clientHeight - 1;\r\n if (bottom && !loading) {\r\n nextLotOffer();\r\n }\r\n };\r\n\r\n const addCartItem = () => {\r\n if (statusCustomer === statusRejected) {\r\n OpenMessage(\r\n 'warning',\r\n 'Su cuenta se encuentra bloqueada, favor de contactarnos.'\r\n );\r\n } else {\r\n let cart = {\r\n IdLot: id,\r\n Order: reference,\r\n Name: title,\r\n Description: description,\r\n Price: price,\r\n Image: url,\r\n consigna: consigna,\r\n consignaSAP: consignaSAP,\r\n IdAuction: idAuction,\r\n };\r\n console.log('cartItem', cart);\r\n props.addCartItem(cart);\r\n setCart(cart);\r\n }\r\n };\r\n if (props.format === 1) {\r\n return (\r\n <div className='col w-md-90 mt-5 slidein'>\r\n <div className={`card h-100 card-products-items ${cardColor}`}>\r\n <div\r\n className={`text-white ${headerCard} d-flex justify-content-center head-lots`}\r\n >\r\n <img\r\n className='py-3'\r\n src={`./resources/${iconLot}.png`}\r\n alt='won'\r\n />\r\n <h4 className='pt-4 px-5 text-uppercase'>{statusDescription}</h4>\r\n </div>\r\n <div className='d-flex justify-content-end p-4'>{favorite}</div>\r\n <div className='container-products-items--img p-0 '>\r\n <img src={url} className='card-img-top img-lot' alt='...' />\r\n </div>\r\n <div className='card-body text-center'>\r\n <p className='container-products-items--title'>{title}</p>\r\n <p className='product-text'>\r\n Lote <span className='article-reference'>{reference}</span>\r\n </p>\r\n {(idLoteStatus === awardID || idLoteStatus === paidID ) && finalPrice >= price ? (\r\n <span className='product-text'>\r\n PRECIO DE VENTA:{' '}\r\n <span className='price-text article-reference'>\r\n {formatCurrency(finalPrice)}\r\n </span>\r\n </span>\r\n ) : (\r\n <span className='product-text'>\r\n PRECIO DE SALIDA:{' '}\r\n <span className='price-text article-reference'>\r\n {formatCurrency(price)}\r\n </span>\r\n </span>\r\n )}\r\n </div>\r\n {registered && (\r\n <div className='card-footer text-center article-footer'>\r\n <Offer\r\n offerLot={offerLot}\r\n format={format}\r\n offer={offer}\r\n setOffer={setOffer}\r\n offerSelected={offerSelected}\r\n setOfferSelected={setOfferSelected}\r\n confirm={confirm}\r\n setConfirm={setConfirm}\r\n handleScroll={handleScroll}\r\n handleOffer={handleOffer}\r\n handleConfirm={handleConfirm}\r\n loading={loading}\r\n idType={idType}\r\n idStatus={idStatus}\r\n auctionTypes={auctionTypes}\r\n auctionStatus={auctionStatus}\r\n idLoteStatus={idLoteStatus}\r\n addCartItem={addCartItem}\r\n enablePostSale={enablePostSale}\r\n clicked={clicked}\r\n setClicked={setClicked}\r\n idLot={id}\r\n />\r\n </div>\r\n )}\r\n <div className='card-footer text-center article-footer'>\r\n <button\r\n className='btn btn-outline-secondary button-eye'\r\n data-mdb-toggle='modal'\r\n data-mdb-target={`#modal${id}`}\r\n onClick={(e) => e.stopPropagation()}\r\n >\r\n <i className='fas fa-eye'></i>\r\n <strong> Detalles</strong>\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n className='modal fade modal-top modal-lot'\r\n id={`modal${id}`}\r\n aria-labelledby='exampleModalLabel'\r\n aria-hidden='true'\r\n >\r\n <div className='modal-dialog modal-dialog-centered'>\r\n <div className='modal-content'>\r\n <div className='modal-body text-center'>\r\n <img src={url} alt='' className='img-fluid h-100' />\r\n </div>\r\n <h4 className='text-desc'>{description}</h4>\r\n <div className='modal-footer'>\r\n <button\r\n type='button'\r\n className='btn btn-outline-danger'\r\n data-mdb-dismiss='modal'\r\n onClick={(e) => e.stopPropagation()}\r\n >\r\n Cerrar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n return (\r\n <div className='col w-md-90 mt-5 slidein'>\r\n <div className={`card mb-3 ${cardColor}`}>\r\n <div\r\n className={`text-white ${headerCard} d-flex justify-content-center head-lots`}\r\n >\r\n <img className='py-3' src={`./resources/${iconLot}.png`} alt='won' />\r\n <h4 className='pt-4 px-5 text-uppercase'>{statusDescription}</h4>\r\n </div>\r\n <div className='row g-0 card-dimension h-100'>\r\n <div className='col-md-4 image-list'>\r\n <img src={url} alt='...' className='img-lot-2' />\r\n </div>\r\n <div className='col-md-8 card-dimension'>\r\n <div className='card-body card-left'>\r\n <div className='d-flex justify-content-end p-4'>{favorite}</div>\r\n <h5 className='text-bottom'>{title}</h5>\r\n <p className='product-text'>\r\n Lote <span className='article-reference'>{reference}</span>\r\n </p>\r\n {idLoteStatus === awardID && finalPrice >= price ? (\r\n <span className='product-text'>\r\n PRECIO DE VENTA:{' '}\r\n <span className='price-text article-reference'>\r\n {formatCurrency(finalPrice)}\r\n </span>\r\n </span>\r\n ) : (\r\n <span className='product-text'>\r\n PRECIO DE SALIDA:{' '}\r\n <span className='price-text article-reference'>\r\n {formatCurrency(price)}\r\n </span>\r\n </span>\r\n )}\r\n <div className='card-body d-flex justify-content-end align-items-center'>\r\n {registered && (\r\n <Offer\r\n offerLot={offerLot}\r\n format={format}\r\n offer={offer}\r\n setOffer={setOffer}\r\n offerSelected={offerSelected}\r\n setOfferSelected={setOfferSelected}\r\n confirm={confirm}\r\n setConfirm={setConfirm}\r\n handleScroll={handleScroll}\r\n handleOffer={handleOffer}\r\n handleConfirm={handleConfirm}\r\n loading={loading}\r\n idType={idType}\r\n idStatus={idStatus}\r\n auctionTypes={auctionTypes}\r\n auctionStatus={auctionStatus}\r\n idLoteStatus={idLoteStatus}\r\n addCartItem={addCartItem}\r\n enablePostSale={enablePostSale}\r\n clicked={clicked}\r\n setClicked={setClicked}\r\n idLot={id}\r\n />\r\n )}\r\n <button\r\n className='btn btn-outline-secondary button-eye float-right'\r\n data-mdb-toggle='modal'\r\n data-mdb-target={`#modal${id}`}\r\n onClick={(e) => e.stopPropagation()}\r\n >\r\n <i className='fas fa-eye'></i>\r\n <strong> Detalles</strong>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n className='modal fade modal-top modal-lot'\r\n id={`modal${id}`}\r\n aria-labelledby='exampleModalLabel'\r\n aria-hidden='true'\r\n >\r\n <div className='modal-dialog modal-dialog-centered'>\r\n <div className='modal-content'>\r\n <div className='modal-body text-center'>\r\n <img src={url} alt='' className='img-fluid h-100' />\r\n </div>\r\n <h4 className='text-desc'>{description}</h4>\r\n <div className='modal-footer'>\r\n <button\r\n type='button'\r\n className='btn btn-outline-danger'\r\n data-mdb-dismiss='modal'\r\n onClick={(e) => e.stopPropagation()}\r\n >\r\n Cerrar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { getImgDefault } from '../../helpers/getConstants';\r\nimport { ProductGridItem } from './ProductGridItem';\r\n\r\nexport const ProductGrid = (props) => {\r\n const handdleAddCartItem = (data) => {\r\n props.addCartItem(data);\r\n };\r\n\r\n const [clicked, setClicked] = useState('');\r\n const [numCards, setNumCards] = useState('row-cols-md-3 g-3');\r\n\r\n const url = getImgDefault();\r\n useEffect(() => {\r\n resizing();\r\n }, []);\r\n\r\n const resizing = () => {\r\n const intFrameWidth = window.innerWidth;\r\n\r\n if (intFrameWidth < 1261) {\r\n setNumCards('row-cols-md-2 g-4');\r\n } else {\r\n setNumCards('row-cols-md-3 g-3');\r\n }\r\n };\r\n\r\n window.onresize = resizing;\r\n\r\n if (props.articles.length > 0) {\r\n return (\r\n <div\r\n className={`row row-cols-1 ${\r\n props.format === 1 ? numCards : 'row-cols-md-12'\r\n }`}\r\n >\r\n {props.articles.map((article) => (\r\n <ProductGridItem\r\n id={article.idLot}\r\n idAuction={props.idAuction}\r\n title={article.name}\r\n description={article.description}\r\n reference={article.order}\r\n consigna={article.consignacion}\r\n consignaSAP={article.consignacionSAP}\r\n url={\r\n article?.imageLote && article?.imageLote\r\n ? article.imageLote\r\n : url\r\n }\r\n price={article.startingPrice}\r\n finalPrice={article.finalPrice}\r\n key={article.idLot}\r\n offerLot={article.lstOffertsLot ? article.lstOffertsLot?.sort(\r\n (a, b) => a.precio - b.precio\r\n ) : []}\r\n format={props.format}\r\n favorities={props.favorities}\r\n registered={props.registered}\r\n idPaleta={props.idPallet}\r\n idType={props.idType}\r\n idStatus={props.idStatus}\r\n auctionTypes={props.auctionTypes}\r\n auctionStatus={props.auctionStatus}\r\n idLoteStatus={article.idLoteStatus}\r\n addCartItem={handdleAddCartItem}\r\n enablePostSale={article.enablePostSale}\r\n statusCustomer={props.statusCustomer}\r\n clicked={clicked}\r\n setClicked={setClicked}\r\n actualLotID={props.actualLotID}\r\n idClient={article.idClient}\r\n />\r\n ))}\r\n </div>\r\n );\r\n } else {\r\n return <h5>No hay registros...</h5>;\r\n }\r\n};\r\n","import React from 'react';\r\n\r\nexport const SearchDescription = (props) => {\r\n return (\r\n <form className='example' action='' onSubmit={props.handleSubmit}>\r\n <input\r\n className='input-element'\r\n type='text'\r\n placeholder='BÚSQUEDA RÃPIDA'\r\n onChange={props.handleChange}\r\n value={props.searchTerm}\r\n />\r\n <button type='submit'>\r\n <i className='fa fa-search'></i>\r\n </button>\r\n </form>\r\n );\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport { pullCart } from '../Utilities/General';\r\nimport { formatCurrency } from '../Utilities/General';\r\n\r\nexport const CartGridItem = (props) => {\r\n const { item } = props;\r\n\r\n const dellCartItem = () => {\r\n props.delCartItem(item);\r\n pullCart(item);\r\n };\r\n\r\n return (\r\n <Fragment>\r\n <div className=\"card mb-3\">\r\n <div className=\"row\">\r\n <div className=\"col-5 col-full text-center-mobile\">\r\n <span className=\"cart-img-center\"></span>\r\n <img src={item.Image} alt=\"...\" className=\"img-fluid cart-img\" />\r\n </div>\r\n <div className=\"col-7 col-full\">\r\n <div className=\"card-body card-left text-center-mobile\">\r\n <h5 className=\"text-bottom\">{item.Name}</h5>\r\n <p className=\"product-text\">\r\n Lote <span className=\"article-reference\">{item.Order}</span>\r\n </p>\r\n <p className=\"product-text\">PRECIO DE SALIDA:</p>\r\n <p className=\"price-text article-reference\">{formatCurrency(item.Price)}</p>\r\n <div className=\"card-footer text-end\">\r\n <i className=\"far fa-trash-alt icon-danger\" onClick={() => dellCartItem()}></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </Fragment>\r\n );\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport { CartGridItem } from './CartGridItem';\r\n\r\n\r\nexport const CartGrid = (props) => {\r\n \r\n const handdleDeleteCartItem = (data) => {\r\n props.delCartItem(data)\r\n }\r\n\r\n return(\r\n <Fragment>\r\n <div>\r\n {props.items.map((item, index) => (\r\n <Fragment key={index}>\r\n { index > 0 && <hr/> }\r\n <CartGridItem\r\n item = { item }\r\n delCartItem = {handdleDeleteCartItem}\r\n />\r\n </Fragment>\r\n ))}\r\n </div>\r\n </Fragment>\r\n );\r\n}","import React, { Fragment } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { CartGrid } from './CartGrid';\r\n\r\nimport '../../css/Menu/Cart.css';\r\nimport { formatCurrency, validDataComplementary } from '../Utilities/General';\r\n\r\nexport const Cart = (props) => {\r\n let history = useHistory();\r\n let cart = props.ShoppingCart;\r\n let idAuction = props.idAuction;\r\n\r\n let total = 0;\r\n\r\n const calculaTotal = () => {\r\n cart.forEach((item) => {\r\n total = total + item.Price;\r\n });\r\n return total;\r\n };\r\n\r\n const handdleDeleteCartItem = (data) => {\r\n props.delCartItem(data);\r\n };\r\n\r\n const shoppingCart = () => {\r\n const valid = validDataComplementary(props.clientData);\r\n props.visible('hide');\r\n if (valid > 0) {\r\n document.getElementById('btnCloseCanvas').click();\r\n const collapseOne = document.getElementById('collapseOne');\r\n const collapseTwo = document.getElementById('collapseTwo');\r\n const headingOne = document.querySelector('#headingOne > button');\r\n const headingTwo = document.querySelector('#headingTwo > button');\r\n\r\n setTimeout(() => {\r\n collapseOne.classList.remove('show');\r\n headingOne.classList.add('collapsed');\r\n collapseTwo.classList.remove('show');\r\n headingTwo.classList.add('collapsed');\r\n }, 500);\r\n\r\n props.visible('show');\r\n let btnDataComplementary = document.getElementById('btnDataComplementary');\r\n btnDataComplementary.click();\r\n } else {\r\n let params = [];\r\n //Los parametros van de acuerdo a los datos que regresa el servicio: /Auctions/Awards/:idAuction\r\n let data = {\r\n descripcionLote: '',\r\n //fechaSubasta: '',\r\n lot: 0,\r\n idLote: '',\r\n idSubasta: idAuction,\r\n images: [],\r\n nombreLote: '',\r\n //nombreSubasta: '',\r\n precioSalida: 0,\r\n consigna: true,\r\n consignaSAP: true,\r\n origin: 'directSale', //campo para diferenciar el origen, si es por catalogo o por adjudicaciones activas\r\n //statusLote: ''\r\n };\r\n for (let i = 0; i < cart.length; i++) {\r\n data.descripcionLote = cart[i].Description;\r\n data.idLote = cart[i].IdLot;\r\n data.images.push(cart[i].Image);\r\n data.nombreLote = cart[i].Name;\r\n data.precioSalida = cart[i].Price;\r\n data.lot = cart[i].Order;\r\n data.consigna = cart[i].consigna;\r\n data.consignaSAP = cart[i].consignaSAP;\r\n params.push(data);\r\n data = {\r\n descripcionLote: '',\r\n lot: 0,\r\n idLote: '',\r\n idSubasta: idAuction,\r\n images: [],\r\n nombreLote: '',\r\n precioSalida: 0,\r\n consigna: true,\r\n consignaSAP: true,\r\n origin: 'directSale',\r\n };\r\n }\r\n\r\n history.push({\r\n pathname: '/carrito-compras',\r\n search: `?modulo=catalogo&id=${idAuction}`,\r\n state: { detail: params, enableInvoice: props.enableInvoice },\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <Fragment>\r\n <div className=\"container container__cart\">\r\n <div className=\"row\">\r\n <div className=\"col-12 text-end\">\r\n <button\r\n id=\"btnCloseCanvas\"\r\n type=\"button\"\r\n className=\"btn-close text-reset cart-close\"\r\n data-bs-dismiss=\"offcanvas\"\r\n aria-label=\"Close\"\r\n ></button>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <h2 className=\"title-sections title-cart text-center\">\r\n \r\n <i className=\"fas fa-cart-arrow-down cart-icon\"></i> Agregado al carrito\r\n </h2>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n <div>\r\n <div className=\"container-fluid overflow-auto cart-container\">\r\n <CartGrid items={cart} delCartItem={handdleDeleteCartItem} />\r\n </div>\r\n </div>\r\n <hr />\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <p className=\"title-sections cart-text text-end\"> CANTIDAD </p>\r\n </div>\r\n <div className=\"col-6\">\r\n <p className=\"title-sections cart-text text-start\">\r\n <span className=\"text-destkop\">{cart.length} ARTÃCULOS</span> <span className=\"text-mobile\">{cart.length} ART.</span>\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <p className=\"title-sections cart-text title-subtotal text-end\"> SUBTOTAL </p>\r\n </div>\r\n <div className=\"col-6\">\r\n <p className=\"price-text title-sections cart-text text-start\"> {formatCurrency(calculaTotal())} </p>\r\n </div>\r\n </div>\r\n <br />\r\n <div className=\"row text-center mb-5\">\r\n <div className=\"col-12\">\r\n <button\r\n type=\"button\"\r\n disabled={cart.length <= 0 ? true : false}\r\n className=\"btn btn-outline-danger\"\r\n onClick={(e) => shoppingCart()}\r\n >\r\n <i className=\"fas fa-dollar-sign\"></i>\r\n Proceder al pago\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </Fragment>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { OpenMessage, validPassword, changePasswordText, setAttributePassword } from '../../Utilities/General';\r\nimport { ServiceChangePassword } from '../../../helpers/getURL';\r\nimport { PUT } from '../../../helpers/APIServices';\r\n\r\nexport const CustomerChangePassword = () => {\r\n const [dataPassword, setDataPassword] = useState('');\r\n const [dataPassword2, setDataPassword2] = useState('');\r\n const [dataShow, setDataShow] = useState('hide');\r\n\r\n const [classInput, setClassInput] = useState('form-control');\r\n const [classPassword, setClassPassword] = useState('fas fa-eye-slash hide');\r\n const [disableInput, setDisableInput] = useState(true);\r\n const [disableCancel, setDisableCancel] = useState(true);\r\n const URLChangePassword = ServiceChangePassword();\r\n\r\n const getData = () => {\r\n setDataPassword('');\r\n setDataPassword2('');\r\n setAttributePassword('input-passwordAccount');\r\n setAttributePassword('input-passwordAccount2');\r\n setDataShow('hide');\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const verifyFieldsRequerid = (elements) => {\r\n let error = false;\r\n elements.forEach((id) => {\r\n let element = document.getElementById(id);\r\n if (!element.value.trim()) {\r\n error = true;\r\n element.classList.add('is-invalid');\r\n } else {\r\n element.classList.remove('is-invalid');\r\n }\r\n });\r\n if (error) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n const verifyPassword = () => {\r\n const password = ['input-passwordAccount', 'input-passwordAccount2'];\r\n const validFields = verifyFieldsRequerid(password);\r\n if (!validFields) {\r\n OpenMessage('error', 'Campos obligatorios');\r\n return false;\r\n }\r\n const msg = validPassword(dataPassword);\r\n\r\n if (msg) {\r\n OpenMessage('error', msg);\r\n document.getElementById('input-passwordAccount').classList.add('is-invalid');\r\n return false;\r\n }\r\n if (dataPassword !== dataPassword2) {\r\n password.forEach((id) => {\r\n let element = document.getElementById(id);\r\n element.classList.add('is-invalid');\r\n });\r\n OpenMessage('error', 'Las contraseñas no coinciden');\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const save = () => {\r\n if (!verifyPassword()) {\r\n return false;\r\n }\r\n const password = {\r\n NewPassword: dataPassword,\r\n };\r\n PUT(URLChangePassword, password).then((response) => {\r\n if (response === true) {\r\n OpenMessage('success');\r\n cancel();\r\n } else {\r\n OpenMessage('error', response);\r\n }\r\n });\r\n };\r\n\r\n const edit = (event) => {\r\n setDataShow('show');\r\n setDisableCancel(false);\r\n let btnEdit = document.getElementById('btnEditPass');\r\n if (btnEdit.innerText === 'GUARDAR') {\r\n save();\r\n } else {\r\n btnEdit.innerHTML = '<i class=\"fas fa-edit\"></i>Guardar';\r\n setDisableInput(false);\r\n setClassInput('form-control enable');\r\n setClassPassword('fas fa-eye-slash');\r\n }\r\n };\r\n\r\n const cancel = () => {\r\n setDisableCancel(true);\r\n setDisableInput(true);\r\n setClassInput('form-control');\r\n let btnEdit = document.getElementById('btnEditPass');\r\n btnEdit.innerHTML = '<i class=\"fas fa-edit\"></i>Cambiar';\r\n setClassPassword('fas fa-eye-slash hide');\r\n getData();\r\n };\r\n\r\n return (\r\n <div>\r\n <br />\r\n <div className=\"mb-3 row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Contraseña</label>\r\n <div className=\"col-sm-6\">\r\n <div className=\"input-group input-password\">\r\n <input\r\n id=\"input-passwordAccount\"\r\n type=\"password\"\r\n disabled={disableInput}\r\n value={dataPassword}\r\n onChange={(e) => setDataPassword(e.target.value)}\r\n className={classInput}\r\n maxLength=\"50\"\r\n aria-describedby=\"icon-eyes-account\"\r\n />\r\n <i className={classPassword} id=\"icon-eyes-account\" onClick={(e) => changePasswordText('input-passwordAccount', e)}></i>\r\n </div>\r\n </div>\r\n <div className=\"col-sm-3\">\r\n <button id=\"btnEditPass\" className=\"btn btn-outline-secondary\" onClick={(e) => edit(e)}>\r\n <i className=\"fas fa-edit\"></i>\r\n Cambiar\r\n </button>\r\n </div>\r\n </div>\r\n <br />\r\n <div className={dataShow}>\r\n <div className=\"mb-3 row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Verificar Contraseña</label>\r\n <div className=\"col-sm-6\">\r\n <div className=\"input-group input-password\">\r\n <input\r\n id=\"input-passwordAccount2\"\r\n type=\"password\"\r\n disabled={disableInput}\r\n value={dataPassword2}\r\n onChange={(e) => setDataPassword2(e.target.value)}\r\n className={classInput}\r\n maxLength=\"50\"\r\n aria-describedby=\"icon-eyes-account2\"\r\n />\r\n <i className={classPassword} id=\"icon-eyes-account2\" onClick={(e) => changePasswordText('input-passwordAccount2', e)}></i>\r\n </div>\r\n </div>\r\n <div className=\"col-sm-3\">\r\n <button className=\"btn btn-outline-danger\" disabled={disableCancel} onClick={cancel}>\r\n <i className=\"fas fa-times\"></i>\r\n Cancelar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport NumberFormat from 'react-number-format';\r\n\r\nimport {\r\n convertToDateFormatEnglish,\r\n setMinMaxDate,\r\n onlyText,\r\n OpenMessage,\r\n validMinMaxDate,\r\n verifyFieldsRequerid,\r\n onlyMail,\r\n validEmail,\r\n} from '../Utilities/General';\r\nimport { ServiceClientData, ServiceUpdateClientData } from '../../helpers/getURL';\r\nimport { GET, PUT } from '../../helpers/APIServices';\r\n\r\nimport { CustomerChangePassword } from './customerData/CustomerChangePass';\r\n\r\nexport const ConfigurationAccount = (props) => {\r\n const [dataName, setDataName] = useState('');\r\n const [dataLastName, setDataLastName] = useState('');\r\n const [dataSecondLastName, setDataSecondLastName] = useState('');\r\n const [dataBirthday, setDataBirthday] = useState('');\r\n const [dataTelefono, setDataTelefono] = useState('');\r\n const [dataCorreo, setDataCorreo] = useState('');\r\n\r\n const [classInput, setClassInput] = useState('form-control');\r\n const [disableInput, setDisableInput] = useState(true);\r\n const [disableCancel, setDisableCancel] = useState(true);\r\n\r\n const URL = ServiceClientData();\r\n const URLClients = ServiceUpdateClientData();\r\n\r\n const getData = () => {\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n\r\n if (data && data.customerGeneralData) {\r\n const generalData = data.customerGeneralData;\r\n const birthday = convertToDateFormatEnglish(generalData.birthday);\r\n setDataName(generalData.name ? generalData.name : '');\r\n setDataLastName(generalData.lastName ? generalData.lastName : '');\r\n setDataSecondLastName(generalData.secondLastName ? generalData.secondLastName : '');\r\n setDataBirthday(birthday ? birthday : '');\r\n setDataCorreo(generalData.email ? generalData.email : '');\r\n setDataTelefono(generalData.phoneNumber ? generalData.phoneNumber : '');\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (props.visible === 'show') {\r\n getData();\r\n setMinMaxDate('input-birthdayAccount');\r\n }\r\n }, [props.visible]);\r\n\r\n const verifyFields = () => {\r\n const inputs = [\r\n 'input-nameAccount',\r\n 'input-lastnameAccount',\r\n 'input-secondlastnameAccount',\r\n 'input-birthdayAccount',\r\n 'input-phoneAccount',\r\n 'input-emailAccount',\r\n ];\r\n\r\n const validFields = verifyFieldsRequerid(inputs);\r\n if (!validFields) {\r\n OpenMessage('error', 'Campos obligatorios');\r\n return false;\r\n } else {\r\n if (!validMinMaxDate('input-birthdayAccount')) {\r\n document.getElementById('input-birthdayAccount').classList.add('is-invalid');\r\n OpenMessage('error', 'La fecha de nacimiento no es válida');\r\n return false;\r\n }\r\n\r\n if (!validEmail(dataCorreo)) {\r\n document.getElementById('input-emailAccount').classList.add('is-invalid');\r\n OpenMessage('error', 'El formato del correo eléctronico no es válido');\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n const updateProfile = () => {\r\n const name = dataName + ' ' + dataLastName;\r\n document.getElementById('userName').innerHTML = name;\r\n localStorage.setItem('userName', name);\r\n };\r\n\r\n const save = () => {\r\n const params = {\r\n idCustomer: localStorage.getItem('id'),\r\n customerGeneralData: {\r\n name: dataName,\r\n lastName: dataLastName,\r\n secondLastName: dataSecondLastName,\r\n birthday: dataBirthday,\r\n phoneNumber: dataTelefono,\r\n email: dataCorreo,\r\n },\r\n };\r\n\r\n if (!verifyFields()) {\r\n return false;\r\n }\r\n\r\n PUT(URLClients, params).then((data) => {\r\n if (data === true) {\r\n OpenMessage('success');\r\n updateProfile();\r\n cancel();\r\n if (props.parent === 'Modal') {\r\n props.close();\r\n }\r\n } else {\r\n OpenMessage('error', data);\r\n }\r\n });\r\n };\r\n\r\n const edit = (event) => {\r\n setDisableCancel(false);\r\n let btnEdit = document.getElementById('btnEdit');\r\n if (btnEdit.innerText === 'GUARDAR') {\r\n save();\r\n } else {\r\n btnEdit.innerHTML = '<i className=\"fas fa-edit\"></i>Guardar';\r\n setDisableInput(false);\r\n setClassInput('form-control enable');\r\n }\r\n };\r\n\r\n const cancel = () => {\r\n setDisableCancel(true);\r\n setDisableInput(true);\r\n setClassInput('form-control');\r\n let btnEdit = document.getElementById('btnEdit');\r\n btnEdit.innerHTML = '<i className=\"fas fa-edit\"></i>Editar';\r\n getData();\r\n };\r\n\r\n return (\r\n <div>\r\n <br />\r\n <div className=\"row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Nombre*</label>\r\n <div className=\"col-sm-8\">\r\n <input\r\n id=\"input-nameAccount\"\r\n type=\"text\"\r\n onInput={(e) => onlyText(e)}\r\n disabled={disableInput}\r\n value={dataName}\r\n onChange={(e) => setDataName(e.target.value)}\r\n className={classInput}\r\n maxLength=\"50\"\r\n />\r\n </div>\r\n </div>\r\n <br />\r\n <div className=\"row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Apellido paterno*</label>\r\n <div className=\"col-sm-8\">\r\n <input\r\n id=\"input-lastnameAccount\"\r\n type=\"text\"\r\n disabled={disableInput}\r\n value={dataLastName}\r\n onChange={(e) => setDataLastName(e.target.value)}\r\n className={classInput}\r\n onInput={(e) => onlyText(e)}\r\n maxLength=\"50\"\r\n />\r\n </div>\r\n </div>\r\n <br />\r\n <div className=\"row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Apellido materno*</label>\r\n <div className=\"col-sm-8\">\r\n <input\r\n id=\"input-secondlastnameAccount\"\r\n type=\"text\"\r\n disabled={disableInput}\r\n value={dataSecondLastName}\r\n onChange={(e) => setDataSecondLastName(e.target.value)}\r\n className={classInput}\r\n onInput={(e) => onlyText(e)}\r\n maxLength=\"50\"\r\n />\r\n </div>\r\n </div>\r\n <br />\r\n <div className=\"mb-5 row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Fecha de nacimiento*</label>\r\n <div className=\"col-sm-8\">\r\n <input\r\n id=\"input-birthdayAccount\"\r\n type=\"date\"\r\n disabled={disableInput}\r\n value={dataBirthday}\r\n onChange={(e) => setDataBirthday(e.target.value)}\r\n className={classInput}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"mb-5 row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Teléfono*</label>\r\n <div className=\"col-sm-8\">\r\n <NumberFormat\r\n id=\"input-phoneAccount\"\r\n format=\"(##) ####-####\"\r\n mask=\"\"\r\n disabled={disableInput}\r\n value={dataTelefono}\r\n onValueChange={(e) => setDataTelefono(e.value)}\r\n className={classInput}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"mb-5 row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Correo electrónico*</label>\r\n <div className=\"col-sm-8\">\r\n <input\r\n id=\"input-emailAccount\"\r\n name=\"input-emailAccount\"\r\n type=\"text\"\r\n disabled\r\n value={dataCorreo}\r\n onChange={(e) => setDataCorreo(e.target.value)}\r\n className={classInput}\r\n maxLength=\"80\"\r\n onInput={(e) => onlyMail(e)}\r\n />\r\n </div>\r\n </div>\r\n <div className={props.parent === 'Modal' ? 'hide' : 'show'}>\r\n <CustomerChangePassword />\r\n </div>\r\n <div className=\"mb-5 row inputs-form\">\r\n <div className=\"col-sm-12 text-end\">\r\n <button className=\"btn btn-outline-danger\" disabled={disableCancel} onClick={cancel}>\r\n <i className=\"fas fa-times\"></i>\r\n Cancelar\r\n </button>\r\n \r\n <button id=\"btnEdit\" className=\"btn btn-outline-secondary\" onClick={(e) => edit(e)}>\r\n <i className=\"fas fa-edit\"></i>\r\n Editar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport Select, { components } from 'react-select';\r\n\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { ServiceNationality } from '../../helpers/getURL';\r\n\r\nexport const SelectNationality = (props) => {\r\n const [style, setStyle] = useState('');\r\n useEffect(() => {\r\n if (props.errors.nationality) {\r\n const styleError = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderColor: 'var(--color-error)',\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: 'var(--color-error)',\r\n }),\r\n };\r\n setStyle(styleError);\r\n } else {\r\n const styleDefault = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderColor: 'hsl(0, 0%, 80%)',\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: 'var(--color-text)',\r\n }),\r\n };\r\n setStyle(styleDefault);\r\n }\r\n }, [props.errors.nationality]);\r\n\r\n const [nationalities, setNationalities] = useState([]);\r\n\r\n useEffect(() => {\r\n const URL = ServiceNationality();\r\n if (URL && props.visible === 'show' && props.mountNationality === true) {\r\n const getData = () => {\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n props.setMountNationality(false);\r\n if (data) {\r\n setNationalities(data);\r\n } else {\r\n setNationalities([]);\r\n }\r\n });\r\n };\r\n getData();\r\n }\r\n }, [props.visible, props.mountNationality]);\r\n\r\n const nationality = (e) => {\r\n props.setNationality(e);\r\n };\r\n\r\n let options = [];\r\n options.push({ value: '', label: 'Nacionalidad:' });\r\n nationalities.map((item) => {\r\n options.push({ value: item.id, label: item.nacionalidad });\r\n return '';\r\n });\r\n const value = options.length === 0 ? { value: '', label: 'Nacionalidad:' } : options.find((obj) => obj.value === props.nacionalidad);\r\n\r\n const DropdownIndicator = (props) => {\r\n let icon = 'fas fa-angle-down';\r\n if (props.selectProps.menuIsOpen) {\r\n icon = 'fas fa-search';\r\n }\r\n return (\r\n components.DropdownIndicator && (\r\n <components.DropdownIndicator {...props}>\r\n <i className={icon}></i>\r\n </components.DropdownIndicator>\r\n )\r\n );\r\n };\r\n\r\n return (\r\n <span className=\"dropdown shadow-0 col-12\">\r\n <Select\r\n options={options}\r\n isSearchable={true}\r\n onChange={(e) => nationality(e.value)}\r\n placeholder=\"Nacionalidad:\"\r\n value={value}\r\n styles={style}\r\n components={{ DropdownIndicator }}\r\n isDisabled={props.disabled}\r\n />\r\n </span>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ServiceGetCountries } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport Select, { components } from 'react-select';\r\n\r\nexport const SelectCountry = (props) => {\r\n const [countries, setCountries] = useState([]);\r\n const [style, setStyle] = useState('');\r\n\r\n useEffect(() => {\r\n const getData = () => {\r\n let URLCountries = ServiceGetCountries();\r\n if (URLCountries) {\r\n GET(URLCountries).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n if (data) {\r\n setCountries(data);\r\n } else {\r\n setCountries([]);\r\n }\r\n });\r\n }\r\n };\r\n getData();\r\n }, [props.address.idPais]);\r\n\r\n useEffect(() => {\r\n if (props.errors.country) {\r\n const styleError = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderColor: 'var(--color-error)',\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: 'var(--color-error)',\r\n }),\r\n };\r\n setStyle(styleError);\r\n } else {\r\n const styleDefault = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderColor: 'hsl(0, 0%, 80%)',\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: 'var(--color-text)',\r\n }),\r\n };\r\n setStyle(styleDefault);\r\n }\r\n }, [props.errors.country]);\r\n\r\n const address = (e) => {\r\n props.setAddress({\r\n ...props.address,\r\n idPais: e,\r\n idEdo: '',\r\n idMun: '',\r\n idCol: '',\r\n });\r\n };\r\n\r\n let options = [];\r\n options.push({ value: '', label: 'PaÃs:' });\r\n countries.map((item) => {\r\n options.push({ value: item.idState, label: item.name });\r\n return '';\r\n });\r\n\r\n const value = options.length === 0 ? { value: '', label: 'PaÃs:' } : options.find((obj) => obj.value === props.address.idPais);\r\n\r\n const DropdownIndicator = (props) => {\r\n let icon = 'fas fa-angle-down';\r\n if (props.selectProps.menuIsOpen) {\r\n icon = 'fas fa-search';\r\n }\r\n return (\r\n components.DropdownIndicator && (\r\n <components.DropdownIndicator {...props}>\r\n <i className={icon}></i>\r\n </components.DropdownIndicator>\r\n )\r\n );\r\n };\r\n\r\n return (\r\n <span className=\"dropdown shadow-0 col-12\">\r\n <Select\r\n id={props.id}\r\n options={options}\r\n isSearchable={true}\r\n onChange={(e) => address(e.value)}\r\n placeholder=\"PaÃs:\"\r\n value={value}\r\n styles={style}\r\n components={{ DropdownIndicator }}\r\n isDisabled={props.disabled ?? true}\r\n />\r\n </span>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ServiceGetState } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport Select, { components } from 'react-select';\r\n\r\nexport const SelectState = (props) => {\r\n const [style, setStyle] = useState('');\r\n useEffect(() => {\r\n if (props.errors.state && props.address.idEdo === '') {\r\n const styleError = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderColor: 'var(--color-error)',\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: 'var(--color-error)',\r\n }),\r\n };\r\n setStyle(styleError);\r\n } else {\r\n const styleDefault = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderColor: 'hsl(0, 0%, 80%)',\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: 'var(--color-text)',\r\n }),\r\n };\r\n setStyle(styleDefault);\r\n }\r\n }, [props.errors.state, props.address.idEdo]);\r\n\r\n const [states, setStates] = useState([]);\r\n\r\n useEffect(() => {\r\n if (props.address.idPais !== 'MX') {\r\n setStates([]);\r\n return;\r\n }\r\n const getData = () => {\r\n let URL = ServiceGetState(props.address.idPais);\r\n if (URL) {\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n if (data) {\r\n setStates(data);\r\n } else {\r\n setStates([]);\r\n }\r\n });\r\n }\r\n };\r\n getData();\r\n }, [props.address.idPais]);\r\n\r\n const address = (e) => {\r\n props.setAddress({\r\n ...props.address,\r\n idEdo: e,\r\n idMun: '',\r\n idCol: '',\r\n });\r\n };\r\n\r\n let options = [];\r\n options.push({ value: '', label: 'Estado:' });\r\n states.map((item) => {\r\n options.push({ value: item.idState, label: item.sState });\r\n return '';\r\n });\r\n const value = options.length === 0 ? { value: '', label: 'Estado:' } : options.find((obj) => obj.value === props.address.idEdo);\r\n\r\n const DropdownIndicator = (props) => {\r\n let icon = 'fas fa-angle-down';\r\n if (props.selectProps.menuIsOpen) {\r\n icon = 'fas fa-search';\r\n }\r\n return (\r\n components.DropdownIndicator && (\r\n <components.DropdownIndicator {...props}>\r\n <i className={icon}></i>\r\n </components.DropdownIndicator>\r\n )\r\n );\r\n };\r\n\r\n return (\r\n <span className=\"dropdown shadow-0 col-12\">\r\n <Select\r\n options={options}\r\n isSearchable={true}\r\n onChange={(e) => address(e.value)}\r\n placeholder=\"Estado:\"\r\n value={value}\r\n isDisabled={props.disabled}\r\n styles={style}\r\n components={{ DropdownIndicator }}\r\n />\r\n </span>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { capitalize } from '../Utilities/General';\r\nimport { ServiceGetTown } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport Select, { components } from 'react-select';\r\n\r\nexport const SelectTown = (props) => {\r\n const [style, setStyle] = useState('');\r\n useEffect(() => {\r\n if (props.errors.town && props.address.idMun === '') {\r\n const styleError = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderColor: 'var(--color-error)',\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: 'var(--color-error)',\r\n }),\r\n };\r\n setStyle(styleError);\r\n } else {\r\n const styleDefault = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderColor: 'hsl(0, 0%, 80%)',\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: 'var(--color-text)',\r\n }),\r\n };\r\n setStyle(styleDefault);\r\n }\r\n }, [props.errors.town, props.address.idMun]);\r\n\r\n const [towns, setTowns] = useState([]);\r\n useEffect(() => {\r\n if (props.address.idPais !== 'MX' || props.address.idEdo === '') {\r\n setTowns([]);\r\n return;\r\n }\r\n\r\n const getData = () => {\r\n let URL = ServiceGetTown(props.address.idEdo);\r\n if (URL) {\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n if (data.length > 0) {\r\n setTowns(data);\r\n }\r\n });\r\n }\r\n };\r\n getData();\r\n }, [props.address.idPais, props.address.idEdo]);\r\n\r\n const address = (e) => {\r\n props.setAddress({\r\n ...props.address,\r\n idMun: e.value,\r\n colonia: e.label,\r\n idCol: '',\r\n });\r\n props.setListCities([]);\r\n };\r\n\r\n let options = [];\r\n options.push({ value: '', label: 'Municipio:' });\r\n towns.map((item) => {\r\n options.push({ value: item.idTown, label: capitalize(item.sTown) });\r\n return '';\r\n });\r\n const value = options.length === 0 ? { value: '', label: 'Municipio:' } : options.find((obj) => obj.value === props.address.idMun);\r\n\r\n const DropdownIndicator = (props) => {\r\n let icon = 'fas fa-angle-down';\r\n if (props.selectProps.menuIsOpen) {\r\n icon = 'fas fa-search';\r\n }\r\n return (\r\n components.DropdownIndicator && (\r\n <components.DropdownIndicator {...props}>\r\n <i className={icon}></i>\r\n </components.DropdownIndicator>\r\n )\r\n );\r\n };\r\n\r\n return (\r\n <span className=\"dropdown shadow-0 col-12\">\r\n <Select\r\n options={options}\r\n isSearchable={true}\r\n onChange={(e) => address(e)}\r\n placeholder=\"Municipio:\"\r\n value={value}\r\n isDisabled={props.disabled}\r\n styles={style}\r\n components={{ DropdownIndicator }}\r\n />\r\n </span>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { capitalize } from '../Utilities/General';\r\nimport { ServiceGetCity } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport Select, { components } from 'react-select';\r\n\r\nexport const SelectCity = (props) => {\r\n const [style, setStyle] = useState('');\r\n useEffect(() => {\r\n if (props.errors.city && props.address.idCol === '') {\r\n const styleError = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderColor: 'var(--color-error)',\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: 'var(--color-error)',\r\n }),\r\n };\r\n setStyle(styleError);\r\n } else {\r\n const styleDefault = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderColor: 'hsl(0, 0%, 80%)',\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: 'var(--color-text)',\r\n }),\r\n };\r\n setStyle(styleDefault);\r\n }\r\n }, [props.errors.city, props.address.idCol]);\r\n\r\n const [cities, setCities] = useState([]);\r\n useEffect(() => {\r\n if (props.address.idPais !== 'MX' || props.address.idEdo === '' || props.address.idMun === '') {\r\n setCities([]);\r\n return;\r\n }\r\n let URL = ServiceGetCity(props.address.idEdo, props.address.idMun);\r\n if (URL) {\r\n const getData = () => {\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n if (data) {\r\n setCities(data);\r\n } else {\r\n setCities([]);\r\n }\r\n });\r\n };\r\n getData();\r\n }\r\n }, [props.address.idPais, props.address.idEdo, props.address.idMun]);\r\n\r\n const address = (e) => {\r\n props.setAddress({\r\n ...props.address,\r\n idCol: e.value,\r\n col: e.label\r\n });\r\n };\r\n\r\n let value;\r\n let options = [];\r\n\r\n options.push({ value: '', label: 'Colonia:' });\r\n if (props.listCities.length > 0) {\r\n props.listCities.map((item) => {\r\n options.push({ value: item.idCity, label: capitalize(item.sCity) });\r\n return '';\r\n });\r\n } else {\r\n cities.map((item) => {\r\n options.push({ value: item.idCity, label: capitalize(item.sCity) });\r\n return '';\r\n });\r\n }\r\n\r\n value = options.length === 0 ? { value: '', label: 'Colonia:' } : options.find((obj) => obj.value === props.address.idCol);\r\n\r\n const DropdownIndicator = (props) => {\r\n let icon = 'fas fa-angle-down';\r\n if (props.selectProps.menuIsOpen) {\r\n icon = 'fas fa-search';\r\n }\r\n return (\r\n components.DropdownIndicator && (\r\n <components.DropdownIndicator {...props}>\r\n <i className={icon}></i>\r\n </components.DropdownIndicator>\r\n )\r\n );\r\n };\r\n\r\n return (\r\n <span className=\"dropdown shadow-0 col-12\">\r\n <Select\r\n id={props.id}\r\n options={options}\r\n isSearchable={true}\r\n onChange={(e) => address(e)}\r\n placeholder=\"Colonia:\"\r\n value={value}\r\n isDisabled={props.disabled}\r\n styles={style}\r\n components={{ DropdownIndicator }}\r\n />\r\n </span>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ServiceEconomicActivity } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport Select, { components } from 'react-select';\r\n\r\nexport const SelectEconomicActivity = (props) => {\r\n const [style, setStyle] = useState('');\r\n\r\n useEffect(() => {\r\n if (props.errors.economicActivity) {\r\n const styleError = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderColor: 'var(--color-error)',\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: 'var(--color-error)',\r\n }),\r\n };\r\n setStyle(styleError);\r\n } else {\r\n const styleDefault = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderColor: 'hsl(0, 0%, 80%)',\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: 'var(--color-text)',\r\n }),\r\n };\r\n setStyle(styleDefault);\r\n }\r\n }, [props.errors.economicActivity]);\r\n\r\n const [activity, setActivity] = useState([]);\r\n useEffect(() => {\r\n const URL = ServiceEconomicActivity();\r\n if (URL && props.visible === 'show' && props.mountEconomicActivity === true) {\r\n const getData = () => {\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n props.setMountEconomicActivity(false);\r\n if (data) {\r\n setActivity(data);\r\n } else {\r\n setActivity([]);\r\n }\r\n });\r\n };\r\n getData();\r\n }\r\n }, [props.visible, props.mountEconomicActivity]);\r\n\r\n const economicActivity = (e) => {\r\n props.setActEconomica(e);\r\n };\r\n\r\n let options = [];\r\n options.push({ value: '', label: 'Actividad Economica:' });\r\n activity.map((item) => {\r\n options.push({ value: item.id, label: item.actividadEconomica });\r\n return '';\r\n });\r\n const value =\r\n options.length === 0 ? { value: '', label: 'Actividad Economica:' } : options.find((obj) => obj.value === props.actEconomica);\r\n\r\n const DropdownIndicator = (props) => {\r\n let icon = 'fas fa-angle-down';\r\n if (props.selectProps.menuIsOpen) {\r\n icon = 'fas fa-search';\r\n }\r\n return (\r\n components.DropdownIndicator && (\r\n <components.DropdownIndicator {...props}>\r\n <i className={icon}></i>\r\n </components.DropdownIndicator>\r\n )\r\n );\r\n };\r\n\r\n return (\r\n <span className=\"dropdown shadow-0 col-12\">\r\n <Select\r\n id={props.id}\r\n options={options}\r\n isSearchable={true}\r\n onChange={(e) => economicActivity(e.value)}\r\n placeholder=\"Actividad Economica:\"\r\n value={value}\r\n styles={style}\r\n components={{ DropdownIndicator }}\r\n isDisabled={props.disabled ?? true}\r\n />\r\n </span>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ServiceGetCountries } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport Select, { components } from 'react-select';\r\n\r\nexport const SelectJustCountry = (props) => {\r\n const [countries, setCountries] = useState([]);\r\n const [style, setStyle] = useState('');\r\n\r\n useEffect(() => {\r\n const getData = () => {\r\n let URLCountries = ServiceGetCountries();\r\n if (URLCountries) {\r\n GET(URLCountries).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n if (data) {\r\n setCountries(data);\r\n } else {\r\n setCountries([]);\r\n }\r\n });\r\n }\r\n };\r\n getData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.errors.countryBirth) {\r\n const styleError = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderColor: 'var(--color-error)',\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: 'var(--color-error)',\r\n }),\r\n };\r\n setStyle(styleError);\r\n } else {\r\n const styleDefault = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderColor: 'hsl(0, 0%, 80%)',\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: 'var(--color-text)',\r\n }),\r\n };\r\n setStyle(styleDefault);\r\n }\r\n }, [props.errors.countryBirth]);\r\n\r\n const country = (e) => {\r\n props.setCountry(e);\r\n };\r\n\r\n let options = [];\r\n options.push({ value: '', label: 'PaÃs:' });\r\n countries.map((item) => {\r\n options.push({ value: item.idState, label: item.name });\r\n return '';\r\n });\r\n\r\n const value = options.length === 0 ? { value: '', label: 'PaÃs:' } : options.find((obj) => obj.value === props.country);\r\n\r\n const DropdownIndicator = (props) => {\r\n let icon = 'fas fa-angle-down';\r\n if (props.selectProps.menuIsOpen) {\r\n icon = 'fas fa-search';\r\n }\r\n return (\r\n components.DropdownIndicator && (\r\n <components.DropdownIndicator {...props}>\r\n <i className={icon}></i>\r\n </components.DropdownIndicator>\r\n )\r\n );\r\n };\r\n\r\n return (\r\n <span className=\"dropdown shadow-0 col-12\">\r\n <Select\r\n id={props.id}\r\n options={options}\r\n isSearchable={true}\r\n onChange={(e) => country(e.value)}\r\n placeholder=\"PaÃs:\"\r\n value={value}\r\n styles={style}\r\n components={{ DropdownIndicator }}\r\n isDisabled={props.disabled ?? true}\r\n />\r\n </span>\r\n );\r\n};\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\nimport NumberFormat from 'react-number-format';\r\nimport {\r\n onlyMail,\r\n OpenMessage,\r\n validEmail,\r\n onlyNumber,\r\n onlyTextNumber,\r\n verifyFieldsRequerid,\r\n validRFC,\r\n validCURP,\r\n onlyTextNumber2,\r\n calcRFC,\r\n} from '../../Utilities/General';\r\nimport { getGuidEmpty } from '../../../helpers/getConstants';\r\nimport { ServiceClientData, ServiceUpdateClientData } from '../../../helpers/getURL';\r\nimport { GET, PUT } from '../../../helpers/APIServices';\r\nimport { SelectNationality } from '../SelectNationality';\r\nimport { SelectCountry } from '../SelectCountry';\r\nimport { SelectState } from '../SelectState';\r\nimport { SelectTown } from '../SelectTown';\r\nimport { SelectCity } from '../SelectCity';\r\nimport { SelectEconomicActivity } from '../SelectEconomicActivity';\r\nimport { SelectJustCountry } from '../SelectJustCountry';\r\nimport { ServiceGetByZipCode } from '../../../helpers/getURL';\r\n\r\nexport const CustomerComplementaryData = (props) => {\r\n //const [clientData, setClientData] = useState();\r\n const [mountNationality, setMountNationality] = useState(false);\r\n const [dataNationality, setDataNationality] = useState('');\r\n const [dataCURP, setDataCURP] = useState('');\r\n const [dataRFC, setDataRFC] = useState('');\r\n const [dataCalle, setDataCalle] = useState('');\r\n const [dataNumero, setDataNumero] = useState('');\r\n const [dataNumeroInt, setDataNumeroInt] = useState('');\r\n\r\n const [dataTelefonoSec, setDataTelefonoSec] = useState('');\r\n const [dataCorreoSec, setDataCorreoSec] = useState('');\r\n\r\n const [mountEconomicActivity, setMountEconomicActivity] = useState(false);\r\n const [dataActEconomica, setDataActEconomica] = useState('');\r\n const [dataPaisNac, setDataPaisNac] = useState('');\r\n\r\n const [classInput, setClassInput] = useState('form-control');\r\n const [disableInput, setDisableInput] = useState(true);\r\n const [disableCancel, setDisableCancel] = useState(true);\r\n const [errors, setErrors] = useState({});\r\n\r\n const [listCities, setListCities] = useState([]);\r\n const idCustomer = localStorage.getItem('id');\r\n\r\n const [address, setAddress] = useState({\r\n id: '00000000-0000-0000-0000-000000000000',\r\n idCustomer: idCustomer,\r\n idPais: 'MX',\r\n idEdo: '',\r\n idMun: '',\r\n idCol: '',\r\n scp: '',\r\n numero: '',\r\n numeroInt: '',\r\n razonSocial: '',\r\n colonia: '',\r\n calle: '',\r\n rfc: '',\r\n alias: '',\r\n referencia: '',\r\n esFisicoMoral: false,\r\n });\r\n const changeCP = (e) => {\r\n setAddress({\r\n ...address,\r\n scp: e.target.value,\r\n });\r\n };\r\n\r\n const verifyCurpRfc = () => {\r\n const inputs = ['input-nameAccount', 'input-lastnameAccount', 'input-secondlastnameAccount', 'input-birthdayAccount'];\r\n let error = false;\r\n inputs.forEach((id) => {\r\n let element = document.getElementById(id).hasAttribute('disabled');\r\n if (!element) {\r\n error = true;\r\n }\r\n });\r\n if (error) {\r\n return;\r\n }\r\n const name = document.getElementById('input-nameAccount').value;\r\n const lastname = document.getElementById('input-lastnameAccount').value;\r\n const secondlastname = document.getElementById('input-secondlastnameAccount').value;\r\n const birthday = document.getElementById('input-birthdayAccount').value;\r\n const value = calcRFC(name, lastname, secondlastname, birthday);\r\n if (value !== dataCURP.substr(0, 10)) {\r\n setDataCURP(value);\r\n }\r\n if (value !== dataRFC.substr(0, 10)) {\r\n setDataRFC(value);\r\n }\r\n };\r\n\r\n const getData = () => {\r\n const URL = ServiceClientData();\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n //setClientData(data);\r\n const { customerContactData } = data;\r\n if (customerContactData) {\r\n setDataNationality(customerContactData.idNationality ? customerContactData.idNationality : '');\r\n setDataRFC(customerContactData.rfc ? customerContactData.rfc : '');\r\n setDataCURP(customerContactData.curp ? customerContactData.curp : '');\r\n setDataTelefonoSec(customerContactData.secondaryPhoneNumber ? customerContactData.secondaryPhoneNumber : '');\r\n setDataCorreoSec(customerContactData.secondaryEmail ? customerContactData.secondaryEmail : '');\r\n setDataCalle(customerContactData.street ? customerContactData.street : '');\r\n setDataNumero(customerContactData.number ? customerContactData.number : '');\r\n setDataNumeroInt(customerContactData.numberInt ? customerContactData.numberInt : '');\r\n\r\n setAddress({\r\n ...address,\r\n id: customerContactData.id ? customerContactData.id : '',\r\n idPais: customerContactData.country ? customerContactData.country : '',\r\n idMun: customerContactData.idTown ? customerContactData.idTown : '',\r\n idEdo: customerContactData.idState ? customerContactData.idState : '',\r\n idCol: customerContactData.idCity ? customerContactData.idCity : '',\r\n colonia: customerContactData.city ? customerContactData.city : '',\r\n scp: customerContactData.zipCode ? customerContactData.zipCode : '',\r\n numero: customerContactData.number ? customerContactData.number : '',\r\n numeroInt: customerContactData.numberInt ? customerContactData.numberInt : '',\r\n calle: customerContactData.street ? customerContactData.street : '',\r\n });\r\n setDataActEconomica(customerContactData.idEconomicActivity !== getGuidEmpty() ? customerContactData.idEconomicActivity : '');\r\n setDataPaisNac(customerContactData.idCountryOfBirth ? customerContactData.idCountryOfBirth : '');\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (props.visible === 'show' && props.load) {\r\n getData();\r\n setMountEconomicActivity(true);\r\n setMountNationality(true);\r\n verifyCurpRfc();\r\n }\r\n }, [props.visible, props.load]);\r\n\r\n const verifySelect = () => {\r\n let valid = true;\r\n let errorSelect = {\r\n country: false,\r\n state: false,\r\n town: false,\r\n city: false,\r\n economicActivity: false,\r\n countryBirth: false,\r\n nationality: false,\r\n };\r\n\r\n if (!address.idPais) {\r\n errorSelect.country = true;\r\n valid = false;\r\n }\r\n\r\n if (!address.idEdo) {\r\n errorSelect.state = true;\r\n valid = false;\r\n }\r\n\r\n if (!address.idMun) {\r\n errorSelect.town = true;\r\n valid = false;\r\n }\r\n\r\n if (!address.idCol) {\r\n errorSelect.city = true;\r\n valid = false;\r\n }\r\n\r\n if (!dataActEconomica) {\r\n errorSelect.economicActivity = true;\r\n valid = false;\r\n }\r\n\r\n if (!dataPaisNac) {\r\n errorSelect.countryBirth = true;\r\n valid = false;\r\n }\r\n\r\n if (!dataNationality) {\r\n errorSelect.nationality = true;\r\n valid = false;\r\n }\r\n\r\n setErrors(errorSelect);\r\n return valid;\r\n };\r\n\r\n const verifyFields = () => {\r\n const inputs = ['input-cp', 'input-calle', 'input-numero', 'input-curp', 'input-rfc'];\r\n const validSelect = verifySelect();\r\n const validFields = verifyFieldsRequerid(inputs);\r\n\r\n if (!validFields || !validSelect) {\r\n OpenMessage('error', 'Campos obligatorios');\r\n return false;\r\n } else {\r\n if (dataCorreoSec && !validEmail(dataCorreoSec)) {\r\n let emailAccountSec = document.getElementById('input-emailAccountSec');\r\n emailAccountSec.classList.add('is-invalid');\r\n OpenMessage('error', 'El formato del correo eléctronico no es válido');\r\n return false;\r\n }\r\n const curp = document.getElementById('input-curp');\r\n if (!validCURP(curp)) {\r\n return false;\r\n }\r\n\r\n const rfc = document.getElementById('input-rfc');\r\n if (!validRFC(rfc, false)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n const save = () => {\r\n const params = {\r\n idCustomer: idCustomer,\r\n customerContactData: {\r\n zipCode: address.scp,\r\n country: address.idPais,\r\n idState: address.idEdo,\r\n idTown: address.idMun,\r\n idCity: address.idCol,\r\n street: dataCalle,\r\n number: dataNumero,\r\n numberInt: dataNumeroInt,\r\n secondaryEmail: dataCorreoSec,\r\n secondaryPhoneNumber: dataTelefonoSec,\r\n idEconomicActivity: dataActEconomica,\r\n idCountryOfBirth: dataPaisNac,\r\n curp: dataCURP,\r\n rfc: dataRFC,\r\n idNationality: dataNationality,\r\n },\r\n };\r\n if (!verifyFields()) {\r\n return false;\r\n }\r\n\r\n const URLUpdate = ServiceUpdateClientData();\r\n PUT(URLUpdate, params).then((data) => {\r\n if (data === true) {\r\n if (props.parent === 'Modal') {\r\n OpenMessage('success');\r\n cancel();\r\n props.close();\r\n } else {\r\n OpenMessage('success');\r\n cancel();\r\n }\r\n } else {\r\n OpenMessage('error', data.title);\r\n }\r\n });\r\n };\r\n\r\n const edit = (event) => {\r\n setDisableCancel(false);\r\n let btnEdit = document.getElementById('btnEditComplementary');\r\n if (btnEdit.innerText === 'GUARDAR') {\r\n save();\r\n } else {\r\n btnEdit.innerHTML = '<i className=\"fas fa-edit\"></i>Guardar';\r\n setDisableInput(false);\r\n setClassInput('form-control enable');\r\n }\r\n };\r\n\r\n const cancel = () => {\r\n const errorSelect = {\r\n country: false,\r\n state: false,\r\n town: false,\r\n city: false,\r\n economicActivity: false,\r\n countryBirth: false,\r\n nationality: false,\r\n };\r\n setErrors(errorSelect);\r\n setDisableCancel(true);\r\n setDisableInput(true);\r\n setClassInput('form-control');\r\n let btnEdit = document.getElementById('btnEditComplementary');\r\n btnEdit.innerHTML = '<i className=\"fas fa-edit\"></i>Editar';\r\n getData();\r\n };\r\n\r\n const getZipCode = () => {\r\n if (address.scp === '') {\r\n return;\r\n }\r\n const URL = ServiceGetByZipCode(address.scp);\r\n GET(URL, address).then((data) => {\r\n if (data === '401') {\r\n getZipCode();\r\n return '';\r\n }\r\n if (data) {\r\n setAddress({\r\n ...address,\r\n idPais: data.state.idCountry,\r\n idMun: data.town.idTown,\r\n idEdo: data.state.idState,\r\n idCol: '',\r\n });\r\n setListCities(data.cities);\r\n } else {\r\n OpenMessage('error', 'Código postal no encontrado');\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <Fragment>\r\n <div className=\"row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Nacionalidad*</label>\r\n <div className=\"col-sm-8\">\r\n <SelectNationality\r\n setNationality={setDataNationality}\r\n nacionalidad={dataNationality}\r\n id={'select-nationality'}\r\n errors={errors}\r\n disabled={disableInput}\r\n visible={props.visible}\r\n setMountNationality={setMountNationality}\r\n mountNationality={mountNationality}\r\n />\r\n </div>\r\n </div>\r\n <br />\r\n <div className=\"row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">CURP*</label>\r\n <div className=\"col-sm-8\">\r\n <input\r\n id=\"input-curp\"\r\n type=\"text\"\r\n disabled={disableInput}\r\n value={dataCURP}\r\n onChange={(e) => setDataCURP(e.target.value.toUpperCase())}\r\n className={'text-uppercase ' + classInput}\r\n onInput={(e) => onlyTextNumber2(e)}\r\n maxLength=\"18\"\r\n />\r\n </div>\r\n </div>\r\n <br />\r\n <div className=\"row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">RFC*</label>\r\n <div className=\"col-sm-8\">\r\n <input\r\n id=\"input-rfc\"\r\n type=\"text\"\r\n disabled={disableInput}\r\n value={dataRFC}\r\n onChange={(e) => setDataRFC(e.target.value.toUpperCase())}\r\n className={'text-uppercase ' + classInput}\r\n onInput={(e) => onlyTextNumber2(e)}\r\n maxLength=\"15\"\r\n />\r\n </div>\r\n </div>\r\n <br />\r\n <div className=\"mb-5 row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">PaÃs*</label>\r\n <div className=\"col-sm-8\">\r\n <SelectCountry setAddress={setAddress} address={address} id={'select-country'} errors={errors} disabled={disableInput} />\r\n </div>\r\n </div>\r\n <div className=\"mb-5 row inputs-form \">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">C.P.*</label>\r\n <div className=\"col-sm-7\">\r\n <input\r\n id=\"input-cp\"\r\n type=\"text\"\r\n onInput={(e) => onlyNumber(e)}\r\n disabled={disableInput}\r\n value={address.scp}\r\n onChange={(e) => changeCP(e)}\r\n className={classInput}\r\n maxLength=\"10\"\r\n />\r\n </div>\r\n <div className=\"col-sm-1\">\r\n <div className=\"form-outline\">\r\n <button className=\"btn btn-outline-secondary btn-lg\" type=\"button\" onClick={() => getZipCode()} disabled={disableInput}>\r\n <i className=\"fas fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"mb-5 row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Estado*</label>\r\n <div className=\"col-sm-8\">\r\n <SelectState setAddress={setAddress} address={address} id={'select-state'} errors={errors} disabled={disableInput} />\r\n </div>\r\n </div>\r\n <div className=\"mb-5 row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Municipio*</label>\r\n <div className=\"col-sm-8\">\r\n <SelectTown\r\n setAddress={setAddress}\r\n address={address}\r\n id={'select-town'}\r\n setListCities={setListCities}\r\n errors={errors}\r\n disabled={disableInput}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"mb-5 row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Colonia*</label>\r\n <div className=\"col-sm-8\">\r\n <SelectCity\r\n setAddress={setAddress}\r\n address={address}\r\n id={'select-city'}\r\n listCities={listCities}\r\n errors={errors}\r\n disabled={disableInput}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Calle*</label>\r\n <div className=\"col-sm-8\">\r\n <input\r\n id=\"input-calle\"\r\n type=\"text\"\r\n disabled={disableInput}\r\n value={dataCalle}\r\n onChange={(e) => setDataCalle(e.target.value)}\r\n className={classInput}\r\n onInput={(e) => onlyTextNumber(e)}\r\n maxLength=\"50\"\r\n />\r\n </div>\r\n </div>\r\n <br />\r\n <div className=\"row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Numero Ext.*</label>\r\n <div className=\"col-sm-3\">\r\n <input\r\n id=\"input-numero\"\r\n type=\"text\"\r\n disabled={disableInput}\r\n value={dataNumero}\r\n onChange={(e) => setDataNumero(e.target.value)}\r\n className={classInput}\r\n onInput={(e) => onlyTextNumber(e)}\r\n maxLength=\"50\"\r\n />\r\n </div>\r\n <label className=\"col-sm-2 col-form-label configuration-profile-labels\">Numero Int.</label>\r\n <div className=\"col-sm-3\">\r\n <input\r\n id=\"input-numero-int\"\r\n type=\"text\"\r\n disabled={disableInput}\r\n value={dataNumeroInt}\r\n onChange={(e) => setDataNumeroInt(e.target.value)}\r\n className={classInput}\r\n onInput={(e) => onlyTextNumber(e)}\r\n maxLength=\"50\"\r\n />\r\n </div>\r\n </div>\r\n <br />\r\n <div className=\"row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Teléfono Secundario</label>\r\n <div className=\"col-sm-8\">\r\n <NumberFormat\r\n id=\"input-phoneAccountSec\"\r\n format=\"(##) ####-####\"\r\n mask=\"\"\r\n disabled={disableInput}\r\n value={dataTelefonoSec}\r\n onValueChange={(e) => setDataTelefonoSec(e.value)}\r\n className={classInput}\r\n />\r\n </div>\r\n </div>\r\n <br />\r\n <div className=\"mb-5 row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Correo electrónico Secundario</label>\r\n <div className=\"col-sm-8\">\r\n <input\r\n id=\"input-emailAccountSec\"\r\n name=\"input-emailAccountSec\"\r\n type=\"text\"\r\n disabled={disableInput}\r\n value={dataCorreoSec}\r\n onChange={(e) => setDataCorreoSec(e.target.value)}\r\n className={classInput}\r\n maxLength=\"80\"\r\n onInput={(e) => onlyMail(e)}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"mb-5 row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Actividad Economica*</label>\r\n <div className=\"col-sm-8\">\r\n <SelectEconomicActivity\r\n setActEconomica={setDataActEconomica}\r\n actEconomica={dataActEconomica}\r\n id={'select-economic-activity'}\r\n errors={errors}\r\n disabled={disableInput}\r\n visible={props.visible}\r\n mountEconomicActivity={mountEconomicActivity}\r\n setMountEconomicActivity={setMountEconomicActivity}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"mb-5 row inputs-form\">\r\n <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Pais de Nacimiento*</label>\r\n <div className=\"col-sm-8\">\r\n <SelectJustCountry\r\n setCountry={setDataPaisNac}\r\n country={dataPaisNac}\r\n id={'select-birth-coutry'}\r\n errors={errors}\r\n disabled={disableInput}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"mb-5 row inputs-form\">\r\n <div className=\"col-sm-12 text-end\">\r\n <button className=\"btn btn-outline-danger\" disabled={disableCancel} onClick={cancel}>\r\n <i className=\"fas fa-times\"></i>\r\n Cancelar\r\n </button>\r\n \r\n <button id=\"btnEditComplementary\" className=\"btn btn-outline-secondary\" onClick={(e) => edit(e)}>\r\n <i className=\"fas fa-edit\"></i>\r\n Editar\r\n </button>\r\n </div>\r\n </div>\r\n </Fragment>\r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { ConfigurationAccount } from '../ConfigurationAccount';\r\nimport { CustomerComplementaryData } from './CustomerComplementaryData';\r\n\r\nexport const CustomerData = (props) => {\r\n const [load, setLoad] = useState(false);\r\n const cerrarModal = () => {\r\n props.close();\r\n };\r\n useEffect(() => {\r\n const collapseOne = document.getElementById('collapseOne');\r\n const collapseTwo = document.getElementById('collapseTwo');\r\n const headingOne = document.querySelector('#headingOne > button');\r\n const headingTwo = document.querySelector('#headingTwo > button');\r\n\r\n collapseOne.classList.add('show');\r\n headingOne.classList.remove('collapsed');\r\n collapseTwo.classList.remove('show');\r\n headingTwo.classList.add('collapsed');\r\n }, [props]);\r\n\r\n return (\r\n <div className={props.visible}>\r\n <div className=\"accordion\" id={props.parent}>\r\n <div className=\"accordion-item\">\r\n <h1 className=\"accordion-header\" id=\"headingOne\">\r\n <button\r\n className=\"accordion-button profile-title\"\r\n type=\"button\"\r\n data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#collapseOne\"\r\n aria-expanded=\"true\"\r\n aria-controls=\"collapseOne\"\r\n onClick={(e) => setLoad(false)}\r\n >\r\n Datos Generales\r\n </button>\r\n </h1>\r\n <div\r\n id=\"collapseOne\"\r\n className=\"accordion-collapse collapse show\"\r\n aria-labelledby=\"headingOne\"\r\n data-bs-parent={'#' + props.parent}\r\n >\r\n <ConfigurationAccount parent={props.parent} close={cerrarModal} visible={props.visible} />\r\n </div>\r\n </div>\r\n <div className=\"accordion-item\">\r\n <h1 className=\"accordion-header\" id=\"headingTwo\">\r\n <button\r\n className=\"accordion-button profile-title\"\r\n type=\"button\"\r\n data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#collapseTwo\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"collapseTwo\"\r\n onClick={(e) => setLoad(!load)}\r\n >\r\n Datos Complementarios\r\n </button>\r\n </h1>\r\n <div id=\"collapseTwo\" className=\"accordion-collapse collapse\" aria-labelledby=\"headingTwo\" data-bs-parent={'#' + props.parent}>\r\n <div className=\"accordion-body\">\r\n <CustomerComplementaryData parent={props.parent} close={cerrarModal} visible={props.visible} load={load} />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { CloseModal } from '../../Utilities/General';\r\n\r\nimport { CustomerData } from './CustomerData';\r\n\r\nexport const ModalCustomerData = (props) => {\r\n const clearForm = (e) => {\r\n props.updateData();\r\n CloseModal('modalCustomerData');\r\n };\r\n\r\n return (\r\n <div className=\"modal container__modaladress\" id=\"modalCustomerData\" data-bs-backdrop=\"static\" data-bs-keyboard=\"false\">\r\n <div className=\"modal-dialog modal-lg modal-dialog-centered\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-header modal-header-login \">\r\n <button type=\"button\" className=\"btn-close\" aria-label=\"Close\" onClick={(e) => clearForm(e)}></button>\r\n </div>\r\n <div className=\"modal-header modal-header-login \">\r\n <strong>Complete su informacion personal para continuar con su proceso</strong>\r\n </div>\r\n <div className=\"modal-body\">\r\n <CustomerData visible={props.visible} parent=\"Modal\" close={clearForm} />\r\n </div>\r\n <div className=\"modal-footer\">\r\n <div className=\"container-fluid\">\r\n <div className=\"mb-3 row inputs-form\">\r\n <div className=\"col-7 text-end\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nexport const FiltersCatalog = ({\r\n idSection = '',\r\n title = '',\r\n filters = [],\r\n getByChecks,\r\n}) => {\r\n const [displayed, setDisplayed] = useState(true);\r\n const [arrayFilters, setArrayFilters] = useState(filters);\r\n\r\n const onCheckFilter = (idFilter) => {\r\n const filterSections = arrayFilters.map((filter) => {\r\n if (idFilter === filter.id) {\r\n filter.value = filter.value ? null : true;\r\n }\r\n return filter;\r\n });\r\n setArrayFilters(filterSections);\r\n getByChecks(filterSections, idSection, arrayFilters);\r\n };\r\n\r\n useEffect(() => {\r\n setArrayFilters(filters);\r\n }, [arrayFilters]);\r\n\r\n if (filters.length > 0) {\r\n return (\r\n <div className='mt-5'>\r\n <div\r\n className='row d-flex justify-content-center pt-5 pb-3 title-cat-section'\r\n onClick={(e) => setDisplayed(!displayed)}\r\n >\r\n <div className='col'>\r\n <h3 className='title-cats'>{title}</h3>\r\n </div>\r\n <div className='col text-end'>\r\n <img\r\n src={`./resources/arrow_drop_${displayed ? 'down' : 'up'}.png`}\r\n alt='arrow'\r\n className='arrows'\r\n />\r\n </div>\r\n </div>\r\n {displayed && (\r\n <div className='row mt-4 px-3 scroll-cats'>\r\n {arrayFilters.map((filter) => (\r\n <div className='form-check d-flex' key={filter.id}>\r\n <input\r\n id={filter.id}\r\n className='form-check-input input-check-cat'\r\n type='checkbox'\r\n onClick={(e) => onCheckFilter(filter.id)}\r\n checked={filter.value ? true : false}\r\n onChange={(e) => {}}\r\n />\r\n <label\r\n className='form-check-label filter-label'\r\n htmlFor='flexCheckDefault'\r\n >\r\n {filter.description}{' '}\r\n <span className='font-weight-normal'>({filter.items})</span>\r\n </label>\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n return null;\r\n};\r\n","import React, { useCallback, useEffect, useState, useRef } from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport '../../css/Menu/PriceFilter.css';\r\nimport CurrencyInput from 'react-currency-input-field';\r\n\r\nexport const PriceFilter = ({ min, max, getByPrice, cleanPrice }) => {\r\n const [displayed, setDisplayed] = useState(true);\r\n const [minVal, setMinVal] = useState(min);\r\n const [maxVal, setMaxVal] = useState(max);\r\n\r\n const minValRef = useRef(null);\r\n const maxValRef = useRef(null);\r\n const range = useRef(null);\r\n\r\n // Convertir a porcentaje\r\n const getPercent = useCallback(\r\n (value) => Math.round(((value - min) / (max - min)) * 100),\r\n [min, max]\r\n );\r\n useEffect(() => {\r\n cleanPrice.current = clean;\r\n }, []);\r\n\r\n const clean = () => {\r\n setMinVal(min);\r\n setMaxVal(max);\r\n };\r\n\r\n // Establecer el ancho del rango para disminuir desde el lado izquierdo\r\n useEffect(() => {\r\n if (maxValRef.current) {\r\n const minPercent = getPercent(minVal);\r\n const maxPercent = getPercent(+maxValRef.current.value); // Precediendo con '+' Convierte el valor de tipo string a numero\r\n\r\n if (range.current) {\r\n range.current.style.left = `${minPercent}%`;\r\n range.current.style.width = `${maxPercent - minPercent}%`;\r\n }\r\n }\r\n }, [minVal, getPercent]);\r\n\r\n //Establecer el ancho del rango para disminuir del lado derecho\r\n useEffect(() => {\r\n if (minValRef.current) {\r\n const minPercent = getPercent(+minValRef.current.value);\r\n const maxPercent = getPercent(maxVal);\r\n\r\n if (range.current) {\r\n range.current.style.width = `${maxPercent - minPercent}%`;\r\n }\r\n }\r\n }, [maxVal, getPercent]);\r\n\r\n return (\r\n <div className='mt-5'>\r\n <div\r\n className='row d-flex justify-content-center pt-5 pb-3 title-cat-section mb-5'\r\n onClick={() => setDisplayed(!displayed)}\r\n >\r\n <div className='col'>\r\n <h3 className='title-cats'>Precio</h3>\r\n </div>\r\n <div className='col text-end'>\r\n <img\r\n src={`./resources/arrow_drop_${displayed ? 'down' : 'up'}.png`}\r\n alt='arrow'\r\n className='arrows'\r\n />\r\n </div>\r\n </div>\r\n {displayed && (\r\n <div>\r\n <input\r\n type='range'\r\n min={min}\r\n max={max}\r\n value={minVal}\r\n ref={minValRef}\r\n onChange={(event) => {\r\n const value = Math.min(+event.target.value, maxVal - 1);\r\n setMinVal(value);\r\n event.target.value = value.toString();\r\n }}\r\n onMouseUp={(e) => getByPrice(e.target.value, maxVal)}\r\n className={classnames('thumb thumb--zindex-3', {\r\n 'thumb--zindex-5': minVal > max - 100,\r\n })}\r\n />\r\n <input\r\n type='range'\r\n min={min}\r\n max={max}\r\n value={maxVal}\r\n ref={maxValRef}\r\n onChange={(event) => {\r\n const value = Math.max(+event.target.value, minVal + 1);\r\n setMaxVal(value);\r\n event.target.value = value.toString();\r\n }}\r\n onMouseUp={(e) => getByPrice(minVal, e.target.value)}\r\n className='thumb thumb--zindex-4'\r\n />\r\n <div className='slider'>\r\n <div className='slider__track' />\r\n <div ref={range} className='slider__range' />\r\n </div>\r\n <div className='row pt-5 text-center fw-bold price-container'>\r\n <CurrencyInput\r\n id='start-currency-filter'\r\n name='input-currency'\r\n className='price-box price-item'\r\n prefix='$'\r\n placeholder='Precio mÃnimo'\r\n defaultValue={minVal}\r\n value={minVal}\r\n decimalsLimit={2}\r\n maxLength={9}\r\n onValueChange={(value) =>\r\n value === '0' ? setMinVal(1) : setMinVal(value)\r\n }\r\n allowNegativeValue={false}\r\n />\r\n <div className='fs-4 pt-3 price-item'>A</div>{' '}\r\n <CurrencyInput\r\n id='end-currency-filter'\r\n name='input-currency'\r\n className='price-box price-item'\r\n prefix='$'\r\n placeholder='Precio máximo'\r\n defaultValue={maxVal}\r\n value={maxVal}\r\n decimalsLimit={2}\r\n maxLength={9}\r\n onValueChange={(value) =>\r\n value === '0' ? setMaxVal(1) : setMaxVal(value)\r\n }\r\n allowNegativeValue={false}\r\n />\r\n </div>\r\n <div className='row mt-3'>\r\n <button\r\n className='btn btn-outline-gold fs-5'\r\n onClick={(e) => getByPrice(minVal, maxVal)}\r\n >\r\n <i className={'fas fa-check-circle'}></i>\r\n <strong> Aplicar</strong>\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nPriceFilter.propTypes = {\r\n min: PropTypes.number.isRequired,\r\n max: PropTypes.number.isRequired,\r\n};\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {\r\n Fragment,\r\n useContext,\r\n useEffect,\r\n useState,\r\n useRef,\r\n} from 'react';\r\nimport { DataContext } from '../../context/DataContext';\r\n//CSS\r\nimport '../../css/Menu/Catalog.css';\r\n\r\nimport { GET, POST } from '../../helpers/APIServices';\r\nimport {\r\n ServiceAuctionById,\r\n ServiceAuctionCustomerStatus,\r\n ServiceFavoritesGetById,\r\n ServiceLastCatalog,\r\n ServiceClientData,\r\n ServiceGenericParameters,\r\n ServiceLotCatalogByAuctionFilter,\r\n} from '../../helpers/getURL';\r\nimport { ButtonRegister } from '../Register/ButtonRegister';\r\nimport { ButtonToStreaming } from '../Register/ButtonToStreaming';\r\nimport {\r\n convertToDate,\r\n OpenOfferSuccess,\r\n validSession,\r\n getCart,\r\n OpenMessage,\r\n} from '../Utilities/General';\r\nimport { CountDownCatalog } from './CountDownCatalog';\r\nimport {\r\n getIdStreaming,\r\n getExecution,\r\n getIdGoldenMinutes,\r\n getScheduled,\r\n getDirectSale,\r\n getPartialClosure,\r\n getPartialTotal,\r\n getPriceFilterID,\r\n} from '../../helpers/getConstants';\r\n\r\n//Componentes\r\nimport { OrderCatalog } from './OrderCatalog';\r\nimport { PaginationCatalog } from './PaginationCatalog';\r\nimport { ProductGrid } from './ProductGrid';\r\nimport { SearchDescription } from './SearchDescription';\r\nimport { Cart } from './Cart';\r\nimport { ModalCustomerData } from '../Profile/customerData/ModalCustomerData';\r\nimport { FiltersCatalog } from './FiltersCatalog';\r\nimport { PriceFilter } from './PriceFilter';\r\n\r\nconst Catalog = (props) => {\r\n const [visibleModal, setVisibleModal] = useState('hide');\r\n const [clientData, setClientData] = useState({});\r\n const [state, setState] = useState({\r\n articles: [],\r\n auctionName: '',\r\n auctionDate: new Date(),\r\n searchTerm: '',\r\n searchCategory: 'CategorÃa',\r\n searchOrder: 'Ordenar por', //por default\r\n selectedCategory: '',\r\n selectedOrder: '00',\r\n totalResults: 0,\r\n filterItems: 0,\r\n numberPages: 0,\r\n currentPage: 1,\r\n itemsPerPage: 50,\r\n catalog: {},\r\n filsers: {},\r\n perPageOptions: [\r\n { value: 50 },\r\n { value: 100 },\r\n { value: 200 },\r\n { value: 500 },\r\n ],\r\n format: 1,\r\n pallet: 0,\r\n isStreaming: false,\r\n idPallet: '',\r\n exibitionDate: new Date(),\r\n eventEndDate: new Date(),\r\n textStatusAuction: 'COMIENZA EN:',\r\n classAuction: 'timer-course',\r\n titleColor: 'title-auction-start',\r\n idType: '',\r\n idStatus: '',\r\n idAuction: '',\r\n shopingCart: [],\r\n minPrice: 0,\r\n maxPrice: 0,\r\n filterSections: [],\r\n priceSection: {},\r\n atualLot: '',\r\n });\r\n const [favorities, setFavorities] = useState([]);\r\n const [loading, setLoading] = useState(true);\r\n const [statusCustomer, setStatusCustomer] = useState('');\r\n const [enableInvoice, setEnableInvoice] = useState(true);\r\n\r\n const IdCustomer = localStorage.getItem('id');\r\n const {\r\n validate: { registeredAuctions, idPallet },\r\n } = useContext(DataContext);\r\n const auctionTypes = {\r\n idStreaming: getIdStreaming(),\r\n idGoldenMinutes: getIdGoldenMinutes(),\r\n };\r\n\r\n const auctionStatus = {\r\n scheduled: getScheduled(),\r\n execution: getExecution(),\r\n directSale: getDirectSale(),\r\n partialClosure: getPartialClosure(),\r\n partialTotal: getPartialTotal(),\r\n };\r\n\r\n const priceFilterID = getPriceFilterID();\r\n const cleanPrice = useRef(null);\r\n\r\n const getIsStreaming = (idAuction) => {\r\n const auctionValue = registeredAuctions.find(\r\n (auction) => auction.idAuction === idAuction\r\n );\r\n if (auctionValue) {\r\n setState((prevState) => ({\r\n ...prevState,\r\n pallet: auctionValue.pallet,\r\n isStreaming: auctionValue.streaming,\r\n idPallet: auctionValue.idPallet,\r\n }));\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getClientData();\r\n if (idPallet) {\r\n setState((prevState) => ({\r\n ...prevState,\r\n idStatus: '',\r\n }));\r\n getCatalog();\r\n }\r\n }, [idPallet]);\r\n\r\n useEffect(() => {\r\n if (IdCustomer) {\r\n setState((prevState) => ({\r\n ...prevState,\r\n idStatus: '',\r\n }));\r\n getCatalog();\r\n }\r\n }, [IdCustomer]);\r\n\r\n useEffect(() => {\r\n const constants = JSON.parse(sessionStorage.getItem('constants'));\r\n if (constants && constants.enableInvoice) {\r\n const URL = ServiceGenericParameters(constants.enableInvoice);\r\n GET(URL).then((data) => {\r\n if (data && data.value) {\r\n const isTrue = data.value.toLowerCase() === 'true';\r\n setEnableInvoice(isTrue);\r\n }\r\n });\r\n }\r\n }, []);\r\n\r\n const checkStatus = (auctions, id) => {\r\n let value = '';\r\n if (auctions.length > 0) {\r\n const users = auctions.find((auction) => auction.idAuction === id);\r\n if (users) {\r\n value = users.idAuctionCustomerStatus;\r\n }\r\n }\r\n return value;\r\n };\r\n\r\n const getBySP = (auctions = []) => {\r\n let textStatusAuction = 'COMIENZA EN:';\r\n let classAuction = 'timer-course';\r\n let titleColor = 'title-auction-start';\r\n if (props.location.search === '') {\r\n const URLLastCatalog = ServiceLastCatalog();\r\n GET(URLLastCatalog).then(\r\n ({\r\n id,\r\n name,\r\n auctionDate,\r\n idType,\r\n idStatus,\r\n exibitionDate,\r\n eventEndDate,\r\n saleEndDate,\r\n saleStartDate,\r\n }) => {\r\n const status = checkStatus(auctions, id);\r\n if (status) {\r\n setStatusCustomer(status);\r\n }\r\n getIsStreaming(id);\r\n if (\r\n idType === auctionTypes.idGoldenMinutes &&\r\n idStatus === auctionStatus.directSale\r\n ) {\r\n exibitionDate = saleEndDate;\r\n eventEndDate = saleStartDate;\r\n textStatusAuction = 'TERMINA EN:';\r\n classAuction = 'timer-start';\r\n titleColor = 'title-auction-course';\r\n }\r\n setState((prevState) => ({\r\n ...prevState,\r\n name: id ? name : '',\r\n idAuction: id,\r\n auctionDate,\r\n idType,\r\n idStatus,\r\n textStatusAuction: textStatusAuction,\r\n classAuction: classAuction,\r\n titleColor: titleColor,\r\n exibitionDate: new Date(exibitionDate),\r\n eventEndDate: new Date(eventEndDate),\r\n }));\r\n getFavorities(id);\r\n itemsCartAuction(id);\r\n }\r\n );\r\n } else {\r\n const { search } = props.location;\r\n const idAuction = search.substr(4, 36);\r\n let category = search.includes('categoria');\r\n category ? (category = search.substr(-2)) : (category = '');\r\n const URLAuctionById = ServiceAuctionById(idAuction);\r\n GET(URLAuctionById).then(\r\n ({\r\n id,\r\n name,\r\n eventDate,\r\n idTypeAuction,\r\n idStatus,\r\n eventEndDate,\r\n saleEndDate,\r\n saleStartDate,\r\n }) => {\r\n const status = checkStatus(auctions, id);\r\n if (status) {\r\n setStatusCustomer(status);\r\n }\r\n getIsStreaming(id);\r\n const auctionDate = eventDate;\r\n if (\r\n idTypeAuction === auctionTypes.idGoldenMinutes &&\r\n idStatus === auctionStatus.directSale\r\n ) {\r\n eventDate = saleEndDate;\r\n eventEndDate = saleStartDate;\r\n textStatusAuction = 'TERMINA EN:';\r\n classAuction = 'timer-start';\r\n titleColor = 'title-auction-course';\r\n }\r\n setState((prevState) => ({\r\n ...prevState,\r\n name: id ? name : '',\r\n idAuction: id,\r\n auctionDate: auctionDate,\r\n idType: idTypeAuction,\r\n idStatus,\r\n textStatusAuction: textStatusAuction,\r\n classAuction: classAuction,\r\n titleColor: titleColor,\r\n exibitionDate: new Date(eventDate),\r\n eventEndDate: new Date(eventEndDate),\r\n }));\r\n getFavorities(idAuction, category);\r\n itemsCartAuction(id);\r\n }\r\n );\r\n }\r\n };\r\n\r\n const itemsCartAuction = (idAuction) => {\r\n let sessionCart = getCart();\r\n if (sessionCart === null || sessionCart === undefined) {\r\n sessionCart = [];\r\n }\r\n sessionCart = sessionCart.filter((item) => item.IdAuction === idAuction);\r\n setState((prevState) => ({\r\n ...prevState,\r\n shopingCart: sessionCart,\r\n }));\r\n };\r\n\r\n const getCatalog = () => {\r\n const { id } = localStorage;\r\n if (id) {\r\n const URLAuctionCustomerStatus = ServiceAuctionCustomerStatus(id);\r\n GET(URLAuctionCustomerStatus).then((response) => {\r\n if (response) {\r\n getBySP(response);\r\n }\r\n });\r\n } else {\r\n getBySP();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getCatalog();\r\n }, []);\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n setState((prevState) => ({ ...prevState, currentPage: 1 }));\r\n getLotCatalogFilter(\r\n state.idAuction,\r\n 1,\r\n state.itemsPerPage,\r\n state.filterSections,\r\n state.priceSection,\r\n state.selectedOrder,\r\n state.searchTerm,\r\n false,\r\n true\r\n );\r\n };\r\n\r\n const handleChange = (e) => {\r\n setState((prevState) => ({ ...prevState, searchTerm: e.target.value }));\r\n };\r\n\r\n const handleSelectOrder = (e) => {\r\n const { innerText } = e.target;\r\n let value = '';\r\n switch (innerText) {\r\n case 'PRECIO: DE MENOR A MAYOR':\r\n value = '01';\r\n break;\r\n case 'PRECIO: DE MAYOR A MENOR':\r\n value = '02';\r\n break;\r\n case 'LOTE: ASCENDENTE':\r\n value = '03';\r\n break;\r\n case 'LOTE: DESCENDENTE':\r\n value = '04';\r\n break;\r\n case 'CATEGORÃA: ASCENDENTE':\r\n value = '05';\r\n break;\r\n case 'CATEGORÃA: DESCENDENTE':\r\n value = '06';\r\n break;\r\n default:\r\n value = '';\r\n break;\r\n }\r\n setState((prevState) => ({\r\n ...prevState,\r\n searchOrder: innerText,\r\n selectedOrder: value,\r\n currentPage: 1,\r\n }));\r\n getLotCatalogFilter(\r\n state.idAuction,\r\n 1,\r\n state.itemsPerPage,\r\n state.filterSections,\r\n state.priceSection,\r\n value,\r\n state.searchTerm,\r\n true,\r\n false\r\n );\r\n };\r\n const nextPage = (pageNumber) => {\r\n setState((prevState) => ({ ...prevState, currentPage: pageNumber }));\r\n getLotCatalogFilter(\r\n state.idAuction,\r\n pageNumber,\r\n state.itemsPerPage,\r\n state.filterSections,\r\n state.priceSection,\r\n state.selectedOrder,\r\n state.searchTerm,\r\n true,\r\n false\r\n );\r\n };\r\n const onItemsPerPage = (value) => {\r\n getLotCatalogFilter(\r\n state.idAuction,\r\n 1,\r\n value,\r\n state.filterSections,\r\n state.priceSection,\r\n state.selectedOrder,\r\n state.searchTerm,\r\n true,\r\n false\r\n );\r\n };\r\n\r\n const getFavorities = (idAuction, category = '') => {\r\n if (!idAuction) {\r\n return;\r\n }\r\n let value = '';\r\n switch (category) {\r\n case '01':\r\n value = 'ALHAJAS';\r\n break;\r\n case '02':\r\n value = 'RELOJES';\r\n break;\r\n case '03':\r\n value = 'ARTÃCULOS PERSONALES';\r\n break;\r\n default:\r\n value = 'CATEGORÃA';\r\n break;\r\n }\r\n setState((prevState) => ({\r\n ...prevState,\r\n searchCategory: value,\r\n selectedCategory: category,\r\n }));\r\n const idCustomer = localStorage.getItem('id');\r\n if (validSession()) {\r\n const URLFavoritesGet = ServiceFavoritesGetById(idAuction);\r\n let url = new URL(URLFavoritesGet);\r\n let params = {\r\n idCustomer,\r\n };\r\n Object.keys(params).forEach((key) => {\r\n if (!params[key]) {\r\n delete params[key];\r\n }\r\n });\r\n Object.keys(params).forEach((key) => {\r\n url.searchParams.append(key, params[key]);\r\n });\r\n GET(url)\r\n .then((data) => {\r\n if (data) setFavorities(data);\r\n getLotCatalogFilter(idAuction, state.currentPage, state.itemsPerPage);\r\n })\r\n .catch((err) => {\r\n getLotCatalogFilter(idAuction, state.currentPage, state.itemsPerPage);\r\n });\r\n } else {\r\n getLotCatalogFilter(idAuction, state.currentPage, state.itemsPerPage);\r\n }\r\n };\r\n const getByChecks = (checks, idSection) => {\r\n const arrayFilters = state.filterSections.map((filter) => {\r\n if (idSection === filter.id) {\r\n filter.filters = checks;\r\n }\r\n return filter;\r\n });\r\n\r\n setState((prevState) => ({\r\n ...prevState,\r\n filterSections: arrayFilters,\r\n currentPage: 1,\r\n }));\r\n getLotCatalogFilter(\r\n state.idAuction,\r\n 1,\r\n state.itemsPerPage,\r\n arrayFilters,\r\n state.priceSection,\r\n state.selectedOrder,\r\n state.searchTerm\r\n );\r\n };\r\n const getLotCatalogFilter = (\r\n idAuction,\r\n pageNumber,\r\n itemsPerPage,\r\n filterSections = undefined,\r\n priceSection,\r\n order = 0,\r\n search,\r\n byPrice = false,\r\n bySearch = false\r\n ) => {\r\n let priceJson = priceSection;\r\n const auxFilters = filterSections;\r\n if (!byPrice && priceJson) {\r\n priceJson.maxPrice = null;\r\n priceJson.minprice = null;\r\n setState((prevState) => ({\r\n ...prevState,\r\n filterSections: [],\r\n }));\r\n }\r\n if (bySearch) {\r\n priceJson = undefined;\r\n filterSections = undefined;\r\n }\r\n const jsonLots = {\r\n idAuction,\r\n pageNumber,\r\n itemsPerPage,\r\n filterSections: filterSections,\r\n priceSection: priceJson,\r\n order: order === '' ? '00' : order,\r\n search: search === '' ? null : search,\r\n };\r\n const URLLOTCATALOG = ServiceLotCatalogByAuctionFilter();\r\n POST(URLLOTCATALOG, jsonLots)\r\n .then(({ lots = [], filter, lotActual = {} }) => {\r\n setState((prevState) => ({\r\n ...prevState,\r\n articles: [],\r\n totalResults: 0,\r\n numberPages: 0,\r\n filterItems: 0,\r\n actualLot: '',\r\n }));\r\n setLoading(false);\r\n const numberPages = Math.ceil(filter.filterItems / filter.itemsPerPage);\r\n\r\n setState((prevState) => ({\r\n ...prevState,\r\n articles: [...lots],\r\n totalResults: filter.maxItems,\r\n filterItems: filter.filterItems,\r\n numberPages,\r\n minPrice: filter.priceSection.minprice,\r\n maxPrice: filter.priceSection.maxPrice,\r\n filterSections: filter.filterSections,\r\n priceSection: byPrice ? state.priceSection : filter.priceSection,\r\n actualLot: lotActual?.idLotActual,\r\n }));\r\n\r\n window.scrollTo(0, 0);\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n if(auxFilters)OpenMessage('warning', 'No se encontraron registros con los filtros seleccionados.');\r\n setState((prevState) => ({\r\n ...prevState,\r\n articles: [],\r\n filterSections: auxFilters,\r\n totalResults: 0,\r\n filterItems: 0,\r\n }));\r\n });\r\n };\r\n const { auctionDate = new Date(), name = '', idAuction } = state;\r\n const date = convertToDate(auctionDate);\r\n const onCourseCountDown = () => {\r\n setState((prevState) => ({\r\n ...prevState,\r\n textStatusAuction: 'TERMINA EN:',\r\n classAuction: 'timer-start',\r\n titleColor: 'title-auction-course',\r\n idStatus: auctionStatus.execution,\r\n }));\r\n };\r\n const onEndCountDown = () => {\r\n setState((prevState) => ({\r\n ...prevState,\r\n idStatus: auctionStatus.partialTotal,\r\n textStatusAuction: '',\r\n classAuction: 'timer-start',\r\n titleColor: '',\r\n }));\r\n let message =\r\n \"<h2>LA SUBASTA HA TERMINADO</h2><h5>PARA CONSULTAR EL ESTATUS DE LAS PIEZAS ADJUDICADAS REVISE SU CORREO ELECTRÓNICO O ACCEDA DIRECTAMENTE A <span>'MI CUENTA'</span>.</h5>\";\r\n if (state.idStatus === auctionStatus.directSale) {\r\n message =\r\n \"<h2>LA VENTA HA TERMINADO</h2><h5>EN CASO DE HABER REALIZADO COMPRAS, FAVOR DE REVISAR EN <span>'MI CUENTA'</span>.</h5>\";\r\n }\r\n OpenOfferSuccess(message, true);\r\n };\r\n\r\n const handdleAddCartItem = (data) => {\r\n let shoppingCart = state.shopingCart;\r\n if (\r\n shoppingCart.filter((item) => {\r\n return item.IdLot === data.IdLot;\r\n }).length === 0\r\n ) {\r\n OpenMessage(\r\n 'success',\r\n 'El producto se ha agregado al carrito de compras'\r\n );\r\n shoppingCart.push(data);\r\n setState((prevState) => ({\r\n ...prevState,\r\n shopingCart: shoppingCart,\r\n }));\r\n }\r\n };\r\n\r\n const handdleDeleteCartItem = (data) => {\r\n let shoppingCart = state.shopingCart;\r\n if (\r\n shoppingCart.filter((item) => {\r\n return item.IdLot === data.IdLot;\r\n }).length > 0\r\n ) {\r\n shoppingCart = shoppingCart.filter((lot) => {\r\n return lot.IdLot !== data.IdLot;\r\n });\r\n setState((prevState) => ({\r\n ...prevState,\r\n shopingCart: shoppingCart,\r\n }));\r\n }\r\n };\r\n\r\n const getClientData = () => {\r\n const URLClientData = ServiceClientData();\r\n GET(URLClientData).then((data) => {\r\n if (data === '401') {\r\n getClientData();\r\n return '';\r\n }\r\n setClientData(data);\r\n });\r\n };\r\n\r\n const handleSetVisibleModal = (visible) => {\r\n setVisibleModal(visible);\r\n };\r\n\r\n const getByPrice = (minVal, maxVal) => {\r\n let priceSection = state.priceSection;\r\n priceSection.minprice = minVal;\r\n priceSection.maxPrice = maxVal;\r\n setState((prevState) => ({\r\n ...prevState,\r\n priceSection,\r\n }));\r\n getLotCatalogFilter(\r\n state.idAuction,\r\n 1,\r\n state.itemsPerPage,\r\n state.filterSections,\r\n priceSection,\r\n state.selectedOrder,\r\n state.searchTerm,\r\n true\r\n );\r\n };\r\n\r\n const cleanFilters = () => {\r\n if(state.filterSections)cleanPrice.current();\r\n getLotCatalogFilter(idAuction, 1, 50);\r\n setState((prevState) => ({\r\n ...prevState,\r\n searchTerm: '',\r\n currentPage: 1,\r\n itemsPerPage: 50,\r\n searchCategory: 'CategorÃa',\r\n searchOrder: 'Ordenar por',\r\n selectedCategory: '',\r\n selectedOrder: '',\r\n filterSections: [],\r\n priceSection: {},\r\n }));\r\n };\r\n return (\r\n <Fragment>\r\n <div className='container-fluid container-catalog'>\r\n <div className='row '>\r\n <div className='col-12'>\r\n <h2 className='title-sections'>\r\n Catálogo <span className='gold-text'>{name}</span>\r\n </h2>\r\n </div>\r\n </div>\r\n <div className='row'>\r\n <h3 className='time-auction'>{date}</h3>\r\n <div className='col-md-4 col-sm-12 offset-md-8 offset-sm-0 pallet-section'>\r\n {state.idType &&\r\n state.idType === auctionTypes.idGoldenMinutes &&\r\n (state.idStatus === auctionStatus.scheduled ||\r\n state.idStatus === auctionStatus.execution ||\r\n state.idStatus === auctionStatus.directSale) && (\r\n <CountDownCatalog\r\n startAuctionDate={state.exibitionDate}\r\n endAuctionDate={state.eventEndDate}\r\n classAuction={state.classAuction}\r\n onCourseCountDown={onCourseCountDown}\r\n onEndCountDown={onEndCountDown}\r\n textStatusAuction={state.textStatusAuction}\r\n titleColor={state.titleColor}\r\n scheduled={auctionStatus.scheduled}\r\n statusAuction={state.idStatus}\r\n />\r\n )}\r\n </div>\r\n {state.pallet <= 0 && !loading && (\r\n <div className='col pallet-section'>\r\n <ButtonRegister\r\n idAuction={idAuction}\r\n nameAuction={name}\r\n dateAuction={date}\r\n classStyle={'button-reg'}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n <div className='row'>\r\n {' '}\r\n <div className='col-12 order-sm-2 pallet-section'>\r\n {state.pallet <= 0 ? null : (\r\n <h3>\r\n Paleta asignada:{' '}\r\n <span className='price-text'>{state.pallet}</span>\r\n </h3>\r\n )}\r\n </div>\r\n <div className='col-12 order-sm-1 pallet-section'>\r\n {state.pallet > 0 &&\r\n state.idType === auctionTypes.idStreaming &&\r\n state.idStatus === auctionStatus.execution && (\r\n <ButtonToStreaming\r\n idAuction={idAuction}\r\n streaming={state.isStreaming}\r\n classStyle={'buttons-auctions'}\r\n userStatusLastCatalog={statusCustomer}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n <div className='row'>\r\n {''}\r\n <div className='col-12 order-sm-2 pallet-section'>\r\n {state.pallet > 0 &&\r\n state.idType === auctionTypes.idGoldenMinutes &&\r\n state.idStatus === auctionStatus.directSale && (\r\n <h1>\r\n <a\r\n data-bs-toggle='offcanvas'\r\n href='#CartCanvas'\r\n className='cart-icon'\r\n role='button'\r\n aria-controls='CartCanvas'\r\n >\r\n <i className='bi bi-cart-check-fill'></i>Carrito(\r\n {state.shopingCart.length})\r\n </a>\r\n </h1>\r\n )}\r\n </div>\r\n </div>\r\n <div className='row justify-content-end'>\r\n <div className='col-md-3 col-sm-12'>\r\n <OrderCatalog\r\n handleSelectOrder={handleSelectOrder}\r\n searchOrder={state.searchOrder}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className='row offset-xl-3 offset-md-1'>\r\n <div className='col-md-6 col-sm-12 '>\r\n <div className='row'>\r\n <div className='col-4 text-end'>\r\n <h5 className='show-perpag '>Mostrar</h5>\r\n </div>\r\n <div className='col-3 text-center'>\r\n <h5 className='dropdown shadow-0 drop-perPage'>\r\n <a\r\n href='#'\r\n className='btn btn-link dropdown-toggle items-per-page'\r\n role='button'\r\n data-mdb-toggle='dropdown'\r\n aria-expanded='false'\r\n >\r\n {state.itemsPerPage}\r\n </a>\r\n <ul\r\n className='dropdown-menu'\r\n aria-labelledby='dropdownMenuLink'\r\n >\r\n {state.perPageOptions.map((item) => {\r\n return (\r\n <li key={item.value}>\r\n <a\r\n href='#'\r\n className='dropdown-item drop-items'\r\n onClick={(e) => {\r\n setState((prevState) => ({\r\n ...prevState,\r\n itemsPerPage: item.value,\r\n currentPage: 1,\r\n }));\r\n onItemsPerPage(item.value);\r\n }}\r\n >\r\n {item.value}\r\n </a>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </h5>{' '}\r\n </div>\r\n <div className='col-5'>\r\n <h5 className='show-perpag'>resultados por página</h5>\r\n </div>\r\n </div>\r\n </div>\r\n <div className='col pagination-section'>\r\n <PaginationCatalog\r\n pages={state.numberPages}\r\n nextPage={nextPage}\r\n currentPage={state.currentPage}\r\n />\r\n </div>\r\n <div className='col mt-0'>\r\n <div className='card-body d-flex justify-content-end p-1 show-options'>\r\n <button\r\n className={`${state.format === 1 ? 'box-items' : 'box-items2'}`}\r\n onClick={(e) =>\r\n setState((prevState) => ({ ...prevState, format: 1 }))\r\n }\r\n >\r\n <i className='fas fa-th-large'></i>\r\n </button>\r\n <button\r\n className={`${state.format === 1 ? 'box-items2' : 'box-items'}`}\r\n onClick={(e) =>\r\n setState((prevState) => ({ ...prevState, format: 2 }))\r\n }\r\n >\r\n <i className='fas fa-bars'></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className='row justify-content-md-center grid-items'>\r\n <div className='col-md-3 text-uppercase filters'>\r\n <h5>Mostrando</h5>\r\n <h4>\r\n {state.filterItems} de {state.totalResults} <span>lotes</span>\r\n </h4>\r\n <SearchDescription\r\n handleSubmit={handleSubmit}\r\n handleChange={handleChange}\r\n searchTerm={state.searchTerm}\r\n />\r\n {state.filterSections && state.filterSections.map((item) => {\r\n if (item.id === priceFilterID) {\r\n return (\r\n <PriceFilter\r\n key={item.id}\r\n min={state.minPrice}\r\n max={state.maxPrice}\r\n getByPrice={getByPrice}\r\n cleanPrice={cleanPrice}\r\n />\r\n );\r\n }\r\n return (\r\n <FiltersCatalog\r\n key={item.id}\r\n idSection={item.id}\r\n title={item.description}\r\n filters={item.filters}\r\n getByChecks={getByChecks}\r\n />\r\n );\r\n })}\r\n <div className='row mt-3'>\r\n <button\r\n className='btn btn-outline-secondary fs-5'\r\n onClick={(e) => cleanFilters(e)}\r\n >\r\n <img src='./resources/Frame.png' alt='Frame' />\r\n <strong> Limpiar filtros</strong>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div className='col-md-9'>\r\n {!loading && (\r\n <ProductGrid\r\n articles={state.articles}\r\n format={state.format}\r\n idAuction={state.idAuction}\r\n favorities={favorities}\r\n registered={state.pallet > 0 ? true : false}\r\n idPallet={state.idPallet}\r\n idType={state.idType}\r\n idStatus={state.idStatus}\r\n auctionTypes={auctionTypes}\r\n auctionStatus={auctionStatus}\r\n addCartItem={handdleAddCartItem}\r\n statusCustomer={statusCustomer}\r\n actualLotID={state.actualLot}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n <div className='row justify-content-center pagination-section mt-5'>\r\n <div className='col-auto'>\r\n <PaginationCatalog\r\n pages={state.numberPages}\r\n nextPage={nextPage}\r\n currentPage={state.currentPage}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n className='offcanvas offcanvas-end cart-canvas'\r\n tabIndex='-1'\r\n id='CartCanvas'\r\n >\r\n <Cart\r\n clientData={clientData}\r\n visible={handleSetVisibleModal}\r\n idAuction={state.idAuction}\r\n ShoppingCart={state.shopingCart}\r\n delCartItem={handdleDeleteCartItem}\r\n enableInvoice={enableInvoice}\r\n />\r\n </div>\r\n <button\r\n id='btnDataComplementary'\r\n className='hide'\r\n data-bs-toggle='modal'\r\n data-bs-target='#modalCustomerData'\r\n />\r\n <div className='form-profile'>\r\n <ModalCustomerData updateData={getClientData} visible={visibleModal} />\r\n </div>\r\n </Fragment>\r\n );\r\n};\r\n\r\nexport default Catalog;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { getConfig } from '../../helpers/getConfig';\r\nimport '../../css/Menu/AboutUs.css';\r\n\r\nexport const AboutUs = () => {\r\n const [data, setData] = useState([]);\r\n\r\n useEffect(() => {\r\n getConfig('aboutUs.json').then((data) => setData(data));\r\n }, []);\r\n\r\n let title1 = '',\r\n title2 = '',\r\n paragraph1 = '',\r\n paragraph2 = '',\r\n paragraph3 = '',\r\n paragraph4 = '';\r\n\r\n if (data) {\r\n title1 = data.title1;\r\n title2 = data.title2;\r\n paragraph1 = data.paragraph1;\r\n paragraph2 = data.paragraph2;\r\n paragraph3 = data.paragraph3;\r\n paragraph4 = data.paragraph4;\r\n }\r\n\r\n return (\r\n <div className=\"container-fluid container-about-us slidein\">\r\n <div className=\"row \">\r\n <div className=\"col-12 col-md-6\">\r\n <h2 className=\"title-section-s mb-5\">\r\n <div dangerouslySetInnerHTML={{ __html: title1 }} />\r\n </h2>\r\n <div className=\"we-platform mb-5\">\r\n <div dangerouslySetInnerHTML={{ __html: paragraph1 }} />\r\n <div dangerouslySetInnerHTML={{ __html: paragraph2 }} />\r\n </div>\r\n <h2 className=\"title-section-s mb-5\">\r\n <div dangerouslySetInnerHTML={{ __html: title2 }} />\r\n </h2>\r\n <div className=\"we-platform\">\r\n <div dangerouslySetInnerHTML={{ __html: paragraph3 }} />\r\n <div dangerouslySetInnerHTML={{ __html: paragraph4 }} />\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-6 image-container slidein\">\r\n <img src=\"/resources/quienes_somos.jpg\" alt=\"\" className=\"about-us-image\" />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useContext, useEffect, useState, useLayoutEffect } from 'react';\r\n\r\nimport { ServiceAuctionCustomerStatus, ServiceCarousel } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { getImgDefault, getIdStreaming, getExecution } from '../../helpers/getConstants';\r\n\r\nimport { ButtonRegister } from '../Register/ButtonRegister';\r\nimport { WatchCatalog } from '../Register/WatchCatalog';\r\nimport { ButtonToStreaming } from '../Register/ButtonToStreaming';\r\n\r\nimport { convertToDate } from '../Utilities/General';\r\nimport { DataContext } from '../../context/DataContext';\r\n\r\n//Animaciones\r\nimport { setSlideIn } from '../Utilities/Animation';\r\n\r\n//CSS\r\nimport '../../css/Menu/Auctions.css';\r\n\r\nexport const AuctionsMenu = (props) => {\r\n const [auctions, setAuctions] = useState([]);\r\n const [loading, setLoading] = useState(true);\r\n const idStreaming = getIdStreaming();\r\n const execution = getExecution();\r\n const { id } = localStorage;\r\n const URLAuctionCustomerStatus = ServiceAuctionCustomerStatus(id);\r\n const {\r\n validate: { valid, registeredAuctions, idPallet },\r\n } = useContext(DataContext);\r\n\r\n useEffect(() => {\r\n if (id) {\r\n GET(URLAuctionCustomerStatus).then((response) => {\r\n getAuctions(response);\r\n });\r\n } else {\r\n getAuctions();\r\n }\r\n }, [URLAuctionCustomerStatus, id]);\r\n\r\n useEffect(() => {\r\n if (idPallet) {\r\n GET(URLAuctionCustomerStatus).then((response) => {\r\n getAuctions(response);\r\n });\r\n }\r\n }, [valid, URLAuctionCustomerStatus, idPallet]);\r\n\r\n const checkStatus = (item, auctions) => {\r\n let value = '';\r\n if (auctions.length > 0) {\r\n const users = auctions.find((auction) => auction.idAuction === item.id);\r\n if (users) {\r\n value = users.idAuctionCustomerStatus;\r\n }\r\n }\r\n return value;\r\n };\r\n const getAuctions = (auctionsList = []) => {\r\n const URLCarousel = ServiceCarousel();\r\n GET(URLCarousel).then((response) => {\r\n if (response && response.length > 0) {\r\n const auctions = response.map((auction) => {\r\n auction.auctionCustomerStatus = checkStatus(auction, auctionsList);\r\n auction.auctionRegistered = getIsStreaming(auction.id);\r\n if (!auction.url[0]) {\r\n auction.url[0] = getImgDefault();\r\n }\r\n return auction;\r\n });\r\n setAuctions(auctions);\r\n }\r\n setLoading(false);\r\n });\r\n };\r\n const getIsStreaming = (idAuction) => {\r\n let auctionRegistered = {\r\n pallet: 0,\r\n streaming: false,\r\n idPallet: '',\r\n };\r\n const auctionValue = registeredAuctions.find((auction) => auction.idAuction === idAuction);\r\n if (auctionValue) {\r\n auctionRegistered.pallet = auctionValue.pallet;\r\n auctionRegistered.streaming = auctionValue.streaming;\r\n auctionRegistered.idPallet = auctionValue.idPallet;\r\n }\r\n\r\n return auctionRegistered;\r\n };\r\n\r\n useLayoutEffect(() => {\r\n const handleScroll = () => {\r\n auctions.forEach((item) => {\r\n setSlideIn('.container__auctionMenu--' + item.id);\r\n });\r\n }\r\n window.addEventListener('scroll', handleScroll);\r\n return () => window.removeEventListener('scroll', handleScroll);\r\n }, [auctions]);\r\n\r\n return (\r\n <div className=\"container-fluid container-auctions-menu\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <h2 className=\"title-section-auc\">\r\n <span className=\"auctions2\">Nuestras</span> subastas\r\n </h2>\r\n </div>\r\n </div>\r\n {!loading && (\r\n <div>\r\n {auctions.length > 0 ? (\r\n <div>\r\n {auctions.map(\r\n (\r\n {\r\n id,\r\n name = '',\r\n auctionDate = new Date(),\r\n url,\r\n auctionRegistered: { pallet, streaming },\r\n idType,\r\n idStatus,\r\n description,\r\n place,\r\n auctionCustomerStatus,\r\n },\r\n index\r\n ) => (\r\n <div className={index === 0 ? 'card mb-8 slidein' : 'card mb-8 container__auctionMenu--' + id} key={index}>\r\n <div className=\"row g-0\">\r\n <div className=\"col-12 col-sm-6\">\r\n <div className=\"card-body \">\r\n <h2 className=\"auction-text1 text-center-mobile\">Subasta</h2>\r\n <h2 className=\"auction-text2 text-center-mobile\">{name}</h2>\r\n <h4 className=\"auction-text3 text-center-mobile\">{convertToDate(auctionDate)}</h4>\r\n <div className=\"row\">\r\n <div className=\"col-12 text-center-mobile\">\r\n <WatchCatalog idAuction={id} modal={false} clasStyle={'buttons-auctions btnAuction'} />\r\n </div>\r\n </div>\r\n <br />\r\n {pallet > 0 && idType === idStreaming && idStatus === execution && (\r\n <div className=\"row\">\r\n <div className=\"col-12 text-center-mobile\">\r\n <ButtonToStreaming\r\n streaming={streaming}\r\n idAuction={id}\r\n classStyle={'buttons-auctions btnAuction'}\r\n userStatusLastCatalog={auctionCustomerStatus}\r\n />\r\n </div>\r\n </div>\r\n )}\r\n {pallet <= 0 && (\r\n <div className=\"row\">\r\n <div className=\"col-12 text-center-mobile\">\r\n <ButtonRegister\r\n idAuction={id}\r\n nameAuction={name}\r\n dateAuction={convertToDate(auctionDate)}\r\n classStyle={'buttons-auctions btnAuction'}\r\n />\r\n </div>\r\n </div>\r\n )}\r\n <p className=\"note-auction text-center-mobile\">{description}</p>\r\n <p className=\"note-auction text-center-mobile\">{place}</p>\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-sm-6 image-col text-center\">\r\n <img src={url} className=\"auction-image rounded-start\" alt=\"...\" />\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n )}\r\n </div>\r\n ) : (\r\n <h4>No hay registros...</h4>\r\n )}\r\n </div>\r\n )}\r\n <div className=\"row card-bottom\">\r\n <div className=\"col-12\">\r\n <h2 className=\"title-section-auc\">\r\n <span className=\"auctions2\">métodos de</span> pago\r\n </h2>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 text-methods\">\r\n <span>Conoce nuestros distintos métodos con los que podrás realizar tus pagos:</span>\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center text-center container_payment_methods\">\r\n <div className=\"col-2 container_payment_methods--box\">\r\n <img className=\"transfer\" src=\"./resources/svg/Transferencia.svg\" alt=\"Transferencia\" />\r\n <p>Transferencia</p>\r\n </div>\r\n <div className=\"col-2 container_payment_methods--box\">\r\n <img className=\"cash\" src=\"./resources/svg/Efectivo.svg\" alt=\"Efectivo\" />\r\n <p>Efectivo</p>\r\n </div>\r\n <div className=\"col-2 container_payment_methods--box\">\r\n <img className=\"amex\" src=\"./resources/svg/AmericanExpress.svg\" alt=\"American Express\" />\r\n </div>\r\n <div className=\"col-2 container_payment_methods--box\">\r\n <img className=\"visa\" src=\"./resources/svg/Visa.svg\" alt=\"Visa\" />\r\n </div>\r\n <div className=\"col-2 container_payment_methods--box\">\r\n <img className=\"mastercard\" src=\"./resources/svg/Mastercard.svg\" alt=\"Mastercard\" />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { getConfig } from '../../helpers/getConfig';\r\nimport '../../css/Menu/Services.css';\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport const Services = () => {\r\n const [data, setData] = useState([]);\r\n\r\n useEffect(() => {\r\n getConfig('services.json').then((data) => setData(data));\r\n }, []);\r\n\r\n let title1 = '',\r\n title2 = '',\r\n title3 = '',\r\n paragraph1 = '',\r\n paragraph2 = '',\r\n paragraph3 = '',\r\n paragraph4 = '',\r\n phone1 = '',\r\n phone2 = '',\r\n phone3 = '',\r\n phone4 = '',\r\n desc1 = '',\r\n desc2 = '',\r\n desc3 = '',\r\n desc4 = '',\r\n email = '';\r\n\r\n if (data) {\r\n title1 = data.title1;\r\n title2 = data.title2;\r\n title3 = data.title3;\r\n paragraph1 = data.paragraph1;\r\n paragraph2 = data.paragraph2;\r\n paragraph3 = data.paragraph3;\r\n paragraph4 = data.paragraph4;\r\n phone1 = data.phone1;\r\n phone2 = data.phone2;\r\n phone3 = data.phone3;\r\n phone4 = data.phone4;\r\n desc1 = data.desc1;\r\n desc2 = data.desc2;\r\n desc3 = data.desc3;\r\n desc4 = data.desc4;\r\n email = data.email;\r\n }\r\n\r\n return (\r\n <div className=\"container-fluid container-services slidein\">\r\n <div className=\"row\">\r\n <div className=\"col-12 col-sm-6\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <h2 className=\"title-services\">\r\n <div dangerouslySetInnerHTML={{ __html: title1 }} />\r\n </h2>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 mb-5 text-center-mobile\">\r\n <div dangerouslySetInnerHTML={{ __html: title2 }} />\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 consig-section mb-5\">\r\n <div dangerouslySetInnerHTML={{ __html: paragraph1 }} />\r\n <div dangerouslySetInnerHTML={{ __html: paragraph2 }} />\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 mb-5 text-center-mobile\">\r\n <div dangerouslySetInnerHTML={{ __html: title3 }} />\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 consig-section mb-4\">\r\n <div dangerouslySetInnerHTML={{ __html: paragraph3 }} />\r\n <div dangerouslySetInnerHTML={{ __html: paragraph4 }} />\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-lg-4 col-12 container-services__align\">\r\n <h2>\r\n <a href={'tel:' + phone1} className=\"phone-number\" rel=\"noreferrer\">\r\n <b>{phone1}</b>\r\n </a>\r\n </h2>\r\n </div>\r\n <div className=\"col-lg-8 col-12 container-services__alignDesc\">\r\n <h2 className='desc'> {desc1}</h2>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-lg-4 col-12 container-services__align\">\r\n <h2>\r\n <a href={'tel:' + phone2} className=\"phone-number\" rel=\"noreferrer\">\r\n <b>{phone2}</b>\r\n </a>\r\n </h2>\r\n </div>\r\n <div className=\"col-lg-8 col-12 container-services__alignDesc\">\r\n <h2 className='desc'> {desc2}</h2>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-lg-4 col-12 container-services__align\">\r\n <h2>\r\n <a href={'tel:' + phone3} className=\"phone-number\" rel=\"noreferrer\">\r\n <b>{phone3}</b>\r\n </a>\r\n </h2>\r\n </div>\r\n <div className=\"col-lg-8 col-12 container-services__alignDesc\">\r\n <h2 className='desc'> {desc3}</h2>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-lg-4 col-12 container-services__align\">\r\n <h2>\r\n <a href={'tel:' + phone4} className=\"phone-number\" rel=\"noreferrer\">\r\n <b>{phone4}</b>\r\n </a>\r\n </h2>\r\n </div>\r\n <div className=\"col-lg-8 col-12 container-services__alignDesc\">\r\n <h2 className='desc'> {desc4}</h2>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 text-center\">\r\n <p className=\"email-contact\">\r\n <Link to=\"/contacto\">\r\n <u>{email}</u>\r\n </Link>\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-sm-6 text-center content-vertical-align\">\r\n <img src=\"./resources/servicios.jpg\" alt=\"...\" className=\"img-fluid\"></img>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport NumberFormat from 'react-number-format';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\n\r\nimport { getConfig } from '../../helpers/getConfig';\r\nimport { POST } from '../../helpers/APIServices';\r\nimport { ServiceContact } from '../../helpers/getURL';\r\nimport { OpenMessage, verifyFieldsRequerid, validEmail, restoreInputs, onlyText, onlyMail } from '../Utilities/General';\r\n//CSS\r\nimport '../../css/Menu/Contact.css';\r\n\r\nexport const Contact = () => {\r\n const [fullName, setFullName] = useState('');\r\n const [postEmail, setPostEmail] = useState('');\r\n const [tel, setTel] = useState('');\r\n const [message, setMessage] = useState('');\r\n const [termsConditions, setTermsConditions] = useState(false);\r\n const [captcha, setCaptcha] = useState(false);\r\n const [disabledBtn, setDisabledBtn] = useState(true);\r\n const [data, setData] = useState([]);\r\n const URL = ServiceContact();\r\n let history = useHistory();\r\n const inputs = ['input-nameContact', 'input-emailContact', 'input-telContact', 'input-messageContact'];\r\n const captchaContact = useRef(null);\r\n const checkContact = useRef(null);\r\n\r\n const enableBtn = () => {\r\n setDisabledBtn(true);\r\n const chk = document.getElementById('checkBoxContact').checked;\r\n const chkCaptcha = captchaContact.current.getValue();\r\n if (fullName && postEmail && tel && message && chk && chkCaptcha) {\r\n setDisabledBtn(false);\r\n }\r\n };\r\n\r\n const onChange = () => {\r\n if (captchaContact.current.getValue()) {\r\n setCaptcha(true);\r\n enableBtn();\r\n }\r\n };\r\n\r\n const verifyFields = () => {\r\n const validFields = verifyFieldsRequerid(inputs);\r\n if (!validFields) {\r\n OpenMessage('error', 'Faltan campos por llenar');\r\n return false;\r\n } else {\r\n if (!validEmail(postEmail)) {\r\n document.getElementById('input-emailContact').classList.add('is-invalid');\r\n OpenMessage('error', 'El formato del correo eléctronico no es válido');\r\n return false;\r\n }\r\n return true;\r\n }\r\n };\r\n useEffect(() => {\r\n getConfig('contact.json').then((data) => {\r\n setData(data);\r\n });\r\n }, []);\r\n\r\n const {\r\n title1 = '',\r\n text1 = '',\r\n text2 = '',\r\n text3 = '',\r\n text4 = '',\r\n text5 = '',\r\n phone1 = '',\r\n phone2 = '',\r\n phone3 = '',\r\n phone4 = '',\r\n desc1 = '',\r\n desc2 = '',\r\n desc3 = '',\r\n desc4 = '',\r\n email = '',\r\n facebook = '#',\r\n twitter = '#',\r\n } = data;\r\n\r\n const onSendContact = () => {\r\n const validFields = verifyFields();\r\n if (!validFields) {\r\n return false;\r\n }\r\n if (!termsConditions) {\r\n OpenMessage('error', 'Debe aceptar los términos y condiciones');\r\n return false;\r\n }\r\n if (!captcha) {\r\n OpenMessage('error', 'Debe aceptar el captcha');\r\n return false;\r\n }\r\n setDisabledBtn(true);\r\n const json = {\r\n name: fullName,\r\n email: postEmail,\r\n phone: tel,\r\n message: message,\r\n };\r\n POST(URL, json)\r\n .then((data) => {\r\n if (data === true) {\r\n OpenMessage('success', 'Agradecemos su comentario, nuestro equipo se pondrá en contacto para resolver sus dudas.');\r\n captchaContact.current.props.grecaptcha.reset();\r\n setDisabledBtn(false);\r\n setFullName('');\r\n setPostEmail('');\r\n setTel('');\r\n setMessage('');\r\n setTermsConditions(false);\r\n setCaptcha(false);\r\n restoreInputs(inputs);\r\n history.push('/');\r\n } else {\r\n OpenMessage('error', data);\r\n setDisabledBtn(false);\r\n captchaContact.current.props.grecaptcha.reset();\r\n }\r\n })\r\n .catch((error) => {\r\n OpenMessage('error', 'Intentar nuevamente');\r\n setDisabledBtn(false);\r\n captchaContact.current.props.grecaptcha.reset();\r\n });\r\n };\r\n\r\n const openPDF = () => {\r\n window.open('/resources/terminos-y-condiciones-subasta-2021.pdf');\r\n };\r\n return (\r\n <div className=\"container-fluid container-contact\">\r\n <div className=\"row\">\r\n <div className=\"col-12 text-center-mobile\">\r\n <div dangerouslySetInnerHTML={{ __html: title1 }} />\r\n </div>\r\n </div>\r\n <div className=\"row form-section justify-content-around\">\r\n <div className=\"col-12 col-md-6\">\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <div dangerouslySetInnerHTML={{ __html: text1 }} />\r\n\r\n <div className=\"row mb-3\">\r\n <div className=\"col-10 form-outline container-input-checkin form-inputs-space\">\r\n <input\r\n type=\"text\"\r\n className=\"form-control form-contact\"\r\n id=\"input-nameContact\"\r\n onChange={(e) => setFullName(e.target.value)}\r\n onInput={(e) => onlyText(e)}\r\n maxLength=\"150\"\r\n onKeyUp={enableBtn}\r\n value={fullName}\r\n autoComplete=\"off\"\r\n />\r\n <label htmlFor=\"input-name\" className=\"col-form-label form-label holder-border\">\r\n Nombre completo*\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-10 form-outline container-input-checkin form-inputs-space\">\r\n <input\r\n type=\"email\"\r\n className=\"form-control form-contact\"\r\n id=\"input-emailContact\"\r\n value={postEmail}\r\n onChange={(e) => setPostEmail(e.target.value)}\r\n onKeyUp={enableBtn}\r\n maxLength=\"80\"\r\n onInput={(e) => onlyMail(e)}\r\n autoComplete=\"off\"\r\n />\r\n <label htmlFor=\"input-email\" className=\"col-form-label form-label holder-border\">\r\n Correo*\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-10 form-outline container-input-checkin form-inputs-space\">\r\n <NumberFormat\r\n format=\"(###) ###-####\"\r\n mask=\"\"\r\n name=\"phoneNumberInput\"\r\n className=\"form-control form-contact\"\r\n id=\"input-telContact\"\r\n onValueChange={(e) => setTel(e.value)}\r\n onKeyUp={enableBtn}\r\n value={tel}\r\n autoComplete=\"off\"\r\n />\r\n <label htmlFor=\"input-tel\" className=\"col-form-label form-label holder-border\">\r\n Teléfono*\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-10 form-outline container-input-checkin form-inputs-space\">\r\n <textarea\r\n className=\"form-control form-contact\"\r\n id=\"input-messageContact\"\r\n rows=\"6\"\r\n value={message}\r\n onChange={(e) => setMessage(e.target.value)}\r\n onKeyUp={enableBtn}\r\n maxLength=\"500\"\r\n ></textarea>\r\n <label htmlFor=\"input-message\" className=\"col-form-label form-label holder-border message-contact\">\r\n Mensaje*\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"container-fluid\">\r\n <div className=\"row form-inputs-space\">\r\n <div className=\"col-10 container-input-checkin\">\r\n <div className=\"form-check\">\r\n <input\r\n className=\"form-check-input\"\r\n type=\"checkbox\"\r\n id=\"checkBoxContact\"\r\n ref={checkContact}\r\n checked={termsConditions}\r\n onClick={(e) => {\r\n setTermsConditions(e.target.checked);\r\n enableBtn();\r\n }}\r\n onChange={(e) => {}}\r\n />\r\n <label className=\"form-check-label\" htmlFor=\"checkBoxContact\">\r\n Acepto todos los \r\n <span className=\"terms-conditions\" onClick={(e) => openPDF(e)}>\r\n Términos y condiciones\r\n </span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3 mt-4 justify-content-center\">\r\n <div className=\"col-12 col-sm-8 col-md-12 col-lg-8 col-xl-6 container-captcha\">\r\n <ReCAPTCHA ref={captchaContact} sitekey=\"6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI\" onChange={onChange} />\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col text-center mb-3 mt-4\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-outline-secondary btn-lg btn-send\"\r\n onClick={(e) => onSendContact(e)}\r\n disabled={disabledBtn}\r\n >\r\n ENVIAR\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-6\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div dangerouslySetInnerHTML={{ __html: text2 }} />\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 details-contact\">\r\n <div className=\"icons-contact\">\r\n <i className=\"fas fa-phone-alt icons-align\"></i>\r\n <a href={'tel:' + phone1} rel=\"noreferrer\">\r\n <h4 className=\"phone-contact\">\r\n <b>{phone1}</b> <label>{desc1}</label>\r\n </h4>\r\n </a>\r\n </div>\r\n <div className=\"icons-contact\">\r\n <i className=\"fas fa-phone-alt icons-align\"></i>\r\n <a href={'tel:' + phone2} rel=\"noreferrer\">\r\n <h4 className=\"phone-contact\">\r\n <b>{phone2}</b> <label>{desc2}</label>\r\n </h4>\r\n </a>\r\n </div>\r\n <div className=\"icons-contact\">\r\n <i className=\"fas fa-phone-alt icons-align\"></i>\r\n <a href={'tel:' + phone3} rel=\"noreferrer\">\r\n <h4 className=\"phone-contact\">\r\n <b>{phone3}</b> <label>{desc3}</label>\r\n </h4>\r\n </a>\r\n </div>\r\n <div className=\"icons-contact\">\r\n <i className=\"fas fa-phone-alt icons-align\"></i>\r\n <a href={'tel:' + phone4} rel=\"noreferrer\">\r\n <h4 className=\"phone-contact\">\r\n <b>{phone4}</b> <label>{desc4}</label>\r\n </h4>\r\n </a>\r\n </div>\r\n <div className=\"icons-contact\">\r\n <i className=\"fas fa-envelope icons-align\"></i>\r\n <a href={`mailto:${email}`} rel=\"noreferrer\">\r\n <h4 className=\"email-contact\">{email}</h4>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div dangerouslySetInnerHTML={{ __html: text3 }} />\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 mt-3\">\r\n <div dangerouslySetInnerHTML={{ __html: text4 }} />\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 mt-3 container-icon-social\">\r\n <div className=\"icons-contact\">\r\n <a href={facebook} target=\"_blank\" rel=\"noreferrer\">\r\n <i className=\"fab fa-facebook-square facebook-icon\"></i>\r\n </a>\r\n <a href={facebook} target=\"_blank\" rel=\"noreferrer\" className=\"acution-social\">\r\n <div dangerouslySetInnerHTML={{ __html: text5 }} />\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 container-icon-social\">\r\n <div className=\"icons-contact\">\r\n <a href={twitter} target=\"_blank\" rel=\"noreferrer\">\r\n <i className=\"fab fa-twitter-square twitter-icon\"></i>\r\n </a>\r\n <a href={twitter} target=\"_blank\" rel=\"noreferrer\" className=\"acution-social\">\r\n <div dangerouslySetInnerHTML={{ __html: text5 }} />\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import { useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nfunction ToTop() {\r\n const { pathname } = useLocation();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [pathname]);\r\n\r\n return null;\r\n}\r\n\r\nexport default ToTop;\r\n","import React from 'react';\r\n\r\nconst Loading = () => {\r\n return (\r\n <div id=\"loading\" className=\"row container-loading hide\">\r\n <div className=\"col-12 text-center\">\r\n <img src=\"./resources/loading.gif\" alt=\"loading...\" width=\"15%\" />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Loading;\r\n","import React, { useContext } from 'react';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\n//import { useContext } from 'react/cjs/react.development';\r\nimport { DataContext } from '../../../context/DataContext';\r\nimport { CloseModalIcon } from '../../Home/CloseModalIcon';\r\nimport { CloseModal, setSession } from '../../Utilities/General';\r\n\r\nexport const ClosingModal = () => {\r\n const { setValidate } = useContext(DataContext);\r\n const history = useHistory();\r\n const { search } = useLocation();\r\n const url = new URLSearchParams(search);\r\n const exitStreaming = () => {\r\n const isGoAccount = url.has('profile');\r\n const isLogOut = url.has('logout');\r\n if (isGoAccount) {\r\n CloseModal('modalCloseStreaming');\r\n history.push('/perfil?profile=true');\r\n } else if (isLogOut) {\r\n setValidate({\r\n valid: false,\r\n registeredAuctions: [],\r\n idAuction: '',\r\n nameAuction: '',\r\n dateAuction: '',\r\n palletAuction: '',\r\n idPallet: '',\r\n onPaymentValidate: false,\r\n });\r\n setSession(false, '');\r\n history.push('/?home=true');\r\n } else {\r\n history.push('?home=true');\r\n }\r\n };\r\n const cancelExit = () => {\r\n history.push(`/streaming?id=${url.get('id')}`);\r\n CloseModal('modalCloseStreaming');\r\n };\r\n return (\r\n <div\r\n className=\"modal fade \"\r\n id=\"modalCloseStreaming\"\r\n aria-labelledby=\"closeStreamingModalLabel\"\r\n aria-hidden=\"true\"\r\n data-bs-backdrop=\"static\"\r\n data-bs-keyboard=\"false\"\r\n >\r\n <div className=\"modal-dialog modal-dialog-centered\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-header justify-content-end border-0\">\r\n <CloseModalIcon onHandleClick={cancelExit} />\r\n </div>\r\n <div className=\"modal-body text-center mb-3\">\r\n <div className=\"closing-accept\">\r\n <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"50%\" />\r\n </div>\r\n <h3 className=\"text-uppercase px-5 pb-5\">¿Está seguro que desea salir del streaming?</h3>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-outline-danger w- btn-lg me-2\"\r\n data-bs-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n onClick={(e) => exitStreaming()}\r\n >\r\n SÃ\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-outline-secondary w-auto btn-lg ms-2\"\r\n data-bs-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n onClick={() => cancelExit()}\r\n >\r\n No\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { DataContext } from '../../context/DataContext';\r\nimport '../../css/Mesage.css';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\nimport { ClosingModal } from '../streaming/MiniPlayer/ClosingModal';\r\nimport { CloseModal } from '../Utilities/General';\r\n\r\nexport const Message = () => {\r\n const {\r\n validate: { registeredAuctions },\r\n setValidate,\r\n } = useContext(DataContext);\r\n\r\n const onClear = () => {\r\n setValidate({\r\n valid: false,\r\n registeredAuctions: [...registeredAuctions],\r\n idAuction: '',\r\n nameAuction: '',\r\n dateAuction: '',\r\n palletAuction: '',\r\n idPallet: '',\r\n onPaymentValidate: false,\r\n });\r\n };\r\n return (\r\n <div\r\n className='modal fade container__message__parent'\r\n id='modalMessage'\r\n aria-hidden='true'\r\n >\r\n <div className='modal-dialog modal-dialog-centered modal-sm'>\r\n <div className='modal-content'>\r\n <div className='modal-header'>\r\n <h4 id='headerTitle'> </h4>\r\n <CloseModalIcon onHandleClick={() => CloseModal('modalMessage')} />\r\n </div>\r\n <div className='modal-body group-items'>\r\n <div className='col-2 col-md-3'>\r\n <span>\r\n <i id='messageType' className='icon-element'></i>\r\n </span>\r\n </div>\r\n <div className='col-10 col-md-9 text-items'>\r\n <p id='messageText'></p>\r\n <p id='messageSubText' style={{fontSize:'1rem'}}></p>\r\n <Link\r\n to={'/contacto'}\r\n id='messageContact'\r\n className={`button-contact-error`}\r\n onClick={(e) => {\r\n onClear();\r\n CloseModal('modalRegisterToOffer');\r\n CloseModal('modalMessage');\r\n }}\r\n ></Link>\r\n </div>\r\n </div>\r\n <div className='modal-footer footer-buttons'>\r\n <button\r\n id='buttonClose'\r\n type='button'\r\n className='btn btn-lg'\r\n data-bs-dismiss='modal'\r\n >\r\n Cerrar\r\n </button>\r\n\r\n <button\r\n id='messageText2'\r\n type='button'\r\n className='btn btn-lg btn-outline-success'\r\n ></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { DataContext } from '../../context/DataContext';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\nimport { CloseModal } from '../Utilities/General';\r\nimport { WatchCatalog } from './WatchCatalog';\r\n\r\nexport const StreamingRegisterMessage = () => {\r\n const {\r\n validate: {\r\n idAuction,\r\n registeredAuctions,\r\n nameAuction,\r\n dateAuction,\r\n palletAuction,\r\n },\r\n setValidate,\r\n } = useContext(DataContext);\r\n\r\n const onClear = () => {\r\n setValidate({\r\n valid: false,\r\n registeredAuctions: [...registeredAuctions],\r\n idAuction: '',\r\n nameAuction: '',\r\n dateAuction: '',\r\n palletAuction: '',\r\n idPallet: '',\r\n onPaymentValidate: false,\r\n });\r\n CloseModal('modalStreamingReisterMesage');\r\n };\r\n const convertToDate = (i) => {\r\n const strings = dateAuction.split('|');\r\n return strings[i];\r\n };\r\n return (\r\n <div>\r\n <div\r\n className='modal fade '\r\n id='modalStreamingReisterMesage'\r\n aria-labelledby='streamingReisterModalLabel'\r\n aria-hidden='true'\r\n data-bs-backdrop='static'\r\n data-bs-keyboard='false'\r\n >\r\n <div className='modal-dialog modal-dialog-centered'>\r\n <div className='modal-content'>\r\n <div className='modal-header header-streaming-mesagge'>\r\n <h4\r\n className='modal-title auction-streaming'\r\n id='streamingReisterModalLabel'\r\n >\r\n REGISTRO A LA SUBASTA\r\n </h4>\r\n <CloseModalIcon onHandleClick={onClear} />\r\n </div>\r\n <div className='modal-body text-center body-streaming-message'>\r\n <p>\r\n El registro a la subasta{' '}\r\n <span className='auction-streaming'>{nameAuction}</span> ha sido\r\n realizado con éxito\r\n </p>\r\n <i className='far fa-check-circle check-streaming'></i>\r\n <br />\r\n <br />\r\n <span className='date-register'>\r\n Fecha: {convertToDate(0)}\r\n <p> Hora: {convertToDate(1)}</p>\r\n </span>\r\n <h4 className='auction-streaming'>\r\n PALETA ASIGNADA:{' '}\r\n <span className='pallet-streaming'>{palletAuction}</span>\r\n </h4>\r\n <p className='text-center'>\r\n <WatchCatalog\r\n idAuction={idAuction}\r\n modal={true}\r\n goCatalog={onClear}\r\n clasStyle={'watch-catalog'}\r\n />\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\nimport { CloseModal } from '../Utilities/General';\r\n\r\nexport const OfferSuccess = () => {\r\n const history = useHistory();\r\n\r\n const closeOfferSuccess = () => {\r\n const redirect = document.getElementById('redirectHome').value;\r\n CloseModal('modalOfferSuccess');\r\n if (redirect === 'true') {\r\n history.push('/?home=true');\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n className=\"modal fade \"\r\n id=\"modalOfferSuccess\"\r\n aria-labelledby=\"offerSuccessModalLabel\"\r\n aria-hidden=\"true\"\r\n data-bs-backdrop=\"static\"\r\n data-bs-keyboard=\"false\"\r\n >\r\n <div className=\"modal-dialog modal-dialog-centered\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-header justify-content-end border-0\">\r\n <CloseModalIcon onHandleClick={() => closeOfferSuccess()} />\r\n </div>\r\n <div className=\"modal-body text-center\">\r\n <div className=\"text-center closing-accept\">\r\n <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"50%\" />\r\n </div>\r\n <div className=\"text-center closing-accept\" id=\"textMessageSection\"></div>\r\n <input type=\"hidden\" id=\"redirectHome\" value=\"false\" />\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-outline-secondary btn-lg success-offer-items closin-accept\"\r\n data-bs-dismiss=\"modalOfferSuccess\"\r\n aria-label=\"Close\"\r\n onClick={(e) => closeOfferSuccess()}\r\n >\r\n Aceptar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { POST } from '../../helpers/APIServices';\r\nimport { ServiceRequestPassword } from '../../helpers/getURL';\r\nimport { OpenMessage, validEmail, onlyMail } from '../Utilities/General';\r\n\r\nimport '../../css/Login/RecoveryPassword.css';\r\n\r\nexport const RecoveryPassword = () => {\r\n const [disabledBtn, setdisabledBtn] = useState(true);\r\n const [inputMail, setinputMail] = useState('');\r\n const URL = ServiceRequestPassword();\r\n const history = useHistory();\r\n\r\n const changeMail = (value) => {\r\n setinputMail(value);\r\n setdisabledBtn(false);\r\n if (value.trim() === '') {\r\n setdisabledBtn(true);\r\n }\r\n };\r\n\r\n const recovery = () => {\r\n if (!validEmail(inputMail)) {\r\n document.getElementById('input-mail').classList.add('is-invalid');\r\n OpenMessage('error', 'El formato del correo eléctronico no es válido');\r\n return false;\r\n }\r\n setdisabledBtn(true);\r\n const params = {\r\n email: inputMail,\r\n };\r\n POST(URL, params).then((data) => {\r\n setdisabledBtn(false);\r\n if (data === true) {\r\n OpenMessage('success', 'En breve recibira un correo para restaurar su contraseña');\r\n setinputMail('');\r\n setTimeout(() => history.push('/'), 3000);\r\n } else {\r\n OpenMessage('error', data);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <div className=\"container-fluid container__recoverypwd\">\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-8 col-sm-6 col-lg-4\">\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <div className=\"row\">\r\n <div className=\"col-12 mb-5\">\r\n <h5 className=\"card-title\">\r\n <i className=\"far fa-gem\"></i>Recuperar contraseña\r\n </h5>\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-md-11 col-lg-10 col-xxl-8\">\r\n <div className=\"mb-3 form-outline\">\r\n <input\r\n type=\"text\"\r\n id=\"input-mailRecovery\"\r\n className=\"form-control\"\r\n value={inputMail}\r\n onChange={(e) => changeMail(e.target.value)}\r\n maxLength=\"80\"\r\n onInput={(e) => onlyMail(e)}\r\n />\r\n <label htmlFor=\"input-mailRecovery\" className=\"form-label\">\r\n Correo electrónico:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-8 text-center mt-3\">\r\n <button type=\"button\" className=\"btn btn-outline-secondary btn-lg\" onClick={recovery} disabled={disabledBtn}>\r\n Enviar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useLocation, useHistory } from 'react-router-dom';\r\nimport { GET, POST } from '../../helpers/APIServices';\r\nimport { ServiceValidateTokenPasswordReset, ServiceResetPasswordReset } from '../../helpers/getURL';\r\nimport { OpenMessage, validPassword, changePasswordText } from '../Utilities/General';\r\nimport '../../css/Login/RecoveryPassword.css';\r\n\r\nlet id = '';\r\nlet token = '';\r\nexport const ResetPassword = () => {\r\n const [inputPasswordReset, setinputPasswordReset] = useState('');\r\n const [inputVerifyPasswordReset, setinputVerifyPasswordReset] = useState('');\r\n const [disabledBtnReset, setdisabledBtnReset] = useState(true);\r\n\r\n const history = useHistory();\r\n const { search } = useLocation();\r\n\r\n let URLReset = ServiceResetPasswordReset();\r\n\r\n useEffect(() => {\r\n let URL = ServiceValidateTokenPasswordReset();\r\n if (!search) {\r\n history.push('/');\r\n }\r\n if (URL) {\r\n URL += search;\r\n GET(URL).then((data) => {\r\n if (!data) {\r\n history.push('/expire');\r\n }\r\n id = data.id;\r\n token = data.token;\r\n const element = document.getElementsByClassName('container__recoverypwd');\r\n if (element && element.length === 1) {\r\n element[0].classList.remove('hidden');\r\n }\r\n });\r\n }\r\n }, [search, history]);\r\n\r\n const verifyPassword = () => {\r\n const msg = validPassword(inputPasswordReset);\r\n if (msg) {\r\n OpenMessage('error', msg);\r\n document.getElementById('input-passwordReset').classList.add('is-invalid');\r\n return false;\r\n }\r\n if (inputPasswordReset !== inputVerifyPasswordReset) {\r\n const password = ['input-passwordReset', 'input-passwordVerifyReset'];\r\n password.forEach((id) => {\r\n let element = document.getElementById(id);\r\n element.classList.add('is-invalid');\r\n });\r\n OpenMessage('error', 'Las contraseñas no coinciden');\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const enableBtnReset = () => {\r\n setdisabledBtnReset(true);\r\n if (inputPasswordReset && inputVerifyPasswordReset) {\r\n setdisabledBtnReset(false);\r\n }\r\n };\r\n\r\n const resetPassword = () => {\r\n if (verifyPassword()) {\r\n setdisabledBtnReset(true);\r\n const params = {\r\n id: id,\r\n token: token,\r\n newpassword: inputPasswordReset,\r\n };\r\n POST(URLReset, params).then((data) => {\r\n OpenMessage('success', data);\r\n setinputPasswordReset('');\r\n setinputVerifyPasswordReset('');\r\n\r\n setTimeout(() => history.push('/'), 3000);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <div className=\"container-fluid container__recoverypwd hidden\">\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-8 col-sm-6 col-lg-4\">\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <div className=\"row\">\r\n <div className=\"col-12 mb-5\">\r\n <h5 className=\"card-title\">\r\n <i className=\"far fa-gem\"></i>Restaurar contraseña\r\n </h5>\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-md-11 col-lg-10 col-xxl-8\">\r\n <div className=\"mb-3 form-outline input-group input-password container-input-login\">\r\n <input\r\n type=\"password\"\r\n className=\"form-control\"\r\n id=\"input-passwordReset\"\r\n value={inputPasswordReset}\r\n onKeyUp={enableBtnReset}\r\n onChange={(e) => setinputPasswordReset(e.target.value)}\r\n maxLength=\"50\"\r\n aria-describedby=\"icon-eyes-login\"\r\n />\r\n <i className=\"fas fa-eye-slash\" id=\"icon-eyes-login\" onClick={(e) => changePasswordText('input-passwordReset', e)}></i>\r\n\r\n <label htmlFor=\"input-passwordReset\" className=\"form-label\">\r\n Nueva contraseña:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-md-11 col-lg-10 col-xxl-8\">\r\n <div className=\"mb-3 form-outline input-group input-password container-input-login\">\r\n <input\r\n type=\"password\"\r\n className=\"form-control\"\r\n id=\"input-passwordVerifyReset\"\r\n onKeyUp={enableBtnReset}\r\n value={inputVerifyPasswordReset}\r\n onChange={(e) => setinputVerifyPasswordReset(e.target.value)}\r\n maxLength=\"50\"\r\n aria-describedby=\"icon-eyes-login\"\r\n />\r\n <i\r\n className=\"fas fa-eye-slash\"\r\n id=\"icon-eyes-login\"\r\n onClick={(e) => changePasswordText('input-passwordVerifyReset', e)}\r\n ></i>\r\n\r\n <label htmlFor=\"input-passwordReset\" className=\"form-label\">\r\n Confirmar contraseña:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-8 text-center mt-3\">\r\n <button type=\"button\" className=\"btn btn-outline-secondary btn-lg\" disabled={disabledBtnReset} onClick={resetPassword}>\r\n Cambiar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\r\n\r\nimport '../../css/Login/TokenNotValid.css';\r\n\r\nexport const TokenNotValid = () => {\r\n return (\r\n <div className=\"row container-fluid container__expire justify-content-center\">\r\n <div className=\"col-8 col-sm-6 col-lg-5 col-xxl-4 text-center container__expire-content\">\r\n <i className=\"fas fa-times\"></i>\r\n <label>Enlace no válido</label>\r\n <i className=\"fas fa-times\"></i>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport { useLocation, useHistory } from 'react-router-dom';\r\n\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { ServiceConfirmEmailNewUser } from '../../helpers/getURL';\r\n\r\nimport '../../css/CheckIn/VerifyUser.css';\r\n\r\nexport const VerifyUser = () => {\r\n const history = useHistory();\r\n const { search } = useLocation();\r\n if (!search) {\r\n history.push('/?home=true');\r\n }\r\n\r\n useEffect(() => {\r\n let URLConfirm = ServiceConfirmEmailNewUser();\r\n\r\n if (URLConfirm) {\r\n URLConfirm += search;\r\n GET(URLConfirm).then((data) => {\r\n if (data !== true) {\r\n history.push('/expire');\r\n }\r\n const element = document.getElementsByClassName('container__VerifyUser');\r\n if (element && element.length === 1) {\r\n element[0].classList.remove('hidden');\r\n setTimeout(() => history.push('/'), 10000);\r\n }\r\n });\r\n }\r\n }, [search, history]);\r\n\r\n return (\r\n <div className=\"row container-fluid container__VerifyUser justify-content-center hidden\">\r\n <div className=\"col-10 col-sm-8 col-md-6 col-lg-5 text-center container__VerifyUser-content\">\r\n <i className=\"fas fa-check\"></i>\r\n <label>Usuario verificado</label>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { ServiceGetLastAuctions } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { WatchCatalog } from '../Register/WatchCatalog';\r\nimport { convertToDate } from '../Utilities/General';\r\n\r\nexport const ActionAccount = (props) => {\r\n const [dataAuction, setDataAuction] = useState([]);\r\n\r\n useEffect(() => {\r\n if (props.visible === 'show') {\r\n const getData = () => {\r\n const URL = ServiceGetLastAuctions();\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n if (data) {\r\n setDataAuction(data);\r\n }\r\n });\r\n };\r\n getData();\r\n }\r\n }, [props.visible]);\r\n\r\n if (dataAuction.length === 0) {\r\n return (\r\n <div className={props.visible}>\r\n <div className=\"border-title\">\r\n <div>Subastas</div>\r\n </div>\r\n <div className=\"mb-3 row inputs-form\">\r\n <div className=\"col-12 text-center\">No existen registros</div>\r\n </div>\r\n </div>\r\n );\r\n } else {\r\n return (\r\n <div className={props.visible}>\r\n <div className=\"border-title\">\r\n <div>Subastas</div>\r\n </div>\r\n {dataAuction.map((item) => {\r\n return (\r\n <div className=\"mb-3 row inputs-form border-title\" key={item.idAuction}>\r\n <div className=\"col-8\">\r\n <h4>\r\n {item.name} | {convertToDate(item.date)}\r\n </h4>\r\n </div>\r\n <div className=\"col-4 auctions-account\">\r\n <WatchCatalog idAuction={item.idAuction} modal={false} />\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n }\r\n};\r\n","import React from 'react';\r\n\r\nexport const AdressConfirmDelete = ({ deleteAddress, id, modalType }) => {\r\n return (\r\n <div\r\n className='modal fade '\r\n id={`modalDeleteAddress${modalType}`}\r\n aria-labelledby='deleteAddress'\r\n aria-hidden='true'\r\n >\r\n <div className='modal-dialog modal-dialog-centered'>\r\n <div className='modal-content'>\r\n <div className='modal-body text-center mb-3'>\r\n <h3 className='text-uppercase px-5 pb-5'>\r\n ¿Está seguro que desea eliminar esta dirección?\r\n </h3>\r\n <button\r\n type='button'\r\n className='btn btn-outline-danger w- btn-lg me-2'\r\n data-bs-dismiss='modal'\r\n aria-label='Close'\r\n onClick={(e) => deleteAddress(id)}\r\n >\r\n SÃ, Eliminar\r\n </button>\r\n <button\r\n type='button'\r\n className='btn btn-outline-secondary w-auto btn-lg ms-2'\r\n data-bs-dismiss='modal'\r\n aria-label='Close'\r\n >\r\n Cancelar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport { DELETE, GET } from '../../helpers/APIServices';\r\nimport { ServiceInfoAddressBillingById } from '../../helpers/getURL';\r\nimport { verifyFieldsRequerid } from '../Utilities/General';\r\nimport { AdressConfirmDelete } from './paymentProcess/AdressConfirmDelete';\r\n\r\nexport const AddressBilling = (props) => {\r\n const deleteAddress = (id) => {\r\n const URL = ServiceInfoAddressBillingById(id);\r\n DELETE(URL, props.address).then((data) => {\r\n props.AddressRefresh(true);\r\n });\r\n };\r\n\r\n const getAddress = (e, id) => {\r\n e.preventDefault();\r\n const URL = ServiceInfoAddressBillingById(id);\r\n props.setTitleModal('Editar');\r\n GET(URL, props.address).then((data) => {\r\n if (data === '401') {\r\n getAddress();\r\n return '';\r\n }\r\n props.setAddress(data[0]);\r\n\r\n const inputs = [\r\n 'input-Calle-i',\r\n 'input-Numero-i',\r\n 'input-NumeroInt-i',\r\n 'input-Rfc-i',\r\n 'input-RazonSocial-i',\r\n 'input-emailBilling',\r\n 'input-Scp-i',\r\n ];\r\n\r\n inputs.forEach((item) => {\r\n const element = document.getElementById(item);\r\n element.classList.remove('is-invalid');\r\n element.focus();\r\n });\r\n\r\n const inputsTwo = ['input-Scp-i', 'input-Calle-i', 'input-Numero-i', 'input-Rfc-i', 'input-RazonSocial-i'];\r\n\r\n verifyFieldsRequerid(inputsTwo);\r\n\r\n const esFiscoMoral = document.getElementsByName('esfiscoMoral-i');\r\n esFiscoMoral.forEach((x) => {\r\n if (data[0].esFisicoMoral && x.id === 'moral') {\r\n x.checked = true;\r\n }\r\n });\r\n });\r\n };\r\n\r\n let list = '';\r\n if (props.listAddress.length > 0) {\r\n list = props.listAddress.map((item) => {\r\n const value = `${item.rfc}, ${item.razonSocial}, ${item.calle} No. Ext. ${item.numero}${\r\n item.numeroInt !== '' ? ` No. Int ${item.numeroInt}` : ''\r\n }, ${item.colonia}, C.P. ${item.scp}, ${item.municipio}, ${item.estado}, ${item.idPais}`;\r\n return (\r\n <div className=\"mb-3 row inputs-form\" key={item.id}>\r\n <div className=\"col-10 col-sm-10\">\r\n <p>{value}</p>\r\n </div>\r\n <div className=\"col-6 col-sm-1 text-end\">\r\n <a href=\"!#\" onClick={(e) => getAddress(e, item.id)} data-bs-toggle=\"modal\" data-bs-target={`#${props.modal}`}>\r\n Editar\r\n </a>\r\n </div>\r\n <div className=\"col-6 col-sm-1 text-start\">\r\n <a href=\"!#\" data-bs-toggle=\"modal\" data-bs-target={'#modalDeleteAddressBilling_' + item.id}>\r\n <i className=\"far fa-trash-alt\"></i>\r\n </a>\r\n </div>\r\n <AdressConfirmDelete id={item.id} deleteAddress={deleteAddress} modalType={'Billing_' + item.id} />\r\n </div>\r\n );\r\n });\r\n } else {\r\n list = (\r\n <div className=\"mb-3 row inputs-form\">\r\n <div className=\"col-12 text-center\">No existen registros</div>\r\n </div>\r\n );\r\n }\r\n\r\n return <Fragment>{list}</Fragment>;\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { POST, PUT, GET } from '../../helpers/APIServices';\r\nimport { ServiceCustomerInfoAddressBilling } from '../../helpers/getURL';\r\nimport { SelectCountry } from './SelectCountry';\r\nimport { SelectState } from './SelectState';\r\nimport { SelectTown } from './SelectTown';\r\nimport { SelectCity } from './SelectCity';\r\nimport {\r\n CloseModal,\r\n verifyFieldsRequerid,\r\n OpenMessage,\r\n onlyNumber,\r\n onlyTextNumber,\r\n onlyTextNumber2,\r\n validRFC,\r\n onlyMail,\r\n validEmail,\r\n} from '../Utilities/General';\r\nimport { ServiceGetByZipCode } from '../../helpers/getURL';\r\n\r\nimport '../../css/Login/RecoveryPassword.css';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\n\r\nconst ModalAddressBilling = (props) => {\r\n const [errors, setErrors] = useState({});\r\n const clearForm = () => {\r\n props.setAddress({\r\n id: '00000000-0000-0000-0000-000000000000',\r\n idCustomer: localStorage.getItem('id'),\r\n nombreCompleto: '',\r\n idPais: 'MX',\r\n idEdo: '',\r\n idMun: '',\r\n idCol: '',\r\n scp: '',\r\n numero: '',\r\n numeroInt: '',\r\n razonSocial: '',\r\n colonia: '',\r\n calle: '',\r\n rfc: '',\r\n referencia: '',\r\n esFisicoMoral: false,\r\n correo: '',\r\n });\r\n\r\n const esFiscoMoral = document.getElementsByName('esfiscoMoral-i');\r\n esFiscoMoral.forEach((x) => {\r\n if (x.id === 'fisica') {\r\n x.checked = true;\r\n }\r\n });\r\n\r\n setErrors({\r\n country: false,\r\n state: false,\r\n town: false,\r\n city: false,\r\n });\r\n\r\n CloseModal('modalAddressInvoice');\r\n };\r\n\r\n const verifyFields = () => {\r\n const inputs = ['input-Scp-i', 'input-Calle-i', 'input-Numero-i', 'input-Rfc-i', 'input-RazonSocial-i', 'input-emailBilling'];\r\n\r\n let flag = true;\r\n let validFields = verifyFieldsRequerid(inputs);\r\n if (!validFields) {\r\n OpenMessage('warning', 'Por favor ingrese todos los campos obligatorios.');\r\n flag = false;\r\n }\r\n\r\n let errorSet = {\r\n country: false,\r\n state: false,\r\n town: false,\r\n city: false,\r\n };\r\n\r\n if (props.address.idPais === '') {\r\n errorSet.country = true;\r\n flag = false;\r\n }\r\n if (props.address.idEdo === '') {\r\n errorSet.state = true;\r\n flag = false;\r\n }\r\n if (props.address.idMun === '') {\r\n errorSet.town = true;\r\n flag = false;\r\n }\r\n if (props.address.idCol === '') {\r\n errorSet.city = true;\r\n flag = false;\r\n }\r\n\r\n setErrors(errorSet);\r\n return flag;\r\n };\r\n\r\n const getZipCode = () => {\r\n if (props.address.scp === '') {\r\n return;\r\n }\r\n const URL = ServiceGetByZipCode(props.address.scp);\r\n GET(URL, props.address).then((data) => {\r\n if (data === '401') {\r\n getZipCode();\r\n return '';\r\n }\r\n if (data) {\r\n props.setAddress({\r\n ...props.address,\r\n idPais: data.state.idCountry,\r\n idMun: data.town.idTown,\r\n idEdo: data.state.idState,\r\n idCol: '',\r\n });\r\n\r\n props.setListCities(data.cities);\r\n } else {\r\n OpenMessage('error', 'Código postal no encontrado');\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const { idPais, idEdo, idMun } = props.address;\r\n if (idPais === '' || idEdo === '' || idMun === '') {\r\n props.setListCities([]);\r\n }\r\n }, []);\r\n\r\n const Send = (e) => {\r\n e.preventDefault();\r\n if (!verifyFields()) {\r\n return;\r\n }\r\n\r\n const rfc = document.getElementById('input-Rfc-i');\r\n const esFiscoMoral = document.getElementsByName('esfiscoMoral-i');\r\n let bandera = false;\r\n esFiscoMoral.forEach((x) => {\r\n bandera = x.checked && x.id === 'moral';\r\n });\r\n\r\n if (!validRFC(rfc, bandera)) {\r\n return;\r\n }\r\n const email = document.getElementById('input-emailBilling');\r\n email.classList.remove('is-invalid');\r\n if (props.address.correo && !validEmail(props.address.correo)) {\r\n email.classList.add('is-invalid');\r\n OpenMessage('warning', 'El formato del correo eléctronico no es válido');\r\n return;\r\n }\r\n\r\n const URL = ServiceCustomerInfoAddressBilling();\r\n\r\n if (props.address.id === '00000000-0000-0000-0000-000000000000') {\r\n POST(URL, props.address).then((data) => {\r\n if (data.success === true) {\r\n clearForm();\r\n props.AddressRefresh();\r\n } else {\r\n OpenMessage('error', data.message);\r\n }\r\n });\r\n return;\r\n }\r\n\r\n PUT(URL, props.address).then((data) => {\r\n if (data.success === true) {\r\n clearForm();\r\n props.AddressRefresh();\r\n } else {\r\n OpenMessage('error', data.message);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <div\r\n className=\"modal container__modaladress\"\r\n id=\"modalAddressInvoice\"\r\n aria-hidden=\"true\"\r\n data-bs-backdrop=\"static\"\r\n data-bs-keyboard=\"false\"\r\n >\r\n <div className=\"modal-dialog modal-sm modal-dialog-centered\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-header modal-header-login justify-content-end\">\r\n <CloseModalIcon onHandleClick={(e) => clearForm(e)} />\r\n </div>\r\n <div className=\"modal-body\">\r\n <div className=\"text-center mt-2\">\r\n <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"65%\" />\r\n </div>\r\n <div className=\"text-center mb-4 mt-4\">\r\n <h4 className=\"modal-title fw-bold text-uppercase\">{props.titleModal} datos fiscales</h4>\r\n </div>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-12\">\r\n <div className=\"mb-3 form-outline\">\r\n <input\r\n type=\"text\"\r\n id=\"input-Rfc-i\"\r\n className=\"form-control text-uppercase\"\r\n maxLength=\"15\"\r\n value={props.address.rfc}\r\n onInput={(e) => onlyTextNumber2(e)}\r\n onChange={(e) =>\r\n props.setAddress({\r\n ...props.address,\r\n rfc: e.target.value,\r\n })\r\n }\r\n />\r\n <label htmlFor=\"input-Rfc-i\" className=\"form-label\">\r\n RFC:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-12\">\r\n <div className=\"mb-3 form-outline\">\r\n <input\r\n type=\"text\"\r\n id=\"input-RazonSocial-i\"\r\n className=\"form-control\"\r\n value={props.address.razonSocial}\r\n onInput={(e) => onlyTextNumber(e)}\r\n onChange={(e) =>\r\n props.setAddress({\r\n ...props.address,\r\n razonSocial: e.target.value,\r\n })\r\n }\r\n />\r\n <label htmlFor=\"input-RazonSocial-i\" className=\"form-label\">\r\n Razón social:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-9\">\r\n <div className=\"mb-3 form-outline\">\r\n <input\r\n type=\"text\"\r\n id=\"input-Scp-i\"\r\n className=\"form-control\"\r\n maxLength='5'\r\n value={props.address.scp}\r\n onInput={(e) => onlyNumber(e)}\r\n onChange={(e) =>\r\n props.setAddress({\r\n ...props.address,\r\n scp: e.target.value,\r\n })\r\n }\r\n />\r\n <label htmlFor=\"input-Scp-i\" className=\"form-label\">\r\n Código Postal:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-3\">\r\n <div className=\"mb-3 form-outline\">\r\n <button className=\"btn btn-outline-secondary btn-lg\" type=\"button\" onClick={() => getZipCode()}>\r\n <i className=\"fas fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div className=\"mb-3 col-12\">\r\n <SelectCountry setAddress={props.setAddress} address={props.address} id={'select-country-i'} errors={errors} />\r\n </div>\r\n\r\n <div className=\"mb-3 col-12\">\r\n <SelectState setAddress={props.setAddress} address={props.address} id={'select-state-i'} errors={errors} />\r\n </div>\r\n\r\n <div className=\"mb-3 col-12\">\r\n <SelectTown\r\n setAddress={props.setAddress}\r\n address={props.address}\r\n id={'select-town-i'}\r\n setListCities={props.setListCities}\r\n errors={errors}\r\n />\r\n </div>\r\n\r\n <div className=\"mb-3 col-12\">\r\n <SelectCity\r\n setAddress={props.setAddress}\r\n address={props.address}\r\n id={'select-city-i'}\r\n listCities={props.listCities}\r\n errors={errors}\r\n />\r\n </div>\r\n\r\n <div className=\"col-12\">\r\n <div className=\"mb-3 form-outline\">\r\n <input\r\n type=\"text\"\r\n id=\"input-Calle-i\"\r\n className=\"form-control\"\r\n value={props.address.calle}\r\n onInput={(e) => onlyTextNumber(e)}\r\n onChange={(e) =>\r\n props.setAddress({\r\n ...props.address,\r\n calle: e.target.value,\r\n })\r\n }\r\n />\r\n <label htmlFor=\"input-Calle-i\" className=\"form-label\">\r\n Calle:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-6\">\r\n <div className=\"mb-3 form-outline\">\r\n <input\r\n type=\"text\"\r\n id=\"input-Numero-i\"\r\n className=\"form-control\"\r\n value={props.address.numero}\r\n onInput={(e) => onlyTextNumber(e)}\r\n onChange={(e) =>\r\n props.setAddress({\r\n ...props.address,\r\n numero: e.target.value,\r\n })\r\n }\r\n />\r\n <label htmlFor=\"input-Numero-i\" className=\"form-label\">\r\n N° Exterior:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-6\">\r\n <div className=\"mb-3 form-outline\">\r\n <input\r\n type=\"text\"\r\n id=\"input-NumeroInt-i\"\r\n className=\"form-control\"\r\n value={props.address.numeroInt}\r\n onInput={(e) => onlyTextNumber(e)}\r\n onChange={(e) =>\r\n props.setAddress({\r\n ...props.address,\r\n numeroInt: e.target.value,\r\n })\r\n }\r\n />\r\n <label htmlFor=\"input-NumeroInt-i\" className=\"form-label\">\r\n N° Interior:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-12\">\r\n <div className=\"mb-3 form-outline\">\r\n <input\r\n type=\"text\"\r\n id=\"input-emailBilling\"\r\n className=\"form-control\"\r\n value={props.address.correo}\r\n onInput={(e) => onlyMail(e)}\r\n onChange={(e) =>\r\n props.setAddress({\r\n ...props.address,\r\n correo: e.target.value,\r\n })\r\n }\r\n />\r\n <label htmlFor=\"input-emailBilling\" className=\"form-label\">\r\n Correo:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-6\">\r\n <div className=\"form-check align-terms \">\r\n <label className=\"form-check-label\" htmlFor=\"fisica\">\r\n FÃsica\r\n </label>\r\n <input\r\n className=\"form-check-input\"\r\n type=\"radio\"\r\n id=\"fisica\"\r\n name=\"esfiscoMoral-i\"\r\n value=\"false\"\r\n onClick={(e) => {\r\n props.setAddress({\r\n ...props.address,\r\n esFisicoMoral: true,\r\n });\r\n }}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-6\">\r\n <div className=\"form-check align-terms \">\r\n <label className=\"form-check-label\" htmlFor=\"moral\">\r\n Moral\r\n </label>\r\n <input\r\n className=\"form-check-input\"\r\n type=\"radio\"\r\n id=\"moral\"\r\n name=\"esfiscoMoral-i\"\r\n value=\"true\"\r\n onClick={(e) => {\r\n props.setAddress({\r\n ...props.address,\r\n esFisicoMoral: false,\r\n });\r\n }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"modal-footer\">\r\n <div className=\"container-fluid\">\r\n <div className=\"mb-3 row inputs-form\">\r\n <div className=\"col-7 text-end\">\r\n <button type=\"button\" className=\"btn btn-outline-danger\" onClick={() => clearForm()}>\r\n <i className=\"fas fa-times\"></i>\r\n Cancelar\r\n </button>\r\n </div>\r\n <div className=\"col-5\">\r\n <button className=\"btn btn-outline-secondary\" onClick={(e) => Send(e)}>\r\n Guardar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ModalAddressBilling;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { AddressBilling } from './AddressBilling';\r\nimport { CloseModal, validSession } from '../Utilities/General';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { ServiceGetAddressBillingByIdCustomer, ServiceGetGeneralParameterById } from '../../helpers/getURL';\r\nimport { getLimitShippingInvoice } from '../../helpers/getConstants';\r\nimport ModalAddressBilling from './ModalAddressBilling';\r\n\r\nexport const AddressBillingAccount = (props) => {\r\n const [titleModal, setTitleModal] = useState('');\r\n const [listAddress, setListAddress] = useState([]);\r\n const [maxAddress, setMaxAddress] = useState(false);\r\n const [listCities, setListCities] = useState([]);\r\n const [address, setAddress] = useState({\r\n id: '00000000-0000-0000-0000-000000000000',\r\n idCustomer: localStorage.getItem('id'),\r\n idPais: 'MX',\r\n idEdo: '',\r\n idMun: '',\r\n idCol: '',\r\n scp: '',\r\n numero: '',\r\n numeroInt: '',\r\n razonSocial: '',\r\n colonia: '',\r\n calle: '',\r\n rfc: '',\r\n alias: '',\r\n referencia: '',\r\n esFisicoMoral: false,\r\n correo: '',\r\n });\r\n\r\n const addressClick = () => {\r\n setTitleModal('Agregar');\r\n const inputs = [\r\n 'input-Calle-i',\r\n 'input-Numero-i',\r\n 'input-NumeroInt-i',\r\n 'input-Rfc-i',\r\n 'input-RazonSocial-i',\r\n 'input-Scp-i',\r\n 'input-emailBilling',\r\n ];\r\n\r\n inputs.forEach((item) => {\r\n const element = document.getElementById(item);\r\n element.classList.remove('active');\r\n element.classList.remove('is-invalid');\r\n });\r\n };\r\n\r\n const AddressRefresh = (flagDelete) => {\r\n if (!validSession()) {\r\n return;\r\n }\r\n const idCustomer = localStorage.getItem('id');\r\n const URL = ServiceGetAddressBillingByIdCustomer(idCustomer);\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n AddressRefresh();\r\n return '';\r\n }\r\n if (flagDelete) {\r\n CloseModal('modalDeleteAddressBilling');\r\n }\r\n if (data) {\r\n setListAddress(data);\r\n const id = getLimitShippingInvoice();\r\n const URLParameter = ServiceGetGeneralParameterById(id);\r\n\r\n GET(URLParameter).then((response) => {\r\n if (response === '401') {\r\n AddressRefresh();\r\n return '';\r\n }\r\n if (response && response.valor !== undefined && !isNaN(response.valor)) {\r\n setMaxAddress(parseInt(data.length) >= parseInt(response.valor));\r\n } else {\r\n setMaxAddress(false);\r\n }\r\n });\r\n } else {\r\n setListAddress([]);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (props.visible === 'show') {\r\n const Address = () => {\r\n const idCustomer = localStorage.getItem('id');\r\n if (!validSession()) {\r\n return;\r\n }\r\n const URL = ServiceGetAddressBillingByIdCustomer(idCustomer);\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n Address();\r\n return '';\r\n }\r\n if (data) {\r\n setListAddress(data);\r\n\r\n const id = getLimitShippingInvoice();\r\n const URLParameter = ServiceGetGeneralParameterById(id);\r\n GET(URLParameter).then((response) => {\r\n if (response === '401') {\r\n Address();\r\n return '';\r\n }\r\n if (response && response.valor !== undefined && !isNaN(response.valor)) {\r\n setMaxAddress(parseInt(data.length) >= parseInt(response.valor));\r\n } else {\r\n setMaxAddress(false);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n Address();\r\n }\r\n }, [props.visible]);\r\n\r\n return (\r\n <div className={'container__addressAccount ' + props.visible}>\r\n <div className=\"border-title\">\r\n <div>Datos fiscales</div>\r\n </div>\r\n <AddressBilling\r\n listAddress={listAddress}\r\n setAddress={setAddress}\r\n address={address}\r\n AddressRefresh={AddressRefresh}\r\n modal={'modalAddressInvoice'}\r\n setTitleModal={setTitleModal}\r\n />\r\n <div className=\"mb-3 row inputs-form justify-content-center\">\r\n <div className=\"col-12 text-center\">\r\n <button\r\n disabled={maxAddress}\r\n type=\"button\"\r\n className=\"btn btn-outline-secondary btn-profile\"\r\n data-bs-toggle=\"modal\"\r\n data-bs-target=\"#modalAddressInvoice\"\r\n onClick={(e) => addressClick()}\r\n >\r\n Agregar datos fiscales\r\n </button>\r\n </div>\r\n </div>\r\n <ModalAddressBilling\r\n setAddress={setAddress}\r\n address={address}\r\n AddressRefresh={AddressRefresh}\r\n setListCities={setListCities}\r\n listCities={listCities}\r\n titleModal={titleModal}\r\n />\r\n </div>\r\n );\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport { DELETE, GET } from '../../helpers/APIServices';\r\nimport { ServiceInfoAddressShippingById } from '../../helpers/getURL';\r\nimport { verifyFieldsRequerid } from '../Utilities/General';\r\nimport { AdressConfirmDelete } from './paymentProcess/AdressConfirmDelete';\r\n\r\nexport const AddressShipping = (props) => {\r\n const deleteAddress = (id) => {\r\n const URL = ServiceInfoAddressShippingById(id);\r\n DELETE(URL, props.address).then((data) => {\r\n props.AddressRefresh(true);\r\n });\r\n };\r\n\r\n const getAddress = (e, id) => {\r\n e.preventDefault();\r\n props.setTitleModal('Editar');\r\n const URL = ServiceInfoAddressShippingById(id);\r\n GET(URL, props.address).then((data) => {\r\n if (data === '401') {\r\n getAddress();\r\n return '';\r\n }\r\n props.setAddress(data[0]);\r\n\r\n const inputs = ['input-Calle', 'input-Numero', 'input-Alias', 'input-NumeroInt', 'input-referenceAddress', 'input-Scp'];\r\n\r\n inputs.forEach((item) => {\r\n document.getElementById(item).focus();\r\n });\r\n\r\n const inputsTwo = ['input-Scp', 'input-Calle', 'input-Numero', 'input-Alias'];\r\n\r\n verifyFieldsRequerid(inputsTwo);\r\n });\r\n };\r\n\r\n let list = '';\r\n\r\n if (props.listAddress.length > 0) {\r\n list = props.listAddress.map((item, i) => {\r\n let alias = '';\r\n if (item.alias !== undefined) {\r\n alias = (\r\n <div className=\"col-2\">\r\n <label className=\"col-form-label configuration-profile-labels\">\r\n {item.alias.length > 10 ? item.alias.substring(0, 11) + '...' : item.alias}\r\n </label>\r\n <br />\r\n {item.predeterminado && (\r\n <i className=\"far fa-check-square address-default\" data-toggle=\"tooltip\" title=\"Dirección predeterminada\"></i>\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n const value = `${item.calle} No. Ext. ${item.numero}${item.numeroInt !== '' ? ` No. Int ${item.numeroInt}` : ''}, ${\r\n item.colonia\r\n }, C.P. ${item.scp}, ${item.municipio}, ${item.estado}, ${item.idPais}`;\r\n\r\n return (\r\n <div className=\"mb-3 row inputs-form\" key={i}>\r\n {alias}\r\n <div className=\"col-10 col-sm-8\">\r\n <p>{value}</p>\r\n </div>\r\n <div className=\"col-6 col-sm-1 text-end\">\r\n <a href=\"!#\" onClick={(e) => getAddress(e, item.id)} data-bs-toggle=\"modal\" data-bs-target={`#${props.modal}`}>\r\n Editar\r\n </a>\r\n </div>\r\n <div className=\"col-6 col-sm-1 text-start\">\r\n <a href=\"!#\" data-bs-toggle=\"modal\" data-bs-target={'#modalDeleteAddressShipping_' + item.id}>\r\n <i className=\"far fa-trash-alt\"></i>\r\n </a>\r\n </div>\r\n <AdressConfirmDelete id={item.id} deleteAddress={deleteAddress} modalType={'Shipping_' + item.id} />\r\n </div>\r\n );\r\n });\r\n } else {\r\n list = (\r\n <div className=\"mb-3 row inputs-form\">\r\n <div className=\"col-12 text-center\">No existen registros</div>\r\n </div>\r\n );\r\n }\r\n\r\n return <Fragment>{list}</Fragment>;\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { POST, PUT, GET } from '../../helpers/APIServices';\r\nimport { ServiceCustomerInfoAddressShipping } from '../../helpers/getURL';\r\nimport { SelectCountry } from './SelectCountry';\r\nimport { SelectState } from './SelectState';\r\nimport { SelectTown } from './SelectTown';\r\nimport { SelectCity } from './SelectCity';\r\nimport { CloseModal, verifyFieldsRequerid, OpenMessage, onlyNumber, onlyTextNumber } from '../Utilities/General';\r\nimport { ServiceGetByZipCode } from '../../helpers/getURL';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\nimport '../../css/Login/RecoveryPassword.css';\r\n\r\nconst ModalAddressShipping = (props) => {\r\n const [errors, setErrors] = useState({});\r\n const clearForm = () => {\r\n props.setAddress({\r\n id: '00000000-0000-0000-0000-000000000000',\r\n idCustomer: localStorage.getItem('id'),\r\n nombreCompleto: '',\r\n idPais: 'MX',\r\n idEdo: '',\r\n idMun: '',\r\n idCol: '',\r\n scp: '',\r\n numero: '',\r\n numeroInt: '',\r\n razonSocial: '',\r\n colonia: '',\r\n calle: '',\r\n rfc: '',\r\n alias: '',\r\n referencia: '',\r\n esFisicoMoral: true,\r\n predeterminado: false,\r\n });\r\n\r\n setErrors({\r\n country: false,\r\n state: false,\r\n town: false,\r\n city: false,\r\n });\r\n\r\n CloseModal('modalAddress');\r\n };\r\n\r\n const verifyFields = () => {\r\n const inputs = ['input-Scp', 'input-Calle', 'input-Alias', 'input-Numero'];\r\n\r\n let flag = true;\r\n let validFields = verifyFieldsRequerid(inputs);\r\n if (!validFields) {\r\n OpenMessage('warning', 'Por favor ingrese todos los campos obligatorios.');\r\n flag = false;\r\n }\r\n\r\n let errorSet = {\r\n country: false,\r\n state: false,\r\n town: false,\r\n city: false,\r\n };\r\n\r\n if (props.address.idPais === '') {\r\n errorSet.country = true;\r\n flag = false;\r\n }\r\n if (props.address.idEdo === '') {\r\n errorSet.state = true;\r\n flag = false;\r\n }\r\n if (props.address.idMun === '') {\r\n errorSet.town = true;\r\n flag = false;\r\n }\r\n if (props.address.idCol === '') {\r\n errorSet.city = true;\r\n flag = false;\r\n }\r\n\r\n setErrors(errorSet);\r\n return flag;\r\n };\r\n\r\n const getZipCode = () => {\r\n if (props.address.scp === '') {\r\n return;\r\n }\r\n const URL = ServiceGetByZipCode(props.address.scp);\r\n GET(URL, props.address).then((data) => {\r\n if (data === '401') {\r\n getZipCode();\r\n return '';\r\n }\r\n if (data) {\r\n props.setAddress({\r\n ...props.address,\r\n idPais: data.state.idCountry,\r\n idMun: data.town.idTown,\r\n idEdo: data.state.idState,\r\n idCol: '',\r\n colonia: '',\r\n });\r\n props.setListCities(data.cities);\r\n } else {\r\n OpenMessage('warning', 'Código postal no encontrado');\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const { idPais, idEdo, idMun } = props.address;\r\n if (idPais === '' || idEdo === '' || idMun === '') {\r\n props.setListCities([]);\r\n }\r\n }, []);\r\n\r\n const Send = (e) => {\r\n e.preventDefault();\r\n\r\n if (!verifyFields()) {\r\n return;\r\n }\r\n\r\n const URL = ServiceCustomerInfoAddressShipping();\r\n\r\n if (props.address.id === '00000000-0000-0000-0000-000000000000') {\r\n POST(URL, props.address).then((data) => {\r\n if (data.success) {\r\n clearForm();\r\n props.AddressRefresh();\r\n } else {\r\n OpenMessage('error', data.message);\r\n }\r\n });\r\n return;\r\n }\r\n PUT(URL, props.address).then((data) => {\r\n if (data.success) {\r\n clearForm();\r\n props.AddressRefresh();\r\n } else {\r\n OpenMessage('error', data.message);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <div className=\"modal container__modaladress\" id=\"modalAddress\" aria-hidden=\"true\" data-bs-backdrop=\"static\" data-bs-keyboard=\"false\">\r\n <div className=\"modal-dialog modal-sm modal-dialog-centered\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-header modal-header-login justify-content-end\">\r\n <CloseModalIcon onHandleClick={(e) => clearForm(e)}/>\r\n </div>\r\n <div className=\"modal-body\">\r\n <div className=\"text-center mt-2\">\r\n <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"65%\" />\r\n </div>\r\n <div className=\"text-center mb-4 mt-4\">\r\n <h4 className=\"modal-title fw-bold text-uppercase mb-3\">{props.titleModal} dirección</h4>\r\n </div>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-9\">\r\n <div className=\"mb-3 form-outline\">\r\n <input\r\n type=\"text\"\r\n id=\"input-Scp\"\r\n className=\"form-control\"\r\n value={props.address.scp}\r\n maxLength='5'\r\n onInput={(e) => onlyNumber(e)}\r\n onChange={(e) =>\r\n props.setAddress({\r\n ...props.address,\r\n scp: e.target.value,\r\n })\r\n }\r\n />\r\n <label htmlFor=\"input-Scp\" className=\"form-label\">\r\n Código Postal:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-3\">\r\n <div className=\"mb-3 form-outline\">\r\n <button className=\"btn btn-outline-secondary btn-lg\" type=\"button\" onClick={() => getZipCode()}>\r\n <i className=\"fas fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div className=\"mb-3 col-12\">\r\n <SelectCountry setAddress={props.setAddress} address={props.address} id={'select-country'} errors={errors} />\r\n </div>\r\n\r\n <div className=\"mb-3 col-12\">\r\n <SelectState setAddress={props.setAddress} address={props.address} id={'select-state'} errors={errors} />\r\n </div>\r\n\r\n <div className=\"mb-3 col-12\">\r\n <SelectTown\r\n setAddress={props.setAddress}\r\n address={props.address}\r\n id={'select-town'}\r\n setListCities={props.setListCities}\r\n errors={errors}\r\n />\r\n </div>\r\n\r\n <div className=\"mb-3 col-12\">\r\n <SelectCity\r\n setAddress={props.setAddress}\r\n address={props.address}\r\n id={'select-city'}\r\n listCities={props.listCities}\r\n errors={errors}\r\n />\r\n </div>\r\n\r\n <div className=\"col-12\">\r\n <div className=\"mb-3 form-outline\">\r\n <input\r\n type=\"text\"\r\n id=\"input-Calle\"\r\n className=\"form-control\"\r\n value={props.address.calle}\r\n onInput={(e) => onlyTextNumber(e)}\r\n onChange={(e) =>\r\n props.setAddress({\r\n ...props.address,\r\n calle: e.target.value,\r\n })\r\n }\r\n />\r\n <label htmlFor=\"input-Calle\" className=\"form-label\">\r\n Calle:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-6\">\r\n <div className=\"mb-3 form-outline\">\r\n <input\r\n type=\"text\"\r\n id=\"input-Numero\"\r\n className=\"form-control\"\r\n value={props.address.numero}\r\n onInput={(e) => onlyTextNumber(e)}\r\n onChange={(e) =>\r\n props.setAddress({\r\n ...props.address,\r\n numero: e.target.value,\r\n })\r\n }\r\n />\r\n <label htmlFor=\"input-Numero\" className=\"form-label\">\r\n N° Exterior:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-6\">\r\n <div className=\"mb-3 form-outline\">\r\n <input\r\n type=\"text\"\r\n id=\"input-NumeroInt\"\r\n className=\"form-control\"\r\n value={props.address.numeroInt}\r\n onInput={(e) => onlyTextNumber(e)}\r\n onChange={(e) =>\r\n props.setAddress({\r\n ...props.address,\r\n numeroInt: e.target.value,\r\n })\r\n }\r\n />\r\n <label htmlFor=\"input-NumeroInt\" className=\"form-label\">\r\n N° interior:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-12\">\r\n <div className=\"mb-3 form-outline\">\r\n <input\r\n type=\"text\"\r\n id=\"input-referenceAddress\"\r\n className=\"form-control\"\r\n value={props.address.referencia}\r\n onInput={(e) => onlyTextNumber(e)}\r\n onChange={(e) =>\r\n props.setAddress({\r\n ...props.address,\r\n referencia: e.target.value,\r\n })\r\n }\r\n />\r\n <label htmlFor=\"input-referenceAddress\" className=\"form-label\">\r\n Referencia:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-12\">\r\n <div className=\"mb-3 form-outline\">\r\n <input\r\n type=\"text\"\r\n id=\"input-Alias\"\r\n className=\"form-control\"\r\n value={props.address.alias}\r\n onInput={(e) => onlyTextNumber(e)}\r\n onChange={(e) =>\r\n props.setAddress({\r\n ...props.address,\r\n alias: e.target.value,\r\n })\r\n }\r\n />\r\n <label htmlFor=\"input-Alias\" className=\"form-label\">\r\n Alias:\r\n </label>\r\n <div className=\"form-notch\">\r\n <div className=\"form-notch-leading\"></div>\r\n <div className=\"form-notch-middle\"></div>\r\n <div className=\"form-notch-trailing\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-12\">\r\n <label htmlFor=\"checkBoxDefault\" className=\"text-capitalize\">\r\n Predeterminada:{' '}\r\n </label>{' '}\r\n <input\r\n className=\"form-check-input mt-2\"\r\n type=\"checkbox\"\r\n id=\"checkBoxDefault\"\r\n checked={props.address.predeterminado}\r\n onChange={(e) => {}}\r\n onClick={(e) =>\r\n props.setAddress({\r\n ...props.address,\r\n predeterminado: e.target.checked,\r\n })\r\n }\r\n />\r\n <br />\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"modal-footer\">\r\n <div className=\"container-fluid\">\r\n <div className=\"mb-3 row inputs-form\">\r\n <div className=\"col-7 text-end\">\r\n <button type=\"button\" className=\"btn btn-outline-danger\" onClick={() => clearForm()}>\r\n <i className=\"fas fa-times\"></i>\r\n Cancelar\r\n </button>\r\n </div>\r\n <div className=\"col-5\">\r\n <button className=\"btn btn-outline-secondary\" onClick={(e) => Send(e)}>\r\n Guardar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ModalAddressShipping;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { AddressShipping } from './AddressShipping';\r\nimport ModalAddressShipping from './ModalAddressShipping';\r\n//import { getAddresShipping } from '../../helpers/getConstants';\r\nimport { validSession, CloseModal, OpenMessage } from '../Utilities/General';\r\nimport { ServiceGetAddressShippingByIdCustomer, ServiceGetGeneralParameterById, ServiceGenericParameters } from '../../helpers/getURL';\r\nimport { getLimitShipping } from '../../helpers/getConstants';\r\n\r\nexport const AddressShippingAccount = (props) => {\r\n const [titleModal, setTitleModal] = useState('');\r\n const [listAddress, setListAddress] = useState([]);\r\n const [listCities, setListCities] = useState([]);\r\n const [maxAddress, setMaxAddress] = useState(false);\r\n const [address, setAddress] = useState({\r\n id: '00000000-0000-0000-0000-000000000000',\r\n idCustomer: localStorage.getItem('id'),\r\n idPais: 'MX',\r\n idEdo: '',\r\n idMun: '',\r\n idCol: '',\r\n scp: '',\r\n numero: '',\r\n numeroInt: '',\r\n razonSocial: '',\r\n colonia: '',\r\n calle: '',\r\n rfc: '',\r\n alias: '',\r\n referencia: '',\r\n esFisicoMoral: false,\r\n predeterminado: false,\r\n });\r\n\r\n const AddressRefresh = (flagDelete) => {\r\n const idCustomer = localStorage.getItem('id');\r\n if (!validSession()) {\r\n return;\r\n }\r\n const URL = ServiceGetAddressShippingByIdCustomer(idCustomer);\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n AddressRefresh();\r\n return '';\r\n }\r\n if (flagDelete) {\r\n CloseModal('modalDeleteAddressShipping');\r\n }\r\n if (data) {\r\n setListAddress(data);\r\n const id = getLimitShipping();\r\n const URLParameter = ServiceGetGeneralParameterById(id);\r\n\r\n GET(URLParameter).then((response) => {\r\n if (response === '401') {\r\n AddressRefresh();\r\n return '';\r\n }\r\n if (response && response.valor !== undefined && !isNaN(response.valor)) {\r\n setMaxAddress(parseInt(data.length) >= parseInt(response.valor));\r\n } else {\r\n setMaxAddress(false);\r\n }\r\n });\r\n } else {\r\n setListAddress([]);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (props.visible === 'show') {\r\n const Address = () => {\r\n const idCustomer = localStorage.getItem('id');\r\n if (!validSession()) {\r\n return;\r\n }\r\n\r\n const URL = ServiceGetAddressShippingByIdCustomer(idCustomer);\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n Address();\r\n return '';\r\n }\r\n if (data) {\r\n setListAddress(data);\r\n\r\n const id = getLimitShipping();\r\n const URLParameter = ServiceGetGeneralParameterById(id);\r\n\r\n GET(URLParameter).then((response) => {\r\n if (response === '401') {\r\n Address();\r\n return '';\r\n }\r\n if (response && response.valor !== undefined && !isNaN(response.valor)) {\r\n setMaxAddress(parseInt(data.length) >= parseInt(response.valor));\r\n } else {\r\n setMaxAddress(false);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n Address();\r\n }\r\n }, [props.visible]);\r\n\r\n const NDirectionsValidation = () => {\r\n const URL = ServiceGenericParameters(getLimitShipping());\r\n setTitleModal('Agregar');\r\n const inputs = ['input-Calle', 'input-Numero', 'input-referenceAddress', 'input-Alias', 'input-NumeroInt', 'input-Scp'];\r\n\r\n inputs.forEach((item) => {\r\n document.getElementById(item).classList.remove('active');\r\n });\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n NDirectionsValidation();\r\n return '';\r\n }\r\n if (data) {\r\n if (listAddress.length >= data.value) {\r\n CloseModal('modalAddress');\r\n OpenMessage('warning', 'No se pueden registrar más de ' + data.value + ' direcciones de envÃo');\r\n }\r\n } else {\r\n OpenMessage('warning', 'No es posible registrar una dirección de envÃo');\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <div className={'container__addressAccount ' + props.visible}>\r\n <div className=\"border-title\">\r\n <div>Direcciones de envÃo</div>\r\n </div>\r\n <AddressShipping\r\n listAddress={listAddress}\r\n setAddress={setAddress}\r\n address={address}\r\n AddressRefresh={AddressRefresh}\r\n modal={'modalAddress'}\r\n setTitleModal={setTitleModal}\r\n />\r\n <div className=\"mb-3 row inputs-form justify-content-center\">\r\n <div className=\"col-12 text-center\">\r\n <button\r\n disabled={maxAddress}\r\n type=\"button\"\r\n className=\"btn btn-outline-secondary btn-profile\"\r\n data-bs-toggle=\"modal\"\r\n data-bs-target=\"#modalAddress\"\r\n onClick={() => NDirectionsValidation()}\r\n >\r\n Agregar dirección\r\n </button>\r\n </div>\r\n </div>\r\n <ModalAddressShipping\r\n setAddress={setAddress}\r\n address={address}\r\n AddressRefresh={AddressRefresh}\r\n setListCities={setListCities}\r\n listCities={listCities}\r\n titleModal={titleModal}\r\n />\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport { GET } from \"../../helpers/APIServices\";\r\nimport {\r\n ServiceGetAwardsActive,\r\n ServiceClientData,\r\n ServiceGenericParameters,\r\n} from \"../../helpers/getURL\";\r\nimport {\r\n convertToDate,\r\n formatCurrency,\r\n convertToDatePenaltyDay,\r\n OpenMessage,\r\n} from \"../Utilities/General\";\r\nimport {\r\n getImgDefault,\r\n getPenaltyDays,\r\n getPenaltyDaysDefault,\r\n getDisableCheckoutMessageID,\r\n} from \"../../helpers/getConstants\";\r\n\r\nimport { ModalCustomerData } from \"./customerData/ModalCustomerData\";\r\n\r\nexport const AwardActive = (props) => {\r\n const [awardActive, setAwardActive] = useState([]);\r\n const [clientData, setClientData] = useState({});\r\n const [visibleModal, setVisibleModal] = useState(\"hide\");\r\n const history = useHistory();\r\n const idCustomer = localStorage.getItem(\"id\");\r\n const URL = ServiceClientData();\r\n const [disabelCheckoutMessage, setMessage] = useState(\"\");\r\n\r\n const getData = () => {\r\n GET(URL).then((data) => {\r\n if (data === \"401\") {\r\n getData();\r\n return \"\";\r\n }\r\n setClientData(data);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const deliveryLimitID = getDisableCheckoutMessageID();\r\n const URLDeliveryLimit = ServiceGenericParameters(deliveryLimitID);\r\n const getData = () => {\r\n GET(URLDeliveryLimit).then((data) => {\r\n if (data === \"401\") {\r\n getData();\r\n return \"\";\r\n }\r\n if (data.value) {\r\n setMessage(data.value);\r\n }\r\n });\r\n };\r\n getData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.visible === \"show\") {\r\n setVisibleModal(\"hide\");\r\n const getAwardActive = () => {\r\n GET(URL).then((data) => {\r\n if (data === \"401\") {\r\n getAwardActive();\r\n return \"\";\r\n }\r\n setClientData(data);\r\n\r\n const URLGetAwardsActive = ServiceGetAwardsActive(idCustomer);\r\n GET(URLGetAwardsActive).then((data) => {\r\n if (data === \"401\") {\r\n getAwardActive();\r\n return \"\";\r\n }\r\n if (data) {\r\n const URLPenaltyDays = ServiceGenericParameters(getPenaltyDays());\r\n GET(URLPenaltyDays).then((response) => {\r\n if (response === \"401\") {\r\n getAwardActive();\r\n return \"\";\r\n }\r\n let days;\r\n if (response && response.value) {\r\n days = parseInt(response.value);\r\n if (isNaN(days)) {\r\n days = getPenaltyDaysDefault();\r\n }\r\n } else {\r\n days = getPenaltyDaysDefault();\r\n }\r\n\r\n let arrayGrouped;\r\n let index = 0;\r\n\r\n const groupBy = (\r\n array,\r\n key = \"idSubasta\",\r\n kay = \"nombreSubasta\",\r\n koy = \"fechaSubasta\"\r\n ) => {\r\n const grouped = {};\r\n\r\n array.forEach((el) => {\r\n grouped[el[key]] = {\r\n idSubasta: el[key],\r\n nombreSubasta: el[kay],\r\n fechaSubasta: el[koy],\r\n index,\r\n awards: [],\r\n datePenalty: convertToDatePenaltyDay(el[koy], days),\r\n };\r\n index++;\r\n });\r\n\r\n array.forEach((el) => {\r\n if (grouped[el[key]]) {\r\n grouped[el[key]].awards.push(el);\r\n }\r\n });\r\n arrayGrouped = Object.values(grouped);\r\n };\r\n groupBy(data);\r\n setAwardActive(arrayGrouped);\r\n });\r\n }\r\n });\r\n });\r\n };\r\n getAwardActive();\r\n }\r\n }, [props.visible, idCustomer, URL]);\r\n\r\n const validaDatos = () => {\r\n let GeneralData = [\r\n \"customerName\",\r\n \"customerLastname\",\r\n \"customerSecondLastname\",\r\n \"customerBirthday\",\r\n \"customerCURP\",\r\n \"customerRFC\",\r\n \"customerNationalityId\",\r\n ];\r\n let ContactData = [\r\n \"country\",\r\n \"idState\",\r\n \"idTown\",\r\n \"idCity\",\r\n \"street\",\r\n \"zipCode\",\r\n \"number\",\r\n \"phoneNumber\",\r\n \"email\",\r\n ];\r\n let EconomicActivityData = [\"idActEconomica\", \"idPais\"];\r\n let contador = 0;\r\n let key;\r\n for (key in clientData) {\r\n if (key === \"customerGeneralData\") {\r\n for (let customerGeneralData in clientData[key]) {\r\n let campo = GeneralData.find((item) => {\r\n return item === customerGeneralData;\r\n });\r\n if (campo) {\r\n if (!clientData[key][customerGeneralData]) {\r\n contador++;\r\n }\r\n }\r\n }\r\n }\r\n if (key === \"customerContactData\") {\r\n for (let customerContactData in clientData[key]) {\r\n let campo = ContactData.find((item) => {\r\n return item === customerContactData;\r\n });\r\n if (campo) {\r\n if (\r\n !clientData[key][customerContactData] &&\r\n !clientData[key][customerContactData] !== \"\"\r\n ) {\r\n contador++;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (key === \"customerEconomicActivity\") {\r\n for (let customerEconomicActivity in clientData[key]) {\r\n let campo = EconomicActivityData.find((item) => {\r\n return item === customerEconomicActivity;\r\n });\r\n if (campo) {\r\n if (!clientData[key][customerEconomicActivity]) {\r\n contador++;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return contador;\r\n };\r\n\r\n const shoppingCartError = () => {\r\n OpenMessage(\"warning\", disabelCheckoutMessage);\r\n };\r\n\r\n const shoppingCart = (data) => {\r\n let contador = validaDatos();\r\n if (contador === 0)\r\n history.push({\r\n pathname: \"/carrito-compras\",\r\n state: { detail: data, enableInvoice: props.enableInvoice },\r\n });\r\n else {\r\n const collapseOne = document.getElementById(\"collapseOne\");\r\n const collapseTwo = document.getElementById(\"collapseTwo\");\r\n const headingOne = document.querySelector(\"#headingOne > button\");\r\n const headingTwo = document.querySelector(\"#headingTwo > button\");\r\n\r\n collapseOne.classList.add(\"show\");\r\n headingOne.classList.remove(\"collapsed\");\r\n collapseTwo.classList.remove(\"show\");\r\n headingTwo.classList.add(\"collapsed\");\r\n setVisibleModal(\"show\");\r\n let btnFinalizarCompra = document.getElementById(\"btnFinalizarCompra\");\r\n btnFinalizarCompra.click();\r\n }\r\n };\r\n\r\n if (awardActive.length === 0) {\r\n return (\r\n <div className={props.visible}>\r\n <div className='border-title'>\r\n <div>Mis adjudicaciones activas</div>\r\n </div>\r\n <div className='mb-3 row inputs-form'>\r\n <div className='col-12 text-center'>No existen registros</div>\r\n </div>\r\n </div>\r\n );\r\n } else {\r\n return (\r\n <div className={\"container__awardActive \" + props.visible}>\r\n <div className='border-title'>\r\n <div>Mis adjudicaciones activas</div>\r\n </div>\r\n {awardActive.map((item, x) => {\r\n return (\r\n <div key={x}>\r\n {\" \"}\r\n <div className='mb-3 row inputs-form '>\r\n <label className='col-12 col-form-label configuration-profile-labels'>\r\n {item.awards.length} adjudicaciones\r\n </label>\r\n </div>\r\n <div className='mb-3 row inputs-form border-bottom'>\r\n <div className='col-12 col-sm-6 col-lg-7 col-xl-8 text-center-mobile'>\r\n <h5>\r\n {item.nombreSubasta} {convertToDate(item.fechaSubasta)}\r\n <br />\r\n Fecha máxima de pago {item.datePenalty}\r\n </h5>\r\n </div>\r\n <div className='col-12 col-sm-6 col-lg-5 col-xl-4 text-end text-center-mobile'>\r\n {/* \r\n ToDo: Se debe cambiar el metodo shoppingCartError() por shoppingCart(item.awards) \r\n Cuando se habilite de nuevo actnet\r\n */}\r\n <button\r\n className='btn btn-outline-secondary btn-profile'\r\n onClick={(e) => shoppingCart(item.awards)}\r\n >\r\n Finalizar compra\r\n </button>\r\n <button\r\n id='btnFinalizarCompra'\r\n className='hide'\r\n data-bs-toggle='modal'\r\n data-bs-target='#modalCustomerData'\r\n >\r\n Finalizar compra\r\n </button>\r\n </div>\r\n <br />\r\n <br />\r\n </div>\r\n {item.awards.map((award, i) => {\r\n return (\r\n <div className='mb-3 row inputs-form border-title' key={i}>\r\n <div className='col-12'>\r\n <div className='card mb-3'>\r\n <div className='row g-0 align-items-center'>\r\n <div className='col-4'>\r\n <img\r\n src={\r\n award.images[0]\r\n ? award.images[0]\r\n : getImgDefault()\r\n }\r\n className='img-fluid rounded-start'\r\n alt={award.descripcionLote}\r\n />\r\n </div>\r\n <div className='col-8'>\r\n <div className='card-body'>\r\n <h5 className='card-title'>Lote: {award.lot}</h5>\r\n <p className='card-text'>\r\n {award.nombreLote} <br />{\" \"}\r\n {award.descripcionLote}\r\n </p>\r\n\r\n <div className='row'>\r\n <div className='col-12 col-sm-6 col-lg-7 col-xl-8 text-center-mobile'>\r\n <small className='text-muted'>\r\n Precio final:{\" \"}\r\n {formatCurrency(award.precioSalida)}\r\n </small>\r\n </div>\r\n <div className='col-12 col-sm-6 col-lg-5 col-xl-4 text-center'>\r\n <button\r\n className='btn btn-outline-secondary button-eye float-right'\r\n data-mdb-toggle='modal'\r\n data-mdb-target={`#modal${award.idLote}`}\r\n >\r\n Ver detalle\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n className='modal fade modal-top'\r\n id={`modal${award.idLote}`}\r\n aria-labelledby='exampleModalLabel'\r\n aria-hidden='true'\r\n >\r\n <div className='modal-dialog modal-dialog-centered'>\r\n <div className='modal-content'>\r\n <div className='modal-body'>\r\n <img\r\n src={\r\n award.images[0]\r\n ? award.images[0]\r\n : getImgDefault()\r\n }\r\n alt=''\r\n className='img-fluid w-100'\r\n />\r\n </div>\r\n <h4 className='text-desc'>{award.descripcionLote}</h4>\r\n <div className='modal-footer'>\r\n <button\r\n type='button'\r\n className='btn btn-outline-danger'\r\n data-mdb-dismiss='modal'\r\n >\r\n Cerrar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n })}\r\n <ModalCustomerData updateData={getData} visible={visibleModal} />\r\n </div>\r\n );\r\n }\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { ServiceGetAwardsHistory } from '../../helpers/getURL';\r\nimport { convertToDate, formatCurrency } from '../Utilities/General';\r\nimport { getImgDefault } from '../../helpers/getConstants';\r\n\r\nexport const AwardHistory = (props) => {\r\n const [awardHistory, setAwardHistory] = useState([]);\r\n\r\n useEffect(() => {\r\n if (props.visible === 'show') {\r\n const getData = () => {\r\n const idCustomer = localStorage.getItem('id');\r\n const URL = ServiceGetAwardsHistory(idCustomer);\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n if (data) {\r\n let arrayGrouped;\r\n let index = 0;\r\n\r\n const groupBy = (array, key = 'idSubasta', kay = 'nombreSubasta', koy = 'fechaSubasta') => {\r\n const grouped = {};\r\n\r\n array.forEach((el) => {\r\n grouped[el[key]] = {\r\n idSubasta: el[key],\r\n nombreSubasta: el[kay],\r\n fechaSubasta: el[koy],\r\n index,\r\n awards: [],\r\n };\r\n index++;\r\n });\r\n\r\n array.forEach((el) => {\r\n if (grouped[el[key]]) {\r\n grouped[el[key]].awards.push(el);\r\n }\r\n });\r\n arrayGrouped = Object.values(grouped);\r\n };\r\n groupBy(data);\r\n setAwardHistory(arrayGrouped);\r\n }\r\n });\r\n };\r\n getData();\r\n }\r\n }, [props.visible]);\r\n\r\n if (awardHistory.length === 0) {\r\n return (\r\n <div className={props.visible}>\r\n <div className=\"border-title\">\r\n <div>Historial de adjudicaciones</div>\r\n </div>\r\n <div className=\"mb-3 row inputs-form\">\r\n <div className=\"col-12 text-center\">No existen registros</div>\r\n </div>\r\n </div>\r\n );\r\n } else {\r\n return (\r\n <div className={props.visible}>\r\n <div className=\"border-title\">\r\n <div>Historial de adjudicaciones</div>\r\n </div>\r\n {awardHistory.map((item, x) => {\r\n return (\r\n <div key={x}>\r\n {' '}\r\n <div className=\"mb-3 row inputs-form \">\r\n <label className=\"col-12 col-form-label configuration-profile-labels\">{item.awards.length} adjudicaciones</label>\r\n </div>\r\n <div className=\"mb-3 row inputs-form border-bottom\">\r\n <div className=\"col-9\">\r\n <h5>\r\n {item.nombreSubasta} {convertToDate(item.fechaSubasta)}\r\n </h5>\r\n </div>\r\n <br />\r\n <br />\r\n </div>\r\n {item.awards.map((award, i) => {\r\n return (\r\n <div className=\"mb-3 row inputs-form\" key={i}>\r\n <div className=\"col-12\">\r\n <div className=\"card mb-3\">\r\n <div className=\"row g-0 align-items-center\">\r\n <div className=\"col-4\">\r\n <img src={award.images[0] ? award.images[0] : getImgDefault()} className=\"img-fluid rounded-start\" alt=\"...\" />\r\n </div>\r\n <div className=\"col-8\">\r\n <div className=\"card-body\">\r\n <h5 className=\"card-title\">Lote: {award.lot}</h5>\r\n <p className=\"card-text\">\r\n {award.nombreLote} <br /> {award.descripcionLote}\r\n </p>\r\n\r\n <div className=\"row\">\r\n <div className=\"col-8\">\r\n <small className=\"text-muted\">Precio final {formatCurrency(award.precioSalida)}</small>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n }\r\n};\r\n","import React, { useState } from 'react';\r\nimport { getactnetID, getBillPocketID, getMercadoPagoId } from '../../../helpers/getConstants'\r\nimport { CloseModalIcon } from '../../Home/CloseModalIcon';\r\nimport { CloseModal } from '../../Utilities/General';\r\n\r\nexport const PaymentGateways = ({ retryPAyment, hideBillPocket, hideActnet, hideMercadoPago }) => {\r\n const [data, setData] = useState({});\r\n const [sure, setSure] = useState(false);\r\n const [disabledBtn, setDisabledBtn] = useState(true);\r\n const BILLPOCKETID = getBillPocketID();\r\n const ACTNETID = getactnetID();\r\n const MERCADOPAGOID = getMercadoPagoId();\r\n\r\n const closeOfferSuccess = () => {\r\n CloseModal('modalPaymentGateways');\r\n setDisabledBtn(true);\r\n setData({});\r\n };\r\n const clickRadio = (value, data) => {\r\n const selectItem = {\r\n payment: {\r\n id: value,\r\n name: data,\r\n },\r\n };\r\n setData(selectItem);\r\n setDisabledBtn(false);\r\n };\r\n\r\n return (\r\n <div\r\n className=\"modal fade \"\r\n id=\"modalPaymentGateways\"\r\n aria-labelledby=\"paymentGatewaysModalLabel\"\r\n aria-hidden=\"true\"\r\n data-bs-backdrop=\"static\"\r\n data-bs-keyboard=\"false\"\r\n >\r\n <div className=\"modal-dialog modal-dialog-centered\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-body\">\r\n <div className=\"card-header text-center\">\r\n <div className=\"modal-header justify-content-end border-0\">\r\n <CloseModalIcon onHandleClick={() => closeOfferSuccess()} />\r\n </div>\r\n <h3>Método de pago</h3>\r\n </div>\r\n <div className=\"row my-4\">\r\n <div className={`col-12 ${sure && 'text-center'}`}>\r\n <h5 className=\"card-text card-title\">\r\n {sure\r\n ? 'Ya se habÃa generado un pago anteriormente. ¿Está seguro de continuar?'\r\n : 'Seleccione un método de pago de las opciones disponibles:'}\r\n </h5>\r\n </div>\r\n </div>\r\n {!sure && (\r\n <div className=\"d-flex mb-2 justify-content-start\">\r\n {!hideBillPocket && (\r\n <div className=\"col-6\">\r\n <div className=\"form-check\">\r\n <input\r\n className=\"form-check-input mt-5\"\r\n type=\"radio\"\r\n name=\"PaymentRadios\"\r\n id=\"Payment1Radios\"\r\n value={BILLPOCKETID}\r\n checked={data.payment?.id === BILLPOCKETID ? true : false}\r\n onClick={(e) => clickRadio(e.target.value, 'Bill Pocket')}\r\n />\r\n <label className=\"form-check-label\" htmlFor=\"Payment1Radios\">\r\n <img className=\"img-Payment\" src=\"./resources/img/bill_pocket.jpg\" alt=\"Bill Pocket\" width=\"80%\" />\r\n </label>\r\n </div>\r\n </div>\r\n )}\r\n {\r\n !hideActnet && (\r\n <div className=\"col-6\">\r\n <div className=\"form-check\">\r\n <input\r\n className=\"form-check-input mt-5\"\r\n type=\"radio\"\r\n name=\"PaymentRadios\"\r\n id=\"Payment2Radios\"\r\n value={ACTNETID}\r\n checked={data.payment?.id === ACTNETID ? true : false}\r\n onClick={(e) => clickRadio(e.target.value, 'Actnet')}\r\n />\r\n <label className=\"form-check-label\" htmlFor=\"Payment2Radios\">\r\n <img className=\"img-Payment\" src=\"./resources/img/actnet.png\" alt=\"Actnet\" width=\"100%\"/>\r\n </label>\r\n </div>\r\n </div>\r\n )\r\n }\r\n {\r\n !hideMercadoPago && (\r\n <div className=\"col-6\">\r\n <div className=\"form-check\">\r\n <input\r\n className=\"form-check-input mt-5\"\r\n type=\"radio\"\r\n name=\"PaymentRadios\"\r\n id=\"Payment3Radios\"\r\n value={MERCADOPAGOID}\r\n checked={data.payment?.id === MERCADOPAGOID ? true : false}\r\n onClick={(e) => clickRadio(e.target.value, 'Mercado Pago')}\r\n />\r\n <label className=\"form-check-label\" htmlFor=\"Payment3Radios\">\r\n <img className=\"img-Payment\" src=\"/resources/img/mercado_pago.png\" alt=\"MercadoPago\" width=\"100%\"/>\r\n </label>\r\n </div>\r\n </div>\r\n )\r\n }\r\n </div>\r\n )}\r\n {!sure ? (\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-3\">\r\n <button type=\"button\" className=\"btn btn-outline-secondary btn-lg\" onClick={(e) => setSure(true)} disabled={disabledBtn}>\r\n Continuar\r\n </button>\r\n </div>\r\n <div className=\"col-3\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-outline-danger btn-lg closin-accept\"\r\n data-bs-dismiss=\"modalOfferSuccess\"\r\n aria-label=\"Close\"\r\n onClick={(e) => closeOfferSuccess()}\r\n >\r\n Cancelar\r\n </button>\r\n </div>\r\n </div>\r\n ) : (\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-3\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-outline-secondary btn-lg w-100\"\r\n data-bs-dismiss=\"modalOfferSuccess\"\r\n aria-label=\"Close\"\r\n onClick={(e) => [retryPAyment(data), setSure(false), closeOfferSuccess()]}\r\n >\r\n SÃ\r\n </button>\r\n </div>\r\n <div className=\"col-3\">\r\n <button type=\"button\" className=\"btn btn-outline-danger btn-lg w-100\" onClick={(e) => setSure(false)}>\r\n No\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { GET, POST } from '../../helpers/APIServices';\r\nimport {\r\n getnoteCancelled,\r\n getOrderPendingStatus,\r\n getDisableCheckoutMessageID,\r\n getOrderPendingPaymentStatus, getOrderCompletedStatus\r\n} from '../../helpers/getConstants'\r\nimport { ServicePaymentRetry, ServiceGetOrdersByUser, ServiceGenericParameters } from '../../helpers/getURL';\r\n\r\nimport { formatCurrency, convertToDate, OpenMessage } from '../Utilities/General';\r\n\r\nimport { PaymentGateways } from '../Profile/paymentProcess/PaymentGateways';\r\nimport { getConfig } from '../../helpers/getConfig';\r\n\r\nexport const Orders = (props) => {\r\n const [data, setData] = useState([]);\r\n const [idOrder, setIdOrder] = useState('');\r\n const [hideBillPocket, setHideBillPocket] = useState(false);\r\n const [hideActnet, setHideActnet] = useState(false);\r\n const [hideMercadoPago, setHideMercadoPago] = useState(false);\r\n const history = useHistory();\r\n const pending = getOrderPendingStatus();\r\n const pendingPayment = getOrderPendingPaymentStatus();\r\n const completedtStatus = getOrderCompletedStatus();\r\n const noteCancelled = getnoteCancelled();\r\n const [disabelCheckoutMessage, setMessage] = useState('');\r\n const openOrderDetail = (idOrder) => {\r\n history.push({\r\n pathname: '/detalle-orden',\r\n state: { idOrder: idOrder },\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const deliveryLimitID = getDisableCheckoutMessageID();\r\n const URLDeliveryLimit = ServiceGenericParameters(deliveryLimitID);\r\n const getData = () => {\r\n GET(URLDeliveryLimit).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n if(data.value){\r\n setMessage(data.value);\r\n }\r\n });\r\n };\r\n getData();\r\n }, [])\r\n\r\n useEffect(() => {\r\n getOrders()\r\n }, [props.visible]);\r\n\r\n const getOrders = () => {\r\n return new Promise((resolve, reject) => {\r\n if (props.visible === 'show') {\r\n const getData = () => {\r\n const URL = ServiceGetOrdersByUser();\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return;\r\n }\r\n const result = data || [];\r\n setData(result);\r\n resolve(result);\r\n }).catch((error) => {\r\n setData([]);\r\n reject([]);\r\n });\r\n };\r\n getData();\r\n } else {\r\n resolve([]);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const constants = JSON.parse(sessionStorage.getItem('constants'));\r\n if (!constants || !constants.hideBillPocket) {\r\n getConfig('constants.json').then((response) => {\r\n if (response && response.hideBillPocket) {\r\n setHideBillPocket(response.hideBillPocket);\r\n }\r\n if (response && response['hideActnet']) {\r\n setHideActnet(response['hideActnet']);\r\n }\r\n if (response && response['hideMercadoPago']) {\r\n setHideMercadoPago(response['hideMercadoPago']);\r\n }\r\n });\r\n } else {\r\n setHideBillPocket(constants.hideBillPocket);\r\n setHideActnet(constants['hideActnet']);\r\n setHideMercadoPago(constants['hideMercadoPago']);\r\n }\r\n }, []);\r\n\r\n const shoppingCartError = () => {\r\n OpenMessage(\r\n 'warning',\r\n disabelCheckoutMessage\r\n );\r\n };\r\n\r\n const retryPAyment = ({ payment }) => {\r\n const URL = ServicePaymentRetry();\r\n const params = {\r\n idNota: idOrder,\r\n idTpv: payment.id,\r\n };\r\n POST(URL, params).then((data) => {\r\n if (data === '401') {\r\n retryPAyment(payment);\r\n return '';\r\n }\r\n if (data.success && data.urlRedirect) {\r\n window.open(data.urlRedirect, '_self');\r\n } else {\r\n OpenMessage('error', 'Ha ocurrido un error al reintentar el pago. Por favor intente nuevamente');\r\n }\r\n });\r\n };\r\n\r\n function getPendingOrder (order) {\r\n getOrders().then((data) => {\r\n const updatedOrders = data;\r\n console.log('updatedOrders', updatedOrders);\r\n const updatedOrder = updatedOrders.find((item) => item.idOrder === order.idOrder);\r\n if (!updatedOrder) {\r\n return;\r\n }\r\n if (updatedOrder.idOrderStatus === pendingPayment) {\r\n OpenMessage('warning', 'Pago en proceso de validación por su banco, intente más tarde.');\r\n return;\r\n }\r\n if (updatedOrder.idOrderStatus === pending) {\r\n OpenMessage('warning', 'Hubo un problema con su pago. por favor reintente el pago');\r\n return;\r\n }\r\n if (updatedOrder.idOrderStatus === completedtStatus) {\r\n OpenMessage('success', 'Pago validado con éxito.');\r\n }\r\n }).catch((error) => {\r\n console.log('error', error);\r\n });\r\n }\r\n\r\n if (!data || data.length === 0) {\r\n return (\r\n <div className={props.visible}>\r\n <div className=\"border-title\">\r\n <div>Mis Órdenes</div>\r\n </div>\r\n <div className=\"mb-3 row inputs-form\">\r\n <div className=\"col-12 text-center\">No existen registros</div>\r\n </div>\r\n </div>\r\n );\r\n } else {\r\n return (\r\n <div className={'container__orders ' + props.visible}>\r\n <div className=\"border-title\">\r\n <div>Mis Órdenes</div>\r\n </div>\r\n {data.map((item, i) => {\r\n return (\r\n <div className=\"mt-5 row\" key={i}>\r\n <div className=\"col-12\">\r\n <div className=\"card\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div className=\"card-body\">\r\n <h5 className=\"card-title\">No. de orden: {item.folio}</h5>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-6 col-sm-4\">\r\n <label className=\"container__orders-title\"> Estado de la orden: </label>\r\n </div>\r\n <div className=\"col-6 col-sm-4\">\r\n <label className=\"container__orders-value\">{item.status}</label>\r\n </div>\r\n </div>\r\n <div className=\"row mb-2\">\r\n <div className=\"col-6 col-sm-4\">\r\n <label className=\"container__orders-title\"> Fecha de compra: </label>\r\n </div>\r\n <div className=\"col-6 col-sm-4\">\r\n <label className=\"container__orders-value\"> {convertToDate(item.created)}</label>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-6 col-sm-4\">\r\n <label className=\"container__orders-title\"> Total: </label>\r\n </div>\r\n <div className=\"col-6 col-sm-4\">\r\n <label className=\"container__orders-value\">{formatCurrency(item.amount)}</label>\r\n </div>\r\n <div className=\"col-12 col-sm-4 container-fluid text-center\">\r\n <div className=\"row\">\r\n <div className=\"col\">\r\n <button className=\"btn btn-outline-secondary\" onClick={(e) => openOrderDetail(item.idOrder)}>\r\n Ver detalle\r\n </button>\r\n </div>\r\n {item.idOrderStatus === pending && (\r\n <div className=\"col\">\r\n <button\r\n className=\"btn btn-outline-danger retry-payment\"\r\n data-bs-target=\"#modalPaymentGateways\"\r\n data-bs-toggle=\"modal\"\r\n /* \r\n ToDo: Se debe cambiar el metodo shoppingCartError() por setIdOrder(item.idOrder)\r\n Cuando se habilite de nuevo actnet. \r\n Se deben descomentar data-bs-target, data-bs-toggle\r\n */\r\n onClick={(e) => setIdOrder(item.idOrder) }\r\n disabled={item.amount > 0 ? false : true}\r\n >\r\n Reintentar pago\r\n </button>\r\n </div>\r\n )}\r\n {item.idOrderStatus === pendingPayment && (\r\n <div className=\"col\">\r\n <button\r\n className=\"btn btn-outline-danger retry-payment\"\r\n onClick={(e) => getPendingOrder(item) }>\r\n Verificar pago\r\n </button>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <PaymentGateways retryPAyment={retryPAyment} hideBillPocket={hideBillPocket} hideActnet={hideActnet} hideMercadoPago={hideMercadoPago} />\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n }\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { ServiceGetListBids, ServiceGetListBidsDetails } from '../../helpers/getURL';\r\nimport { OpenModal, CloseAllModal, formatCurrency, convertToDate } from '../Utilities/General';\r\n\r\nexport const Bids = (props) => {\r\n const [clientDataBids, setDataBids] = useState([]);\r\n const [clientDataDetailsBids, setDataDetailsBids] = useState([]);\r\n const [auctionName, setAuctionName] = useState('');\r\n const URL = ServiceGetListBids();\r\n\r\n const openDetailBids = (idAuction, nameAuction) => {\r\n const URLDetail = ServiceGetListBidsDetails(idAuction);\r\n GET(URLDetail).then((data) => {\r\n setDataDetailsBids([]);\r\n if (data && data.length > 0) {\r\n setDataDetailsBids(data);\r\n }\r\n setAuctionName(nameAuction);\r\n OpenModal('modalBids');\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (props.visible === 'show') {\r\n const getData = () => {\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n if (data && data.length > 0) {\r\n setDataBids(data);\r\n }\r\n });\r\n };\r\n getData();\r\n }\r\n }, [props.visible, URL]);\r\n\r\n const formatDate = (date, time) => {\r\n if(date && time){\r\n let converDate = date.split(/\\//);\r\n converDate = [ converDate[1], converDate[0], converDate[2] ].join('/')\r\n let dateTime = new Date(converDate + ' ' + time);\r\n dateTime = convertToDate(dateTime)\r\n return dateTime;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n if (!clientDataBids || clientDataBids.length === 0) {\r\n return (\r\n <div className={'container__orders ' + props.visible}>\r\n <div className=\"border-title\">\r\n <div>Mis pujas</div>\r\n </div>\r\n <div className=\"mb-3 row inputs-form\">\r\n <div className=\"col-12 text-center\">No existen registros</div>\r\n </div>\r\n </div>\r\n );\r\n } else {\r\n return (\r\n <div className={'container__orders ' + props.visible}>\r\n <div className=\"border-title\">\r\n <div>Mis pujas</div>\r\n </div>\r\n {/* Datos */}\r\n {clientDataBids.map((item, x) => {\r\n return (\r\n <div className=\"mt-5 row\" key={x}>\r\n <div className=\"col-12\">\r\n <div className=\"card\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div className=\"card-body\">\r\n <h5 className=\"card-title\">{item.nameAuction}</h5>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-6 col-sm-4\">\r\n <label className=\"container__orders-title\"> Nombre: </label>\r\n </div>\r\n <div className=\"col-6 col-sm-4\">\r\n <label className=\"container__orders-value\">{item.nameAuction}</label>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-6 col-sm-4\">\r\n <label className=\"container__orders-title\"> Descripción: </label>\r\n </div>\r\n <div className=\"col-6 col-sm-7\">\r\n <label className=\"container__orders-value label-value\">{item.description}</label>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-6 col-sm-4\">\r\n <label className=\"container__orders-title\"> Fecha: </label>\r\n </div>\r\n <div className=\"col-6 col-sm-4\">\r\n <label className=\"container__orders-value\">{formatDate(item.fecha, item.hora)}</label>\r\n </div>\r\n <div className=\"col-6 col-sm-4 container-fluid text-center\">\r\n <button className=\"btn btn-outline-secondary\" onClick={(e) => openDetailBids(item.idAuction, item.nameAuction)}>\r\n Ver detalle\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n\r\n {/* MODAL */}\r\n <div className=\"modal fade modal-top\" id=\"modalBids\" aria-hidden=\"true\">\r\n <div className=\"modal-dialog modal-dialog-centered\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-title\">\r\n <div className=\"row\">\r\n <div className=\"col-12 text-center mt-3 mb-3\">\r\n <b>Mis pujas - {auctionName}</b>\r\n </div>\r\n </div>\r\n <h4 className=\"text-desc\"> </h4>\r\n </div>\r\n <div className=\"modal-body modal-body__bids\">\r\n {(!clientDataDetailsBids || clientDataDetailsBids.length === 0) && (\r\n <div className=\"card mt-4\">\r\n <div className=\"card-body\">\r\n <h6 className=\"card-title text-center\"> No hay registros </h6>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {clientDataDetailsBids.map((item, x) => {\r\n return (\r\n <div className=\"card mt-4\" key={x}>\r\n <div className=\"card-body\">\r\n <h6 className=\"card-title\">Lote: {item.numberLot}</h6>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-4\">\r\n <label className=\"container__orders-title\"> Descripción: </label>\r\n </div>\r\n <div className=\"col-8\">\r\n <label className=\"container__orders-value\">{item.description}</label>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-4\">\r\n <label className=\"container__orders-title\"> Precio salida: </label>\r\n </div>\r\n <div className=\"col-8\">\r\n <label className=\"container__orders-value\">{formatCurrency(item.price)}</label>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-4\">\r\n <label className=\"container__orders-title\"> Oferta cliente: </label>\r\n </div>\r\n <div className=\"col-8\">\r\n <label className=\"container__orders-value\">{formatCurrency(item.clientBid)}</label>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-4\">\r\n <label className=\"container__orders-title\"> Fecha: </label>\r\n </div>\r\n <div className=\"col-8\">\r\n <label className=\"container__orders-value\">{formatDate(item.fecha, item.hora)}</label>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3\">\r\n <div className=\"col-4\">\r\n <label className=\"container__orders-title\"> Tipo oferta: </label>\r\n </div>\r\n <div className=\"col-8\">\r\n <label className=\"container__orders-value\">{item.typeOffert}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n <h4 className=\"text-desc\"> </h4>\r\n <div className=\"modal-footer\">\r\n <button type=\"button\" className=\"btn btn-outline-danger\" onClick={() => CloseAllModal()}>\r\n Cerrar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n {/* Datos */}\r\n </div>\r\n );\r\n }\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\n\r\n//import { ConfigurationAccount } from './ConfigurationAccount';\r\nimport { ActionAccount } from './AuctionAccount';\r\nimport { AddressBillingAccount } from './AddressBillingAccount';\r\nimport { AddressShippingAccount } from './AddressShippingAccount';\r\nimport { AwardActive } from './AwardActive';\r\nimport { AwardHistory } from './AwardHistory';\r\nimport { Orders } from './Orders';\r\nimport { CustomerData } from './customerData/CustomerData';\r\nimport { Bids } from './Bids';\r\nimport { validSession, setSession } from '../Utilities/General';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { getConfig } from '../../helpers/getConfig';\r\nimport { ServiceGenericParameters } from '../../helpers/getURL';\r\n\r\nimport '../../css/Profile/ProfileGrid.css';\r\n\r\nexport const ProfileGrid = () => {\r\n const history = useHistory();\r\n\r\n if (!validSession()) {\r\n history.push('/?home=true');\r\n }\r\n\r\n const [dataGeneral, setDataGeneral] = useState('show');\r\n const [dataAuction, setDataAuction] = useState('hide');\r\n const [dataAwardActive, setDataAwardActive] = useState('hide');\r\n const [dataAwardHistory, setDataAwardHistory] = useState('hide');\r\n const [dataBid, setBid] = useState('hide');\r\n const [dataOrders, setDataOrders] = useState('hide');\r\n const [dataAddress, setDataAdress] = useState('hide');\r\n const [dataAddressInvoice, setDataAdressInvoice] = useState('hide');\r\n const [enableInvoice, setEnableInvoice] = useState(true);\r\n\r\n const { search } = useLocation();\r\n const option = new URLSearchParams(search).get('opcion');\r\n const isProfile = new URLSearchParams(search).get('profile');\r\n\r\n if (isProfile) {\r\n window.location.href = '/perfil';\r\n }\r\n\r\n const removeMenuActive = () => {\r\n let elements = document.getElementsByClassName('list-group-item-action');\r\n elements.forEach((element) => {\r\n element.classList.remove('active');\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (option) {\r\n removeMenuActive();\r\n setDataGeneral('hide');\r\n switch (option) {\r\n case '3':\r\n setDataAwardActive('show');\r\n document.getElementById('liAwardActive').classList.add('active');\r\n break;\r\n case '5':\r\n setDataOrders('show');\r\n document.getElementById('liOrders').classList.add('active');\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }, [option]);\r\n\r\n useEffect(() => {\r\n const constants = JSON.parse(sessionStorage.getItem('constants'));\r\n if (constants && constants.enableInvoice) {\r\n const URL = ServiceGenericParameters(constants.enableInvoice);\r\n GET(URL).then((data) => {\r\n if (data && data.value) {\r\n const isTrue = data.value.toLowerCase() === 'true';\r\n setEnableInvoice(isTrue);\r\n }\r\n });\r\n }\r\n }, []);\r\n\r\n const closeSession = () => {\r\n setSession(false, '');\r\n history.push('/?home=true');\r\n };\r\n\r\n const openTab = (form, option) => {\r\n removeMenuActive();\r\n\r\n setDataGeneral('hide');\r\n setDataAuction('hide');\r\n setDataAwardActive('hide');\r\n setDataAwardHistory('hide');\r\n setBid('hide');\r\n setDataOrders('hide');\r\n setDataAdress('hide');\r\n setDataAdressInvoice('hide');\r\n\r\n option.classList.add('active');\r\n\r\n switch (form) {\r\n case 'GENERAL':\r\n setDataGeneral('show');\r\n break;\r\n case 'AUCTION':\r\n setDataAuction('show');\r\n break;\r\n case 'AWARDACTIVE':\r\n setDataAwardActive('show');\r\n break;\r\n case 'BID':\r\n setBid('show');\r\n break;\r\n case 'AWARDHISTORY':\r\n setDataAwardHistory('show');\r\n break;\r\n case 'ORDERS':\r\n setDataOrders('show');\r\n break;\r\n case 'ADDRESS':\r\n setDataAdress('show');\r\n break;\r\n case 'ADDRESSINVOICE':\r\n setDataAdressInvoice('show');\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n return (\r\n <div className=\"container container__profile\">\r\n <div className=\"row\">\r\n <div className=\"col-12 col-sm-8 text-center-mobile\">\r\n <h3 className=\"profile-title\">Mi cuenta</h3>\r\n </div>\r\n <div className=\"col-12 col-sm-4 text-end text-center-mobile\">\r\n <button className=\"btn btn-outline-danger btn-logout\" onClick={closeSession}>\r\n <strong>\r\n <i className=\"fas fa-sign-out-alt\"></i> Cerrar sesión\r\n </strong>\r\n </button>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 col-md-4\">\r\n <ul className=\"list-group menu-profile\">\r\n <li className=\"list-group-item menu-profile__title\">\r\n <div>Configuración</div>\r\n </li>\r\n <li id=\"liGeneral\" className=\"list-group-item list-group-item-action active\" onClick={(e) => openTab('GENERAL', e.target)}>\r\n General\r\n </li>\r\n <li className=\"list-group-item list-group-item-action\" onClick={(e) => openTab('AUCTION', e.target)}>\r\n Subastas\r\n </li>\r\n <li className=\"list-group-item list-group-item-action\" onClick={(e) => openTab('BID', e.target)}>\r\n Mis Pujas\r\n </li>\r\n <li id=\"liAwardActive\" className=\"list-group-item list-group-item-action\" onClick={(e) => openTab('AWARDACTIVE', e.target)}>\r\n Mis Adjudicaciones Activas\r\n </li>\r\n <li className=\"list-group-item list-group-item-action\" onClick={(e) => openTab('AWARDHISTORY', e.target)}>\r\n Historial de Adjudicaciones\r\n </li>\r\n <li id=\"liOrders\" className=\"list-group-item list-group-item-action\" onClick={(e) => openTab('ORDERS', e.target)}>\r\n Mis Órdenes\r\n </li>\r\n <li className=\"list-group-item list-group-item-action\" onClick={(e) => openTab('ADDRESS', e.target)}>\r\n Direcciones de envÃo\r\n </li>\r\n {enableInvoice && (\r\n <li className=\"list-group-item list-group-item-action\" onClick={(e) => openTab('ADDRESSINVOICE', e.target)}>\r\n Datos fiscales\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n <div className=\"col-12 col-md-8 form-profile\">\r\n {/* <ConfigurationAccount visible={dataGeneral} /> */}\r\n {dataGeneral === 'show' ? <CustomerData visible={dataGeneral} parent={'ProfileGrid'} close={null} /> : null}\r\n\r\n <ActionAccount visible={dataAuction} />\r\n <AddressShippingAccount visible={dataAddress} />\r\n <AddressBillingAccount visible={dataAddressInvoice} />\r\n <AwardActive visible={dataAwardActive} enableInvoice={enableInvoice} />\r\n <AwardHistory visible={dataAwardHistory} />\r\n <Bids visible={dataBid} />\r\n <Orders visible={dataOrders} />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { formatCurrency, OpenMessage, CloseBackdrops, ResetStyleBody } from '../../Utilities/General';\r\nimport { getImgDefault } from '../../../helpers/getConstants';\r\n\r\nexport const ShoppingCart = (props) => {\r\n const [items, setItems] = useState([]);\r\n const detail = props.data;\r\n\r\n useEffect(() => {\r\n CloseBackdrops();\r\n ResetStyleBody();\r\n const consiga = detail ? detail.filter((x) => x.consigna) : [];\r\n const sap = detail ? detail.filter((x) => !x.consigna && !x.consignaSAP) : [];\r\n const consignaSap = detail ? detail.filter((x) => !x.consigna && x.consignaSAP) : [];\r\n\r\n let data = [];\r\n\r\n if (sap.length > 0) {\r\n data.push({\r\n title: 'Lotes Gama',\r\n details: sap,\r\n consigna: false,\r\n consignaSAP: false,\r\n });\r\n }\r\n\r\n if (consiga.length > 0) {\r\n data.push({\r\n title: 'Lotes Plus',\r\n details: consiga,\r\n consigna: true,\r\n consignaSAP: false,\r\n });\r\n }\r\n \r\n if (consignaSap.length > 0) {\r\n data.push({\r\n title: 'Lotes Plus CS',\r\n details: consignaSap,\r\n consigna: false,\r\n consignaSAP: true,\r\n });\r\n }\r\n\r\n setItems(data);\r\n if (data.length > 1) { \r\n OpenMessage('warning', 'No es posible seleccionar lotes Plus, lotes Gama y lotes Plus CS en una misma orden. Deben pagarse por separado.');\r\n }\r\n }, [detail]);\r\n\r\n useEffect(() => {\r\n if(items.length === 1 && items[0].details.length === 1){\r\n props.addAllCart(true, items[0].consigna, items[0].consignaSAP, 'checkAll_0')\r\n }\r\n }, [items])\r\n \r\n return (\r\n <div className={props.visible}>\r\n {items.map((item, i) => {\r\n const idCheckAll = 'checkAll_' + i;\r\n return (\r\n <div key={i}>\r\n <div className=\"row inputs-form\">\r\n <div className=\"col-12 mb-3\">\r\n <div className=\"card\">\r\n <div className=\"card-header text-center text-uppercase\">\r\n <h3>{item.title}</h3>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-3 inputs-form\">\r\n <div className=\"col-12\">\r\n <div className=\"card mb-3\">\r\n <div className=\"row g-0 align-items-center\">\r\n <div className=\"col-1 text-center\">\r\n <input\r\n id={idCheckAll}\r\n className=\"checkAll form-check-input\"\r\n type=\"checkbox\"\r\n onChange={(e) => props.addAllCart(e.target.checked, item.consigna, item.consignaSAP, idCheckAll)}\r\n />\r\n </div>\r\n <div className=\"col-2\">\r\n <p className=\"card-text text-uppercase text-center\">Imagen</p>\r\n </div>\r\n <div className=\"col-9\">\r\n <div className=\"card-body\">\r\n <div className=\"row\">\r\n <div className=\"col-3\">\r\n <p className=\"card-text text-uppercase\">No. Lote</p>\r\n </div>\r\n <div className=\"col-6\">\r\n <p className=\"card-text text-uppercase\">Descripción</p>\r\n </div>\r\n <div className=\"col-3\">\r\n <p className=\"card-text text-uppercase\">Precio</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {item.details.map((element, j) => {\r\n return (\r\n <div key={j}>\r\n <div className=\"mb-3 row inputs-form\">\r\n <div className=\"col-12\">\r\n <div className=\"card mb-3\">\r\n <div className=\"row g-0 align-items-center\">\r\n <div className=\"col-1 text-center\">\r\n <input\r\n className=\"form-check-input\"\r\n type=\"checkbox\"\r\n id={element.idLote}\r\n onChange={(e) => props.addCart(element.idLote, e.target.checked, element.precioSalida, item.consigna, item.consignaSAP, idCheckAll)}\r\n />\r\n </div>\r\n <div className=\"col-2\">\r\n <img\r\n src={element.images[0] ? element.images[0] : getImgDefault()}\r\n className=\"img-fluid rounded-start\"\r\n alt={element.descripcionLote}\r\n />\r\n </div>\r\n <div className=\"col-9\">\r\n <div className=\"card-body\">\r\n <div className=\"row\">\r\n <div className=\"col-3\">\r\n <p className=\"card-text\">{element.lot}</p>\r\n </div>\r\n <div className=\"col-6\">\r\n <p className=\"card-text\">\r\n {element.nombreLote} <br /> {element.descripcionLote}\r\n </p>\r\n </div>\r\n <div className=\"col-3\">\r\n <small className=\"text-muted\">{formatCurrency(element.precioSalida)}</small>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { GET } from '../../../helpers/APIServices';\r\nimport { getDeliveryLimitID, getActivateMessagingID, getIdGoldenMinutes, getIdStreaming } from '../../../helpers/getConstants';\r\nimport { ServiceGenericParameters } from '../../../helpers/getURL';\r\nimport { resetRadios } from '../../Utilities/General';\r\n\r\nexport const Send = (props) => {\r\n const [disabledBtn, setDisabledBtn] = useState(true);\r\n const [step, setStep] = useState(0);\r\n const [data, setData] = useState([]);\r\n const [message, setMessage] = useState('');\r\n const [officeDelivery, setOfficeDelivery] = useState(true);\r\n const idGoldenMinutes = getIdGoldenMinutes();\r\n const { idTypeAuction = '' } = props;\r\n\r\n useEffect(() => {\r\n setStep(props.step + 1); //siempre es el siguiente paso\r\n }, [props.step]);\r\n\r\n useEffect(() => {\r\n const deliveryLimitID = getDeliveryLimitID();\r\n const URLDeliveryLimit = ServiceGenericParameters(deliveryLimitID);\r\n const getData = () => {\r\n GET(URLDeliveryLimit).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n if(data.value){\r\n setMessage(data.value);\r\n }\r\n });\r\n };\r\n getData();\r\n }, [])\r\n\r\n useEffect(() => {\r\n const activateMessagingID = getActivateMessagingID();\r\n const URLActivateMessagingID = ServiceGenericParameters(activateMessagingID);\r\n const getActivate = () => {\r\n GET(URLActivateMessagingID).then((data) => {\r\n if (data === '401') {\r\n getActivate();\r\n return '';\r\n }\r\n if(data.value){\r\n const isOffice = data.value.trim().toLowerCase() === \"true\" ? true : false;\r\n if(!isOffice){\r\n clickRadio(\"2\", 'MensajerÃa')\r\n }\r\n setOfficeDelivery(isOffice);\r\n }\r\n });\r\n };\r\n getActivate();\r\n }, [])\r\n \r\n useEffect(() => {\r\n if (props.lastStep && props.visible === 'show') {\r\n resetRadios('SendRadios');\r\n setDisabledBtn(true);\r\n setStep(props.step + 1);\r\n\r\n }\r\n }, [props.step, props.lastStep, props.visible]);\r\n\r\n const clickRadio = (value, name) => {\r\n const send = {\r\n send: {\r\n type: value,\r\n name: name,\r\n },\r\n };\r\n setData(send);\r\n if (parseInt(value) === 1) {\r\n if (props.lastStep) {\r\n setStep(8); //Ultima pantalla\r\n } else {\r\n setStep(5); //Facturacion\r\n }\r\n } else {\r\n setStep(props.step + 1);\r\n }\r\n props.setOrigen(2);\r\n props.setOrigen2(2);\r\n setDisabledBtn(false);\r\n };\r\n\r\n return (\r\n <div className={'card ' + props.visible}>\r\n <div className=\"card-header text-center\">\r\n <h3>Método de envÃo</h3>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"row mb-6\">\r\n <div className=\"col-12\">\r\n <h5 className=\"card-text card-title\">Seleccione un método de envÃo de las opciones disponibles:</h5>\r\n </div>\r\n </div>\r\n <div className=\"row mb-2\">\r\n <div className=\"col-12\">\r\n {((officeDelivery && idTypeAuction === idGoldenMinutes) || idTypeAuction !== idGoldenMinutes) && <div className=\"form-check\">\r\n <input\r\n className=\"form-check-input\"\r\n type=\"radio\"\r\n name=\"SendRadios\"\r\n id=\"OfficeRadios\"\r\n value=\"1\"\r\n onClick={(e) => clickRadio(e.target.value, 'Entrega en oficina')}\r\n checked={data?.send?.type === \"1\" ? true : false}\r\n onChange={(e)=> {}}\r\n />\r\n <label className=\"form-check-label\" htmlFor=\"OfficeRadios\">\r\n Entrega en oficina\r\n </label>\r\n </div>}\r\n <div className=\"form-check\">\r\n <input\r\n className=\"form-check-input\"\r\n type=\"radio\"\r\n name=\"SendRadios\"\r\n id=\"MailRadios\"\r\n value=\"2\"\r\n onClick={(e) => clickRadio(e.target.value, 'MensajerÃa')}\r\n checked={data?.send?.type === \"2\" ? true : false}\r\n onChange={(e)=> {}}\r\n />\r\n <label className=\"form-check-label\" htmlFor=\"MailRadios\">\r\n MensajerÃa\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n {data?.send?.type === \"2\" && <div className=\"row mb-2 px-5\">\r\n <div className=\"col-12\">\r\n <h5>{message}. </h5>\r\n </div>\r\n </div>}\r\n <div className=\"row mb-2\">\r\n <div className=\"col-6 text-end\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-lg btn-outline-danger\"\r\n disabled={disabledBtn}\r\n onClick={(e) => props.eventButton(true, step, data)}\r\n >\r\n Continuar\r\n </button>\r\n </div>\r\n <div className=\"col-6 text-start\">\r\n <button type=\"button\" className=\"btn btn-lg btn-outline-secondary\" onClick={(e) => props.eventButton(false, 1, data)}>\r\n Regresar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport { formatCurrency, OpenMessage } from \"../../Utilities/General\";\r\nimport {\r\n ServiceAddOrder,\r\n ServiceGenericParameters,\r\n ServiceAddDirectSale,\r\n} from \"../../../helpers/getURL\";\r\nimport { POST, GET } from \"../../../helpers/APIServices\";\r\nimport {\r\n getDeliveryMail,\r\n getDeliveryOffice,\r\n getGuidEmpty,\r\n getLotPaymentLimit,\r\n getLotPaymentLimitDefault,\r\n} from \"../../../helpers/getConstants\";\r\n\r\nexport const OrderPanel = (props) => {\r\n const [disabledBtn, setDisabledBtn] = useState(true);\r\n const count = props.count ? props.count : 0;\r\n const subTotal = props.subTotal ? props.subTotal : 0;\r\n const send = props.send ? props.send : 0;\r\n const total = subTotal + send;\r\n const step = props.step ? props.step : 2; //siempre es el siguiente paso\r\n const history = useHistory();\r\n const data = props.data ? props.data : null;\r\n const [lotPaymentLimit, setLotPaymentLimit] = useState(\r\n getLotPaymentLimitDefault()\r\n );\r\n const id = getLotPaymentLimit();\r\n const URLParameter = ServiceGenericParameters(id);\r\n const [cart, setCart] = useState([]);\r\n\r\n useEffect(() => {\r\n const shoppingCart = JSON.parse(localStorage.getItem(\"cart\"));\r\n if (shoppingCart && shoppingCart.length > 0) {\r\n setCart(shoppingCart);\r\n }\r\n\r\n if (count > lotPaymentLimit) {\r\n setDisabledBtn(true);\r\n } else {\r\n setDisabledBtn(props.disabledBtn);\r\n }\r\n }, [props.disabledBtn, count, lotPaymentLimit]);\r\n\r\n useEffect(() => {\r\n const NLotPaymentLimitValidation = () => {\r\n GET(URLParameter).then((response) => {\r\n if (response === \"401\") {\r\n NLotPaymentLimitValidation();\r\n return \"\";\r\n }\r\n if (\r\n response &&\r\n response.value !== undefined &&\r\n !isNaN(response.value)\r\n ) {\r\n setLotPaymentLimit(response.value);\r\n }\r\n });\r\n };\r\n\r\n NLotPaymentLimitValidation();\r\n }, [URLParameter]);\r\n\r\n const getParams = () => {\r\n if (props.lastStep === true) {\r\n let orderDetails = [];\r\n\r\n let isDeliveryRequired = false;\r\n let idDeliveryType = getDeliveryOffice();\r\n let rateDelivery = \"0\";\r\n let idRateDelivery = getGuidEmpty();\r\n let nombreMensajeria = \"\";\r\n let montoMensajeria = 0;\r\n let idDireccionEnvio = getGuidEmpty();\r\n\r\n let isBillingRequired = false;\r\n let idBillingAdress = getGuidEmpty();\r\n let rfc = \"\";\r\n\r\n let montoSeguro = 0;\r\n\r\n if (data) {\r\n for (let i = 0; i < data.selectItem.length; i++) {\r\n let arr = {\r\n idAuction: data.selectItem[i].idSubasta,\r\n idLot: data.selectItem[i].idLote,\r\n precioVenta: data.selectItem[i].precioSalida,\r\n lotName: data.selectItem[i].nombreLote,\r\n };\r\n orderDetails.push(arr);\r\n }\r\n\r\n if (data.send && data.send.type === \"2\") {\r\n isDeliveryRequired = true;\r\n idDeliveryType = getDeliveryMail();\r\n }\r\n\r\n if (data.mail) {\r\n rateDelivery = data.mail.id;\r\n nombreMensajeria = data.mail.carrier;\r\n montoMensajeria = data.mail.rate;\r\n idRateDelivery = data.mail.idRateDelivery;\r\n montoSeguro = data.mail.amountInsurance;\r\n }\r\n\r\n if (data.addressMail) {\r\n idDireccionEnvio = data.addressMail.id;\r\n }\r\n\r\n if (\r\n props.enableInvoice === true &&\r\n data.invoice.name.toLowerCase() === \"si\"\r\n ) {\r\n isBillingRequired = true;\r\n }\r\n\r\n if (data.addressInvoice) {\r\n idBillingAdress = data.addressInvoice.id;\r\n rfc = data.addressInvoice.rfc;\r\n }\r\n }\r\n\r\n const id = localStorage.getItem(\"id\");\r\n const params = {\r\n idClient: id,\r\n tipoPasarelaTPV: data.payment?.paymentGateway,\r\n orderDetails: orderDetails,\r\n isDeliveryRequired: isDeliveryRequired,\r\n idDeliveryType: idDeliveryType,\r\n deliveryService: {\r\n nombreMensajeria: nombreMensajeria,\r\n rateDelivery: rateDelivery,\r\n idRateDelivery: idRateDelivery,\r\n montoMensajeria: montoMensajeria,\r\n idDireccionEnvio: idDireccionEnvio,\r\n montoSeguro: montoSeguro,\r\n },\r\n isBillingRequired: isBillingRequired,\r\n billing: {\r\n idBillingUser: idBillingAdress,\r\n rfc: rfc,\r\n },\r\n };\r\n return params;\r\n }\r\n return \"\";\r\n };\r\n\r\n const deleteCart = (idLote) => {\r\n let index = -1;\r\n cart.filter((item, i) => {\r\n if (item && item.IdLot === idLote) {\r\n index = i;\r\n }\r\n return i;\r\n });\r\n if (index !== -1) {\r\n let item = [];\r\n delete cart[index];\r\n localStorage.removeItem(\"cart\");\r\n for (let i = 0; i < cart.length; i++) {\r\n if (cart[i]) {\r\n item.push(cart[i]);\r\n }\r\n }\r\n if (item.length > 0) {\r\n localStorage.setItem(\"cart\", JSON.stringify(item));\r\n }\r\n }\r\n };\r\n\r\n const saveOrder = () => {\r\n const directSale =\r\n data && data.selectItem\r\n ? data.selectItem.filter((x) => x.origin === \"directSale\")\r\n : [];\r\n const params = getParams();\r\n console.log(\"params\", params);\r\n if (params) {\r\n const URL =\r\n directSale.length > 0 ? ServiceAddDirectSale() : ServiceAddOrder();\r\n POST(URL, params).then((data) => {\r\n if (data.errors) {\r\n OpenMessage(\"error\", data.title);\r\n } else if (!data.success) {\r\n //solo en venta directa existe el carrito de compras\r\n if (directSale.length > 0 && params && params.orderDetails) {\r\n params.orderDetails.forEach((element) => {\r\n deleteCart(element.idLot);\r\n });\r\n }\r\n OpenMessage(\"error\", data.description);\r\n } else if (data.urlRedirect) {\r\n window.open(data.urlRedirect, \"_self\");\r\n }\r\n });\r\n }\r\n };\r\n\r\n let limitPayment = \"\";\r\n if (count > lotPaymentLimit) {\r\n limitPayment = (\r\n <div className='col-12'>\r\n <p className='text-notice fw-bolder'>\r\n Superaste el lÃmite de lotes a pagar. El lÃmite de lotes por pagar es\r\n de: {lotPaymentLimit}.\r\n </p>\r\n </div>\r\n );\r\n }\r\n\r\n const backTo = () => {\r\n const isCatalog = new URLSearchParams(history.location.search).get(\r\n \"modulo\"\r\n );\r\n if (isCatalog === \"catalogo\") {\r\n const idAuction = new URLSearchParams(history.location.search).get(\"id\");\r\n history.push(`/catalogo?id=${idAuction}`);\r\n } else {\r\n history.push(\"/perfil?opcion=3\");\r\n }\r\n };\r\n return (\r\n <div className='card'>\r\n <div className='card-header text-center'>\r\n <h3>Tu pedido</h3>\r\n </div>\r\n <div className='card-body'>\r\n <div className='row mb-4'>\r\n <div className='col-5'>\r\n <h5 className='card-text text-end text-uppercase'>Cantidad</h5>\r\n </div>\r\n <div className='col-7'>\r\n <h5 className='card-text text-end'>{count}</h5>\r\n </div>\r\n </div>\r\n\r\n <div className='row mb-4'>\r\n <div className='col-5'>\r\n <h5 className='card-text text-end text-uppercase'>SubTotal</h5>\r\n </div>\r\n <div className='col-7'>\r\n <h5 className='card-text text-end'>{formatCurrency(subTotal)}</h5>\r\n </div>\r\n </div>\r\n <div className='row mb-4'>\r\n <div className='col-5'>\r\n <h5 className='card-text text-end text-uppercase'>EnvÃo</h5>\r\n </div>\r\n <div className='col-7'>\r\n <h5 className='card-text text-end'>{formatCurrency(send)}</h5>\r\n </div>\r\n </div>\r\n <div className='row mb-4'>\r\n <div className='col-5'>\r\n <h5 className='card-text text-end text-uppercase'>Total</h5>\r\n </div>\r\n <div className='col-7'>\r\n <h5 className='card-text text-end'>{formatCurrency(total)}</h5>\r\n </div>\r\n </div>\r\n <div className='row mb-2 mt-5'>\r\n <div className='col-6 text-end'>\r\n <button\r\n type='button'\r\n className='btn btn-lg btn-outline-secondary'\r\n onClick={(e) =>\r\n props.lastStep === false\r\n ? props.eventButton(!disabledBtn, step)\r\n : saveOrder()\r\n }\r\n disabled={disabledBtn}\r\n >\r\n Continuar\r\n </button>\r\n </div>\r\n <div className='col-6 text-start'>\r\n <button\r\n type='button'\r\n className='btn btn-lg btn-outline-danger'\r\n onClick={() => backTo()}\r\n >\r\n Cancelar\r\n </button>\r\n </div>\r\n </div>\r\n <div className='row mt-5'>\r\n <div className='col-12'>\r\n <p className='text-notice'>\r\n El costo del envÃo se calcula durante el proceso\r\n </p>\r\n </div>\r\n {limitPayment}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\n\r\nimport { POST } from \"../../../helpers/APIServices\";\r\nimport { ServiceQuotationMail } from \"../../../helpers/getURL\";\r\nimport {\r\n formatCurrency,\r\n resetRadios,\r\n OpenMessage,\r\n} from \"../../Utilities/General\";\r\nimport {\r\n getIdGoldenMinutes,\r\n getIdPresential,\r\n getIdStreaming,\r\n getIdSystem,\r\n getReferenceObject,\r\n getZipCodeOrigenMO,\r\n getZipCodeOrigenPresential,\r\n getZipCodeOrigenStreaming,\r\n} from \"../../../helpers/getConstants\";\r\n\r\nexport const Mail = (props) => {\r\n let [step, setStep] = useState(props.step + 1);\r\n const URL = ServiceQuotationMail();\r\n const idGoldenMinutes = getIdGoldenMinutes();\r\n const idStreaming = getIdStreaming();\r\n const idPresential = getIdPresential();\r\n const [data, setData] = useState([]);\r\n const [listMail, setListMail] = useState([]);\r\n const [disabledBtn, setDisabledBtn] = useState(true);\r\n\r\n useEffect(() => {\r\n if (props.lastStep && props.visible === \"show\") {\r\n setStep(8);\r\n resetRadios(\"MailRadios\");\r\n setDisabledBtn(true);\r\n setListMail([]);\r\n }\r\n }, [props.lastStep, props.visible]);\r\n\r\n useEffect(() => {\r\n if (\r\n props.visible === \"show\" &&\r\n props.data &&\r\n props.data.addressMail &&\r\n props.data.addressMail.zipCode\r\n ) {\r\n const params = {\r\n idSystem: getIdSystem(),\r\n referenceObject: getReferenceObject(),\r\n packageList: {\r\n description: \"Subastas streaming\",\r\n contentValue: props.subTotal ? props.subTotal : 1,\r\n weight: 1,\r\n length: 1,\r\n height: 1,\r\n width: 1,\r\n },\r\n originAddress: {\r\n zipCode: getZipCodeOrigen(),\r\n },\r\n destinationAddress: {\r\n zipCode: props.data.addressMail.zipCode,\r\n },\r\n };\r\n\r\n POST(URL, params).then((response) => {\r\n if (response && response.length > 0 && response[0].shippingOptions) {\r\n setListMail(response[0].shippingOptions);\r\n } else {\r\n OpenMessage(\"warning\", response);\r\n setListMail([]);\r\n props.eventButton(true, 2, data);\r\n }\r\n });\r\n }\r\n }, [URL, props.visible, props.data, props.subTotal, step, data]);\r\n\r\n const getZipCodeOrigen = () => {\r\n let zipCode = \"\";\r\n\r\n switch (props.idTypeAuction) {\r\n case idGoldenMinutes:\r\n zipCode = getZipCodeOrigenMO();\r\n break;\r\n case idStreaming:\r\n zipCode = getZipCodeOrigenStreaming();\r\n break;\r\n case idPresential:\r\n zipCode = getZipCodeOrigenPresential();\r\n break;\r\n default:\r\n zipCode = \"\";\r\n break;\r\n }\r\n\r\n return zipCode;\r\n };\r\n\r\n const clickRadio = (value, data, rate, carrier, idRate, AmountInsurance) => {\r\n const selectItem = {\r\n mail: {\r\n id: value,\r\n name: data,\r\n rate: rate,\r\n carrier: carrier,\r\n idRateDelivery: idRate,\r\n amountInsurance: AmountInsurance,\r\n },\r\n };\r\n console.log(\"SELECT ITEM : \", selectItem);\r\n setData(selectItem);\r\n setDisabledBtn(false);\r\n };\r\n\r\n return (\r\n <div className={\"card \" + props.visible}>\r\n <div className='card-header text-center'>\r\n <h3>Método de envÃo</h3>\r\n </div>\r\n <div className='card-body'>\r\n <div className='row mb-6'>\r\n <div className='col-12'>\r\n <h5 className='card-text card-title'>\r\n Seleccione un método de envÃo de las opciones disponibles:\r\n </h5>\r\n </div>\r\n </div>\r\n {listMail.map((item, i) => {\r\n console.log(\"currency ->\", item);\r\n const totalRate = item.rate + item.amountInsurance;\r\n const value = `${item.carrier} - ${item.description} ${formatCurrency(\r\n totalRate\r\n )} ${item.currency}`;\r\n return (\r\n <div className='row mb-2' key={i}>\r\n <div className='col-12'>\r\n <div className='form-check'>\r\n <input\r\n className='form-check-input'\r\n type='radio'\r\n name='MailRadios'\r\n id={item.rateId}\r\n value={item.rateId}\r\n onClick={(e) =>\r\n clickRadio(\r\n e.target.value,\r\n value,\r\n totalRate,\r\n item.carrier,\r\n item.idRate,\r\n item.amountInsurance\r\n )\r\n }\r\n />\r\n <label className='form-check-label' htmlFor={item.rateId}>\r\n <p>{value}</p>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n <div className='row mb-2'>\r\n <div className='col-6 text-end'>\r\n <button\r\n type='button'\r\n className='btn btn-lg btn-outline-danger'\r\n onClick={(e) => [\r\n props.eventButton(true, step, data),\r\n props.setOrigen(4),\r\n props.setOrigen2(4),\r\n ]}\r\n disabled={disabledBtn}\r\n >\r\n Continuar\r\n </button>\r\n </div>\r\n <div className='col-6 text-start'>\r\n <button\r\n type='button'\r\n className='btn btn-lg btn-outline-secondary'\r\n onClick={(e) => props.eventButton(true, step - 2, data)}\r\n >\r\n Regresar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { resetRadios } from '../../Utilities/General';\r\n\r\nexport const Invoice = (props) => {\r\n const [data, setData] = useState([]);\r\n const [disabledBtn, setDisabledBtn] = useState(true);\r\n const [step, setStep] = useState(props.step + 1); //siempre es el siguiente paso\r\n\r\n useEffect(() => {\r\n if (props.lastStep && props.visible === 'show') {\r\n resetRadios('InvoiceRadios');\r\n setDisabledBtn(true);\r\n //setStep(props.step + 1); //siempre es el siguiente paso\r\n }\r\n }, [props.step, props.lastStep, props.visible]);\r\n\r\n const clickRadio = (value, data) => {\r\n const selectItem = {\r\n invoice: {\r\n id: value,\r\n name: data,\r\n },\r\n };\r\n setData(selectItem);\r\n if (parseInt(value) === 2) {\r\n if (props.lastStep) {\r\n setStep(8); //Ultima pantalla\r\n } else {\r\n setStep(7); //Forma de pago\r\n props.setOrigen2(5);\r\n }\r\n } else {\r\n setStep(6);\r\n props.setOrigen2(6);\r\n }\r\n setDisabledBtn(false);\r\n };\r\n\r\n return (\r\n <div className={'card ' + props.visible}>\r\n <div className=\"card-header text-center\">\r\n <h3>Factura</h3>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"row mb-6\">\r\n <div className=\"col-12\">\r\n <h5 className=\"card-text card-title\">¿Requiere factura?</h5>\r\n </div>\r\n </div>\r\n <div className=\"row mb-2\">\r\n <div className=\"col-12\">\r\n <div className=\"form-check\">\r\n <input\r\n className=\"form-check-input\"\r\n type=\"radio\"\r\n name=\"InvoiceRadios\"\r\n id=\"Invoice1Radios\"\r\n value=\"1\"\r\n onClick={(e) => clickRadio(e.target.value, 'Si')}\r\n />\r\n <label className=\"form-check-label\" htmlFor=\"Invoice1Radios\">\r\n Si\r\n </label>\r\n </div>\r\n <div className=\"form-check\">\r\n <input\r\n className=\"form-check-input\"\r\n type=\"radio\"\r\n name=\"InvoiceRadios\"\r\n id=\"Invoice2Radios\"\r\n value=\"2\"\r\n onClick={(e) => clickRadio(e.target.value, 'No')}\r\n />\r\n <label className=\"form-check-label\" htmlFor=\"Invoice2Radios\">\r\n No\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row mb-2\">\r\n <div className=\"col-6 text-end\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-lg btn-outline-danger\"\r\n disabled={disabledBtn}\r\n onClick={(e) => props.eventButton(true, step, data)}\r\n >\r\n Continuar\r\n </button>\r\n </div>\r\n <div className=\"col-6 text-start\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-lg btn-outline-secondary\"\r\n onClick={(e) => props.eventButton(true, props.originStep, data)}\r\n >\r\n Regresar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { GET } from '../../../helpers/APIServices';\r\nimport ModalAddressBilling from '../ModalAddressBilling';\r\nimport { resetRadios, CloseModal, OpenMessage } from '../../Utilities/General';\r\nimport { ServiceGenericParameters, ServiceGetAddressBillingByIdCustomer } from '../../../helpers/getURL';\r\nimport { getLimitShippingInvoice } from '../../../helpers/getConstants';\r\n\r\nexport const AddressBilling = (props) => {\r\n let [step, setStep] = useState(props.step + 1);\r\n const idCustomer = localStorage.getItem('id');\r\n const URL = ServiceGetAddressBillingByIdCustomer(idCustomer);\r\n const [data, setData] = useState([]);\r\n const [disabledBtn, setDisabledBtn] = useState(true);\r\n const [listAddress, setListAddress] = useState([]);\r\n const [listCities, setListCities] = useState([]);\r\n const [address, setAddress] = useState({\r\n id: '00000000-0000-0000-0000-000000000000',\r\n idCustomer: localStorage.getItem('id'),\r\n idPais: 'MX',\r\n idEdo: '',\r\n idMun: '',\r\n idCol: '',\r\n scp: '',\r\n numero: '',\r\n numeroInt: '',\r\n razonSocial: '',\r\n colonia: '',\r\n calle: '',\r\n rfc: '',\r\n alias: '',\r\n referencia: '',\r\n esFisicoMoral: false,\r\n });\r\n\r\n const AddressRefresh = () => {\r\n GET(URL).then((data) => {\r\n if (data) {\r\n setListAddress(data);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (props.lastStep && props.visible === 'show') {\r\n setStep(8);\r\n resetRadios('AddressMailInvoiceRadios');\r\n setDisabledBtn(true);\r\n }\r\n }, [props.lastStep, props.visible]);\r\n\r\n useEffect(() => {\r\n if (props.visible === 'show') {\r\n GET(URL).then((data) => {\r\n if (data) {\r\n setListAddress(data);\r\n }\r\n });\r\n }\r\n }, [URL, props.visible]);\r\n\r\n const clickRadio = (value, data, rfc, title) => {\r\n const selectItem = {\r\n addressInvoice: {\r\n id: value,\r\n name: data,\r\n rfc: rfc,\r\n title: title,\r\n },\r\n };\r\n setData(selectItem);\r\n setDisabledBtn(false);\r\n };\r\n\r\n const NDirectionsValidation = () => {\r\n const URL = ServiceGenericParameters(getLimitShippingInvoice());\r\n GET(URL).then((data) => {\r\n if (data) {\r\n if (listAddress.length >= data.value) {\r\n CloseModal('modalAddressInvoice');\r\n OpenMessage('warning', 'No se pueden registrar más de ' + data.value + ' direcciones de envÃo');\r\n }\r\n } else {\r\n OpenMessage('warning', 'No es posible registrar una dirección de envÃo');\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <div className={'card ' + props.visible}>\r\n <div className=\"card-header text-center\">\r\n <h3>Factura</h3>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"row mb-6\">\r\n <div className=\"col-12\">\r\n <h5 className=\"card-text card-title\">Seleccione una dirección de facturación de las opciones disponibles:</h5>\r\n </div>\r\n </div>\r\n <div className=\"row mb-2\"></div>\r\n {listAddress.map((item, i) => {\r\n const title = `${item.rfc}, ${item.razonSocial}`;\r\n const value = `${item.calle} No. Ext. ${item.numero} ${item.numeroInt !== '' ? `No. Int. ${item.numeroInt}` : ''}, ${\r\n item.colonia\r\n }, C.P. ${item.scp}, ${item.municipio}, ${item.estado}, ${item.idPais}`;\r\n return (\r\n <div className=\"row mb-2\" key={i}>\r\n <div className=\"col-12 title-rfc\">\r\n <label className=\"form-check-label\" htmlFor={item.id}>\r\n <p>{title}</p>\r\n </label>\r\n </div>\r\n <div className=\"col-12\">\r\n <div className=\"form-check\">\r\n <input\r\n className=\"form-check-input\"\r\n type=\"radio\"\r\n name=\"AddressMailInvoiceRadios\"\r\n id={item.id}\r\n value={item.id}\r\n onClick={(e) => clickRadio(e.target.value, value, item.rfc, title)}\r\n />\r\n <label className=\"form-check-label\" htmlFor={item.id}>\r\n <p>{value}</p>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n <div className=\"row mb-2\">\r\n <div className=\"col-12 text-center\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-lg btn-outline-secondary btn-profile\"\r\n data-bs-toggle=\"modal\"\r\n data-bs-target=\"#modalAddressInvoice\"\r\n onClick={() => NDirectionsValidation()}\r\n >\r\n Agregar datos fiscales\r\n </button>\r\n </div>\r\n </div>\r\n <br />\r\n <div className=\"row mb-2\">\r\n <div className=\"col-6 text-end\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-lg btn-outline-danger\"\r\n onClick={(e) => props.eventButton(true, step, data)}\r\n disabled={disabledBtn}\r\n >\r\n Continuar\r\n </button>\r\n </div>\r\n <div className=\"col-6 text-start\">\r\n <button type=\"button\" className=\"btn btn-lg btn-outline-secondary\" onClick={(e) => props.eventButton(true, step - 2, data)}>\r\n Regresar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <ModalAddressBilling\r\n setAddress={setAddress}\r\n address={address}\r\n setListCities={setListCities}\r\n listCities={listCities}\r\n AddressRefresh={AddressRefresh}\r\n />\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { GET } from '../../../helpers/APIServices';\r\nimport ModalAddressShipping from '../ModalAddressShipping';\r\nimport { resetRadios, CloseModal, OpenMessage } from '../../Utilities/General';\r\nimport { ServiceGenericParameters, ServiceGetAddressShippingByIdCustomer } from '../../../helpers/getURL';\r\nimport { getLimitShipping } from '../../../helpers/getConstants';\r\n\r\nexport const AddressShipping = (props) => {\r\n const idCustomer = localStorage.getItem('id');\r\n const URL = ServiceGetAddressShippingByIdCustomer(idCustomer);\r\n const [data, setData] = useState([]);\r\n const [disabledBtn, setDisabledBtn] = useState(true);\r\n const [listAddress, setListAddress] = useState([]);\r\n const [listCities, setListCities] = useState([]);\r\n const [address, setAddress] = useState({\r\n id: '00000000-0000-0000-0000-000000000000',\r\n idCustomer: localStorage.getItem('id'),\r\n idPais: 'MX',\r\n idEdo: '',\r\n idMun: '',\r\n idCol: '',\r\n scp: '',\r\n numero: '',\r\n numeroInt: '',\r\n razonSocial: '',\r\n colonia: '',\r\n calle: '',\r\n rfc: '',\r\n alias: '',\r\n referencia: '',\r\n esFisicoMoral: true,\r\n });\r\n let step = props.step + 1;\r\n\r\n if (props.lastStep && props.data.mail) {\r\n step = 8;\r\n }\r\n\r\n const AddressRefresh = () => {\r\n GET(URL).then((data) => {\r\n if (data) {\r\n setListAddress(data);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (props.visible === 'show') {\r\n GET(URL).then((data) => {\r\n if (data) {\r\n setListAddress(data);\r\n }\r\n });\r\n }\r\n }, [URL, props.visible]);\r\n\r\n useEffect(() => {\r\n if (props.lastStep && props.visible === 'show') {\r\n resetRadios('AddressMailRadios');\r\n setDisabledBtn(true);\r\n }\r\n }, [props.lastStep, props.visible]);\r\n\r\n const clickRadio = (value, data, zipCode) => {\r\n const selectItem = {\r\n addressMail: {\r\n id: value,\r\n name: data,\r\n zipCode: zipCode,\r\n },\r\n };\r\n setData(selectItem);\r\n setDisabledBtn(false);\r\n };\r\n\r\n const NDirectionsValidation = () => {\r\n const URL = ServiceGenericParameters(getLimitShipping());\r\n GET(URL).then((data) => {\r\n if (data) {\r\n if (listAddress.length >= data.value) {\r\n CloseModal('modalAddress');\r\n OpenMessage('warning', 'No se pueden registrar más de ' + data.value + ' direcciones de envÃo');\r\n }\r\n } else {\r\n OpenMessage('warning', 'No es posible registrar una dirección de envÃo');\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <div className={'card ' + props.visible}>\r\n <div className=\"card-header text-center\">\r\n <h3>Método de envÃo</h3>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"row mb-6\">\r\n <div className=\"col-12\">\r\n <h5 className=\"card-text card-title\">Seleccione una dirección de envÃo de las opciones disponibles:</h5>\r\n </div>\r\n </div>\r\n {listAddress.map((item, i) => {\r\n const value = `${item.calle} No. Ext. ${item.numero} ${item.numeroInt !== '' ? `No. Int. ${item.numeroInt}` : ''}, ${\r\n item.colonia\r\n }, C.P. ${item.scp}, ${item.municipio}, ${item.estado}, ${item.idPais}`;\r\n return (\r\n <div className=\"row mb-2\" key={i}>\r\n <div className=\"col-12\">\r\n <div className=\"form-check\">\r\n <input\r\n className=\"form-check-input\"\r\n type=\"radio\"\r\n name=\"AddressMailRadios\"\r\n id={item.id}\r\n value={item.id}\r\n onClick={(e) => clickRadio(e.target.value, value, item.scp)}\r\n />\r\n <label className=\"form-check-label\" htmlFor={item.id}>\r\n <p>{value}</p>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n <div className=\"row mb-2\">\r\n <div className=\"col-12 text-center\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-lg btn-outline-secondary btn-profile\"\r\n data-bs-toggle=\"modal\"\r\n data-bs-target=\"#modalAddress\"\r\n onClick={() => NDirectionsValidation()}\r\n >\r\n Agregar dirección\r\n </button>\r\n </div>\r\n </div>\r\n <br />\r\n <div className=\"row mb-2\">\r\n <div className=\"col-6 text-end\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-lg btn-outline-danger\"\r\n disabled={disabledBtn}\r\n onClick={(e) => props.eventButton(true, step, data)}\r\n >\r\n Continuar\r\n </button>\r\n </div>\r\n <div className=\"col-6 text-start\">\r\n <button type=\"button\" className=\"btn btn-lg btn-outline-secondary\" onClick={(e) => props.eventButton(true, step - 2, data)}>\r\n Regresar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <ModalAddressShipping\r\n setAddress={setAddress}\r\n address={address}\r\n setListCities={setListCities}\r\n listCities={listCities}\r\n AddressRefresh={AddressRefresh}\r\n />\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { resetRadios } from '../../Utilities/General';\r\nimport { getactnetID, getBillPocketID, getMercadoPagoId } from '../../../helpers/getConstants'\r\n\r\nexport const Payment = ({\r\n visible,\r\n eventButton,\r\n externStep,\r\n lastStep,\r\n originStep2,\r\n hideBillPocket,\r\n hideActnet,\r\n hideMercadoPago\r\n}) => {\r\n const [disabledBtn, setDisabledBtn] = useState(true);\r\n const [data, setData] = useState({});\r\n let [step, setStep] = useState(externStep + 1);\r\n const BILLPOCKETID = getBillPocketID();\r\n const ACTNETID = getactnetID();\r\n const MERCADOPAGOID = getMercadoPagoId();\r\n\r\n useEffect(() => {\r\n if (lastStep && visible === 'show') {\r\n setStep(8);\r\n resetRadios('PaymentRadios');\r\n setDisabledBtn(true);\r\n }\r\n }, [lastStep, visible]);\r\n\r\n const clickRadio = (value, data, paymentGateway) => {\r\n const selectItem = {\r\n payment: {\r\n id: value,\r\n name: data,\r\n paymentGateway: paymentGateway,\r\n },\r\n };\r\n setData(selectItem);\r\n setDisabledBtn(false);\r\n };\r\n\r\n return (\r\n <div className={'card ' + visible}>\r\n <div className=\"card-header text-center\">\r\n <h3>Método de pago</h3>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"row mb-6\">\r\n <div className=\"col-12\">\r\n <h5 className=\"card-text card-title\">Seleccione un método de pago de las opciones disponibles:</h5>\r\n </div>\r\n </div>\r\n <div className=\"row mb-2\">\r\n {!hideBillPocket && (\r\n <div className=\"col-md-3 col-sm-6\">\r\n <div className=\"form-check\">\r\n <input\r\n className=\"form-check-input\"\r\n type=\"radio\"\r\n name=\"PaymentRadios\"\r\n id=\"Payment1Radios\"\r\n value=\"1\"\r\n onClick={(e) => clickRadio(e.target.value, 'Bill Pocket', BILLPOCKETID)}\r\n />\r\n <label className=\"form-check-label\" htmlFor=\"Payment1Radios\">\r\n <img className=\"img-Payment\" src=\"./resources/img/bill_pocket.jpg\" alt=\"Bill Pocket\" width=\"80%\" />\r\n </label>\r\n </div>\r\n </div>\r\n )}\r\n {\r\n !hideActnet && (\r\n <div className=\"col-md-3 col-sm-6\">\r\n <div className=\"form-check\">\r\n <input\r\n className=\"form-check-input\"\r\n type=\"radio\"\r\n name=\"PaymentRadios\"\r\n id=\"Payment2Radios\"\r\n value=\"2\"\r\n onClick={(e) => clickRadio(e.target.value, 'Actnet', ACTNETID)}\r\n />\r\n <label className=\"form-check-label\" htmlFor=\"Payment2Radios\">\r\n <img className=\"img-Payment2\" src=\"./resources/img/actnet.png\" alt=\"Actnet\" width=\"90%\"/>\r\n </label>\r\n </div>\r\n </div>\r\n )\r\n }\r\n {\r\n !hideMercadoPago && (\r\n <div className=\"col-md-3 col-sm-6\">\r\n <div className=\"form-check\">\r\n <input\r\n className=\"form-check-input\"\r\n type=\"radio\"\r\n name=\"PaymentRadios\"\r\n id=\"Payment3Radios\"\r\n value=\"3\"\r\n onClick={(e) => clickRadio(e.target.value, 'MercadoPago', MERCADOPAGOID)}\r\n />\r\n <label className=\"form-check-label\" htmlFor=\"Payment3Radios\">\r\n <img className=\"img-Payment3\" src=\"/resources/img/mercado_pago.png\" alt=\"Actnet\" width=\"90%\"/>\r\n </label>\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n </div>\r\n <div className=\"row mb-2\">\r\n <div className=\"col-6 text-end\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-lg btn-outline-danger\"\r\n disabled={disabledBtn}\r\n onClick={(e) => eventButton(true, step, data)}\r\n >\r\n Continuar\r\n </button>\r\n </div>\r\n <div className=\"col-6 text-start\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-lg btn-outline-secondary\"\r\n onClick={(e) => eventButton(true, originStep2, data)}\r\n >\r\n Regresar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nimport { formatCurrency } from \"../../Utilities/General\";\r\nimport { getImgDefault } from \"../../../helpers/getConstants\";\r\n\r\nimport { getMessageInsuranceID } from \"../../../helpers/getConstants\";\r\nimport { GET } from \"../../../helpers/APIServices\";\r\nimport { ServiceGenericParameters } from \"../../../helpers/getURL\";\r\n\r\nexport const ConfirmOrder = (props) => {\r\n const [mail, setMail] = useState(\"\");\r\n const [addressInvoice, setAddressInvoice] = useState(\"\");\r\n const [addressInvoiceTitle, setAddressInvoiceTitle] = useState(\"\");\r\n const [addressMail, setAddressMail] = useState(\"\");\r\n const [payment, setPayment] = useState(\"\");\r\n const [items, setItems] = useState([]);\r\n const [hideInvoice, setHideInvoice] = useState(\"\");\r\n const [hideMail, setHideMail] = useState(\"\");\r\n const [stepSend, setStepSend] = useState();\r\n const [messageInsurance, setMessageInsurance] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (props.visible === \"show\" && props.data) {\r\n const data = props.data;\r\n let value = \"\";\r\n\r\n value = data.addressInvoice ? data.addressInvoice.name : \"\";\r\n setAddressInvoice(value);\r\n value = data.addressInvoice ? data.addressInvoice.title : \"\";\r\n setAddressInvoiceTitle(value);\r\n\r\n value = data.addressMail ? data.addressMail.name : data.send.name;\r\n setAddressMail(value);\r\n value = data.mail ? data.mail.name : data.send.name;\r\n setMail(value);\r\n\r\n value = data.payment ? data.payment.name : \"\";\r\n setPayment(value);\r\n\r\n setItems(data.selectItem);\r\n\r\n if (\r\n !props.enableInvoice ||\r\n props.dataConsigna ||\r\n data.invoice.id === \"2\"\r\n ) {\r\n setHideInvoice(\"hide\");\r\n }\r\n if (data.send.type === \"1\") {\r\n //entrega en oficina\r\n setHideMail(\"hide\");\r\n setStepSend(2); //metodo de envio\r\n } else {\r\n setHideMail(\"\");\r\n setStepSend(3); //direcciones de envio\r\n }\r\n }\r\n }, [props.visible, props.data, props.dataConsigna, props.enableInvoice]);\r\n\r\n useEffect(() => {\r\n const messageInsuranceID = getMessageInsuranceID();\r\n const URLMessageInsurance = ServiceGenericParameters(messageInsuranceID);\r\n const getData = () => {\r\n GET(URLMessageInsurance).then((data) => {\r\n if (data === \"401\") {\r\n getData();\r\n return \"\";\r\n }\r\n if (data.value) {\r\n setMessageInsurance(data.value);\r\n }\r\n });\r\n };\r\n getData();\r\n }, []);\r\n\r\n return (\r\n <div className={\"card \" + props.visible}>\r\n <div className='card-header text-center'>\r\n <h3>Confirmación de Orden</h3>\r\n </div>\r\n <div className='card-body'>\r\n <div className={\"row mb-2 \" + hideMail}>\r\n <div className='col-12'>\r\n <h5 className='card-text card-title'>Método de envÃo</h5>\r\n </div>\r\n </div>\r\n <div className={\"row mb-5 \" + hideMail}>\r\n <div className='col-8'>\r\n <p>{mail}</p>\r\n </div>\r\n <div className='col-4 text-end'>\r\n <button\r\n className='btn btn-link'\r\n onClick={(e) => props.eventButton(true, 2)}\r\n >\r\n Cambiar\r\n </button>\r\n </div>\r\n </div>\r\n <div className='row mb-2'>\r\n <div className='col-12'>\r\n <h5 className='card-text card-title'>Dirección de envÃo</h5>\r\n </div>\r\n </div>\r\n <div className='row mb-5'>\r\n <div className='col-8'>\r\n <p>{addressMail}</p>\r\n </div>\r\n <div className='col-4 text-end'>\r\n <button\r\n className='btn btn-link'\r\n onClick={(e) => props.eventButton(true, stepSend)}\r\n >\r\n Cambiar\r\n </button>\r\n </div>\r\n </div>\r\n <div className={\"row mb-2 \" + hideMail}>\r\n <div className='col-12'>\r\n <h5 className='card-text card-title'>Seguro</h5>\r\n </div>\r\n </div>\r\n <div className={\"row mb-5 \" + hideMail}>\r\n <div className='col-12'>\r\n <p>{messageInsurance}</p>\r\n </div>\r\n </div>\r\n <div className='row mb-2'>\r\n <div className='col-12'>\r\n <h5 className='card-text card-title'>Método de pago</h5>\r\n </div>\r\n </div>\r\n <div className='row mb-5'>\r\n <div className='col-8'>\r\n <p>{payment}</p>\r\n </div>\r\n <div className='col-4 text-end'>\r\n <button\r\n className='btn btn-link'\r\n onClick={(e) => props.eventButton(true, 7)}\r\n >\r\n Cambiar\r\n </button>\r\n </div>\r\n </div>\r\n <div className={\"row mb-2 \" + hideInvoice}>\r\n <div className='col-12'>\r\n <h5 className='card-text card-title'>Dirección de facturación</h5>\r\n </div>\r\n </div>\r\n <div className={\"row mb-5 \" + hideInvoice}>\r\n <div className='col-8'>\r\n <p>{addressInvoiceTitle}</p>\r\n <p>{addressInvoice}</p>\r\n </div>\r\n <div className='col-4 text-end'>\r\n <button\r\n className='btn btn-link'\r\n onClick={(e) => props.eventButton(true, 5)}\r\n >\r\n Cambiar\r\n </button>\r\n </div>\r\n </div>\r\n <div className='row mb-2'>\r\n <div className='col-12'>\r\n <h5 className='card-text card-title'>Materiales:</h5>\r\n </div>\r\n </div>\r\n {items.map((item, i) => {\r\n return (\r\n <div key={i}>\r\n <div className='mb-3 row inputs-form'>\r\n <div className='col-12'>\r\n <div className='mb-3'>\r\n <div className='row g-0 align-items-center'>\r\n <div className='col-2'>\r\n <img\r\n src={\r\n item.images[0] ? item.images[0] : getImgDefault()\r\n }\r\n className='img-fluid rounded-start'\r\n alt={item.descripcionLote}\r\n />\r\n </div>\r\n <div className='col-md-10'>\r\n <div className='card-body'>\r\n <div className='row'>\r\n <div className='col-3'>\r\n <p className='card-text'>{item.nombreLote}</p>\r\n </div>\r\n <div className='col-6'>\r\n <p className='card-text'>\r\n {item.descripcionLote}\r\n </p>\r\n </div>\r\n <div className='col-3'>\r\n <small className='text-muted'>\r\n {formatCurrency(item.precioSalida)}\r\n </small>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { validSession } from '../../Utilities/General';\r\n\r\nimport { ShoppingCart } from './ShoppingCart';\r\nimport { Send } from './Send';\r\nimport { OrderPanel } from './OrderPanel';\r\nimport { Mail } from './Mail';\r\nimport { Invoice } from './Invoice';\r\nimport { AddressBilling } from './AddressBilling';\r\nimport { AddressShipping } from './AddressShipping';\r\nimport { Payment } from './Payment';\r\nimport { ConfirmOrder } from './ConfirmOrder';\r\nimport { getConfig } from '../../../helpers/getConfig';\r\nimport { GET } from '../../../helpers/APIServices';\r\nimport { ServiceAuctionById } from '../../../helpers/getURL';\r\n\r\nexport const PaymentProcessGrid = (props) => {\r\n //Variables Generales\r\n const [visibleShopping, setVisibleShopping] = useState('hide');\r\n const [visibleSend, setVisibleSend] = useState('hide');\r\n const [visibleAddressBilling, setVisibleAddressBilling] = useState('hide');\r\n const [visibleMail, setVisibleMail] = useState('hide');\r\n const [visibleInvoice, setVisibleInvoice] = useState('hide');\r\n const [visibleAddressShipping, setVisibleAddressShipping] = useState('hide');\r\n const [visiblePayment, setVisiblePayment] = useState('hide');\r\n const [visibleConfirmOrder, setVisibleConfirmOrder] = useState('hide');\r\n const [lastStep, setLastStep] = useState(false);\r\n const [rate, setRate] = useState(0);\r\n const [originStep, setOrigenStep] = useState(0); //pantalla origen envio\r\n const [originStep2, setOrigenStep2] = useState(0); //pantalla origen factura\r\n const [hideBillPocket, setHideBillPocket] = useState(false);\r\n const [hideActnet, setHideActnet] = useState(false);\r\n const [hideMercadoPago, setHideMercadoPago] = useState(false);\r\n const [idTypeAuction, setIdTypeAuction] = useState('');\r\n\r\n //ShoppingCart\r\n const [dataSubTotal, setDataSubTotal] = useState(0);\r\n const [dataCount, setDataCount] = useState(0);\r\n const [dataConsigna, setDataConsigna] = useState(false); //true = lotes plus, false = lotes gama (SAP)\r\n let [dataInformation, setDataInformation] = useState([]);\r\n\r\n const history = useHistory();\r\n const detail = props.location.state ? props.location.state.detail : null;\r\n const idAuction = props.location.state && props.location.state.detail.length > 0 ? props.location.state.detail[0].idSubasta : '';\r\n const enableInvoice = props.location.state ? props.location.state.enableInvoice : null;\r\n\r\n //OrderPanel\r\n const [disabledBtnOrderPanel, setDisabledBtnOrderPanel] = useState(true);\r\n\r\n \r\n useEffect(() => {\r\n if (!validSession()) {\r\n history.push('/?home=true');\r\n }\r\n if (!detail) {\r\n history.push('/perfil');\r\n }\r\n setVisibleShopping('show');\r\n }, [history, detail]);\r\n\r\n useEffect(() => {\r\n const constants = JSON.parse(sessionStorage.getItem('constants'));\r\n if (!constants || !constants.hideBillPocket) {\r\n getConfig('constants.json').then((response) => {\r\n if (response && response.hideBillPocket) {\r\n setHideBillPocket(response.hideBillPocket);\r\n }\r\n if (response && response['hideActnet']) {\r\n setHideActnet(response['hideActnet']);\r\n }\r\n if (response && response['hideMercadoPago']) {\r\n setHideMercadoPago(response['hideMercadoPago']);\r\n }\r\n });\r\n } else {\r\n setHideBillPocket(constants.hideBillPocket);\r\n setHideActnet(constants['hideActnet']);\r\n setHideMercadoPago(constants['hideMercadoPago']);\r\n }\r\n }, [hideBillPocket]);\r\n\r\n useEffect(() => {\r\n const URL = ServiceAuctionById(idAuction);\r\n const getData = () => {\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n if(data.idTypeAuction){\r\n setIdTypeAuction(data.idTypeAuction);\r\n }\r\n });\r\n };\r\n getData();\r\n }, []);\r\n\r\n const addAllCart = (check, consigna, consignaSAP, idElement) => {\r\n console.log('addAllCart-onChange', check, consigna, consignaSAP, idElement);\r\n const checkAll = document.getElementsByClassName('checkAll');\r\n document.getElementById(idElement).checked = check;\r\n setDataSubTotal(0);\r\n setDataCount(0);\r\n setDisabledBtnOrderPanel(false);\r\n setDataConsigna(consigna);\r\n let total = 0;\r\n let count = 0;\r\n\r\n for (let i = 0; i < checkAll.length; i++) {\r\n checkAll[i].disabled = check;\r\n if (checkAll[i].id !== idElement) {\r\n checkAll[i].checked = false;\r\n } else {\r\n checkAll[i].disabled = false;\r\n }\r\n }\r\n\r\n detail.forEach((element) => {\r\n if (element.consigna === consigna && element.consignaSAP === consignaSAP) {\r\n document.getElementById(element.idLote).checked = check;\r\n document.getElementById(element.idLote).disabled = false;\r\n if (check) {\r\n total += element.precioSalida;\r\n count++;\r\n } else {\r\n total -= element.precioSalida;\r\n count--;\r\n }\r\n } else {\r\n document.getElementById(element.idLote).checked = false;\r\n document.getElementById(element.idLote).disabled = check;\r\n }\r\n });\r\n\r\n if (total <= 0) {\r\n total = 0;\r\n count = 0;\r\n setDisabledBtnOrderPanel(true);\r\n }\r\n setDataSubTotal(total);\r\n setDataCount(count);\r\n };\r\n\r\n const addCart = (idLot, check, price, consigna, consignaSAP, idElement) => {\r\n console.log('check individual', idLot, consigna, consignaSAP, idElement);\r\n\r\n const checkAll = document.getElementsByClassName('checkAll');\r\n const totalItems = detail.filter((x) => x.consigna === consigna && x.consignaSAP === consignaSAP).length;\r\n let item = 0;\r\n let total = dataSubTotal;\r\n let count = dataCount;\r\n setDisabledBtnOrderPanel(false);\r\n setDataConsigna(consigna);\r\n if (check) {\r\n total += price;\r\n count++;\r\n } else {\r\n total -= price;\r\n count--;\r\n }\r\n if (count <= 0) {\r\n setDisabledBtnOrderPanel(true);\r\n }\r\n setDataSubTotal(total);\r\n setDataCount(count);\r\n\r\n //Controla disabled de cada checkbox\r\n detail.forEach((element) => {\r\n const el = document.getElementById(element.idLote);\r\n if (element.consigna === consigna && element.consignaSAP === consignaSAP) {\r\n el.disabled = false;\r\n if (el.checked) {\r\n item++;\r\n } else {\r\n item = item > 0 ? item-- : 0;\r\n }\r\n } else {\r\n el.disabled = true;\r\n }\r\n //ToDo: Validar si esta variable se controla con un useState o similar\r\n if(count == 0){\r\n el.disabled = false;\r\n }\r\n });\r\n\r\n //Controla check / unchek de checkbox select all\r\n for (let i = 0; i < checkAll.length; i++) {\r\n //disabled\r\n if (checkAll[i].id === idElement) {\r\n checkAll[i].disabled = false;\r\n } else {\r\n checkAll[i].disabled = true;\r\n }\r\n //ToDo: Validar si esta variable se controla con un useState o similar\r\n if(count == 0){\r\n checkAll[i].disabled = false;\r\n }\r\n\r\n // checkall\r\n if (item === totalItems && checkAll[i].id === idElement) {\r\n checkAll[i].checked = true;\r\n } else {\r\n checkAll[i].checked = false;\r\n }\r\n }\r\n };\r\n\r\n const continueOrderPanel = (disabledBtn, step, data) => {\r\n setVisibleShopping('hide');\r\n setVisibleSend('hide');\r\n setVisibleAddressBilling('hide');\r\n setVisibleMail('hide');\r\n setVisibleInvoice('hide');\r\n setVisibleAddressShipping('hide');\r\n setVisiblePayment('hide');\r\n setVisibleConfirmOrder('hide');\r\n setDisabledBtnOrderPanel(disabledBtn);\r\n\r\n if (dataConsigna && (step === 5 || step === 6)) {\r\n //lotes gama no tiene derecho a factura\r\n data = {\r\n ...data,\r\n invoice: {\r\n id: 2,\r\n name: 'no',\r\n },\r\n };\r\n step = 7;\r\n }\r\n //inhabilita la facturacion desde la tabla de paremetros del SPMLS\r\n if (!enableInvoice && (step === 5 || step === 6)) {\r\n step = 7;\r\n }\r\n\r\n if (step === 8 && data.payment && data.payment.name !== ''){\r\n step = 8;\r\n }else if(step === 8 && !dataInformation.payment){\r\n setLastStep(false);\r\n step = 7;\r\n }\r\n\r\n switch (step) {\r\n case 1:\r\n setVisibleShopping('show');\r\n setLastStep(false)\r\n break;\r\n case 2:\r\n setVisibleSend('show');\r\n let selectItem = [];\r\n detail.forEach((element) => {\r\n let check = document.getElementById(element.idLote).checked;\r\n if (check) {\r\n selectItem.push(element);\r\n }\r\n });\r\n const select = {\r\n selectItem: selectItem,\r\n allItem: detail,\r\n };\r\n deletePropertie('selectItem');\r\n deletePropertie('allItem');\r\n deletePropertie('AddressBilling');\r\n deletePropertie('mail');\r\n deletePropertie('addressMail');\r\n assignInformation(select, 'send');\r\n break;\r\n case 3:\r\n setVisibleAddressShipping('show');\r\n assignInformation(data, 'addressShipping');\r\n break;\r\n case 4:\r\n setVisibleMail('show');\r\n assignInformation(data, 'mail');\r\n break;\r\n case 5:\r\n setVisibleInvoice('show');\r\n deletePropertie('addressShipping');\r\n assignInformation(data, 'invoice');\r\n break;\r\n case 6:\r\n setVisibleAddressBilling('show');\r\n assignInformation(data, 'addressBilling');\r\n break;\r\n case 7:\r\n setVisiblePayment('show');\r\n assignInformation(data, 'payment');\r\n break;\r\n case 8:\r\n setVisibleConfirmOrder('show');\r\n assignInformation(data);\r\n setLastStep(true);\r\n setDisabledBtnOrderPanel(false);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const assignInformation = (data, propertie) => {\r\n if (propertie) {\r\n deletePropertie(propertie);\r\n }\r\n data = {\r\n ...data,\r\n ...dataInformation,\r\n };\r\n setDataInformation(data);\r\n if (data && data.mail) {\r\n setRate(data.mail.rate);\r\n } else {\r\n setRate(0);\r\n }\r\n };\r\n\r\n const deletePropertie = (name) => {\r\n if (dataInformation && dataInformation[name]) {\r\n delete dataInformation[name];\r\n }\r\n };\r\n\r\n const setOrigen = (step) => {\r\n setOrigenStep(step);\r\n };\r\n\r\n const setOrigen2 = (step) => {\r\n setOrigenStep2(step);\r\n };\r\n\r\n return (\r\n <div className=\"container-fluid container__shoppingCart\">\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-12 col-md-9 mb-4\">\r\n <ShoppingCart\r\n data={detail}\r\n addCart={addCart}\r\n addAllCart={addAllCart}\r\n visible={visibleShopping}\r\n eventButton={continueOrderPanel}\r\n step={1}\r\n />\r\n <Send\r\n visible={visibleSend}\r\n eventButton={continueOrderPanel}\r\n step={2}\r\n lastStep={lastStep}\r\n setOrigen={setOrigen}\r\n setOrigen2={setOrigen2}\r\n idTypeAuction={idTypeAuction}\r\n />\r\n <AddressShipping\r\n visible={visibleAddressShipping}\r\n eventButton={continueOrderPanel}\r\n step={3}\r\n lastStep={lastStep}\r\n data={dataInformation}\r\n />\r\n <Mail\r\n visible={visibleMail}\r\n eventButton={continueOrderPanel}\r\n step={4}\r\n lastStep={lastStep}\r\n data={dataInformation}\r\n setOrigen={setOrigen}\r\n setOrigen2={setOrigen2}\r\n subTotal={dataSubTotal}\r\n idTypeAuction={idTypeAuction}\r\n />\r\n <Invoice\r\n visible={visibleInvoice}\r\n eventButton={continueOrderPanel}\r\n step={5}\r\n lastStep={lastStep}\r\n originStep={originStep}\r\n setOrigen2={setOrigen2}\r\n />\r\n <AddressBilling \r\n visible={visibleAddressBilling} \r\n eventButton={continueOrderPanel} \r\n step={6} \r\n lastStep={lastStep} \r\n />\r\n <Payment\r\n visible={visiblePayment}\r\n eventButton={continueOrderPanel}\r\n externStep={7}\r\n lastStep={lastStep}\r\n originStep2={originStep2}\r\n hideBillPocket={hideBillPocket}\r\n hideActnet={hideActnet}\r\n hideMercadoPago={hideMercadoPago}\r\n />\r\n <ConfirmOrder\r\n visible={visibleConfirmOrder}\r\n eventButton={continueOrderPanel}\r\n step={8}\r\n data={dataInformation}\r\n dataConsigna={dataConsigna}\r\n enableInvoice={enableInvoice}\r\n />\r\n </div>\r\n <div className=\"col-7 col-sm-6 col-md-3\">\r\n <OrderPanel\r\n count={dataCount}\r\n subTotal={dataSubTotal}\r\n eventButton={continueOrderPanel}\r\n disabledBtn={disabledBtnOrderPanel}\r\n send={rate}\r\n data={dataInformation}\r\n lastStep={lastStep}\r\n enableInvoice={enableInvoice}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nimport { OpenMessage } from '../../Utilities/General';\r\nimport { GET } from '../../../helpers/APIServices';\r\nimport { ServiceCompleteOrder } from '../../../helpers/getURL';\r\n\r\nexport const ReceivePay = () => {\r\n const { search } = useLocation();\r\n const [loading, setLoading] = useState('show');\r\n\r\n useEffect(() => {\r\n let userName = localStorage.getItem('userName');\r\n userName = userName ? userName : '';\r\n\r\n const URL = ServiceCompleteOrder();\r\n const PARAMS = search + '&NameCustomer=' + userName;\r\n\r\n const getData = () => {\r\n GET(URL + PARAMS).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n if (data.successOrder) {\r\n setTimeout(() => {\r\n setLoading('hide');\r\n const idOrder = new URLSearchParams(search).get('externalId');\r\n window.open('/detalle-orden?id=' + idOrder, '_self');\r\n }, 2000);\r\n \r\n } else {\r\n setLoading('hide');\r\n OpenMessage('error', data.orderMessage);\r\n }\r\n });\r\n };\r\n getData();\r\n }, [search]);\r\n\r\n return (\r\n <div className=\"row container-fluid container__expire justify-content-center\">\r\n <div id='loading2' className={'row container-back container-loading ' + loading }>\r\n <div className='col-12 text-center'>\r\n <img src='./resources/loading.gif' alt='loading...' width='15%' />\r\n </div>\r\n </div>\r\n <div className=\"col-8 col-sm-6 col-lg-5 col-xxl-4 text-center\">\r\n <label>Validando pago</label>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { formatCurrency } from '../../Utilities/General';\r\n\r\nexport const SummaryOrder = (props) => {\r\n const [quantity, setQuantity] = useState(0);\r\n const [subTotal, setSubtotal] = useState(0);\r\n const [delivery, setDelivery] = useState(0);\r\n const [total, setTotal] = useState(0);\r\n\r\n const history = useHistory();\r\n\r\n const openOrder = () => {\r\n history.push('./perfil?opcion=5');\r\n };\r\n\r\n useEffect(() => {\r\n const data = props.data;\r\n if (data) {\r\n setQuantity(data.quantity);\r\n setSubtotal(data.subtotal);\r\n setDelivery(data.deliveryPrice);\r\n setTotal(data.total);\r\n }\r\n }, [props]);\r\n\r\n return (\r\n <div className=\"card\">\r\n <div className=\"card-header text-center\">\r\n <h3>Resumen de su pedido</h3>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className=\"row mb-4\">\r\n <div className=\"col-5\">\r\n <h5 className=\"card-text text-end text-uppercase\">Cantidad</h5>\r\n </div>\r\n <div className=\"col-7\">\r\n <h5 className=\"card-text text-end\">{quantity}</h5>\r\n </div>\r\n </div>\r\n <div className=\"row mb-4\">\r\n <div className=\"col-5\">\r\n <h5 className=\"card-text text-end text-uppercase\">SubTotal</h5>\r\n </div>\r\n <div className=\"col-7\">\r\n <h5 className=\"card-text text-end\">{formatCurrency(subTotal)}</h5>\r\n </div>\r\n </div>\r\n <div className=\"row mb-4\">\r\n <div className=\"col-5\">\r\n <h5 className=\"card-text text-end text-uppercase\">EnvÃo</h5>\r\n </div>\r\n <div className=\"col-7\">\r\n <h5 className=\"card-text text-end\">{formatCurrency(delivery)}</h5>\r\n </div>\r\n </div>\r\n <div className=\"row mb-4\">\r\n <div className=\"col-5\">\r\n <h5 className=\"card-text text-end text-uppercase\">Total</h5>\r\n </div>\r\n <div className=\"col-7\">\r\n <h5 className=\"card-text text-end\">{formatCurrency(total)}</h5>\r\n </div>\r\n </div>\r\n <div className=\"row mb-2 mt-5\">\r\n <div className=\"col-12 text-center\">\r\n <button type=\"button\" className=\"btn btn-lg btn-outline-secondary\" onClick={(e) => openOrder()}>\r\n Mis órdenes\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { getImgDefault } from '../../../helpers/getConstants';\r\nimport { formatCurrency } from '../../Utilities/General';\r\n\r\nexport const OrderDetail = (props) => {\r\n const [addressBilling, setAddressBilling] = useState('');\r\n const [addressBillingTitle, setAddressBillingTitle] = useState('');\r\n const [address, setAddress] = useState('');\r\n const [delivery, setDelivery] = useState('');\r\n const [lots, setLots] = useState([]);\r\n const [payment, setPayment] = useState('Bill Pocket');\r\n const [hideInvoice, setHideInvoice] = useState('hide');\r\n const [hideDelivery, setHideDelivery] = useState('hide');\r\n const [cart, setCart] = useState([]);\r\n\r\n useEffect(() => {\r\n const shoppingCart = JSON.parse(localStorage.getItem('cart'));\r\n if (shoppingCart && shoppingCart.length > 0) {\r\n setCart(shoppingCart);\r\n }\r\n if (props.addressBilling && props.addressBillingTitle && !props.consiga) {\r\n setAddressBillingTitle(props.addressBillingTitle);\r\n setAddressBilling(props.addressBilling);\r\n setHideInvoice('');\r\n }\r\n if (!props.addressBilling) {\r\n setHideInvoice('hide');\r\n }\r\n if (props.address) {\r\n setAddress(props.address);\r\n }\r\n if (props.delivery) {\r\n setDelivery(props.delivery);\r\n setHideDelivery('');\r\n }\r\n if (props.lots) {\r\n setLots(props.lots);\r\n }\r\n if (props.payment) {\r\n setPayment(props.payment);\r\n }\r\n }, [props.addressBilling, props.address, props.lots, props.delivery, props.consiga, props.addressBillingTitle, props.payment]);\r\n\r\n const deleteCart = (idLote) => {\r\n let index = -1;\r\n cart.filter((item, i) => {\r\n if (item && item.IdLot === idLote) {\r\n index = i;\r\n }\r\n return i;\r\n });\r\n if (index !== -1) {\r\n let item = [];\r\n delete cart[index];\r\n localStorage.removeItem('cart');\r\n for (let i = 0; i < cart.length; i++) {\r\n if (cart[i]) {\r\n item.push(cart[i]);\r\n }\r\n }\r\n if (item.length > 0) {\r\n localStorage.setItem('cart', JSON.stringify(item));\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <div className=\"card\">\r\n <div className=\"card-header text-center\">\r\n <h3>Número de pedido</h3>\r\n </div>\r\n <div className=\"card-body\">\r\n <div className={'row mb-2 ' + hideDelivery}>\r\n <div className=\"col-12\">\r\n <h5 className=\"card-text card-title\">Método de envÃo</h5>\r\n </div>\r\n </div>\r\n <div className={'row mb-5 ' + hideDelivery}>\r\n <div className=\"col-8\">\r\n <p>{delivery}</p>\r\n </div>\r\n </div>\r\n <div className=\"row mb-2\">\r\n <div className=\"col-12\">\r\n <h5 className=\"card-text card-title\">Dirección de envÃo</h5>\r\n </div>\r\n </div>\r\n <div className=\"row mb-5\">\r\n <div className=\"col-8\">\r\n <p>{address}</p>\r\n </div>\r\n </div>\r\n <div className=\"row mb-2\">\r\n <div className=\"col-12\">\r\n <h5 className=\"card-text card-title\">Método de pago</h5>\r\n </div>\r\n </div>\r\n <div className=\"row mb-5\">\r\n <div className=\"col-8\">\r\n <p>{payment}</p>\r\n </div>\r\n </div>\r\n <div className={'row mb-2 ' + hideInvoice}>\r\n <div className=\"col-12\">\r\n <h5 className=\"card-text card-title\">Dirección de facturación</h5>\r\n </div>\r\n </div>\r\n <div className={'row mb-5 ' + hideInvoice}>\r\n <div className=\"col-8\">\r\n <p>{addressBillingTitle}</p>\r\n <p>{addressBilling}</p>\r\n </div>\r\n </div>\r\n <div className=\"row mb-2\">\r\n <div className=\"col-12\">\r\n <h5 className=\"card-text card-title\">Materiales:</h5>\r\n </div>\r\n </div>\r\n\r\n {lots.map((lot, i) => {\r\n const img = lot.firstImageLote ? lot.firstImageLote : getImgDefault();\r\n deleteCart(lot.idLote);\r\n return (\r\n <div key={i}>\r\n <div className=\"mb-3 row inputs-form\">\r\n <div className=\"col-12\">\r\n <div className=\"mb-3\">\r\n <div className=\"row g-0 align-items-center\">\r\n <div className=\"col-2\">\r\n <img src={img} className=\"img-fluid rounded-start\" alt={''} />\r\n </div>\r\n <div className=\"col-md-10\">\r\n <div className=\"card-body\">\r\n <div className=\"row\">\r\n <div className=\"col-3\">\r\n <p className=\"card-text\">{lot.nameLote}</p>\r\n </div>\r\n <div className=\"col-6\">\r\n <p className=\"card-text\">{lot.descriptionLote}</p>\r\n </div>\r\n <div className=\"col-3\">\r\n <small className=\"text-muted\">{formatCurrency(lot.priceLote)}</small>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nimport { SummaryOrder } from './SummaryOrder';\r\nimport { OrderDetail } from './OrderDetail';\r\n\r\nimport { GET } from '../../../helpers/APIServices';\r\nimport { ServiceGetOrderById, ServiceInfoAddressShippingByCustomer, ServiceInfoAddressBillingByCustomer } from '../../../helpers/getURL';\r\nimport { getGuidEmpty } from '../../../helpers/getConstants';\r\n\r\nexport const OrderDetailGrid = (props) => {\r\n const [data, setData] = useState();\r\n const [delivery, setDelivery] = useState('');\r\n const [billing, setBilling] = useState('');\r\n const [billingTitle, setBillingTitle] = useState('');\r\n const [address, setAddress] = useState('Entrega en oficina');\r\n const [payment, setPayment] = useState('');\r\n const [lots, setLots] = useState([]);\r\n const [cardClass, setCardClass] = useState('hide');\r\n const [consiga, setConsiga] = useState(false);\r\n const { search } = useLocation();\r\n const id = new URLSearchParams(search).get('id');\r\n const idOrder = props.location.state ? props.location.state.idOrder : id;\r\n\r\n useEffect(() => {\r\n if (id) {\r\n setCardClass('');\r\n }\r\n if (idOrder) {\r\n const getData = () => {\r\n const URL = ServiceGetOrderById(idOrder);\r\n GET(URL).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n if (data) {\r\n setData(data);\r\n setDelivery(data.deliveryServiceName);\r\n setConsiga(data.consignation);\r\n setPayment(data.typePayment);\r\n\r\n const GuidEmpty = getGuidEmpty();\r\n if (data.idDeliveryAddress && data.idDeliveryAddress !== GuidEmpty) {\r\n const URLAddressShipping = ServiceInfoAddressShippingByCustomer(data.idDeliveryAddress);\r\n GET(URLAddressShipping).then((addressShipping) => {\r\n if (addressShipping === '401') {\r\n getData();\r\n return '';\r\n }\r\n if (addressShipping && addressShipping.length > 0) {\r\n const address = addressShipping[0];\r\n const value = `${address.calle} No. Ext. ${address.numero} ${\r\n address.numeroInt !== '' ? `No. Int. ${address.numeroInt}` : ''\r\n }, ${address.colonia}, C.P. ${address.scp}, ${address.municipio}, ${address.estado}, ${address.idPais}`;\r\n setAddress(value);\r\n }\r\n });\r\n }\r\n if (data.idBillingClient !== GuidEmpty) {\r\n const URLAddressBilling = ServiceInfoAddressBillingByCustomer(data.idBillingClient);\r\n GET(URLAddressBilling).then((addressBilling) => {\r\n if (addressBilling === '401') {\r\n getData();\r\n return '';\r\n }\r\n if (addressBilling && addressBilling.length > 0) {\r\n const address = addressBilling[0];\r\n const title = `${address.rfc}, ${address.razonSocial}`;\r\n const value = `${address.calle} No. Ext. ${address.numero} ${\r\n address.numeroInt !== '' ? `No. Int. ${address.numeroInt}` : ''\r\n }, ${address.colonia}, C.P. ${address.scp}, ${address.municipio}, ${address.estado}, ${address.idPais}`;\r\n setBilling(value);\r\n setBillingTitle(title);\r\n }\r\n });\r\n }\r\n if (data.idLotList && data.idLotList.length > 0) {\r\n setLots(data.idLotList);\r\n }\r\n }\r\n });\r\n };\r\n getData();\r\n }\r\n }, [idOrder, id]);\r\n\r\n return (\r\n <div className=\"container-fluid container__shoppingCart\">\r\n <div className={'card mb-5 ' + cardClass}>\r\n <div className=\"card-body\">\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-2 text-end\">\r\n <i className=\"fas fa-cart-arrow-down\"></i>\r\n </div>\r\n <div className=\"col-10\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <label className=\"title__thanks\">Gracias ha realizado su pedido</label>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <label className=\"subtile__thanks\">En breve recibirá un correo electrónico con la información de su pedido</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-12 col-md-9 mb-4\">\r\n <OrderDetail\r\n delivery={delivery}\r\n address={address}\r\n addressBilling={billing}\r\n addressBillingTitle={billingTitle}\r\n lots={lots}\r\n consiga={consiga}\r\n payment={payment}\r\n />\r\n </div>\r\n\r\n <div className=\"col-7 col-sm-6 col-md-3\">\r\n <SummaryOrder data={data} />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { getImgDefault } from '../../helpers/getConstants';\r\n\r\nexport const Carousel = (props) => {\r\n const [dataCarousel, setDataCarousel] = useState([]);\r\n const { watchLot, carouselMovil, announcement } = props;\r\n useEffect(() => {\r\n if (props.dataCarousel && props.dataCarousel.length > 0) {\r\n let carousel = props.dataCarousel;\r\n setDataCarousel(carousel);\r\n const index = carousel.findIndex((item) => item.statusSubasta.toUpperCase() === 'ACTUAL');\r\n setTimeout(() => {\r\n let container = document.getElementById('carousel-lots');\r\n container.scrollLeft -= (index - 1) * 175;\r\n if (carousel[1].statusSubasta.toUpperCase() === 'ACTUAL') {\r\n container.scrollLeft += 30;\r\n } else if (index > 1) {\r\n container.scrollLeft += (index - 1) * 170;\r\n }\r\n }, 800);\r\n }\r\n }, [props.dataCarousel]);\r\n const titleStatus = (status, order) => {\r\n let title = '';\r\n switch (status) {\r\n case 'DISPONIBLE':\r\n case 'ACTUAL':\r\n title = `LOTE ${order}`;\r\n break;\r\n case 'GANADO':\r\n case 'RETIRADO':\r\n title = status;\r\n break;\r\n case 'ADJUDICADO':\r\n case 'PERDIDO':\r\n case 'PAGADO':\r\n title = 'ADJUDICADO';\r\n break;\r\n default:\r\n title = '';\r\n break;\r\n }\r\n return title;\r\n };\r\n\r\n return (\r\n <div className=\"row container__streaming--carousel\" id=\"carousel-lots\">\r\n {dataCarousel.map((item, i) => {\r\n let img = item.imagesList && item.imagesList[0] ? item.imagesList[0] : getImgDefault();\r\n const title = titleStatus(item.statusSubasta.toUpperCase(), item.order);\r\n let headerClass;\r\n let borderClass;\r\n\r\n switch (item.statusSubasta.toUpperCase()) {\r\n case 'ADJUDICADO':\r\n case 'PERDIDO':\r\n case 'PAGADO':\r\n headerClass = 'header__adjudge';\r\n borderClass = 'orange__border';\r\n break;\r\n case 'GANADO':\r\n headerClass = 'header__win';\r\n borderClass = 'blue__border';\r\n break;\r\n case 'DISPONIBLE':\r\n headerClass = 'card-header-next';\r\n borderClass = 'gray__border';\r\n break;\r\n default:\r\n headerClass = '';\r\n borderClass = 'gray__border';\r\n break;\r\n }\r\n\r\n if (item.statusSubasta.toUpperCase() === 'ACTUAL') {\r\n return (\r\n <div\r\n className={`col-3 mt-4 container__streaming--carousel__item_now ${\r\n i === dataCarousel.length - 1 && carouselMovil ? 'last-lot' : ''\r\n }`}\r\n key={i}\r\n >\r\n <div className=\"card card__next\" onClick={(e) => watchLot(item.idLot)}>\r\n <div className=\"row header-now\">\r\n <h3 className=\"card-text text-center\">{announcement ? 'Preparando' : 'Ahora'}</h3>\r\n </div>\r\n <div className=\"row\">\r\n <div className={`${carouselMovil ? 'col-12' : 'col-4 ps-4'}`}>\r\n <img src={img} className=\"card-img-top img-now\" alt={item.name} width=\"75px\" height=\"75px\" />\r\n </div>\r\n <div className={`${carouselMovil ? 'col-12 container-titles' : 'col-8'}`}>\r\n <div className=\"card-body\">\r\n <p className={`text-center card__next--title fw-bold ${carouselMovil ? 'fs-5' : 'fs-4'} `}>{title}</p>\r\n <p\r\n data-bs-toggle=\"tooltip\"\r\n data-bs-placement=\"bottom\"\r\n title={item.description}\r\n className={`card-text text-center fw-bold desc-ellipsis ${carouselMovil ? 'fs-6' : 'fs-4'}`}\r\n >\r\n {item.description}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n } else {\r\n let favorite = '';\r\n if (item.favorite === true) {\r\n favorite = 'fas fa-star bookmark';\r\n }\r\n return (\r\n <div className=\"col-1 mt-4 text-center container__streaming--carousel__item\" key={i}>\r\n <div className=\"card card__carousel\" onClick={(e) => watchLot(item.idLot)}>\r\n <div className={`card-header ${headerClass}`}>{title}</div>\r\n <div className={`card-body ${borderClass}`}>\r\n <i className={favorite}></i>\r\n <img src={img} className=\"card-img-top\" alt={item.name} width=\"75px\" height=\"75px\" />\r\n {carouselMovil && (\r\n <div>\r\n <p className=\"card-text text-center card__next--title fw-bold fs-5\">{title}</p>\r\n <p\r\n data-bs-toggle=\"tooltip\"\r\n data-bs-placement=\"bottom\"\r\n title={item.description}\r\n className=\"card-text text-center fw-bold fs-6 desc-ellipsis\"\r\n >\r\n {item.description}\r\n </p>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n })}\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect, useRef, useLayoutEffect } from 'react';\r\n\r\n//import MiniPlayer from './MiniPlayer/MiniPlayer';\r\n//import { POSITION } from './MiniPlayer/config';\r\n\r\nimport { convertToTime, formatCurrency, OpenMessage, OpenOfferSuccess, OpenWaitNextAuction, OpenDeclineClient } from '../Utilities/General';\r\nimport { ServiceConnectionSignalr, ServiceGetCurrentBid, ServiceMakeBids, ServiceBidsStreaming } from '../../helpers/getURL';\r\nimport { ConnectionSignalr, GET } from '../../helpers/APIServices';\r\nimport {\r\n getAvailableLot,\r\n //getAwardLot,\r\n //getRetiredLot,\r\n getStreamPlayBackUrlQA,\r\n //getStreamPlayBackUrlUAT,\r\n getUserRejectedStatus,\r\n} from '../../helpers/getConstants';\r\n\r\nconst STREAM_PLAYBACK_URL = getStreamPlayBackUrlQA();\r\n// const STREAM_PLAYBACK_URL = getStreamPlayBackUrlUAT();\r\n\r\nexport const Video = (props) => {\r\n const [mobile, setMobile] = useState([]);\r\n const dataContent = JSON.parse(localStorage.getItem('dataContent'));\r\n const IdAuction = props.IdAuction;\r\n const IdLot = props.IdLot;\r\n const IdCustomer = props.IdCustomer;\r\n const {\r\n updateCarousel,\r\n update,\r\n setUpdate,\r\n updateNotice,\r\n streaming,\r\n streamingText,\r\n annoucement,\r\n dataCarousel,\r\n statusCustomer = '',\r\n streamingFinish,\r\n } = props;\r\n let pallet = 0;\r\n const [connection, setConnection] = useState(null);\r\n const [offer, setOffer] = useState(false);\r\n const [adviceOffer, setAdviceOffer] = useState('');\r\n const [bid, setBid] = useState([]);\r\n const [confirm, setConfirm] = useState(false);\r\n const [nextLot, setNextLot] = useState(false);\r\n const [waitingStreaming, setWaitingStreaming] = useState(false);\r\n const [waitingText, setWaitingText] = useState('');\r\n const [lastLot, setLastLot] = useState(false);\r\n const [currentBid, setCurrentBid] = useState({\r\n oldPrice: 0.0,\r\n newPrice: 0.0,\r\n increment: 0.0,\r\n });\r\n const statusRejected = getUserRejectedStatus();\r\n const SIGNALR = ServiceConnectionSignalr();\r\n const URLMakeBids = ServiceMakeBids();\r\n const URLGetCurrentBid = ServiceGetCurrentBid();\r\n let URLBids = ServiceBidsStreaming();\r\n const latestBid = useRef(null);\r\n const token = localStorage.getItem('token');\r\n const available = getAvailableLot();\r\n latestBid.current = bid;\r\n if (dataContent && dataContent.registeredAuctions.length > 0) {\r\n dataContent.registeredAuctions.map((item) => {\r\n if (item.idAuction === IdAuction) {\r\n pallet = item.pallet;\r\n }\r\n return 0;\r\n });\r\n }\r\n\r\n useLayoutEffect(() => {\r\n const handleResize = () => {\r\n setMobile(window.innerWidth);\r\n };\r\n window.addEventListener('resize', handleResize);\r\n handleResize();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (streamingFinish) {\r\n setWaitingStreaming(true);\r\n setWaitingText('Espera nuestra próxima subasta');\r\n setTimeout(() => {\r\n OpenWaitNextAuction();\r\n }, 800);\r\n }\r\n setWaitingStreaming(streaming);\r\n setWaitingText(streamingText);\r\n }, []);\r\n\r\n useEffect(() => {\r\n startConnection();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (currentBid.newPrice === 0 && IdLot) {\r\n getCurrentBid();\r\n }\r\n if (IdLot && bid.length === 0) {\r\n getBids();\r\n }\r\n if (update) {\r\n getCurrentBid();\r\n setUpdate(false);\r\n setNextLot(false);\r\n }\r\n const lastLotStatus = dataCarousel.length > 0 ? dataCarousel[dataCarousel.length - 1].idStatus : '';\r\n const lastLotStatusSubasta = dataCarousel.length > 0 ? dataCarousel[dataCarousel.length - 1].statusSubasta : '';\r\n if (lastLotStatus !== available && lastLotStatusSubasta === 'Actual') {\r\n setLastLot(true);\r\n setWaitingText('Espera nuestra próxima subasta');\r\n }\r\n setNextLot(false);\r\n }, [props.IdLot]);\r\n\r\n useEffect(() => {\r\n getCurrentBid();\r\n }, [update]);\r\n\r\n useEffect(() => {\r\n if (connection) {\r\n connection\r\n .start()\r\n .then((result) => {\r\n registerToAuctionLot(IdAuction); \r\n connection.on('ReceiveMessage', (message) => {\r\n onReceiveNotification(message);\r\n });\r\n })\r\n .catch(function (err) {\r\n return console.error(err.toString());\r\n });\r\n connection.onclose(() => {\r\n onClose();\r\n });\r\n connection.onreconnecting((error) => {\r\n openToastNotification('toastStartConnect');\r\n });\r\n connection.onreconnected((connectionId) => {\r\n openToastNotification('toastConnectionStablished');\r\n onReload();\r\n });\r\n }\r\n }, [connection]);\r\n\r\n const openToastNotification = (id) => {\r\n var x = document.getElementById(id);\r\n x.className = 'show';\r\n setTimeout(() => {\r\n x.className = x.className.replace('show', '');\r\n }, 6000);\r\n };\r\n\r\n const startConnection = () => {\r\n const connect = ConnectionSignalr(SIGNALR);\r\n if (connect) {\r\n setConnection(connect);\r\n }\r\n };\r\n\r\n const onClose = () => {\r\n openToastNotification('toastTryingConnect');\r\n startConnection();\r\n };\r\n\r\n const getBids = () => {\r\n const params = '?IdAuction=' + IdAuction + '&IdLot=' + IdLot;\r\n URLBids += params;\r\n if (IdAuction && IdLot) {\r\n GET(URLBids).then((data) => {\r\n if (data && Array.isArray(data)) {\r\n setBid(data);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const adviceWin = (idUser, message) => {\r\n if (idUser === IdCustomer) {\r\n if (message) {\r\n const text = `<i class=\"fas fa-trophy win-trophy\"></i> <h3>¡${message}!</h3>`;\r\n OpenOfferSuccess(text, false);\r\n const backdrops = document.getElementsByClassName('modal-backdrop fade').length - 1;\r\n for (let i = 0; i < backdrops; i++) {\r\n document.getElementsByClassName('modal-backdrop fade')[i].remove();\r\n }\r\n }\r\n }\r\n };\r\n\r\n const onReload = () => {\r\n setOffer(false);\r\n updateCarousel();\r\n };\r\n\r\n const onReceiveNotification = ({\r\n actionCode,\r\n timestamp,\r\n bidAmount,\r\n userPallette,\r\n idUser,\r\n message,\r\n onBidCancelled = {},\r\n counterOfferMessage = null,\r\n increment,\r\n newAmount,\r\n idBid,\r\n }) => {\r\n switch (actionCode) {\r\n case 0:\r\n updateNotice(message);\r\n break;\r\n case 1:\r\n getCurrentBid();\r\n break;\r\n case 2:\r\n setNextLot(true);\r\n setBid([]);\r\n updateCarousel();\r\n adviceWin(idUser, message);\r\n break;\r\n case 3:\r\n insertBid(userPallette, timestamp, bidAmount, counterOfferMessage, increment, bidAmount, newAmount, idUser, idBid);\r\n break;\r\n case 4:\r\n if (onBidCancelled && onBidCancelled.bidId) {\r\n let bids = latestBid.current;\r\n const newBids = bids.filter((bid) => bid.idBid !== onBidCancelled.bidId);\r\n setBid(newBids);\r\n }\r\n if (onBidCancelled && onBidCancelled.clientId === IdCustomer) {\r\n const text = `<h3>¡SU OFERTA SE HA CANCELADO!</h3>`;\r\n OpenOfferSuccess(text, false);\r\n }\r\n onReload(actionCode);\r\n break;\r\n case 7:\r\n getCurrentBid();\r\n setWaitingStreaming(false);\r\n break;\r\n case 8:\r\n setWaitingStreaming(true);\r\n setWaitingText('Por favor espere, la transmisión continuará en breve');\r\n break;\r\n case 9:\r\n setWaitingStreaming(true);\r\n setWaitingText('Espera nuestra próxima subasta');\r\n setTimeout(() => {\r\n OpenWaitNextAuction();\r\n }, 800);\r\n break;\r\n case 13:\r\n setLastLot(true);\r\n setWaitingText('Espera nuestra próxima subasta');\r\n break;\r\n\r\n case 14:\r\n //agregar validacion para el id usuario\r\n if (idUser === IdCustomer)\r\n {\r\n OpenDeclineClient();\r\n }\r\n break;\r\n default:\r\n getCurrentBid();\r\n setWaitingStreaming(false);\r\n break;\r\n }\r\n };\r\n\r\n const insertBid = (paleta, hora, oferta, counterOfferMessage, incremento, actual, ofertar, idUser, idPuja) => {\r\n let bids = latestBid.current;\r\n if (paleta) {\r\n if (counterOfferMessage) {\r\n const { timestamp, bidAmount, userPallette, newAmount, increment, idBid } = counterOfferMessage;\r\n const lastBid = {\r\n hora: timestamp,\r\n oferta: bidAmount,\r\n paleta: userPallette,\r\n idBid,\r\n };\r\n bids = [lastBid, ...bids];\r\n setCurrentBid({\r\n idUser: idUser,\r\n oldPrice: bidAmount,\r\n newPrice: newAmount,\r\n increment: increment,\r\n });\r\n }\r\n const newBid = {\r\n hora,\r\n oferta,\r\n paleta,\r\n idBid: idPuja,\r\n };\r\n bids = [newBid, ...bids];\r\n setBid(bids);\r\n setAdviceOffer('');\r\n if (idUser === IdCustomer) {\r\n setAdviceOffer('Usted está ganando');\r\n }\r\n setCurrentBid({\r\n idUser: idUser,\r\n oldPrice: actual,\r\n newPrice: ofertar,\r\n increment: incremento,\r\n });\r\n } else {\r\n updateCarousel();\r\n }\r\n };\r\n\r\n const registerToAuctionLot = async (IdAuction) => {\r\n if (connection && connection.connectionStarted) {\r\n connection.send('RegisterToAuctionLot', IdAuction);\r\n }\r\n };\r\n\r\n const getCurrentBid = async () => {\r\n if (IdLot) {\r\n const json = {\r\n IdAuction,\r\n IdLot: IdLot,\r\n };\r\n\r\n let jsonContent = JSON.stringify(json);\r\n try {\r\n await fetch(URLGetCurrentBid, {\r\n method: 'POST',\r\n body: jsonContent,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n Authorization: 'Bearer ' + token,\r\n },\r\n })\r\n .then((response) => response.json())\r\n .then((data) => {\r\n if (data.idUser === IdCustomer) {\r\n setAdviceOffer('Usted está ganando');\r\n } else {\r\n setAdviceOffer('');\r\n }\r\n setCurrentBid(data);\r\n });\r\n } catch (e) {\r\n console.log('Failed to get current bid.', e);\r\n }\r\n }\r\n };\r\n\r\n const confirmOffert = async (user, amount, auction) => {\r\n setConfirm(true);\r\n const objMessage = {\r\n IdAuction: auction,\r\n IdCustomer: user,\r\n Amount: amount,\r\n IdLot,\r\n };\r\n\r\n let jsonMessage = JSON.stringify(objMessage);\r\n try {\r\n await fetch(URLMakeBids, {\r\n method: 'POST',\r\n body: jsonMessage,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n Authorization: 'Bearer ' + token,\r\n },\r\n })\r\n .then((response) => response.json())\r\n .then((data) => {\r\n if (!data.bidSuccess) {\r\n setAdviceOffer('HAY UNA PUJA MÃS ALTA QUE LA DE USTED');\r\n }\r\n setOffer(false);\r\n setConfirm(false);\r\n });\r\n } catch (e) {\r\n console.log('Sending message failed.', e);\r\n }\r\n };\r\n\r\n const sendBid = (e) => {\r\n if (statusCustomer === statusRejected) {\r\n OpenMessage('warning', 'Su cuenta se encuentra bloqueada, favor de contactarnos.');\r\n } else {\r\n e.preventDefault();\r\n const amount = currentBid.newPrice;\r\n const isUserProvided = IdCustomer;\r\n const isLoteProvided = IdLot;\r\n const isAmountProvided = amount;\r\n\r\n if (isUserProvided && isAmountProvided && isLoteProvided && connection && connection.connectionStarted) {\r\n confirmOffert(IdCustomer, amount, IdAuction);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <div className=\"container__video\">\r\n {waitingStreaming || lastLot ? (\r\n <div>\r\n <h1 className=\"text-center fw-5 pt-5 text-uppercase fw-bold\">{waitingText}</h1>\r\n </div>\r\n ) : (\r\n <div className=\"row justify-content-center\">\r\n {nextLot || annoucement ? (\r\n <div className=\"col\">\r\n <h1 className=\"text-center fw-5 pt-5 text-uppercase fw-bold\">Preparando siguiente lote...</h1>\r\n </div>\r\n ) : (\r\n <div>\r\n <div className=\"grid-video\">\r\n <div className=\"col-video1\">\r\n <div className=\"grid-video\">\r\n <div className=\"col-offer1\">\r\n <h3 className=\"fw-bold\">Oferta actual:</h3>\r\n </div>\r\n <div className=\"col-offer2\">\r\n <label className=\"container__video--offer fw-bold\">{formatCurrency(currentBid.oldPrice)}</label>\r\n </div>\r\n <div className=\"col-offer3\">\r\n <h5>Incremento de oferta:</h5>\r\n </div>\r\n <div className=\"col-offer4\">\r\n <label className=\"container__video--rise\">{formatCurrency(currentBid.increment)}</label>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-video2\">\r\n <div className=\"row\">\r\n <div className=\"col-12 text-center\">\r\n {confirm ? (\r\n <button className=\"btn btn-outline-danger btn-lg btn-lot\" disabled>\r\n <span className=\"spinner-border spinner-border-smn fs-2\" role=\"status\" aria-hidden=\"true\"></span>\r\n <span> Ofertando...</span>\r\n </button>\r\n ) : (\r\n <button\r\n id=\"btnOffer\"\r\n className=\"btn btn-outline-danger btn-lg btn-confirm\"\r\n disabled={currentBid.idUser === IdCustomer ? true : false}\r\n onClick={(e) =>\r\n offer ? sendBid(e) : [setOffer(true), setAdviceOffer('Al ofertar usted acepta pagar el precio indicado')]\r\n }\r\n >\r\n {offer ? (\r\n <span>\r\n Confirmar <span>oferta:</span>\r\n </span>\r\n ) : (\r\n 'Ofertar: '\r\n )}\r\n <span> {formatCurrency(currentBid.newPrice)}</span>\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 text-center\">\r\n <label className=\"container__video--warning\">{adviceOffer}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n <div className=\"row justify-content-center\">\r\n <div className=\"col-12 text-center\">\r\n <div className=\"videoStreaming\">\r\n {waitingStreaming && !nextLot && mobile > 992 ? (\r\n <i className=\"fab fa-youtube icon-youtube\"></i>\r\n ) : (\r\n <div>\r\n <iframe\r\n id=\"videoStreaming\"\r\n name=\"videoStreaming\"\r\n title=\"videoStreaming\"\r\n width=\"100%\"\r\n height=\"315\"\r\n src={STREAM_PLAYBACK_URL}\r\n frameBorder=\"0\"\r\n allowFullScreen\r\n allow=\"autoplay\"\r\n />\r\n <h4>\r\n Para iniciar la transmisión de nuestra subasta,\r\n <br /> favor de darle play <i className=\"far fa-hand-point-right\"></i> <i className=\"far fa-play-circle\"></i>{' '}\r\n <b>...¡Bienvenido!</b>\r\n </h4>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row container\">\r\n <div className=\"col-1 text-center border__Palet--title\">\r\n <i className=\"fas fa-circle\"></i>\r\n </div>\r\n <div className=\"col-11 border__Palet--title\">\r\n <span>Paleta:</span>\r\n <span className=\"numberPalet\">{pallet}</span>\r\n </div>\r\n </div>\r\n <div className=\"row container\">\r\n {bid.length > 0 && (\r\n <div className=\"col-12 bids-scroll\">\r\n <table className=\"table table-striped\">\r\n <tbody>\r\n {bid.map((item, i) => {\r\n return (\r\n <tr key={i}>\r\n <td>\r\n Paleta <strong className=\"fw-bold\">{item.paleta}</strong> ofertó\r\n </td>\r\n <td>\r\n <strong className=\"fw-bold\">{formatCurrency(item.oferta)}</strong>\r\n </td>\r\n <td>{convertToTime(item.hora)}</td>\r\n </tr>\r\n );\r\n })}\r\n </tbody>\r\n </table>\r\n </div>\r\n )}\r\n </div>\r\n <div className=\"tryingConnect\" id=\"toastTryingConnect\">\r\n <div className=\"progress bar-width\">\r\n <div\r\n className=\"progress-bar progress-bar-striped bg-danger toast-error\"\r\n role=\"progressbar\"\r\n aria-valuenow=\"100\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n ></div>\r\n </div>\r\n <h2>La conexión se perdió</h2>\r\n <br />\r\n <h2>Intentando Reconectar...</h2>\r\n </div>\r\n <div className=\"connectionStablished toast-error\" id=\"toastConnectionStablished\">\r\n <div className=\"progress bar-width\">\r\n <div\r\n className=\"progress-bar progress-bar-striped bg-success toast-error\"\r\n role=\"progressbar\"\r\n aria-valuenow=\"100\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n ></div>\r\n </div>\r\n <h2>¡Conexión restablecida!.</h2>\r\n <br />\r\n <h2>El sistema se actualizará automáticamente.</h2>\r\n </div>\r\n <div className=\"startConnect tryingConnect toast-error\" id=\"toastStartConnect\">\r\n <div className=\"progress bar-width\">\r\n <div\r\n className=\"progress-bar progress-bar-striped bg-danger toast-error\"\r\n role=\"progressbar\"\r\n aria-valuenow=\"100\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n ></div>\r\n </div>\r\n <h2>La conexión se perdió.</h2>\r\n <br />\r\n <h2>Inicia proceso de reconexión.</h2>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\n//Servicios\r\nimport { ServiceAwardsStreaming } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { getImgDefault } from '../../helpers/getConstants';\r\nimport { PaginationCatalog } from '../Menu/PaginationCatalog';\r\n\r\nexport const Information = (props) => {\r\n const [dataAwards, setDataAwards] = useState([]);\r\n const [pages, setPages] = useState(0);\r\n const [maxReg, setMaxReg] = useState(10);\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const [perPageOptions] = useState([\r\n { value: 1 },\r\n { value: 10 },\r\n { value: 20 },\r\n { value: 30 },\r\n { value: 50 },\r\n ]);\r\n const {\r\n CurrentLot,\r\n idCurrentLot,\r\n watchLot,\r\n displayActualLot,\r\n displayAwards,\r\n carouselMovil,\r\n announcement,\r\n } = props;\r\n const imgLot =\r\n CurrentLot.imagesList && CurrentLot.imagesList.length > 0\r\n ? CurrentLot.imagesList[0]\r\n : getImgDefault();\r\n const viewfavorite = CurrentLot.favorite === true ? '' : 'hide';\r\n const URLAwards = ServiceAwardsStreaming();\r\n\r\n useEffect(() => {\r\n getAwards(1, 10);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.update) {\r\n getAwards(1, 10);\r\n }\r\n }, [props.update]);\r\n const getAwards = (Pagina, TamanioPagina) => {\r\n let url = new URL(URLAwards);\r\n let params = {\r\n IdAuction: props.IdAuction,\r\n IdCustomer: props.IdCustomer,\r\n Pagina,\r\n TamanioPagina,\r\n };\r\n\r\n Object.keys(params).forEach((key) => {\r\n if (!params[key]) {\r\n delete params[key];\r\n }\r\n });\r\n Object.keys(params).forEach((key) => {\r\n url.searchParams.append(key, params[key]);\r\n });\r\n GET(url).then((data) => {\r\n if (data) {\r\n const numberPages = Math.ceil(data[0].totalRecords / TamanioPagina);\r\n setDataAwards(data);\r\n setPages(numberPages);\r\n props.setUpdate(false);\r\n } else {\r\n setDataAwards([]);\r\n setPages(0);\r\n props.setUpdate(false);\r\n }\r\n });\r\n };\r\n const nextPage = (pageNumber) => {\r\n setCurrentPage(pageNumber);\r\n getAwards(pageNumber, maxReg);\r\n };\r\n const onItemsPerPage = (value) => {\r\n getAwards(1, value);\r\n };\r\n const tabActive = (event) => {\r\n const elements = document.querySelectorAll('#tabs_information > li');\r\n const id = 'li_' + event.id;\r\n for (let element of elements) {\r\n if (id === element.id) {\r\n element.classList.add('active');\r\n } else {\r\n element.classList.remove('active');\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n className={`container__information ${\r\n !displayActualLot && !displayAwards ? 'no-border' : ''\r\n }`}\r\n >\r\n {!carouselMovil && (\r\n <div className='row'>\r\n <div className='col-12'>\r\n <ul\r\n id='tabs_information'\r\n className='nav nav-tabs nav-fill'\r\n role='tablist'\r\n >\r\n <li\r\n id='li_CLot'\r\n className='nav-item active'\r\n role='presentation'\r\n onClick={(e) => tabActive(e.target)}\r\n >\r\n <a\r\n id='CLot'\r\n className='nav-link active fw-bold'\r\n aria-current='page'\r\n href='#CurrentLot'\r\n data-mdb-toggle='tab'\r\n role='tab'\r\n aria-controls='CurrentLot'\r\n aria-selected='true'\r\n >\r\n {CurrentLot.anuncio ? 'Anuncio' : 'Lote Actual'}\r\n </a>\r\n </li>\r\n <li\r\n id='li_CAwards'\r\n className='nav-item'\r\n role='presentation'\r\n onClick={(e) => tabActive(e.target)}\r\n >\r\n <a\r\n id='CAwards'\r\n className='nav-link fw-bold'\r\n href='#CurrentAwards'\r\n data-mdb-toggle='tab'\r\n role='tab'\r\n aria-controls='CurrentAwards'\r\n aria-selected='false'\r\n >\r\n Adjudicaciones\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* CONTENIDO */}\r\n\r\n <div className='tab-content'>\r\n {CurrentLot && (\r\n <div\r\n className={`tab-pane fade ${displayActualLot ? 'show active' : ''}`}\r\n id='CurrentLot'\r\n role='tabpanel'\r\n aria-labelledby='CLot'\r\n >\r\n <div className='container-fluid container__CurrentLot'>\r\n {!CurrentLot.anuncio && (\r\n <div className='row'>\r\n <div className='col-1'>\r\n <i\r\n className={\r\n 'fas fa-star bookmark-CurrentLot ' + viewfavorite\r\n }\r\n ></i>\r\n </div>\r\n <div className='col-11'>\r\n <label>\r\n Lote {' '}\r\n <span className='fw-bold'>{CurrentLot.order}</span>\r\n </label>\r\n </div>\r\n </div>\r\n )}\r\n <div className='row'>\r\n <div className='col-12'>\r\n <label className='fw-bold'>{CurrentLot.name}</label>\r\n </div>\r\n </div>\r\n <div className='row'>\r\n <div className='col-12'>\r\n <div className='card'>\r\n <img\r\n src={imgLot}\r\n className='card-img-top img-fluid w-100'\r\n alt={CurrentLot.name}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div className='row'>\r\n <div className='col-12'>\r\n <label className='fw-bold'>Descripción:</label>\r\n </div>\r\n </div>\r\n <div className='row'>\r\n <div className='col-12'>\r\n <p>{CurrentLot.description}</p>\r\n </div>\r\n </div>\r\n {CurrentLot.idLot !== idCurrentLot && (\r\n <div className='row mt-5'>\r\n <div className='col-auto'>\r\n <button\r\n className='btn btn-outline-danger fs-4'\r\n onClick={(e) => watchLot(idCurrentLot)}\r\n >\r\n <i className='fas fa-eye'></i>\r\n <span>\r\n {' '}\r\n Ver {announcement ? 'anuncio' : 'lote actual'}\r\n </span>\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n <div\r\n className={`tab-pane fade ${displayAwards ? 'show active' : ''}`}\r\n id='CurrentAwards'\r\n role='tabpanel'\r\n aria-labelledby='CAwards'\r\n >\r\n <div className='container-fluid container__awards'>\r\n <div className='row'>\r\n <div className='col-md-12 '>\r\n <div className='row'>\r\n <div className='col-4 text-end'>\r\n <h5 className='show-perpag '>Mostrar</h5>\r\n </div>\r\n <div className='col-3 text-center'>\r\n <h5 className='dropdown shadow-0 drop-perPage'>\r\n <a\r\n href='#'\r\n className='btn btn-link dropdown-toggle items-per-page'\r\n role='button'\r\n data-mdb-toggle='dropdown'\r\n aria-expanded='false'\r\n >\r\n {maxReg}\r\n </a>\r\n <ul\r\n className='dropdown-menu'\r\n aria-labelledby='dropdownMenuLink'\r\n >\r\n {perPageOptions.map((item) => {\r\n return (\r\n <li key={item.value}>\r\n <a\r\n href='#'\r\n className='dropdown-item drop-items'\r\n onClick={(e) => {\r\n setMaxReg(item.value);\r\n setCurrentPage(1);\r\n onItemsPerPage(item.value);\r\n }}\r\n >\r\n {item.value}\r\n </a>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </h5>{' '}\r\n </div>\r\n <div className='col-5'>\r\n <h5 className='show-perpag'>resultados por página</h5>\r\n </div>\r\n </div>\r\n </div>\r\n <div className='col-12 tableScroll'>\r\n <table className='table table-striped'>\r\n <thead>\r\n <tr>\r\n <th>No. Lote</th>\r\n <th>Descripción</th>\r\n <th>Estatus</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {dataAwards.map((item, i) => {\r\n let hidden = item.favorite === false ? 'hidden' : '';\r\n let colorStatus;\r\n switch (item.statusSubasta.toUpperCase()) {\r\n case 'GANADO':\r\n colorStatus = 'statusAwardsWin';\r\n break;\r\n case 'PERDIDO':\r\n colorStatus = 'statusAwardsLost';\r\n break;\r\n default:\r\n colorStatus = '';\r\n break;\r\n }\r\n return (\r\n <tr key={i}>\r\n <td>\r\n <i\r\n className={\r\n 'fas fa-star bookmark-CurrentAwards ' + hidden\r\n }\r\n ></i>{' '}\r\n {item.order}\r\n </td>\r\n <td>{item.name}</td>\r\n <td className={colorStatus}>{item.statusSubasta}</td>\r\n </tr>\r\n );\r\n })}\r\n </tbody>\r\n </table>\r\n </div>\r\n <div className='row justify-content-center pagination-section mt-5'>\r\n <div className='col-auto'>\r\n <PaginationCatalog\r\n pages={pages}\r\n nextPage={nextPage}\r\n currentPage={currentPage}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\r\n\r\nexport const MenuStreaming = ({\r\n displayVideo,\r\n displayActualLot,\r\n displayAwards,\r\n setDisplayActualLot,\r\n setDisplayAwards,\r\n position,\r\n}) => {\r\n return (\r\n <div\r\n className={`row mb-5 menu-stream-movil ${\r\n position === 'bottom' ? 'menu-bottom' : ''\r\n }`}\r\n >\r\n <div className='col-4 text-center'>\r\n <label\r\n className={`text-uppercase text_icons ${\r\n displayVideo ? 'displayed' : ''\r\n }`}\r\n >\r\n <img\r\n src='/resources/streaming2.png'\r\n alt='streaming'\r\n className='icons_streaming icons_streaming--border'\r\n />{' '}\r\n streaming\r\n </label>\r\n </div>\r\n <div\r\n className='col-4 text-center'\r\n onClick={(e) => [setDisplayActualLot(true), setDisplayAwards(false)]}\r\n >\r\n <label\r\n className={`text-uppercase text_icons ${\r\n displayActualLot ? 'displayed' : ''\r\n }`}\r\n >\r\n <img\r\n src={`/resources/actualLot${displayActualLot ? '2' : ''}.png`}\r\n alt='Actual lot'\r\n className={`icons_streaming ${\r\n displayActualLot ? 'icons_streaming--border' : ''\r\n }`}\r\n />{' '}\r\n lote actual\r\n </label>\r\n </div>\r\n <div\r\n className='col-4 text-center'\r\n onClick={(e) => [setDisplayActualLot(false), setDisplayAwards(true)]}\r\n >\r\n <label\r\n className={`text-uppercase text_icons ${\r\n displayAwards ? 'displayed' : ''\r\n }`}\r\n >\r\n <img\r\n src={`/resources/awards${displayAwards ? '2' : ''}.png`}\r\n alt='Awards'\r\n className={`icons_streaming ${\r\n displayAwards ? 'icons_streaming--border' : ''\r\n }`}\r\n />{' '}\r\n adjudicaciones\r\n </label>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useLocation, useHistory } from 'react-router-dom';\r\n\r\n//Servicios\r\nimport { ServiceCarouselStreaming, ServiceAuctionById, ServiceAuctionCustomerStatus } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\n\r\n//Componentes\r\nimport { Carousel } from './Carousel';\r\nimport { Video } from './Video';\r\nimport { Information } from './Information';\r\n\r\n//Utiles\r\nimport { convertToDate, OpenCloseStreaming } from '../Utilities/General';\r\n\r\n//CSS\r\nimport '../../css/streaming/streaming.css';\r\nimport { getStreamingEnded, getStreamingInPause, getStreamingInProcess, getStreamingToStart } from '../../helpers/getConstants';\r\nimport { MenuStreaming } from './MenuStreaming';\r\n\r\nexport const Streaming = () => {\r\n const history = useHistory();\r\n const [dataCarousel, setDataCarousel] = useState([]);\r\n const [allCarousel, setAllCarousel] = useState([]);\r\n const [dataAuction, setDataAuction] = useState({});\r\n const [dataCurrentLot, setDataCurrentLot] = useState('');\r\n const [lotToShow, setLotToShow] = useState('');\r\n const [notice, setNotice] = useState('');\r\n const [carouselMovil, setCarouselMovil] = useState(false);\r\n const [waitingStreaming, setWaitingStreaming] = useState(false);\r\n const [waitingText, setWaitingText] = useState('');\r\n const { search } = useLocation();\r\n const IdAuction = new URLSearchParams(search).get('id');\r\n const IdCustomer = localStorage.getItem('id');\r\n const URLAuction = ServiceAuctionById(IdAuction);\r\n let URL = ServiceCarouselStreaming();\r\n const [update, setUpdate] = useState(false);\r\n const [updateOffer, setUpdateOffer] = useState(false);\r\n const [displayVideo, setDisplayVideo] = useState(true);\r\n const [displayActualLot, setDisplayActualLot] = useState(true);\r\n const [displayAwards, setDisplayAwards] = useState(true);\r\n const [statusCustomer, setStatusCustomer] = useState('');\r\n const streamingToStart = getStreamingToStart();\r\n const streamingInPause = getStreamingInPause();\r\n const streamingInProcess = getStreamingInProcess();\r\n const streamingEnded = getStreamingEnded();\r\n const [streamingFinish, setStreamingFinish] = useState(false);\r\n const params = '?IdAuction=' + IdAuction + '&IdCustomer=' + IdCustomer + '&Before=2&After=5';\r\n URL += params;\r\n\r\n if (!IdCustomer) {\r\n history.push('/?home=true');\r\n }\r\n\r\n useEffect(() => {\r\n const URLAuctionCustomerStatus = ServiceAuctionCustomerStatus(IdCustomer);\r\n if (IdCustomer) {\r\n GET(URLAuctionCustomerStatus).then((response) => {\r\n const users = response.find((auction) => auction.idAuction === IdAuction);\r\n if (users) {\r\n setStatusCustomer(users.idAuctionCustomerStatus);\r\n }\r\n if (response) {\r\n GET(URL).then((data) => {\r\n if (data) {\r\n const lots = data.filter((lot) => !lot.anuncio);\r\n setDataCarousel(lots);\r\n setAllCarousel(data);\r\n getCurrentLot(data);\r\n }\r\n });\r\n GET(URLAuction).then((data) => {\r\n if (data) {\r\n checkStatusStreaming(data.statusStreaming);\r\n setDataAuction(data);\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n GET(URL).then((data) => {\r\n if (data) {\r\n const lots = data.filter((lot) => !lot.anuncio);\r\n setDataCarousel(lots);\r\n setAllCarousel(data);\r\n getCurrentLot(data);\r\n }\r\n });\r\n GET(URLAuction).then((data) => {\r\n if (data) {\r\n checkStatusStreaming(data.statusStreaming);\r\n setDataAuction(data);\r\n }\r\n });\r\n }\r\n }, [URL, URLAuction]);\r\n useEffect(() => {\r\n const intFrameWidth = window.innerWidth;\r\n if (intFrameWidth < 573) {\r\n setCarouselMovil(true);\r\n setDisplayVideo(true);\r\n setDisplayActualLot(true);\r\n setDisplayAwards(false);\r\n } else {\r\n setCarouselMovil(false);\r\n setDisplayVideo(true);\r\n setDisplayActualLot(true);\r\n setDisplayAwards(false);\r\n }\r\n }, []);\r\n const checkStatusStreaming = (status) => {\r\n switch (status) {\r\n case streamingToStart:\r\n setWaitingStreaming(true);\r\n setWaitingText('Por favor espere, la transmisión iniciará en breve');\r\n break;\r\n case streamingInPause:\r\n setWaitingStreaming(true);\r\n setWaitingText('Por favor espere, la transmisión continuará en breve');\r\n break;\r\n case streamingInProcess:\r\n setWaitingStreaming(false);\r\n break;\r\n case streamingEnded:\r\n setWaitingStreaming(true);\r\n setStreamingFinish(true);\r\n setWaitingText('Espera nuestra próxima subasta');\r\n break;\r\n default:\r\n setWaitingStreaming(false);\r\n break;\r\n }\r\n };\r\n const updateCarousel = () => {\r\n GET(URL).then((data) => {\r\n if (data) {\r\n const lots = data.filter((lot) => !lot.anuncio);\r\n setDataCarousel(lots);\r\n setAllCarousel(data);\r\n setDataCurrentLot('');\r\n getCurrentLot(data, true);\r\n setUpdateOffer(true);\r\n }\r\n });\r\n };\r\n useEffect(() => {\r\n if (updateOffer) {\r\n setUpdateOffer(true);\r\n }\r\n }, [dataCurrentLot]);\r\n\r\n const getCurrentLot = (data, update) => {\r\n let haveCurrentLot = false;\r\n if (data.length > 0) {\r\n const actual = data.find((item) => item.statusSubasta.toUpperCase() === 'ACTUAL');\r\n if (actual) {\r\n setLotToShow(actual);\r\n setNotice(actual.notice);\r\n setDataCurrentLot(actual);\r\n haveCurrentLot = true;\r\n if (update) {\r\n setUpdate(true);\r\n }\r\n }\r\n if (!haveCurrentLot && dataCarousel.length > 0) {\r\n dataCurrentLot = dataCarousel[0];\r\n }\r\n }\r\n };\r\n\r\n const updateNotice = (message) => {\r\n if (message) {\r\n setNotice(message);\r\n }\r\n };\r\n\r\n const openCatalog = () => {\r\n window.open('/catalogo?id=' + IdAuction, '_blank');\r\n };\r\n\r\n const watchLot = (idClicked) => {\r\n const lot = allCarousel.find((lot) => lot.idLot === idClicked);\r\n setLotToShow(lot);\r\n };\r\n const exitStreaming = () => {\r\n OpenCloseStreaming();\r\n };\r\n\r\n const resizing = () => {\r\n const intFrameWidth = window.innerWidth;\r\n\r\n if (intFrameWidth < 576 && !carouselMovil) {\r\n setCarouselMovil(true);\r\n setDisplayVideo(true);\r\n setDisplayActualLot(true);\r\n setDisplayAwards(false);\r\n } else if (intFrameWidth >= 576) {\r\n setCarouselMovil(false);\r\n setDisplayVideo(true);\r\n setDisplayActualLot(true);\r\n setDisplayAwards(false);\r\n }\r\n };\r\n\r\n window.onresize = resizing;\r\n\r\n return (\r\n <>\r\n <div className=\"container container__Streaming\">\r\n <MenuStreaming\r\n displayVideo={displayVideo}\r\n displayActualLot={displayActualLot}\r\n displayAwards={displayAwards}\r\n setDisplayActualLot={setDisplayActualLot}\r\n setDisplayAwards={setDisplayAwards}\r\n position={'top'}\r\n />\r\n <div className=\"row\">\r\n <div className=\"col-9 container__Streaming--title fw-bold\">\r\n Subasta de <span>{dataAuction.name}</span> - {dataAuction.numberOfLots + ' Lotes'}\r\n </div>\r\n <div className=\"col-3 exit-lotes\">\r\n <button className=\"btn btn-outline-danger btn-lg mb-3 btn-lot\" onClick={exitStreaming}>\r\n <img src=\"/resources/exit.png\" alt=\"exit\" /> Salir\r\n </button>\r\n <button className=\"btn btn-outline-secondary btn-lg btn-lot\" onClick={openCatalog}>\r\n <i className=\"fas fa-eye\"></i> <span> Todos los</span> lotes\r\n </button>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n {dataAuction.eventDate && (\r\n <div className=\"col-10 container__Streaming--subtitle fw-bold\">{convertToDate(dataAuction.eventDate)}</div>\r\n )}\r\n </div>\r\n {notice && (\r\n <div className=\"row advice-streaming my-3\">\r\n <div className=\"col-md-1 col-sm-2 text-center m-auto my-3\">\r\n <img src=\"/resources/speaker.png\" alt=\"speaker\" />\r\n </div>\r\n <div className=\"col-md-11 col-sm-10 text-justify p-3\">\r\n <span>{notice}</span>\r\n </div>\r\n </div>\r\n )}\r\n\r\n <Carousel dataCarousel={dataCarousel} announcement={dataCurrentLot.anuncio} watchLot={watchLot} carouselMovil={carouselMovil} />\r\n <div className=\"row\">\r\n <div className=\"col-md-6 col-sm-12\">\r\n {Object.keys(dataAuction).length > 0 && displayVideo && (\r\n <Video\r\n IdLot={dataCurrentLot.idLot}\r\n IdAuction={IdAuction}\r\n IdCustomer={IdCustomer}\r\n updateCarousel={updateCarousel}\r\n update={updateOffer}\r\n setUpdate={setUpdateOffer}\r\n updateNotice={updateNotice}\r\n auctionDate={dataAuction.eventDate}\r\n streaming={waitingStreaming}\r\n streamingText={waitingText}\r\n annoucement={dataCurrentLot.anuncio}\r\n statusCustomer={statusCustomer}\r\n dataCarousel={dataCarousel}\r\n streamingFinish={streamingFinish}\r\n />\r\n )}\r\n </div>\r\n\r\n <div className=\"col-md-6 col-sm-12 margin_information\">\r\n <Information\r\n carouselMovil={carouselMovil}\r\n displayActualLot={displayActualLot}\r\n displayAwards={displayAwards}\r\n idCurrentLot={dataCurrentLot.idLot}\r\n announcement={dataCurrentLot.anuncio}\r\n IdAuction={IdAuction}\r\n IdCustomer={IdCustomer}\r\n CurrentLot={lotToShow}\r\n update={update}\r\n setUpdate={setUpdate}\r\n watchLot={watchLot}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <MenuStreaming\r\n displayVideo={displayVideo}\r\n displayActualLot={displayActualLot}\r\n displayAwards={displayAwards}\r\n setDisplayActualLot={setDisplayActualLot}\r\n setDisplayAwards={setDisplayAwards}\r\n position={'bottom'}\r\n />\r\n </>\r\n );\r\n};\r\n","import React, { useContext, useEffect, useMemo, useState } from 'react'\r\nimport { POST, PUT } from '../../../helpers/APIServices'\r\nimport { ServicePaymentTokenMercadoPago } from '../../../helpers/getURL'\r\nimport {\r\n OpenMessage,\r\n getIP,\r\n} from '../../Utilities/General';\r\n\r\nimport { getGuidEmpty } from '../../../helpers/getConstants';\r\n\r\nimport { CardPayment } from '@mercadopago/sdk-react/bricks';\r\nimport { TokenStatusContext } from '../../../context/TokenStatusContext'\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nexport const CardFormToken = (props) => {\r\n const idAuction = props.idAuction ? props.idAuction : getGuidEmpty();\r\n const [IPAddress, setIPAddress] = useState('');\r\n const [browser, setBrowser] = useState('');\r\n\r\n const history = useHistory();\r\n\r\n const {\r\n tokenStatus,\r\n mercadoPagoInitialized,\r\n paymentFormError,\r\n renderMpPaymentForm,\r\n tokenAmount,\r\n } = useContext(TokenStatusContext)\r\n\r\n const { id = '' } = localStorage;\r\n\r\n useEffect(() => {\r\n getIP().then((resp) => {\r\n setIPAddress(resp);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n let sBrowser = 'Unknown',\r\n sUsrAg = navigator.userAgent;\r\n if (sUsrAg.indexOf('Chrome') > -1) {\r\n sBrowser = 'Google Chrome';\r\n } else if (sUsrAg.indexOf('Safari') > -1) {\r\n sBrowser = 'Apple Safari';\r\n } else if (sUsrAg.indexOf('Opera') > -1) {\r\n sBrowser = 'Opera';\r\n } else if (sUsrAg.indexOf('Firefox') > -1) {\r\n sBrowser = 'Mozilla Firefox';\r\n } else if (sUsrAg.indexOf('MSIE') > -1) {\r\n sBrowser = 'Microsoft Internet Explorer';\r\n }\r\n setBrowser(sBrowser);\r\n }, []);\r\n\r\n const responsePayment = (data, success, message) => {\r\n const msg =\r\n 'Ocurrio un error al registrar su tarjeta, por favor intente más tarde o con una tarjeta diferente.';\r\n if (success) {\r\n if (data.pendingChallenge) {\r\n history.push(data.redirectUrl, {\r\n pendingChallenge: data.pendingChallenge,\r\n creq: data.creq,\r\n externalResourceUrl: data.externalResourceUrl\r\n })\r\n }\r\n else {\r\n window.open(data.redirectUrl, '_self');\r\n }\r\n props.clearState();\r\n } else if (!success && message && message.includes('400')) {\r\n\r\n const regex = /Bad Request\\.\\s*(.*?)\\s*JSON:/;\r\n const match = message.match(regex);\r\n if (match && match[1]) {\r\n const extractedText = match[1];\r\n OpenMessage('warning', msg, false, extractedText);\r\n } else {\r\n OpenMessage('warning', msg, true);\r\n }\r\n } else {\r\n OpenMessage('warning', message ? message : msg);\r\n }\r\n props.setDisabledActions(false);\r\n };\r\n \r\n const createPayment = () => {\r\n if (props.disabledActions) {\r\n return;\r\n }\r\n props.setDisabledActions(true);\r\n window\r\n .cardPaymentBrickController\r\n .getFormData()\r\n .then((cardFormData) => {\r\n if (cardFormData === null) {\r\n props.setDisabledActions(false);\r\n OpenMessage('warning', 'Favor de verificar sus datos.');\r\n return;\r\n }\r\n const json = {\r\n idCustomer: id,\r\n idAuction: idAuction,\r\n customer_username: 'na',\r\n first_name: 'na',\r\n last_name: 'na',\r\n email: 'na',\r\n phone: 'na',\r\n country: 'na',\r\n state: 'na',\r\n city: 'na',\r\n address: 'na',\r\n zip_code: 'na',\r\n name_on_card: 'na',\r\n card_number: 'na',\r\n expiration_year: 'na',\r\n expiration_month: 'na',\r\n cvv: 'na',\r\n browserUserAgent: browser,\r\n ipAddress: IPAddress,\r\n cardFormData: cardFormData,\r\n };\r\n const URLTokenPayment = ServicePaymentTokenMercadoPago();\r\n if (tokenStatus === 2) {\r\n PUT(URLTokenPayment, json).then(({ data, success, message }) => {\r\n responsePayment(data, success, message);\r\n });\r\n } else {\r\n POST(URLTokenPayment, json).then(({ data, success, message }) => {\r\n responsePayment(data, success, message);\r\n });\r\n }\r\n })\r\n .catch((error) => {console.error('Error getting card form data', error); props.setDisabledActions(false);});\r\n }\r\n\r\nconst renderPaymentForm = useMemo(function renderPaymentForm () {\r\n if (mercadoPagoInitialized && !paymentFormError && renderMpPaymentForm && tokenAmount > 0) {\r\n return (\r\n <CardPayment\r\n initialization={{ amount: tokenAmount }}\r\n customization={{ paymentMethods: { maxInstallments: 1 }, visual: { hidePaymentButton: true } }}\r\n onSubmit={event => {}}\r\n onReady={() => {console.log('MercadoPago Ready'); }}\r\n onError={(erro) => {console.log('BrickError', erro)}}>\r\n </CardPayment>\r\n )\r\n }\r\n return null;\r\n\r\n}, [mercadoPagoInitialized, paymentFormError, renderMpPaymentForm, tokenAmount])\r\n\r\n return (\r\n <div className='container__cardForm'>\r\n <h5 className='validation-section'>{props.message}</h5>\r\n <h5 className='validation-section'>{props.warrantyMessage}</h5>\r\n <div>\r\n {renderPaymentForm}\r\n <div className='modal-footer'>\r\n <button\r\n id=\"btnSaveFormToken\"\r\n type=\"button\"\r\n className=\"btn btn-outline-secondary button-validation\"\r\n onClick={(e) => createPayment()}\r\n disabled={props.disabledActions}>\r\n Validar\r\n </button>\r\n\r\n <button\r\n id=\"btnCancelFormToken\"\r\n type=\"button\"\r\n className=\"btn btn-outline-danger button-validation\"\r\n data-mdb-dismiss=\"modalRegisterToOffer\"\r\n onClick={(e) => {\r\n props.clearState()\r\n }}\r\n disabled={props.disabledActions}>\r\n Cancelar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { DataContext } from '../../context/DataContext';\r\nimport {\r\n CloseModal,\r\n formatCurrency\r\n} from '../Utilities/General'\r\nimport {\r\n getWarrantyID,\r\n getPaymentBillPocketID,\r\n} from '../../helpers/getConstants';\r\nimport { CardFormToken } from './MePago/CardFormToken';\r\nimport '../../css/Register/RegisterToOffer.css';\r\nimport {\r\n ServiceGenericParameters,\r\n} from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\nimport { TokenStatusContext } from '../../context/TokenStatusContext'\r\n\r\nexport const RegisterToOffer = () => {\r\n const {\r\n validate: {\r\n registeredAuctions,\r\n idAuction,\r\n nameAuction,\r\n },\r\n setValidate,\r\n } = useContext(DataContext);\r\n\r\n const {\r\n mercadoPagoInitialized,\r\n paymentFormError,\r\n renderMpPaymentForm,\r\n setRenderMpPaymentForm,\r\n setTokenAmount,\r\n } = useContext(TokenStatusContext)\r\n\r\n const [message, setMessage] = useState(\r\n 'Para participar en la subasta, se requiere validar la cuenta con sus datos bancarios, favor de ingresar los datos de su tarjeta.'\r\n );\r\n const [warrantyMessage, setWarrantyMessage] = useState('');\r\n\r\n const [disabledActions, setDisabledActions] = useState(false);\r\n\r\n const clearState = () => {\r\n if (disabledActions) {\r\n return;\r\n }\r\n CloseModal('modalRegisterToOffer');\r\n setTimeout(() => {\r\n setValidate({\r\n valid: false,\r\n registeredAuctions: [...registeredAuctions],\r\n idAuction: '',\r\n nameAuction: '',\r\n dateAuction: '',\r\n palletAuction: '',\r\n idPallet: '',\r\n });\r\n setRenderMpPaymentForm(false);\r\n }, 200);\r\n };\r\n\r\n useEffect(() => {\r\n if (!renderMpPaymentForm && mercadoPagoInitialized && !paymentFormError) {\r\n setTimeout(() => {\r\n setRenderMpPaymentForm(true);\r\n }, 200);\r\n }\r\n }, [renderMpPaymentForm]);\r\n\r\n useEffect(() => {\r\n getWarrantyMesage();\r\n }, []);\r\n\r\n const getWarrantyMesage = () => {\r\n const warrantyID = getWarrantyID();\r\n const URLWarrantyMessage = ServiceGenericParameters(warrantyID);\r\n const getDataWarranty = () => {\r\n GET(URLWarrantyMessage).then((data) => {\r\n if (data === '401') {\r\n getDataWarranty();\r\n return '';\r\n }\r\n if (data.value) {\r\n getBillPocketPayment(data.value);\r\n }\r\n });\r\n };\r\n getDataWarranty();\r\n };\r\n\r\n const getBillPocketPayment = (value) => {\r\n const paymentBillPocketID = getPaymentBillPocketID();\r\n const URLWarrantyMessage = ServiceGenericParameters(paymentBillPocketID);\r\n const getDataBillPocketPayment = () => {\r\n GET(URLWarrantyMessage).then((data) => {\r\n if (data === '401') {\r\n getDataBillPocketPayment();\r\n return '';\r\n }\r\n if (data.value) {\r\n setTokenAmount(parseFloat(data.value));\r\n let text = value;\r\n text = text.replace('${0}', formatCurrency(data.value));\r\n setWarrantyMessage(text);\r\n }\r\n });\r\n };\r\n getDataBillPocketPayment();\r\n };\r\n\r\n return (\r\n <div\r\n className={`modal fade`}\r\n id='modalRegisterToOffer'\r\n aria-hidden='true'\r\n data-bs-backdrop='static'\r\n data-bs-keyboard='false'\r\n >\r\n <div className='modal-dialog modal-dialog-centered'>\r\n <div className='modal-content'>\r\n <div className='modal-header modal-header-login justify-content-end'>\r\n <CloseModalIcon onHandleClick={() => clearState()} />\r\n </div>\r\n <div className='modal-body'>\r\n <div className='text-center mt-2'>\r\n <img\r\n src='./resources/logo.svg'\r\n alt='logo MLS'\r\n className='img-fluid'\r\n width='50%'\r\n />\r\n </div>\r\n <div className='text-center mb-4 mt-4'>\r\n <h4 className='modal-title fw-bold text-uppercase'>\r\n Registro a subasta\r\n </h4>\r\n </div>\r\n </div>\r\n <CardFormToken\r\n idAuction={idAuction}\r\n nameAuction={nameAuction}\r\n message={message}\r\n warrantyMessage={warrantyMessage}\r\n clearState={clearState}\r\n disabledActions={disabledActions}\r\n setDisabledActions={setDisabledActions}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { CloseModal } from '../Utilities/General';\r\n\r\nexport const WaitNextAuctions = () => {\r\n const history = useHistory();\r\n return (\r\n <div\r\n className=\"modal fade \"\r\n id=\"modalWaitNextAuction\"\r\n aria-labelledby=\"waitNextAuctionModalLabel\"\r\n aria-hidden=\"true\"\r\n data-bs-backdrop=\"static\"\r\n data-bs-keyboard=\"false\"\r\n >\r\n <div className=\"modal-dialog modal-dialog-centered\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-body text-center\">\r\n <div className=\"text-center closing-accept mt-5\">\r\n <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"50%\" />\r\n </div>\r\n <div className=\"text-center closing-accept\">\r\n <h2 className=\"text-uppercase\" id=\"textMessage\">Espera nuestra próxima subasta.</h2>\r\n </div>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-outline-secondary btn-lg success-offer-items closin-accept\"\r\n data-bs-dismiss=\"modalOfferSuccess\"\r\n aria-label=\"Close\"\r\n onClick={(e) => [history.push('/?home=true'), CloseModal('modalWaitNextAuction')]}\r\n >\r\n Aceptar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { CloseModal } from '../Utilities/General';\r\n\r\nexport const WaitNextAuctionsDeclineClient = () => {\r\n const history = useHistory();\r\n return (\r\n <div\r\n className=\"modal fade \"\r\n id=\"modalDeclineClient\"\r\n aria-labelledby=\"waitNextAuctionModalDeclineClientLabel\"\r\n aria-hidden=\"true\"\r\n data-bs-backdrop=\"static\"\r\n data-bs-keyboard=\"false\"\r\n >\r\n <div className=\"modal-dialog modal-dialog-centered\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-body text-center\">\r\n <div className=\"text-center closing-accept mt-5\">\r\n <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"50%\" />\r\n </div>\r\n <div className=\"text-center closing-accept\">\r\n <h2 className=\"text-uppercase\" id=\"textMessage\">Estimado Cliente le informamos que su participación en la subasta ha sido bloqueada</h2>\r\n </div>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-outline-secondary btn-lg success-offer-items closin-accept\"\r\n data-bs-dismiss=\"modalOfferSuccess\"\r\n aria-label=\"Close\"\r\n onClick={(e) => [history.push('/?home=true'), CloseModal('modalDeclineClient')]}\r\n >\r\n Aceptar\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect, useState, useContext } from 'react';\r\nimport { ServiceMePagoPaymentValidate } from '../../helpers/getURL'\r\nimport { POST } from '../../helpers/APIServices';\r\nimport { useHistory, useLocation } from 'react-router-dom'\r\nimport { DataContext } from '../../context/DataContext';\r\nimport { OpenStreamingRegisterMessage, CloseModal, CloseBackdrops, convertToDate } from '../Utilities/General'\r\nimport { Home } from '../Home/Home';\r\n\r\n\r\nexport const ReceivePayToken = (props) => {\r\n\r\n const { href = '' } = window.location;\r\n const external_transaction_id = new URL(href).searchParams.get(\r\n 'external_transaction_id'\r\n );\r\n const transaction_id = new URL(href).searchParams.get('transaction_id');\r\n const status_code = new URL(href).searchParams.get('status_code');\r\n const error_code = new URL(href).searchParams.get('error_code');\r\n const error_message = new URL(href).searchParams.get('error_message');\r\n const [message, setMessage] = useState('Validando Tóken...');\r\n const [loading, setLoading] = useState('show');\r\n const [redirect, setRedirect] = useState(false);\r\n const [validToken, setValidToken] = useState(false);\r\n const [error, setError] = useState(false);\r\n const { pathname = '', state } = useLocation();\r\n const history = useHistory();\r\n const location = useLocation();\r\n const {\r\n validate: { registeredAuctions },\r\n setValidate,\r\n } = useContext(DataContext);\r\n\r\n useEffect(() => {\r\n const URLValidate = ServiceMePagoPaymentValidate();\r\n const json = {\r\n external_transaction_id,\r\n transaction_id,\r\n status_code,\r\n error_code,\r\n error_message,\r\n };\r\n const validateData = () => {\r\n if (!transaction_id || transaction_id === \"null\") {\r\n history.push('/perfil?opcion=5')\r\n return;\r\n }\r\n POST(URLValidate, json).then((data) => {\r\n if (data === '401') {\r\n validateData();\r\n return '';\r\n }\r\n setLoading('hide');\r\n if (data.success) {\r\n if (data.data.pendingChallenge === true) {\r\n history.push('/confirmarTokenPago', {\r\n creq: state.creq,\r\n externalResourceUrl: state.externalResourceUrl,\r\n status: \"pending\",\r\n statusDetail: \"pending_challenge\",\r\n id: transaction_id,\r\n redirectUrl: `${location.pathname}${location.search}`,\r\n });\r\n }\r\n else {\r\n const response = data.data;\r\n const existRegisteredAuction = registeredAuctions.some((element) => {\r\n return element.idAuction === response.auctionId;\r\n });\r\n const auctions = [...registeredAuctions];\r\n if (!existRegisteredAuction) {\r\n auctions.push({\r\n idAuction: response.auctionId,\r\n pallet: response.description,\r\n streaming: response.streaming,\r\n idPallet: response.idPalette,\r\n });\r\n }\r\n setMessage('Tóken Validado.');\r\n setValidate({\r\n valid: false,\r\n registeredAuctions: [\r\n ...auctions\r\n ],\r\n idAuction: data.data.auctionId,\r\n nameAuction: data.data.auctionName,\r\n dateAuction: convertToDate(data.data.auctionDate),\r\n palletAuction: data.data.description,\r\n idPallet: data.data.idPalette,\r\n });\r\n OpenStreamingRegisterMessage();\r\n setValidToken(true);\r\n setTimeout(() => setRedirect(true), 2000);\r\n }\r\n } else {\r\n if (data.message) {\r\n setMessage(data.message);\r\n }\r\n else {\r\n setMessage('Ha ocurrido un error al validar tu pago. Por favor reintenta recargando la pagina, si el problema persiste contacta a soporte.');\r\n }\r\n setError(true);\r\n CloseModal('modalStreamingReisterMesage');\r\n CloseBackdrops();\r\n setTimeout(() => history.push('/subastas'), 5000);\r\n }\r\n }).catch(err => {\r\n setError(true);\r\n setMessage('Ha ocurrido un error al validar tu pago. Por favor reintenta recargando la pagina, si el problema persiste contacta a soporte.');\r\n CloseModal('modalStreamingReisterMesage');\r\n CloseBackdrops();\r\n })\r\n };\r\n validateData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (validToken && redirect){\r\n if (pathname === '/validarTokenPago') {\r\n history.push('/subastas');\r\n }\r\n return <Home />;\r\n }\r\n }, [redirect, validToken])\r\n\r\n return (\r\n <div className='row container-fluid container__expire justify-content-center'>\r\n {!error && (\r\n <div id='loading' className={'row container-back container-loading ' + loading}>\r\n <div className='col-12 text-center'>\r\n <img src='/resources/loading.gif' alt='loading...' width='15%'/>\r\n </div>\r\n </div>\r\n )}\r\n <div className='col-8 col-sm-6 col-lg-5 col-xxl-4 text-center'>\r\n <label>{message}</label>\r\n {error && (\r\n <button\r\n id='errorGoHome'\r\n className='btn btn-outline-danger btn-lg mt-4'\r\n onClick={() => history.push('/subastas')}\r\n >\r\n Ir a Subastas\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useHistory, useLocation } from 'react-router-dom'\r\n\r\nimport { GET } from '../../../helpers/APIServices';\r\nimport { ServiceCompleteOrder } from '../../../helpers/getURL';\r\n\r\nexport const ReceiveActnetPay = () => {\r\n const { search } = useLocation();\r\n const { href = '' } = window.location;\r\n const [message, setMessage] = useState('Validando pago...');\r\n const [error, setError] = useState(false);\r\n const [externalTransactionId, setExternalTransactionId] = useState(null);\r\n const [transactionId, setTransactionId] = useState(null);\r\n\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n\r\n let external_transaction_id = new URL(href).searchParams.get('external_transaction_id');\r\n if (external_transaction_id === null) {\r\n external_transaction_id = new URL(href).searchParams.get('external_reference');\r\n }\r\n\r\n let transaction_id = new URL(href).searchParams.get('transaction_id');\r\n if (transaction_id === null) {\r\n transaction_id = new URL(href).searchParams.get('payment_id');\r\n }\r\n setExternalTransactionId(external_transaction_id);\r\n setTransactionId(transaction_id);\r\n\r\n let urlCompleteOrder = ServiceCompleteOrder();\r\n\r\n urlCompleteOrder = `${urlCompleteOrder}?externalId=${external_transaction_id}&checkout=${external_transaction_id}&authorization=${transaction_id}&maskedPAN=0000`;\r\n\r\n const getData = () => {\r\n if (!transaction_id || transaction_id === \"null\") {\r\n history.push('/perfil?opcion=5')\r\n return;\r\n }\r\n GET(urlCompleteOrder).then((data) => {\r\n if (data === '401') {\r\n getData();\r\n return '';\r\n }\r\n\r\n if (data.successOrder) {\r\n window.open('/detalle-orden?id=' + external_transaction_id, '_self');\r\n } else {\r\n setError(true);\r\n if (data.showOrderMessage === true){\r\n setMessage(data.orderMessage);\r\n }\r\n else {\r\n setMessage(\r\n 'Ha ocurrido un error al procesar la solicitud. Por favor intente nuevamente.'\r\n );\r\n }\r\n\r\n }\r\n });\r\n };\r\n getData();\r\n }, []);\r\n\r\n return (\r\n <div className='row container-fluid container__expire justify-content-center'>\r\n {!error && (\r\n <div id='loading' className={'row container-back container-loading show' }>\r\n <div className='col-12 text-center'>\r\n <img src='./resources/loading.gif' alt='loading...' width='15%' />\r\n </div>\r\n </div>\r\n )}\r\n <div className='col-8 col-sm-6 col-lg-5 col-xxl-4 text-center'>\r\n <label>{message}</label>\r\n </div>\r\n {error && (\r\n <div className='col-12 text-center'>\r\n <button\r\n className='btn btn-outline-danger btn-lg'\r\n id='errorGoOrders'\r\n onClick={() => window.open('/perfil?opcion=5', '_self')}\r\n >\r\n Ir a mis órdenes\r\n </button>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n","import './../../../css/Register/ChallengePayToken.css';\r\n\r\nimport {useLocation, useHistory} from \"react-router-dom\";\r\nimport {useEffect, useState} from \"react\";\r\n\r\nexport default function ChallengePayToken() {\r\n\r\n const location = useLocation();\r\n const history = useHistory();\r\n const {state} = location;\r\n\r\n const [id, setId] = useState(0);\r\n const [status, setStatus] = useState(\"\");\r\n const [statusDetail, setStatusDetail] = useState(\"\");\r\n const [creq, setCreq] = useState(null);\r\n const [externalResourceUrl, setExternalResourceUrl] = useState(null);\r\n const [redirectUrl, setRedirectUrl] = useState(\"\");\r\n const [complete, setComplete] = useState(false);\r\n\r\n\r\n useEffect(() => {\r\n if(complete){\r\n setTimeout(() => {\r\n history.push(redirectUrl);\r\n }, 3000);\r\n }\r\n }, [complete]);\r\n\r\n useEffect(() => {\r\n const receiveMessage = (e) => {\r\n if (e.data.status === \"COMPLETE\") {\r\n console.log(\"COMPLETE\", e);\r\n if (complete === false){\r\n setComplete(true);\r\n }\r\n }\r\n }\r\n\r\n window.addEventListener(\"message\", receiveMessage);\r\n return () => {\r\n window.removeEventListener('message', receiveMessage);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if(id !== 0 && status !== \"\" && statusDetail !== \"\" && creq !== null && externalResourceUrl !== null && redirectUrl !== \"\"){\r\n doChallenge({status, statusDetail, creq, externalResourceUrl})\r\n }\r\n }, [creq, externalResourceUrl, id, redirectUrl, status, statusDetail]);\r\n\r\n useEffect(() => {\r\n if (state !== undefined) {\r\n const {\r\n creq: localCreq = null,\r\n externalResourceUrl: localExternalResourceUrl = null,\r\n id: localId = null,\r\n status: localStatus = null,\r\n statusDetail: localStatusDetail = null,\r\n redirectUrl: localRedirectUrl = \"\"\r\n } = state;\r\n if (localCreq !== null && localExternalResourceUrl !== null && localId !== null && localStatus !== null && localStatusDetail !== null && localRedirectUrl !== \"\") {\r\n if (id === 0) {\r\n setId(localId);\r\n }\r\n if (status === \"\") {\r\n setStatus(localStatus);\r\n }\r\n if (statusDetail === \"\") {\r\n setStatusDetail(localStatusDetail);\r\n }\r\n if (creq === null) {\r\n setCreq(localCreq);\r\n }\r\n if (externalResourceUrl === null) {\r\n setExternalResourceUrl(localExternalResourceUrl);\r\n }\r\n if (redirectUrl === \"\") {\r\n setRedirectUrl(localRedirectUrl);\r\n }\r\n }\r\n }\r\n }, [creq, externalResourceUrl, id, state, status, statusDetail]);\r\n\r\n function doChallenge({status, statusDetail, creq, externalResourceUrl}) {\r\n try {\r\n if (status === \"pending\" && statusDetail === \"pending_challenge\") {\r\n\r\n const iframeName = \"myframe\";\r\n const iframeRootName = \"iframeValidation\";\r\n const formName = \"myform\";\r\n\r\n const root = document.getElementById(iframeRootName);\r\n const existingIframe = root.querySelector(`#${iframeName}`);\r\n if (existingIframe) {\r\n root.removeChild(existingIframe);\r\n }\r\n var iframe = document.createElement(\"iframe\");\r\n iframe.name = iframeName;\r\n iframe.id = iframeName;\r\n\r\n root.appendChild(iframe);\r\n\r\n var idocument = iframe.contentWindow.document;\r\n\r\n var myform = idocument.createElement(\"form\");\r\n myform.name = formName;\r\n myform.setAttribute(\"target\", iframeName);\r\n myform.setAttribute(\"method\", \"post\");\r\n myform.setAttribute(\"action\", externalResourceUrl);\r\n\r\n var hiddenField = idocument.createElement(\"input\");\r\n hiddenField.setAttribute(\"type\", \"hidden\");\r\n hiddenField.setAttribute(\"name\", \"creq\");\r\n hiddenField.setAttribute(\"value\", creq);\r\n myform.appendChild(hiddenField);\r\n iframe.appendChild(myform);\r\n\r\n myform.submit();\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n alert(\"Error doing challenge, try again later.\");\r\n }\r\n }\r\n\r\n return (\r\n <div className='row container-fluid container__expire justify-content-center'>\r\n <div id=\"iframeValidation\" className='col-8 col-sm-6 col-lg-5 col-xxl-4 text-center'></div>\r\n </div>\r\n );\r\n}\r\n","import { Fragment, useContext, useEffect } from 'react'\r\nimport { BrowserRouter as Router, Route, Switch } from 'react-router-dom';\r\n\r\n//Componentes\r\nimport { Home } from './components/Home/Home';\r\nimport Header from './components/Home/Header';\r\nimport FooterMain from './components/Home/FooterMain';\r\n//MENU\r\nimport Catalog from './components/Menu/Catalog';\r\nimport { AboutUs } from './components/Menu/AboutUs';\r\nimport { AuctionsMenu } from './components/Menu/AuctionsMenu';\r\nimport { Services } from './components/Menu/Services';\r\nimport { Contact } from './components/Menu/Contact';\r\n//Utilidades\r\nimport ToTop from './components/Utilities/ToTop';\r\nimport Loading from './components/Utilities/Loading';\r\nimport { Message } from './components/Message/Message';\r\nimport { StreamingRegisterMessage } from './components/Register/StreamingRegisterMessage';\r\nimport { OfferSuccess } from './components/Menu/OfferSuccess';\r\n//Recuperar contraseña\r\nimport { RecoveryPassword } from './components/Login/RecoveryPassword';\r\nimport { ResetPassword } from './components/Login/ResetPassword';\r\nimport { TokenNotValid } from './components/Login/TokenNotValid';\r\nimport { VerifyUser } from './components/CheckIn/VerifyUser';\r\n\r\n//Perfil\r\nimport { ProfileGrid } from './components/Profile/ProfileGrid';\r\nimport { PaymentProcessGrid } from './components/Profile/paymentProcess/PaymentProcessGrid';\r\nimport { ReceivePay } from './components/Profile/paymentProcess/ReceivePay';\r\nimport { OrderDetailGrid } from './components/Profile/orderDetail/OrderDetailGrid';\r\n\r\n//Straming\r\nimport { Streaming } from './components/streaming/Streaming';\r\n\r\n//helpers\r\nimport { getConfig } from './helpers/getConfig';\r\n\r\n//CSS de la aplicacion\r\nimport './css/App.css' //reset de estilos y variables de colores\r\nimport './css/Animations.css' //animaciones\r\nimport { RegisterToOffer } from './components/Register/RegisterToOffer'\r\nimport { DataProvider } from './context/DataContext'\r\nimport { ClosingModal } from './components/streaming/MiniPlayer/ClosingModal'\r\nimport { WaitNextAuctions } from './components/streaming/WaitNextAuctions'\r\nimport { WaitNextAuctionsDeclineClient } from './components/streaming/WaitNextAuctionsDeclineClient'\r\nimport { ReceivePayToken } from './components/Register/ReceivePayToken'\r\nimport { ReceiveActnetPay } from './components/Profile/paymentProcess/ReceiveActnetPay'\r\nimport { TokenStatusContext } from './context/TokenStatusContext'\r\nimport { getCaptchaSiteKeyId, getMercadoPagoPublicKey } from './helpers/getConstants'\r\nimport { ServiceGenericParameters } from './helpers/getURL'\r\nimport { GET } from './helpers/APIServices'\r\nimport { initMercadoPago } from '@mercadopago/sdk-react'\r\nimport ChallengePayToken from './components/Register/MePago/ChallengePayToken'\r\nimport { CaptchaContext } from './context/CaptchaContext'\r\n\r\nfunction App () {\r\n const { setMercadoPagoInitialized } = useContext(TokenStatusContext)\r\n const { captchaSiteKey, setCaptchaSiteKey } = useContext(CaptchaContext)\r\n\r\n useEffect(() => {\r\n const urlServices = sessionStorage.getItem('URLServices')\r\n if (!urlServices || urlServices.length <= 2) {\r\n getConfig('urlServices.json').then((response) => {\r\n const url = JSON.stringify(response)\r\n sessionStorage.setItem('URLServices', url)\r\n window.location.reload()\r\n })\r\n }\r\n else {\r\n const mercadoPagoPublicKey = sessionStorage.getItem('MercadoPagoPublicKey')\r\n if (!mercadoPagoPublicKey) {\r\n const idMercadoPagoPublicKey = getMercadoPagoPublicKey();\r\n const endpointMercadoPagoPublicKey = ServiceGenericParameters(idMercadoPagoPublicKey);\r\n GET(endpointMercadoPagoPublicKey).then((data) => {\r\n if (data && data.value) {\r\n sessionStorage.setItem('MercadoPagoPublicKey', data.value);\r\n initMercadoPago(data.value, {locale: \"es-MX\"});\r\n setMercadoPagoInitialized(true);\r\n }\r\n });\r\n }\r\n else {\r\n initMercadoPago(mercadoPagoPublicKey, {locale: \"es-MX\"});\r\n setMercadoPagoInitialized(true);\r\n }\r\n\r\n if (!captchaSiteKey) {\r\n const captchaSiteKey = sessionStorage.getItem('CaptchaSiteKey')\r\n if (!captchaSiteKey) {\r\n const captchaSiteKeyId = getCaptchaSiteKeyId()\r\n const endpointCaptchaSiteKey = ServiceGenericParameters(captchaSiteKeyId);\r\n GET(endpointCaptchaSiteKey).then((data) => {\r\n if (data && data.value) {\r\n setCaptchaSiteKey(data.value);\r\n sessionStorage.setItem('CaptchaSiteKey', data.value);\r\n }\r\n });\r\n }\r\n else {\r\n setCaptchaSiteKey(captchaSiteKey);\r\n }\r\n }\r\n }\r\n }, []);\r\n\r\n return (\r\n <DataProvider>\r\n <Router>\r\n <Fragment>\r\n <Header />\r\n <ToTop />\r\n <Loading />\r\n <Message />\r\n <Switch>\r\n <Route path=\"/\" exact component={Home} />\r\n <Route path=\"/quienes-somos\" exact component={AboutUs} />\r\n <Route path=\"/subastas\" exact component={AuctionsMenu} />\r\n <Route path=\"/catalogo\" exact component={Catalog} />\r\n <Route path=\"/servicios\" exact component={Services} />\r\n <Route path=\"/contacto\" exact component={Contact} />\r\n <Route path=\"/recuperarpwd\" exact component={RecoveryPassword} />\r\n <Route path=\"/resetpwd\" exact component={ResetPassword} />\r\n <Route path=\"/expire\" exact component={TokenNotValid} />\r\n <Route path=\"/perfil\" exact component={ProfileGrid} />\r\n <Route path=\"/verificar-usuario\" exact component={VerifyUser} />\r\n <Route path=\"/streaming\" exact component={Streaming} />\r\n <Route path=\"/carrito-compras\" exact component={PaymentProcessGrid} />\r\n <Route path=\"/validarPago\" exact component={ReceivePay} />\r\n <Route path=\"/detalle-orden\" exact component={OrderDetailGrid} />\r\n <Route path=\"/validarTokenPago\" exact component={ReceivePayToken} />\r\n <Route path=\"/confirmarTokenPago\" exact component={ChallengePayToken} />\r\n <Route path=\"/validatePaymentGateway\" exact component={ReceiveActnetPay} />\r\n {/* DEFAULT */}\r\n <Route exact component={Home} />\r\n </Switch>\r\n <FooterMain />\r\n <RegisterToOffer />\r\n <StreamingRegisterMessage />\r\n <OfferSuccess />\r\n <ClosingModal />\r\n <WaitNextAuctions />\r\n <WaitNextAuctionsDeclineClient />\r\n </Fragment>\r\n </Router>\r\n </DataProvider>\r\n );\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport { TokenStatusProvider } from './context/TokenStatusContext'\r\nimport { CaptchaProvider } from './context/CaptchaContext'\r\n\r\nReactDOM.render(\r\n <React.StrictMode>\r\n <TokenStatusProvider>\r\n <CaptchaProvider>\r\n <App />\r\n </CaptchaProvider>\r\n </TokenStatusProvider>\r\n </React.StrictMode>,\r\n document.getElementById('root')\r\n);\r\nreportWebVitals();\r\n"],"sourceRoot":""}