{"version":3,"sources":["config/dbRef.js","assets/images/logo.svg","componets/navBarMenu.jsx","redux/types/auth.js","config/firebase.js","redux/actions/auth.js","redux/types/user.js","redux/actions/user.js","componets/Navbar.js","assets/images/aprioriblanco.png","views/components/banner.jsx","views/components/cardSimulacrum.jsx","assets/images/logoBlanco.png","views/components/uiComponents.jsx","views/components/simulacrum.jsx","assets/images/abogados.jpg","views/components/parallax.jsx","views/components/carousel/components/Thumbnail/index.js","views/components/carousel/components/DotIcon/index.js","views/components/carousel/components/Carousel/index.js","views/components/comments.jsx","views/components/nextQuestion.jsx","views/components/footer.jsx","assets/images/logos/activate.png","assets/images/logos/fepch.png","assets/images/logos/pnud.png","assets/images/logos/usfx3.png","assets/images/logos/warmilab.png","views/components/company.jsx","redux/types/dataPage.js","redux/actions/dataPage.js","views/counts/utils.js","views/components/Modal.jsx","views/login/Form.jsx","views/components/headerPage.jsx","views/components/title.jsx","assets/images/team.png","assets/images/redes.png","assets/images/banner.png","assets/images/team/leo.png","assets/images/team/abi.jpg","assets/images/team/rimber.jpg","views/team/index.js","assets/images/service.png","views/service/index.js","assets/images/contact.jpg","views/contact/index.js","assets/images/precios.png","assets/images/newPlan.jpg","assets/images/inversion.png","redux/types/cart.js","redux/actions/cart.js","views/pricing/index.js","views/profile/components/navbar-phone.js","assets/images/aprioriUser.png","views/profile/components/Photo.js","views/profile/components/ExamenCard.js","views/components/onload.js","views/profile/components/EventsCard.js","views/profile/index.js","redux/types/exam.js","redux/actions/exam.js","views/Examen/components/pregunta.js","views/Examen/components/materia.js","views/Examen/components/pestania.js","utils/arrays.js","utils/exam.js","redux/types/test.js","redux/actions/test.js","views/ExamTest/components/pregunta.js","views/ExamTest/components/materia.js","views/ExamTest/components/pestania.js","views/ExamTest/getExam.js","views/details/index.js","assets/images/convocatoria.jpg","views/convocatoria/index.js","assets/images/qr.png","views/plans/index.js","views/management/index.jsx","views/events/primer.png","views/registerToEvent/components/Panel.jsx","views/registerToEvent/services/events.js","views/live/index.js","views/counts/index.jsx","views/Payment/index.jsx","assets/images/logo.png","views/driver/index.js","views/userProfile/components/ExamenCard.jsx","assets/images/book.png","views/userProfile/index.js","views/print/index.js","views/afiliateAdmi/components/panel.js","views/admin/components/search/SearchComponent.jsx","views/admin/components/update-modal/ModalUpdateExam.js","views/admin/components/select-modal/ModalSelectExam.js","views/admin/components/cards/ExamCard.js","views/admin/components/add-modal/ModalAddExam.js","views/admin/components/update-galery-modal/ModalUpdateGalery.js","views/admin/components/galery/Galery.js","views/admin/components/add-galery-modal/ModalAddGalery.js","views/admin/components/plans/benefit-item/BenefitItem.js","views/admin/components/update-plans-modal/ModalUpdatePlan.js","views/admin/components/plans/precing-card/PrecingCard.js","assets/images/teacher.webp","views/teacher/index.js","views/SimplePay/index.jsx","views/index.js","views/home/index.js","views/login/index.js","views/privada/index.js","views/signup/index.js","views/notFound/index.js","views/Examen/index.js","views/suggestions/index.js","utils/suggestions.js","views/ExamTest/index.js","views/events/index.jsx","views/registerToEvent/index.jsx","views/licencias/index.js","views/afiliateAdmi/index.js","views/Examen/copia.js","views/admin/index.js","routes/routes.js","routes/paths.js","routes/AppRoute.js","App.js","serviceWorkerRegistration.js","reportWebVitals.js","redux/reducers/auth.js","redux/reducers/user.js","redux/reducers/dataPage.js","redux/reducers/exam.js","redux/reducers/cart.js","redux/reducers/test.js","redux/store/index.js","index.js"],"names":["module","exports","user","exam","suggestios","cursos","materias","galeria","planes","_style","_rect","_g","NavBarMenu","props","navbar","useRef","_jsx","_Fragment","children","_jsxs","ref","className","href","target","rel","FaFacebookF","FaInstagram","FaWhatsapp","FaEnvelope","_excluded","_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","SvgLogo","_ref","svgRef","title","titleId","o","i","includes","_objectWithoutPropertiesLoose","getOwnPropertySymbols","s","propertyIsEnumerable","_objectWithoutProperties","id","xmlns","xmlnsXlink","x","y","viewBox","style","enableBackground","xmlSpace","type","width","height","cx","cy","d","ForwardRef","types","LOGIN_REQUEST","LOGIN_SUCCESS","LOGIN_FAILURE","LOGOUT_REQUEST","LOGOUT_SUCCESS","LOGOUT_FAILURE","REGISTER_REQUEST","REGISTER_SUCCESS","REGISTER_FAILURE","COMPLETE_REGISTER_REQUEST","COMPLETE_REGISTER_SUCCESS","COMPLETE_REGISTER_FAILURE","LOGIN_WITH_FACEBOOK_REQUEST","LOGIN_WITH_FACEBOOK_SUCCESS","LOGIN_WITH_FACEBOOK_FAILURE","LOGIN_WITH_GOOGLE_REQUEST","LOGIN_WITH_GOOGLE_SUCCESS","LOGIN_WITH_GOOGLE_FAILURE","CLEAR_ERROR","CLEAR_SUCCESS","IS_LOGGED_IN","loguin","logOut","signUp","app","initializeApp","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","measurementId","db","getFirestore","auth","getAuth","storage","GoogleAuthProvider","getStorage","isLoggedIn","payload","isAuthenticated","undefined","loginRequest","_objectSpread","registerFailure","startClearSuccess","dispatch","startClearError","login_","data","async","password","signInWithEmailAndPassword","error","loginFailure","registerEmailPassSignUp","userData","email","name","lastName","city","phone","birthday","code","userId","createUserWithEmailAndPassword","uid","console","log","result","setDoc","doc","dbRef","country","codeAfiliate","isAfiliate","userAfiliate","getDocs","query","collection","where","docs","cuenta","newAfiliate","afiliate","state","plan","monto","date","Date","addDoc","currentUser","delete","then","catch","registerSuccess","startLogOut","logo","signOut","err","GET_USER_REQUEST","GET_USER_SUCCESS","GET_USER_FAILURE","CLEAR_USER","UPDATE_INTENTOS","getUserRequest","getUserFailure","getUser","docRef","docSnap","getDoc","cuentaSnap","cuentaData","forEach","push","exists","photo","photoUrl","recursos","mensajes","updateIntentos","idCuenta","idExamen","examenes","examen","isResolve","intentos","updateDoc","_fetchUsers","querySnapshot","users","message","Navbar","reduxUser","useSelector","offset","setOffset","useState","setUser","useDispatch","useEffect","window","onscroll","pageYOffset","toggleMenu","setToggleMenu","Logo","Link","to","FaUser","onClick","handleToggle","htmlFor","Banner","tipo","idEvento","dateEvent","setDateEvent","hora","cronometro","setCronometro","dia","minuto","segundo","end","_minute","_second","_hour","_day","timer","setInterval","now","distance","Math","floor","showRemaining","clearInterval","buttonAnalytics","btn","ReactGa","event","category","action","concat","titulo","lenght","FaAngleRight","pathname","src","logoImg","Card","React","useContext","VisibilityContext","setData","estado","nombre","descripcion","area","btnAnalitycs","ReactGA","fecha","Contactanos","texto","styles","mensaje","transition","Simulacrum","nac","setNac","dep","setDep","items","setItems","selected","setSelected","position","setPosition","document","getElementById","intervalo","setIntervalo","clientes","simulacros","ciudades","colaboradores","divElemento","scrollHandler","_","current","getBoundingClientRect","top","innerHeight","opacity","addEventListener","removeEventListener","response","datos","clientesActuales","simulacrosTotales","backgroundImage","image","backgroundSize","backgroundRepeat","FaBalanceScale","clients","totalPreguntas","map","index","visible","ContentParallax","sectionStyle","background","backgroun","Thumbnail","selectedKey","show","DotIcon","fillColor","focusable","role","fill","Carousel","time","setIndex","keys","child","interval","newIndex","idx","key","Comments","images","setimages","comentarios","setComentarios","img","comment","tema","url","alt","FaRegBookmark","autor","cargo","CardService","FaBookmark","NextQuestion","events","setEvents","Footer","contact","placeholder","value","open","alert","Company","activate","usfx3","warmilab","fepch","pnud","maxHeight","GET_DATA_REQUEST","GET_DATA_SUCCESS","GET_DATA_FAILURE","getDataPage","getDataPageSuccess","getDataPageFailure","getAllMaterias","Promise","resolve","reject","materiasList","createExam","cantidadExamenes","cantidadPreguntas","iduser","idCuentaExamn","idExamenGeneral","examenPreguntas","cantidadMaterias","all","materiaPreguntas","preguntas","q","arrayPreguntas","shffleArray","pregunta","opciones","getQuestion","materia","Id","idMateria","arrayPreguntaPorMateria","calculatePreguntaPorMateria","examenFinal","examenTemp","element","inicio","final","newmateria","slice","arrayIDs","examn","examennuevo","refCuenta","cantidaPreguntas","cantMaterias","cantPorMateria","resto","abs","nPPorMateria","inputArray","sort","random","Modal","onClose","isOpen","setIsOpen","Transition","appear","as","Fragment","Dialog","Child","enter","enterFrom","enterTo","leave","leaveFrom","leaveTo","Overlay","Title","Form","_errors$password","_errors$user","reduxAuth","register","handleSubmit","formState","errors","useForm","isLoading","setIsLoading","errorModal","setErrorModal","setIsAuthenticated","closeErrorModal","loading","Redirect","onSubmit","icon","required","disabled","HeaderPage","backgroundColor","class","foto","backgroundPosition","backgroundFilter","RiUser5Line","MdDesignServices","HiDesktopComputer","Team","Header","banner","redes","FaFacebook","IoIosGlobe","abi","correo","rimber","leo","Contact","Service","ciudad","setCiudad","onChange","AiOutlineMail","size","color","GiSmartphone","FaFacebookSquare","FaInstagramSquare","ADD_CART_SUCCESS","addCart","addCartSuccess","setVisible","precio","FiClock","suscripcion","FiClipboard","cantidadPracticas","practicas","cantidadfinales","finales","AiOutlineFileText","uno","CgCheck","BiX","dos","tres","cuatro","cinco","seis","Pricing","_data$dataPage$","store","dataPage","bar","display","ImPower","tituloBanner","BsFillTelephoneFill","newPlan","NabarPhone","active","onActive","windowActive","setWindowActive","bottom","zIndex","BiTask","MdEventNote","ImStatsDots","MdSource","BiPhoneCall","Photo","userName","userLastName","userEmail","userPhoto","userMensajes","setName","setLastName","setPhoto","setMensajes","setEmail","setAfiliate","userApriori","ExamenCard","showModal","setShowModal","showModalInfo","setShowModalInfo","idCuenta_","setIdCuenta_","habilitado","setHabilitado","setMensaje","setIdExamen","btnAbrir","ahora","fechaExamen","fechaRegistro","getDay","confirm","changeState","menssage","dataUs","_dataUs$examenes","idExamenDato","loadIdExamen","fechaActual","parseInt","marginY","fontWeight","fontSize","textDecoration","OnLoad","Bar","Dots","EventsCard","contenido","expositor","modalidad","item","options","responsive","plugins","legend","text","Chart","CategoryScale","LinearScale","BarElement","PointElement","LineElement","Tooltip","Legend","GET_QUESTION_REQUEST","GET_QUESTION_SUCCESS","GET_QUESTION_FAILURE","LOAD_EXAM_REQUEST","LOAD_EXAM_SUCCESS","LOAD_EXAM_FAILURE","CLEAR_EXAM","MARCAR_PREGUNTA_REQUEST","MARCAR_PREGUNTA_SUCCESS","MARCAR_PREGUNTA_FAILURE","MARCAR_PREGUNTA_TEST_FAILURE","MARCAR_PREGUNTA_TEST_REQUEST","MARCAR_PREGUNTA_TEST_SUCCESS","SAVE_NOTAS_REQUEST","SAVE_NOTAS_SUCCESS","SAVE_NOTAS_FAILURE","LOAD_EXAM_TEST","getQuestionSuccess","loadExamFailure","idUsuario","baseUrl","config","method","headers","JSON","stringify","typeReq","axios","loadExam","loadExamSuccess","loadToExams","marcarRespuesta","idPregunta","marcado","indexMateria","estadoCopy","copia","find","indexPregunta","marcarPreguntaSuccess","marcarPreguntaFailure","saveNotas","notas","notasA","ex","filter","notas_","notas__","saveNotasSuccess","saveNotasFailure","mostrarPreguntaProcesada","correct","itemd","replace","Opcion","correcta","textoProcesado","setTextoProcesado","setEstado","textP","split","procesarTexto","dato","onPress","RiSendPlane2Fill","maxWidth","minWidth","Question","Pregunta","_props$item","revision","estados","setEstados","revision_","setRevision_","currentState","setCurrentState","dataProps","setDataProps","context","setContext","modalContext","setModalContext","respuesta","idP","idM","newEstados","contexto","_props$item2","respuestas","explicacionCorrecta","Marker","select","setState","setText","Materia","siguenteMateria","anteriorMateria","cantidadMateria","overflowX","marginTop","opcionCorrecta","BsFillCaretLeftFill","BsFillCaretRightFill","Pestania","loadExams","idExamem","examenRef","evaluarExamen","totalCorretas","totalIncorrectas","mat","correctas","incorrectas","p","materia_","calificacion","ADD_TEST_FAILURE","ADD_TEST_SUCCESS","REMPLACE_TEST_SUCCESS","REMPLACE_TEST_FAILURE","addTest","addTestSuccess","addTestFailure","remplaceTest","remplaceTestSuccess","remplaceTestFailure","test","handleAddTest","opcionMarcada","correcto","opcionSeleccionada","setNotas","dataNotas","setDataNotas","memoria","setMemoria","espacio","campo","privateToken","getExamTest","privateAccesToken","decoded","jwt","verify","idMaterias","maxQuestions","materias_final","matRef","orderBy","limit","quest","f","Details","setId","textBtn","setTextBtn","btnAnalytics","location","history","sign","paramId","examenEncontrado","verificarExamen","dataMaterias","newExamFinal","toISOString","newExamPrueba","anidirExamen","userID","documentacion","juridico","setJuridico","medico","setMedico","academico","setAcademico","policial","setPolicial","dataJur","setDataJur","dataMed","setDataMed","dataAcad","setDataAcad","dataPol","setDataPol","indiceJur","setIndiceJur","posicion","fechaItem","RadioButton","setActive","IoMdRadioButtonOn","IoMdRadioButtonOff","label","Plans","tigo","setTigo","deposito","setDeposito","transferencia","setTransferencia","qr","setQr","setChild","setPlan","banco","setBanco","setTitulo","telefono","setTelefono","setMonto","imagen","setImagen","progreso","setProgreso","setUrl","load","setLoad","textAdvertencia","setTextAdvertencia","metodo","setMetodo","info","setDataPage","changeRadioButton","updateDocumento","authUser","newExam","rebizado","sendWhatsapp","padding","imgQr","IoMdCheckmark","Management","setUsers","param","setParam","codigoAcceso","setCodigoAcceso","Panel","panelId","panelSelect","btnNext","btnPrev","btnSubmit","errorMessage","randomString","chars","registerData","codigoBarras","direccion","eventId","grado","isNewUser","preferencia","registerUser","regEventInUser","idEvent","preferenciaRefrigerio","registerUserEvents","regInscrito","inscrito","registerCursosIncritos","Live","allOk","setAllOk","urlVideo","frameborder","allow","allowfullscreen","CardCounts","idUser","edit","setEdit","editAfiliate","setEditAfiliate","cantidadP","monstoAfiliate","planExamen","queryAfiliate","afiliateDoc","handleSaveAfiliate","cantidad","intento","estadoExamen","idExam","handleSave","CardExamen","cantidadPreguntasPractica","cantidadPreguntasFinal","intentosPractica","intentosFinal","estadoPractica","estadoFinal","fechaPractica","fechaFinal","handleSaveExam","Counts","exams","setExams","modal","setModal","dataExam","setDataExam","getExams","newExams","Payment","paramUrl","urlRecibo","BsWhatsapp","accept","files","URL","createObjectURL","BsFillImageFill","storeRef","referencia","UploadTask","uploadBytesResumable","on","snapshot","progress","round","bytesTransferred","totalBytes","getDownloadURL","downloadURL","subirImagen","Entidad","schedule","textSchedule","description","whatsapp","facebook","address","horarioCar","hour","getHours","day","manianaInicio","manianaFin","tardeInicio","tardeFin","day1","day2","RiEyeCloseFill","FaRegEye","RiWhatsappFill","GiRotaryPhone","RiFacebookBoxFill","SiGooglemaps","Item","childrenDescription","seeDatails","setSeeDatails","FaCheckCircle","CgRadioCheck","BiUpArrow","BiDownArrow","Driver","start","setStart","escCar","setEscCar","escMotor","setEscMotor","transito","setTransito","detallesCar","setDetallesCar","detallesMotor","setDetallesMotor","detallesTransito","setDetallesTransito","tabindex","toLocaleDateString","Print","Data","year","month","print","activeTab","setActiveTab","afiliates","setAfiliates","setDatos","cantidadRegistrados","cantidadPagados","cantidadCancelados","saldo","dineroRetirado","comision","handleClick","getAfiliates","toFixed","toDate","SearchComponent","search","searcher","aligment","ModalUpdateExam","closeModal","refresExams","formData","setFormData","selectedMateria","setSelectedMateria","documentacionInput","setDocumentacionInput","recursoInput","setRecursoInput","SetMaterias","handleInputChange","fetchData","handleRecursoChange","preventDefault","examId","formattedDate","toLocaleString","minute","hour12","selectedId","materiaConIdMayuscula","some","overflowY","nuevasMaterias","agregarDocumentacion","nuevaDocumentacion","agregarRecurso","recurso","nuevosRecursos","checked","ModalSelectExam","numeroColaboradores","setNumeroColaboradores","setSimulacrosTotales","fetchUsers","datosDocRef","examenCpmpleto","ExamCard","fechaInicio","fechaFin","isModalOpen","setIsModalOpen","isModalSelectOpen","setIsModalSelectOpen","closeModalSelect","openModal","openModalSelect","ModalAddExam","ModalUpdateGalery","refresImages","setTitle","file","setFile","imageId","updates","photoRef","uploadBytes","photoURL","Galery","isDeleteModalOpen","setDeleteModalOpen","selectedImage","setSelectedImage","isEditModalOpen","setEditModalOpen","closeEditModal","closeDeleteModal","imageRef","deleteObject","deleteDoc","onSave","updatedImage","ModalAddGalery","isUploading","setIsUploading","BenefitItem","benefit","disponible","ModalUpdatePlan","_plan$calificacionInm","_plan$calificacionInm2","_plan$calificacionInm3","_plan$examenCronometr","_plan$examenCronometr2","_plan$examenCronometr3","_plan$graficosCompara","_plan$graficosCompara2","_plan$graficosCompara3","_plan$modificarFechaE","_plan$modificarFechaE2","_plan$modificarFechaE3","_plan$modificarMateri","_plan$modificarMateri2","_plan$modificarMateri3","_plan$revision","_plan$revision$dispon","_plan$revision2","idPlan","refresPlans","beneficios","calificacionInmediata","examenCronometrado","graficosComparativos","modificarFechaExamenFinal","modificarMateriasExamen","pruebasPracticas","cantidadPruebas","pruebasFinales","planId","beneficiosActualizados","reduce","acc","beneficio","_formData$beneficios$","prevFormData","PrecingCard","values","a","b","localeCompare","BiPencil","Teacher","dataTeacher","_data$materias","Home","setExamen","setIdEvento","setTipo","setHora","setClients","setPreguntas","total","ContecParallax","Login","isUser","setIsUser","errorRegister","Privada","Signup","_errors$name","_errors$lastName","_errors$email","cart","setPhone","errorPhone","setErrorPhone","setPassword","errorPassword","setErrorPassword","errorPassword2","setErrorPassword2","startDate","setStartDate","successModal","setSuccessModal","setUserData","primerPanel","setPrimerPanel","segundoPanel","setSegundoPanel","buttonDisabled","setButtonDisabled","setCode","codeError","closeSuccessModal","chancePanel","isValidPhoneNumber","getDate","getMonth","getFullYear","password2","validPass","loadingRegister","success","DatePicker","dateFormat","PhoneInput","defaultCountry","onChangeCapture","maxLength","innerText","classList","remove","add","verifyCode","Profile","setLoading","eventos","setEventos","indexContent","setIndexContent","pruebas","setPruebas","mensajeContacto","setMensajeContacto","evento","prueba","newArray","changeContent","labels","datasets","Line","borderColor","div","NotFound","Examen","_auth$currentUser2","minutos","segundos","useParams","setIdCuenta","reduxExam","setNombre","setCuenta","varContent","setVarContent","examData","setExamData","setRevision","redirect","setRedirect","actualizarIntentos","setActualizarIntentos","intentoActualizado","setIntentoActualizado","rev","_auth$currentUser","dd","idCta","cargarExamen","onbeforeunload","back","minut","_minutos$current","_segundos$current","_segundos$current2","contador","auxVector","returnValue","Convocatoria","Suggestions","_errors$lastname","_errors$description","reset","lastname","setSuggestion","setTimeout","rows","cols","ExamTest","isLoad","setIsLoad","notasRevision","setNotasRevision","screenWidth","setScreenWidth","innerWidth","materiaActive","setMateriaActive","pestaniasActivas","setPestaniasActivas","loadExamTest","examTest","nota","finalizarRevision","incorrecta","Events","setEventId","banner2","RegisterToEvent","getValues","imgContainer","panel","setPanel","errorPanel1","setErrorPanel1","panel1Message","setPanel1Message","errorPanel2","setErrorPanel2","panel2Message","setPanel2Message","setIsNewUser","setUserId","setModalidad","barCode","setBarCode","whatsappModal","setWhatsappModal","succesRedirect","setSuccesRedirect","nextButtonPanel1","exist","getInscritoByEmail","inscritos","dataInscritos","userDataId","dataUsers","u","getBarCode","igual","generateBarCode","ei","submit","bnb","Barcode","exportToPng","dom","domtoimage","toPng","dataUrl","saveAs","UserProfile","userEvents","setUserEvents","nuevaMateria","book","Licencias","AdminAfiliate","codeValue","setCodeValue","codeState","buttonRef","handleRegister","Copia","Admin","isModalGaleryOpen","setIsModalGaleryOpen","setImages","planData","setPlanData","username","setUsername","loginError","setLoginError","handleLogin","fetchPlans","allData","fetchImages","fetchExams","setSearch","toLowerCase","toLocaleLowerCase","openModalExam","closeModalExam","openModalGalery","closeModalGalery","SimplePay","component","path","isPrivate","AppRoute","Component","isLoggedIn_","setIsLoggedIn_","onAuthStateChanged","isAuthenticatedLoading","Route","exact","render","App","initialize","pageview","Router","Switch","routes","route","Boolean","hostname","match","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","initialState","enhancer","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","applyMiddleware","thunk","reducers","combineReducers","displayName","createStore","ReactDOM","Provider","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.9d48afb2.chunk.js","sourcesContent":["const isInDevelopment = true;\r\nmodule.exports = {\r\n    user :isInDevelopment ? '_user' : 'user',\r\n    exam :isInDevelopment ? 'Exam' : 'Exam',\r\n    suggestios :isInDevelopment ? 'Suggestions_' : 'Suggestions',\r\n    cursos : isInDevelopment? 'Cursos' : 'Cursos',\r\n    materias : isInDevelopment? 'Materias' : 'Materias',\r\n    galeria : isInDevelopment? 'galeria' : 'galeria',\r\n    planes : isInDevelopment? 'planes' : 'planes',\r\n};\r\n\r\n","var _style, _rect, _g;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgLogo(_ref, svgRef) {\n  let {\n      title,\n      titleId\n    } = _ref,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"Capa_1\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n    x: \"0px\",\n    y: \"0px\",\n    viewBox: \"0 0 566.65 566.93\",\n    style: {\n      enableBackground: \"new 0 0 566.65 566.93\"\n    },\n    xmlSpace: \"preserve\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n    type: \"text/css\"\n  }, \"\\r\\n\\t.st0{fill:#1A2527;}\\r\\n\\t.st1{fill:#E84529;}\\r\\n\\t.st2{fill:#FFFFFF;}\\r\\n\")), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n    x: -2.53,\n    className: \"st0\",\n    width: 569.9,\n    height: 566.93\n  })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"circle\", {\n    className: \"st1\",\n    cx: 282.42,\n    cy: 289.05,\n    r: 262.61\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    className: \"st0\",\n    d: \"M282.42,441.48c42.87,0,80.65,21.8,102.86,54.91h119.36L282.42,15.27L60.2,496.39h119.36 C201.78,463.28,239.55,441.48,282.42,441.48z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    className: \"st2\",\n    d: \"M392.52,349.7c-28.6-34.15-67.36-55.14-110.1-55.14c-42.74,0-81.5,21-110.1,55.1c-2.33,2.79-2.33,6.7,0,9.49 c28.6,34.15,67.36,55.14,110.1,55.14c42.74,0,81.5-21,110.1-55.1C394.85,356.4,394.85,352.5,392.52,349.7z M291.87,399.52 c-29.42,4.95-56.86-12.38-61.29-38.71s15.84-51.67,45.26-56.62c29.42-4.95,56.86,12.38,61.29,38.71 C341.55,369.23,321.29,394.58,291.87,399.52z\"\n  })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.3d7a0807.svg\";\nexport { ForwardRef as ReactComponent };","import React,{useRef} from 'react';\r\nimport { FaFacebookF, FaInstagram,FaEnvelope, FaWhatsapp} from 'react-icons/fa';\r\n\r\n\r\nexport default function NavBarMenu(props) {\r\n    //const [offset, setOffset] = useState(0);\r\n\r\n    const navbar = useRef(null);\r\n\r\n    //const [toggleMenu, setToggleMenu] = useState(false);\r\n\r\n    /*const handleToggle = () =>{\r\n      setToggleMenu(!toggleMenu)\r\n      {offset>25?\" fixed w-full px-40 sm:px-5 lg:px-40 py-4 text-white flex  justify-between bg-fondo text-14\"}\r\n      <div className={ offset>50?\"fixed w-full px-40 sm:px-5 lg:px-40 py-4 text-red-500 flex flex-col justify-between bg-fondo text-14 -mt-14 md:-mt-26 lg:-mt-14 sm:-mt-26\"\r\n          :\" fixed w-full px-40 sm:px-5 lg:px-40 py-4 text-white flex  justify-between bg-fondo text-14\"}>\r\n          :\"fixed w-full px-40 sm:px-5 lg:px-40 py-4 text-white flex  justify-between bg-fondo text-14 top-0\"\r\n       \r\n    }*/\r\n\r\n  return (\r\n    <>\r\n      <div ref={navbar} className=\"grid sm:hidden md:grid  bg-fondo grid-cols-1 md:grid-cols-1 lg:grid-cols-2 items-center py-2 pb-3 border-b border-gray-500 text-base z-40\">\r\n        <div className=\"flex row justify-center inset-x-1.5 md:justify-center lg:justify-start p-3 my-0 md:py-2 sm:py-2  pt-5 text- md:pl-0 text-1xl lg:pl-32\">\r\n          <a\r\n            href=\"https://www.facebook.com/aprioribol\"\r\n            target=\"_blank\"\r\n            rel=\"noopener noreferrer\"\r\n          >< FaFacebookF  className=\"text-white \"/></a>\r\n          <a href=\"https://www.instagram.com/apriori_bo\"\r\n            target=\"_blank\"\r\n            rel=\"noopener noreferrer\"\r\n          >< FaInstagram  className=\"text-white mx-3\"/></a>\r\n          <a \r\n            href=\"https://wa.me/+59161885865\"\r\n            target=\"_blank\"\r\n            rel=\"noopener noreferrer\"\r\n          >\r\n            < FaWhatsapp  className=\"text-white\"/></a>\r\n        </div>\r\n        <div className=\"flex flex-row md:flex-col  sm:flex-col lg:flex-row text-white items-center base\">\r\n            <a className=\"text-textBajo base\"  href=\"tel:+591-61885865\">Contactos : <span className=\"text-white\">+591 61885865</span></a>\r\n            <a className=\"flex flex-row px-10 base\" href=\"mailto:apriori.bolivian@gmail.com\" >< FaEnvelope  className=\"text-textBajo mt-1 mr-2\"/><p>apriori.bolivian@gmail.com</p></a>\r\n            <a className=\"flex flex-row px-10 base\" href=\"admin\" ><p>admin</p></a>\r\n        </div>\r\n      </div>\r\n    </>\r\n  )\r\n}","const types = {\r\n    \r\n    LOGIN_REQUEST: 'LOGIN_REQUEST',\r\n    LOGIN_SUCCESS: 'LOGIN_SUCCESS',\r\n    LOGIN_FAILURE: 'LOGIN_FAILURE',\r\n    \r\n    LOGOUT_REQUEST: 'LOGOUT_REQUEST',\r\n    LOGOUT_SUCCESS: 'LOGOUT_SUCCESS',\r\n    LOGOUT_FAILURE: 'LOGOUT_FAILURE',\r\n\r\n    REGISTER_REQUEST: 'REGISTER_REQUEST',\r\n    REGISTER_SUCCESS: 'REGISTER_SUCCESS',\r\n    REGISTER_FAILURE: 'REGISTER_FAILURE',\r\n\r\n    COMPLETE_REGISTER_REQUEST: 'COMPLETE_REGISTER_REQUEST',\r\n    COMPLETE_REGISTER_SUCCESS: 'COMPLETE_REGISTER_SUCCESS',\r\n    COMPLETE_REGISTER_FAILURE: 'COMPLETE_REGISTER_FAILURE',\r\n    \r\n    LOGIN_WITH_FACEBOOK_REQUEST: 'LOGIN_WITH_FACEBOOK_REQUEST',\r\n    LOGIN_WITH_FACEBOOK_SUCCESS: 'LOGIN_WITH_FACEBOOK_SUCCESS',\r\n    LOGIN_WITH_FACEBOOK_FAILURE: 'LOGIN_WITH_FACEBOOK_FAILURE',\r\n\r\n    LOGIN_WITH_GOOGLE_REQUEST: 'LOGIN_WITH_GOOGLE_REQUEST',\r\n    LOGIN_WITH_GOOGLE_SUCCESS: 'LOGIN_WITH_GOOGLE_SUCCESS',\r\n    LOGIN_WITH_GOOGLE_FAILURE: 'LOGIN_WITH_GOOGLE_FAILURE',\r\n\r\n    CLEAR_ERROR: 'CLEAR_ERROR',\r\n    CLEAR_SUCCESS: 'CLEAR_SUCCESS',\r\n\r\n    IS_LOGGED_IN: 'IS_LOGGED_IN',\r\n    \r\n    loguin:'LOGUIN',\r\n    logOut:'LOGOUT',\r\n    signUp:'SIGNUP',\r\n}\r\nexport default types;\r\n","// Import the functions you need from the SDKs you need\r\nimport {initializeApp} from \"firebase/app\";\r\nimport { getFirestore } from \"firebase/firestore\";\r\nimport { GoogleAuthProvider, getAuth, signInWithPopup} from \"firebase/auth\";\r\nimport { getStorage } from \"firebase/storage\";\r\n\r\n//import { getAuth, createUserWithEmailAndPassword } from \"firebase/auth\";\r\n\r\n//import { getAnalytics } from \"firebase/analytics\";\r\n\r\n//import {GoogleAuthProvider} from 'firebase/auth';\r\n\r\nconst firebaseConfig = {\r\n  // apiKey: process.env.REACT_APP_FIREBASE_APIKEY,\r\n  // authDomain:process.env.REACT_APP_FIREBASE_AUTHDOMAIN,\r\n  // projectId: process.env.REACT_APP_FIREBASE_PROJECTID,\r\n  // storageBucket: process.env.REACT_APP_FIREBASE_STORAGEBUCKET,\r\n  // messagingSenderId:process.env.REACT_APP_FIREBASE_MESSAGINGSENDERID,\r\n  // appId: process.env.REACT_APP_FIREBASE_APPID,\r\n  // measurementId:process.env.REACT_APP_FIREBASE_MEASUREMENTID,\r\n  // REACT_APP_FIREBASE_APIKEY=AIzaSyCTGg_5w5Z91KXBtGowvbFJ6DbAoDBlgj4\r\n  // REACT_APP_FIREBASE_AUTHDOMAIN=a-priori-5c593.firebaseapp.com\r\n  // REACT_APP_FIREBASE_DATABASEURL=https://a-priori-5c593.firebaseio.com\r\n  // REACT_APP_FIREBASE_PROJECTID=a-priori-5c593\r\n  // REACT_APP_FIREBASE_STORAGEBUCKET=a-priori-5c593.appspot.com\r\n  // REACT_APP_FIREBASE_MESSAGINGSENDERID=279356194733\r\n  // REACT_APP_FIREBASE_APPID=1:279356194733:web:c5b4dc9f0c0fead9deeb24\r\n  // REACT_APP_FIREBASE_MEASUREMENTID=G-7VX8GZGVWC.  \r\n  apiKey: \"AIzaSyCTGg_5w5Z91KXBtGowvbFJ6DbAoDBlgj4\",\r\n  authDomain:'a-priori-5c593.firebaseapp.com',\r\n  projectId: 'a-priori-5c593',\r\n  storageBucket: 'a-priori-5c593.appspot.com',\r\n  messagingSenderId:'279356194733',\r\n  appId: '1:279356194733:web:c5b4dc9f0c0fead9deeb24',\r\n  measurementId:'G-7VX8GZGVWC',\r\n};\r\n\r\nconst app = initializeApp(firebaseConfig);\r\nconst db = getFirestore(app);\r\nconst auth = getAuth(app);\r\nconst googleAuthprovider = new GoogleAuthProvider();\r\nconst storage = getStorage(app);\r\n//const analytics = getAnalytics(app);\r\n\r\nexport {  \r\n  db,\r\n  googleAuthprovider,\r\n  auth,\r\n  signInWithPopup,\r\n  storage,\r\n};\r\n","import types from '../types/auth';\r\nimport dbRef from '../../config/dbRef';\r\nimport { googleAuthprovider, auth, signInWithPopup, db} from '../../config/firebase';\r\nimport { doc, setDoc, getDoc, collection, query, where, addDoc, getDocs  } from \"firebase/firestore\";\r\nimport { signInWithEmailAndPassword, createUserWithEmailAndPassword } from \"firebase/auth\";\r\nimport { signOut } from \"firebase/auth\";\r\n\r\nexport const login = (uid, displayName) =>({\r\n    type:types.loguin,\r\n    payload:{uid, displayName},\r\n});\r\n\r\nexport const isLoggedIn = (isAuthenticated = false) =>({\r\n    type:types.IS_LOGGED_IN,\r\n    payload:{isAuthenticated:isAuthenticated},\r\n});\r\n\r\nexport const logout = () => ({\r\n    type:types.logOut,\r\n});\r\n\r\nconst loginRequest = payload => ({\r\n    type: types.LOGIN_REQUEST,\r\n    ...payload,\r\n});\r\n\r\nconst loginSuccess = payload => ({\r\n    type: types.LOGIN_SUCCESS,\r\n    payload: payload,\r\n});\r\n\r\nconst loginFailure = payload => ({\r\n    type: types.LOGIN_FAILURE,\r\n    payload: payload,\r\n});\r\n\r\nconst registerRequest = payload => ({\r\n    type: types.REGISTER_REQUEST,\r\n    ...payload,\r\n});\r\n\r\nconst registerSuccess = payload => ({\r\n    type: types.REGISTER_SUCCESS,\r\n    payload: payload,\r\n});\r\n\r\nconst registerFailure = payload => ({\r\n    type: types.REGISTER_FAILURE,\r\n    payload: payload,\r\n});\r\n\r\nconst clearError = payload => ({\r\n    type: types.CLEAR_ERROR,\r\n    payload: payload,\r\n});\r\n\r\nconst clearSuccess = payload => ({\r\n    type: types.CLEAR_SUCCESS,\r\n    payload: payload,\r\n});\r\n\r\nexport const startClearSuccess = () => dispatch => {\r\n    dispatch(clearSuccess());\r\n};\r\nexport const startClearError = () => {\r\n    return (dispatch) => {\r\n        dispatch(clearError());\r\n    };\r\n};\r\n\r\nexport const startGoogleAuth = () => {\r\n    return async (dispatch) => {\r\n        try {\r\n            dispatch(loginRequest());\r\n            const result = await signInWithPopup(auth, googleAuthprovider);\r\n            const docRef = doc(db, dbRef.user, result.user.uid);\r\n            const docSnap = await getDoc(docRef);\r\n            if(docSnap.exists()){\r\n                console.log(\"el usuario existe \");\r\n                dispatch(login(result.user.uid,result.user.displayName));\r\n            }else{\r\n                console.log(\"el usuario no  existe debe completar el registro \");\r\n            }\r\n        } catch (error){\r\n            console.error(error);\r\n        }\r\n    }\r\n}\r\n\r\nexport const login_ = (data) => {\r\n    return async (dispatch) => {\r\n        try {\r\n            const {user, password} = data;\r\n            dispatch(loginRequest());\r\n            await signInWithEmailAndPassword(auth, user, password);\r\n            dispatch(loginSuccess(user));\r\n\r\n        } catch (error) {\r\n            //console.log(error);\r\n            dispatch(loginFailure(error));\r\n        }\r\n    }\r\n}\r\n\r\nexport const registerEmailPassSignUp = (userData) => {\r\n    //crear cuenta usuario contraseña\r\n    return async (dispatch) => {\r\n        try{\r\n            dispatch(registerRequest());\r\n            const { email, password, name, lastName,  city, phone, birthday, code } = userData;\r\n            const userCredential = await createUserWithEmailAndPassword(auth, email, password);\r\n            const userId = userCredential.user.uid;\r\n            console.log(\"[actions_RegisterEmailPass]cuenta creada\", userId);\r\n\r\n            console.log(email, password,'estas aqui');\r\n            // Add a new document in collection \"cities\"\r\n            const result = await setDoc(doc(db, dbRef.user, userId), {\r\n                name: name,\r\n                lastName: lastName,\r\n                birthday: birthday,\r\n                phone: phone,\r\n                email: email,\r\n                password: password,\r\n                country: 'Bolivia',\r\n                city: city,\r\n                codeAfiliate: code?code:\"0000 \",\r\n                isAfiliate: false,\r\n            });\r\n            if(code){\r\n                try {\r\n                    const querySnapshot = await getDocs(\r\n                        query(collection(db, dbRef.user),where(\"code\", \"==\", code))\r\n                    );\r\n                    const userAfiliate = querySnapshot.docs[0].id;\r\n                    const cuenta = doc(db, dbRef.user, userAfiliate);\r\n                    let newAfiliate = {\r\n                        afiliate: userId,\r\n                        name: name,\r\n                        lastName: lastName,\r\n                        state : \"revision\",\r\n                        plan : \"free\",\r\n                        monto : 0,\r\n                        date : new Date(),\r\n                    }\r\n                    await addDoc(collection(cuenta, 'afiliates'), newAfiliate);\r\n\r\n                }catch(error){\r\n                    const user = auth.currentUser;\r\n                    user.delete().then(() => {\r\n                        console.log(\"cuenta eliminada\");\r\n                        dispatch(registerFailure(error));\r\n                    }).catch((error) => {\r\n                        console.log(\"error al eliminar cuenta\");\r\n                    });\r\n                }\r\n                \r\n            }\r\n            console.log(\"[actions_RegisterEmailPass]documento creado\", result);\r\n            //throw new Error('Error de prueba');\r\n            dispatch(registerSuccess(userData));\r\n            \r\n        } catch(error){\r\n            console.log(\"[actions_RegisterEmailPass]cuenta creada\", error);\r\n            //const errorCode = error.code;\r\n            //const errorMessage = error.message;\r\n            //console.log(errorCode, errorMessage);\r\n            dispatch(registerFailure(error));\r\n        }\r\n    }\r\n}\r\n\r\nexport const startLogOut = () =>{\r\n    return async (dispatch) => {\r\n        try {\r\n            const logo = await signOut(auth)\r\n            console.log('Log-out sucess', logo);\r\n            dispatch(logout())\r\n        } catch (err) {\r\n            console.log('Error in Log-out', err);\r\n        }\r\n    }\r\n}\r\n","const types = {\r\n    GET_USER_REQUEST: 'GET_USER_REQUEST',\r\n    GET_USER_SUCCESS: 'GET_USER_SUCCESS',\r\n    GET_USER_FAILURE: 'GET_USER_FAILURE',\r\n    CLEAR_USER: 'CLEAR_USER',\r\n    UPDATE_INTENTOS: 'UPDATE_INTENTOS',\r\n    \r\n}\r\nexport default types;\r\n","import {db, auth} from '../../config/firebase'\r\nimport { collection, getDocs } from \"firebase/firestore\";\r\nimport { doc, getDoc, updateDoc} from \"firebase/firestore\";\r\nimport types from '../types/user';\r\nimport dbRef from '../../config/dbRef';\r\n\r\nconst getUserRequest = payload => ({\r\n    type: types.GET_USER_REQUEST,\r\n    payload:payload,\r\n});\r\n\r\nconst getUserSuccess = payload => ({\r\n    type:types.GET_USER_SUCCESS,\r\n    payload:payload,\r\n});\r\n\r\nconst getUserFailure = payload => ({\r\n    type:types.GET_USER_FAILURE,\r\n    payload:payload,\r\n});\r\n\r\nexport const clearUser = payload => ({\r\n    type:types.CLEAR_USER,\r\n    payload:payload,\r\n});\r\nconst updateIntntos = payload => ({\r\n    type:types.UPDATE_INTENTOS,\r\n    payload:payload,\r\n});\r\n\r\nexport const getUser = (uid) => {\r\n    return async (dispatch) => {\r\n        try{\r\n            dispatch(getUserRequest());\r\n            const docRef = doc(db, dbRef.user, uid);\r\n            const docSnap = await getDoc(docRef);\r\n\r\n            const cuenta = doc(db, dbRef.user, uid);\r\n            const cuentaSnap = await getDocs(collection(cuenta, \"cuenta\"));\r\n\r\n\r\n\r\n            let cuentaData = [];\r\n            cuentaSnap.forEach(doc => {\r\n                cuentaData.push({id:doc.id,...doc.data()});\r\n            });\r\n            console.log('data obtenido de usuario cuenta');\r\n            console.log(cuentaData);\r\n\r\n\r\n            if (docSnap.exists()) {\r\n                let user={\r\n                    birthday:docSnap.data().birthday,\r\n                    city:docSnap.data().city,\r\n                    country : docSnap.data().country,\r\n                    email : docSnap.data().email,\r\n                    lastName : docSnap.data().lastName,\r\n                    name : docSnap.data().name,\r\n                    phone : docSnap.data().phone,\r\n                    photo : docSnap.data().photoUrl,\r\n                    recursos : docSnap.data().recursos,\r\n                    mensajes : docSnap.data().mensajes,\r\n                    code : docSnap.data().code,\r\n                    codeAfiliate : docSnap.data().codeAfiliate,\r\n                    isAfiliate : docSnap.data().isAfiliate,\r\n                }\r\n                dispatch(getUserSuccess({user:user,cuenta:cuentaData}));\r\n            } else {\r\n                dispatch(getUserFailure('No existe el usuario'));\r\n                console.log(\"[Actions][user][getUser]:Error No existe el usuario\");\r\n            }\r\n            \r\n        } catch(error){\r\n            dispatch(getUserFailure(error));\r\n            console.log(\"[Actions][user][getUser]:\", error);\r\n        }\r\n    };\r\n};\r\nexport const updateIntentos = (idCuenta, idExamen) => {\r\n    return async (dispatch) => {\r\n        try {\r\n            const userId = auth.currentUser.uid;\r\n            const cuenta = doc(db, dbRef.user, userId,'cuenta',idCuenta);\r\n            //update cuenta intentos\r\n            const cuentaSnap = await getDoc(cuenta);\r\n            const examenes = cuentaSnap.data().examenes;\r\n    \r\n            examenes.forEach((examen)=>{\r\n                if(examen.id === idExamen){\r\n                    examen.isResolve = true;\r\n                }\r\n            });\r\n\r\n            console.log(cuentaSnap.data().intentos+ \": esta es l cantidad de intentos disponibles\");\r\n            await updateDoc(cuenta, {intentos:cuentaSnap.data().intentos-1, examenes:examenes});\r\n\r\n            dispatch(getUser(userId));\r\n\r\n            console.log(\"se redujo los intentos\");\r\n        } catch(e){\r\n            console.log(e);\r\n        }\r\n    }\r\n}\r\nexport const fetchUsers = (payload) => {\r\n    return dispatch => {\r\n        dispatch(getUserRequest(payload));\r\n        getDocs(collection(db,'user'))\r\n        .then((response)=>{\r\n            let user =[]\r\n            response.forEach((doc)=>{\r\n                console.log(doc.data());\r\n                console.log('datos recogido aqui')\r\n                user.push(doc.data());\r\n            });\r\n            return user;\r\n        }).then( user =>console.log(\"log\"))\r\n        /*\r\n\r\n        const user = await getDocs(collection(db, \"user\"));\r\n        let data = [];\r\n        user.forEach((doc) => {\r\n            data.push(doc.data())\r\n        });\r\n        dispatch(successGetUsers(data))*/\r\n    };\r\n}\r\n\r\nexport const _fetchUsers = async () => {\r\n    try {\r\n        const querySnapshot = await getDocs(collection(db, '_user'));\r\n        let users = [];\r\n\r\n        querySnapshot.forEach((doc) => {\r\n            users.push({ id: doc.id, ...doc.data() });\r\n        });\r\n\r\n        return { users, error: null };\r\n    } catch (error) {\r\n        console.error(\"Error al obtener usuarios:\", error);\r\n        return { users: [], error: error.message };\r\n    }\r\n};","import React,{useState,useEffect,useRef } from 'react';\r\nimport {Link} from 'react-router-dom';\r\nimport NavBarMenu from './navBarMenu';\r\nimport { ReactComponent as Logo }  from '../assets/images/logo.svg';\r\nimport {useSelector,useDispatch} from 'react-redux';\r\n\r\nimport {startLogOut} from '../redux/actions/auth';\r\nimport {clearUser} from '../redux/actions/user';\r\nimport './style.css';\r\n//icono de usuario\r\nimport { FaUser } from 'react-icons/fa';\r\n//import { FaFacebookF, FaInstagram,FaTwitter,FaEnvelope} from 'react-icons/fa';\r\n\r\nexport default function Navbar() {\r\n\r\n  //const reduxAuth = useSelector(state => state.auth);\r\n  const reduxUser = useSelector(state => state.user);\r\n\tconst [offset, setOffset] = useState(0);\r\n  const [user, setUser] = useState({});\r\n  //const [loading, setLoading] = useState(true);\r\n  const navbar = useRef(null);\r\n\r\n  const dispatch = useDispatch();\r\n\r\n    useEffect(() => {\r\n    window.onscroll = () => {\r\n        setOffset(window.pageYOffset)\r\n      }\r\n    }, [offset]);\r\n    \r\n    useEffect(() => {\r\n      setUser(reduxUser);\r\n    }, [reduxUser])\r\n    \r\n\r\n\r\n    const [toggleMenu, setToggleMenu] = useState(false);\r\n\r\n    const handleToggle = () =>{\r\n      setToggleMenu(!toggleMenu)\r\n      //{offset>25?\" fixed w-full px-40 sm:px-5 lg:px-40 py-4 text-white flex  justify-between bg-fondo text-14\"}\r\n      /**\r\n       * <div className={ offset>50?\"fixed w-full px-40 sm:px-5 lg:px-40 py-4 text-red-500 flex flex-col justify-between bg-fondo text-14 -mt-14 md:-mt-26 lg:-mt-14 sm:-mt-26\"\r\n          :\" fixed w-full px-40 sm:px-5 lg:px-40 py-4 text-white flex  justify-between bg-fondo text-14\"}>\r\n          :\"fixed w-full px-40 sm:px-5 lg:px-40 py-4 text-white flex  justify-between bg-fondo text-14 top-0\"\r\n       */\r\n    }\r\n\r\n\r\n  return (\r\n    <>\r\n\r\n\t<header id='bar' ref={navbar}  className=\"navigation\">\r\n\r\n\t\r\n\t<NavBarMenu  />\r\n\t<div className={ offset>50?\" fixed w-full px-40 sm:px-5 md:px-10 lg:px-10 py-4 text-white flex  justify-between bg-fondo text-14 top-0 z-50\"\r\n          :\" fixed w-full px-40 sm:px-5 md:px-10 lg:px-10 py-4 text-white flex  justify-between bg-fondo text-14 top-9 sm:top-0 lg:top-9\"}>\r\n        <h1 className=\"flex flex-row items-center\"><Logo  className=\"w-12 mr-3\" /><div className=\"text-2xl\"><span className=\"text-primary\">A</span><span>priori</span></div></h1>\r\n        <div className={toggleMenu ? \"md:flex  md:pt-0 pt-10 w-full md:w-auto\" : \"hidden md:flex\"} id=\"menu\">\r\n        <ul className='relative bg-fondo flex flex-row w-full left-0 sm:top-0 sm:top-16 sm:absolute sm:flex-col md:static md:flex-row pb-4'>\r\n          <Link className=\"text-center md:inline-block cursor-pointer hover:text-primary md:border-none py-2 px-3\" to=\"/\">INICIO</Link>\r\n          <a className=\"text-center md:inline-block cursor-pointer hover:text-primary md:border-none py-2 px-3\" href=\"/team\">NOSOTROS</a>\r\n          <Link className=\"text-center md:inline-block cursor-pointer hover:text-primary md:border-none py-2 px-3 \" to=\"/pricing\">PLANES</Link>\r\n          <Link className=\"text-center md:inline-block cursor-pointer hover:text-primary md:border-none py-2 px-3\" to=\"/service\">SERVICIOS</Link>\r\n          <Link className=\"text-center md:inline-block cursor-pointer hover:text-primary md:border-none py-2 px-3\" to=\"/contact\">CONTÁCTANOS</Link>\r\n          <Link className=\"text-center md:inline-block cursor-pointer hover:text-primary md:border-none py-2 px-3\" to=\"/convocatoria\">CONVOCATORIAS</Link>\r\n          {\r\n            user.user?\r\n              <div className=\"dropdown inline-block relative \">\r\n                <div className=\"flex flex-row justify-center items-center cursor-pointer hover:text-primary py-2 rounded-full px-3 border-2 border-primary w-5/6 mx-auto\">\r\n                  <FaUser className='mx-1'/>\r\n                  <span className=\"mr-1\">{user.user.name}</span>\r\n                  <svg className=\"fill-current h-4 w-4\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\"><path d=\"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z\"/> </svg>\r\n                </div>\r\n                <ul className=\"dropdown-menu absolute hidden text-gray-700 py-2 -ml-12 rounded\">\r\n                  <li className=\"\">\r\n                    <div className='bg-gray-200 py-2 px-4 block border-b-2 border-gray-300'>\r\n                      <p><b>{user.user.name}</b></p>\r\n                      <p>{user.user.lastName}</p>\r\n                      <p className='text-xs'>{user.user.email}</p>\r\n                    </div>                    \r\n                  </li>\r\n                  <Link className=\"rounded-b bg-gray-200 hover:bg-gray-400 py-2 px-4 block whitespace-no-wrap cursor-pointer\" to=\"/profile\">Ir a Perfil</Link>\r\n                  <div className='bg-gray-200 py-2 px-4 block border-b-2 border-gray-300 hover:bg-gray-400 cursor-pointer' onClick={\r\n                    ()=>{\r\n                      dispatch(startLogOut());\r\n                      dispatch(clearUser());\r\n                    }\r\n                  }>Cerrar Sesión</div>\r\n                </ul>\r\n              </div>\r\n            :\r\n            <Link className=\"text-center md:inline-block cursor-pointer hover:text-primary py-2 rounded-full px-3  border-2 border-primary\" to=\"/login\">{'Iniciar Sesion'}</Link>\r\n          }\r\n          \r\n        </ul>\r\n        </div>\r\n        <div className= \"cursor-pointer md:hidden border-2 border-primary max-h-10\">\r\n            \r\n          <input onClick={handleToggle}  className=\"menu-btn hidden\" type=\"checkbox\" id=\"menu-btn\"/>\r\n          <label className=\"menu-icon block cursor-pointer md:hidden px-2 py-4 relative select-none\" htmlFor=\"menu-btn\">\r\n            <span className=\"navicon bg-white-darkest flex items-center relative\"></span>\r\n          </label>\r\n      </div>\r\n      </div>\r\n\t</header>\r\n    </>\r\n  )\r\n}\r\n","export default __webpack_public_path__ + \"static/media/aprioriblanco.3bbc2ef6.png\";","import React,{useState,useEffect} from 'react';\r\nimport { FaAngleRight } from 'react-icons/fa';\r\nimport { Link } from 'react-router-dom';\r\nimport ReactGa from 'react-ga';\r\nimport {useSelector} from 'react-redux';\r\nimport logoImg from '../../assets/images/aprioriblanco.png';\r\n\r\nexport default function Banner(props){\r\n    const reduxUser = useSelector(state => state.user);\r\n    const [user, setUser] = useState({});\r\n    const {tipo, idEvento} = props;\r\n    const [dateEvent, setDateEvent] = useState(new Date(props.hora));\r\n    const [cronometro, setCronometro] = useState({dia:'',hora:'',minuto:'',segundo:''})\r\n\r\n    var end = new Date(props.hora)\r\n    var _second = 1000;\r\n    var _minute = _second * 60;\r\n    var _hour = _minute * 60;\r\n    var _day = _hour * 24;\r\n\r\n\r\n    function showRemaining() {\r\n        var now = new Date();\r\n        var distance = end - now;\r\n        if (distance < 0) {\r\n            return;\r\n        }\r\n        setCronometro({\r\n            dia:Math.floor(distance / _day),\r\n            hora:Math.floor((distance % _day) / _hour),\r\n            minuto:Math.floor((distance % _hour) / _minute),\r\n            segundo:Math.floor((distance % _minute) / _second)\r\n        })\r\n    }\r\n    useEffect(()=>{\r\n        let timer = setInterval(() => showRemaining(), 1000);\r\n        // console.log('timer')\r\n        return () => {\r\n            // console.log(' se cerro timer')\r\n            clearInterval(timer);\r\n        }\r\n    });\r\n\r\n    const buttonAnalytics = (btn) => {\r\n        ReactGa.event({\r\n            category: 'Button',\r\n            action: 'Click button '+btn+' en home ',\r\n        })\r\n    }\r\n\r\n    useEffect(() => {\r\n      setUser(reduxUser);\r\n      console.log(reduxUser)\r\n    }, [reduxUser])\r\n    useEffect(() => {\r\n        setDateEvent(new Date(props.hora));\r\n        // console.log(dateEvent);\r\n        // console.log(nowState);\r\n    }, [props.hora])\r\n\r\n    return(\r\n    <>\r\n        <div className=\"h-screen w-full background-banner text-white flex justify-center sm:justify-center md:justify-center items-center sm:items-center lg:items-center md:items-center flex-col  pl-10 px-0 sm:px-5 md:px-0 lg:pl-0 md:pl-0 bg-center\">\r\n            <p className=\"text-center sm:text-center md:text-start mx-0 text-2xl\">Tu Futuro esta a punto de cambiar con Nosotros.</p>\r\n            \r\n            {\r\n                tipo === 'evento' ?<p className=\"text-4xl sm:text-3xl lg:text-3xl mt-4 font-bold\">Próximo Evento</p>:\r\n                <p className=\"text-4xl sm:text-3xl lg:text-3xl mt-4 font-bold\">Próximo Examen</p>\r\n            }\r\n            {/* <h1 className=\"text-8xl sm:text-3xl lg:text-3xlt\">Area Juridico:</h1> */}\r\n            <h1 className={`text-4xl  sm:text-2xl ${props.titulo.lenght>30?'lg:text-6xl':'lg:text-4xl'} text-primary w-1/2 sm:w-full md:w-1/2 sm:text-center text-start md:text-center lg:text-center`}>{props.titulo}</h1>\r\n            <div className=\"flex mt-5\">\r\n              {\r\n                new Date() < dateEvent ?\r\n                <>\r\n                  <div><div className=\"text-6xl  flex flex-col items-center  sm:text-3xl lg:text-6xl \">{cronometro.dia}:</div><div>Días</div></div>\r\n                  <div className=\"ml-2 flex flex-col items-center \"><div className=\"text-6xl ml-2  sm:text-3xl lg:text-6xl \">{cronometro.hora}:</div><div>Horas</div></div>\r\n                  <div  className=\"ml-2 flex flex-col items-center\"><div className=\"text-6xl ml-2  sm:text-3xl lg:text-6xl \">{cronometro.minuto}:</div><div>Minutos</div></div>\r\n                  <div className=\"ml-2 flex flex-col items-center\"><div className=\"text-6xl ml-2 sm:text-3xl lg:text-6xl \">{cronometro.segundo}</div><div>Segundos</div></div>\r\n                </>\r\n                :\r\n                <div className='flex flex-col text-center'>\r\n                <p className=\"text-4xl font-bold\">Exámen Finalizado{\r\n        \r\n                }</p>\r\n                <p className=\"text-base\">\r\n                  Estamos preparando todo para la próxima convocatoria.\r\n                </p>\r\n                </div>\r\n                \r\n              }  \r\n            </div>\r\n            <div className=\"flex mt-5 flex-col-reverse items-center sm:flex-col-reverse  sm:items-center lg:flex-row\" >\r\n                <Link onClick={()=>buttonAnalytics('Convocatorias')} className=\"text-center base sm:base lg:base  md:inline-block cursor-pointer hover:text-gray-500 py-2 rounded-full px-3 bg-white text-black mx-4 mt-0 sm:mt-3 lg:mt-0 \" to=\"/convocatoria\">Convocatorias</Link>\r\n                {\r\n                    tipo === 'evento' ?\r\n                    <Link\r\n                    onClick={()=>buttonAnalytics('Ver Detalles')}\r\n                        className=\" mx-3 text-center base sm:base lg:base cursor-pointer hover:text-gray-500 py-2 rounded-full px-3  bg-primary flex flex-row items-center\" \r\n                        to={`/events/${idEvento}`}\r\n                    >Ver Detalles< FaAngleRight  className=\"text-white \"/></Link>:\r\n                    <Link \r\n                    onClick={()=>buttonAnalytics('Ver Detalles')}\r\n                    className=\"mx-3 text-center base sm:base lg:base cursor-pointer hover:text-gray-500 py-2 rounded-full px-3  bg-primary flex flex-row items-center hover:bg-white hover:text-fondo\" to={{\r\n                        pathname: `/Details`,\r\n                        data: props.data\r\n                    }}>Prueba Gratis Ahora.</Link>\r\n                }\r\n\r\n            </div>\r\n            {\r\n              user.user===null?\r\n              <Link className=\"text-center base sm:base lg:base  md:inline-block cursor-pointer hover:text-gray-500 py-2 rounded-full border-2 border-primary px-3 text-primary mt-4 text-white mx-4 mt-0 sm:mt-3 lg:mt-4 \" to=\"/login\">Iniciar Sesión </Link>\r\n              :\r\n              <Link className=\"text-center base sm:base lg:base  md:inline-block cursor-pointer hover:text-gray-500 py-2 rounded-full border-2 border-primary px-3 text-primary mt-4 text-white mx-4 mt-0 sm:mt-3 lg:mt-4 \" to=\"/profille\">Ir a Perfil</Link>\r\n            }\r\n            \r\n        </div>\r\n        <div className=\"bg-primary px-12 py-4 text-xl flex justify-between flex-row items-center\">\r\n            <p\r\n                className='text-white text-center font-normal text-xl sm:text-sm md:text-xl'\r\n            >\r\n                Ahora Apriori te ayuda para el examen de ingreso a las ESFM\r\n            </p>\r\n            <Link to=\"/teacher\" className=\"bg-white text-primary px-4 py-2 rounded-md inline-block hover:bg-primary hover:text-white\">Comienza Ahora</Link>\r\n        </div>\r\n        <div className=\"bg-fondo px-12 py-4 text-xl flex justify-center flex-col items-center\">\r\n            <img className='w-32  my-2' src={logoImg}/>\r\n            <p  className=\"text-white text-center font-normal text-xl sm:text-sm md:text-xl my-2\">\r\n                {/* +<span>Apriori</span> es una plataforma de aprendizaje online que te ayudara a mejorar tu nivel de ingles. */}\r\n                Nuestra plataforma está diseñada de forma tan minuciosa que te brindará una experiencia en la que obtendrás mayor seguridad y confianza.\r\n            </p>\r\n            {/* <h1 className='text-primary my-4'>Nuestras Areas de accion:</h1>\r\n            <div className=\"flex flex-row w-1/2 justify-around  text-white text-center \">\r\n                <div className='flex flex-col items-center mx-2' >\r\n                    <GiInjustice className=\"w-12 h-12 mr-2\"/>\r\n                    <p className='font-medium text-white text-xl sm:text-sm'>Jurídico</p>\r\n                </div>\r\n                <div className='flex flex-col items-center mx-2'>\r\n                    <AiFillMedicineBox  className=\"w-12 h-12 mr-2\"/>\r\n                    <p className='font-medium  text-white text-xl sm:text-sm'>Medicina</p>\r\n                </div>\r\n                \r\n                <div className='flex flex-col items-center mx-2'>\r\n                    <FaChalkboardTeacher  className=\"w-12 h-12 mr-2\"/>\r\n                    <p className='font-medium  text-white text-xl sm:text-sm'>Profesores</p>\r\n                </div>\r\n                <div className='flex flex-col items-center mx-2'>\r\n                    <GiPoliceBadge className=\"w-12 h-12 mr-2 text-white\"/>\r\n                    <p className='font-medium text-white text-xl sm:text-sm'>Policial</p>\r\n                </div>\r\n            </div> */}\r\n        </div>\r\n    </>\r\n    );\r\n};\r\n","import React,{useState} from 'react';\r\nimport { FaAngleRight } from 'react-icons/fa';\r\nimport { ScrollMenu, VisibilityContext } from \"react-horizontal-scrolling-menu\";\r\nimport { Link } from \"react-router-dom\";\r\nimport ReactGA from 'react-ga';\r\n\r\n\r\nexport default function Card(props){\r\n          \r\n    const visibility = React.useContext(VisibilityContext)\r\n\r\n    const [data,setData] = useState(props.data.data);\r\n    const btnAnalitycs = (nombre) => {\r\n      ReactGA.event({\r\n        category: 'button-home-pruebas',\r\n        action: 'Click button:Ver Detalles:'+nombre\r\n      });\r\n    }\r\n\r\n    return (\r\n      <>\r\n        {\r\n          data ?\r\n          <div className=\"p-2 w-1/3 min-w-1/3 sm:w-full md:w-1/3 \">\r\n          <div className={`bg-fondo rounded mt-2 ${data.estado === 'activo' && 'border-4 border-primary' } `}>\r\n            <div className=\"card h-9/10 text-white m-3 flex flex-col justify-around\">\r\n              <div className=\"\">\r\n                <div className =\"text-white font-bold text-base uppercase text-center -mx-3\">{data.nombre}</div>\r\n                <hr className=\"color-primary\"/>\r\n                <p className=\"font-normal text-xs text-center -mx-3 my-3\">{data.descripcion}</p>\r\n              </div>\r\n              <div className='flex flex-col items-start'>\r\n                <div>\r\n                  <span className=\"font-regular text-primary\">Total de areas:</span> \r\n                  <span>  {data.materias.length}</span>\r\n                </div>\r\n                <div className=\"font-normal text-xs\"> \r\n                {/* <span className=\"font-bold text-primary\"> Colaboradores :</span>\r\n                  <ul>\r\n                    {data.colaboradores.map((colaborador,index)=>{\r\n                      return <li key={index}>{colaborador}</li>\r\n                    })}\r\n                  </ul> */}\r\n                  <span className=\"font-regular text-primary\"> Area :</span>\r\n                  <span className=\"\"> {data.area}</span>\r\n                  {/* <span className=\"font-regular text-primary\">{data.estado}</span>\r\n                  <span className=\"font-regular text-primary\">{props.id}</span> */}\r\n                </div>\r\n                \r\n              </div>\r\n              <div className=\"flex justify-center\">\r\n                {\r\n                  data.estado === 'activo' && \r\n                  <span className='flex flex-col justify-center items-center'>\r\n                    <p className='text-red-500'>Convocatoria Vigente</p>\r\n                    <Link \r\n                    onClick={()=>btnAnalitycs(data.nombre)}\r\n                    className=\"text-white font-normal mx-auto py-2 px-4 rounded-full my-3 hover:text-white hover:bg-primary border-2 border-primary bg-primary\" \r\n                    to={{\r\n                      pathname: `/Details`,\r\n                      data: {data: data,id:props.id},\r\n                    }}\r\n                    >\r\n                      Ver Detalles\r\n                    </Link>\r\n                  </span>\r\n                }\r\n                {\r\n                  data.estado === 'proximo' && \r\n                  <span className='flex flex-col justify-center items-center'>\r\n                    <p className='text-red-500'>Proximamente</p>\r\n                    <p className=\"text-white font-normal mx-auto py-2 px-4 rounded-full my-3 hover:text-white hover:bg-primary border-2 border-primary\">\r\n                      {data.fecha}</p>\r\n                    \r\n                  </span>\r\n                }\r\n                {\r\n                  data.estado === 'pasado' && \r\n                  <span className='flex flex-col justify-center items-center'>\r\n                    <p className='text-white'>Convocatoria Pasada</p>\r\n                    <p className=\"text-fondo font-normal mx-auto py-2 px-4 rounded-full my-3 hover:text-primary hover:bg-primary border-2 border-primary bg-white\">\r\n                      Contactanos\r\n                    </p>\r\n                  </span>\r\n                }\r\n               \r\n              </div>\r\n            </div>\r\n          </div>\r\n          </div>\r\n          :null\r\n        }\r\n      </>\r\n      \r\n        \r\n    );\r\n}","export default __webpack_public_path__ + \"static/media/logoBlanco.fe72c7a6.png\";","import React from \"react\";\r\nexport const Contactanos = (props) => {\r\n  const {type, texto, styles,mensaje} = props;\r\n\r\n    return (\r\n        <>\r\n          {\r\n            type==='border'?\r\n            <button className=\"text-center base sm:base lg:base  md:inline-block cursor-pointer hover:text-gray-500 py-2 rounded-full px-3  border-2 border-primary mr-3 mt-0 sm:mt-3 lg:mt-0\"\r\n                type=\"button\"\r\n                style={{ transition: \"all .15s ease\" }}\r\n              >\r\n                <a\r\n                //const url = `https://api.whatsapp.com/send?phone=5916188586&text=${mensaje}`;\r\n                  href={`https://api.whatsapp.com/send?phone=59161885865&text=${mensaje?mensaje:''}`}\r\n                  target=\"_blank\"\r\n                  rel=\"noopener noreferrer\"\r\n                >\r\n                  {texto}\r\n                </a>\r\n              </button>\r\n              :\r\n              type === 'fill'?\r\n              <button  className={\r\n                `border-primary border-2 px-5 py-2 rounded-3xl my-3 -bottom-px text-white bg-primary mt-12`\r\n              }>\r\n                <a\r\n                  href={`https://api.whatsapp.com/send?phone=59161885865&text=${mensaje?mensaje:''}`}\r\n                  target=\"_blank\"\r\n                  rel=\"noopener noreferrer\"\r\n                >\r\n                  {texto}\r\n                </a>\r\n              </button>:\r\n              type === 'text'?\r\n              <button  className={`font-bold  text-base fontWeight-thin`} style={styles}>\r\n                <a\r\n                  href={`https://api.whatsapp.com/send?phone=59161885865&text=${mensaje?mensaje:''}`}\r\n                  target=\"_blank\"\r\n                  rel=\"noopener noreferrer\"\r\n                >\r\n                  {texto}\r\n                </a>\r\n              </button>:\r\n           null\r\n\r\n          }\r\n        </>\r\n    );\r\n}\r\n\r\n","import React,{useState,useEffect, useRef} from 'react';\r\nimport { FaAngleRight ,FaAngleLeft} from 'react-icons/fa';\r\nimport { VisibilityContext } from \"react-horizontal-scrolling-menu\";\r\nimport ReactGA from 'react-ga';\r\nimport Card from './cardSimulacrum';\r\nimport { FaBalanceScale} from 'react-icons/fa';\r\nimport {db} from '../../config/firebase';\r\nimport dbRef from '../../config/dbRef';\r\nimport { collection, getDocs } from \"firebase/firestore\";\r\nimport image from '../../assets/images/logoBlanco.png';\r\nimport {Contactanos} from './../components/uiComponents';\r\n\r\nexport default function Simulacrum(props){\r\n\r\n    const[nac,setNac] = useState(true) \r\n    const[dep,setDep] = useState(false)\r\n    const [items, setItems] = useState([])\r\n    const [selected, setSelected]  = useState([])\r\n    const [position, setPosition] = useState(0)\r\n    const [data,setData] = useState({});\r\n    var elem = document.getElementById('element');\r\n    const [intervalo , setIntervalo] = useState(false);\r\n\r\n    const clientes = useRef(null);\r\n    const simulacros = useRef(null);\r\n    const ciudades = useRef(null);\r\n    const colaboradores = useRef(null);\r\n\r\n    var divElemento =  useRef(null);\r\n\r\n\r\n    const isItemSelected = (id) => !!selected.find((el) => el === id);\r\n\r\n    const handleClick = (id) => ({ getItemById, scrollToItem }) => {\r\n        const itemSelected = isItemSelected(id)\r\n    \r\n        setSelected((currentSelected) =>\r\n          itemSelected\r\n            ? currentSelected.filter((el) => el !== id)\r\n            : currentSelected.concat(id)\r\n        );\r\n      }\r\n    //hacer una funcion que suba los valores de las referencias cada 100 milisegundos\r\n    /**\r\n     * {data.clientesActuales}\r\n     * {data.simulacrosTotales}\r\n     * {data.ciudades}\r\n     * {data.colaboradores}\r\n\r\n     */\r\n    // useEffect(()=>{\r\n    //   const valor = setInterval(()=>{\r\n    //     console.log('intervalo')\r\n    //   },1000);\r\n    //   return () => {\r\n    //     clearInterval(valor);\r\n    //   };\r\n        \r\n    // },[])\r\n\r\n\r\n    const subirValores = () => {\r\n      // console.log('aquifirst')\r\n      // const intervalos = setInterval(() => {\r\n      //   console.log('aqui')\r\n      // }, 1000);\r\n    //   // clientes.current.innerHTML <= data.clientesActuales || simulacros.current.innerHTML <= data.simulacrosTotales || ciudades.current.innerHTML <= data.ciudades || colaboradores.current.innerHTML <= data.colaboradores\r\n    // if (true) {\r\n    //   const intervaldata = setInterval(() => {\r\n        \r\n    //     console.log('first')\r\n    //     // if( parseInt(clientes.current.innerHTML) <= data.clientesActuales ){\r\n    //     //   clientes.current.innerHTML = parseInt(clientes.current.innerHTML)+1;\r\n    //     // }else{\r\n    //     //   clientes.current.innerHTML = parseInt(data.clientesActuales)+1;\r\n    //     // }\r\n    //     // if( parseInt(simulacros.current.innerHTML) <= data.simulacrosTotales ){\r\n    //     //   simulacros.current.innerHTML = parseInt(simulacros.current.innerHTML)+1;\r\n    //     // }else{\r\n    //     //   simulacros.current.innerHTML = parseInt(data.simulacrosTotales)+1;\r\n    //     // }\r\n    //     // if( parseInt(ciudades.current.innerHTML) <= data.ciudades -1 ){\r\n    //     //   ciudades.current.innerHTML = parseInt(ciudades.current.innerHTML)+1;\r\n    //     // }else{\r\n    //     //   ciudades.current.innerHTML = parseInt(data.ciudades);\r\n    //     // } \r\n    //     // if( parseInt(colaboradores.current.innerHTML) <= data.colaboradores ){\r\n    //     //   colaboradores.current.innerHTML = parseInt(colaboradores.current.innerHTML)+1;\r\n    //     // }else{\r\n    //     //   colaboradores.current.innerHTML = parseInt(data.colaboradores)+1;\r\n    //     // }\r\n\r\n        \r\n    //   }, 50);\r\n    // }\r\n\r\n  }\r\n// activo  boool\r\n\r\n\r\n\r\n\r\n  // window.addEventListener('scroll',  () => {\r\n  //      if(divElemento !==null)\r\n  //      {\r\n  //        //divElemento = document.getElementById('contentenedor')\r\n  //        console.log(divElemento);\r\n  //        if (divElemento.current.getBoundingClientRect().top < window.innerHeight-150  ) {\r\n  //           setIntervalo(true);\r\n  //         }\r\n  //      } q \r\n  //     // \r\n  // });\r\n\r\n\r\n  const btnAnalitycs = (btn) => {\r\n    ReactGA.event({\r\n      category: 'button',\r\n      action: 'Click button:'+ btn +' en home -> pruebas disponibles',\r\n    });\r\n  }\r\n\r\n  const scrollHandler = _ => {\r\n    if(clientes.current!==null)\r\n      if (divElemento.current.getBoundingClientRect().top < window.innerHeight-150  ) {\r\n        clientes.current.style.opacity = 1;\r\n        simulacros.current.style.opacity = 1;\r\n        ciudades.current.style.opacity = 1;\r\n        colaboradores.current.style.opacity = 1;\r\n    }\r\n  };\r\n  useEffect(() => {\r\n    window.addEventListener(\"scroll\", scrollHandler, true);\r\n    \r\n    return () => {\r\n      window.removeEventListener(\"scroll\", scrollHandler, true);\r\n    };\r\n  }, []);\r\n  \r\n\r\n\r\n    function LeftArrow() {\r\n        const { isFirstItemVisible, scrollPrev } = React.useContext(VisibilityContext)\r\n      \r\n        return (\r\n          <span disabled={isFirstItemVisible} onClick={() => scrollPrev()} className=\"bg-transparent flex items-center rounded-l-2xl\">\r\n            <FaAngleLeft size={50} className=\"top-1/2  text-primary\"/>\r\n          </span>\r\n        );\r\n      }\r\n      \r\n    function RightArrow() {\r\n      const { isLastItemVisible, scrollNext } = React.useContext(VisibilityContext)\r\n    \r\n      return (\r\n        <span disabled={isLastItemVisible} onClick={() => scrollNext()} className=\"bg-transparent  flex items-center rounded-r-2xl\">\r\n          <FaAngleRight size={50}  className=\"top-1/2 text-primary\"/>\r\n        </span>\r\n      );\r\n    }\r\n\r\n\r\n    useEffect(()=>{\r\n        getDocs(collection(db,dbRef.exam))\r\n        .then((response)=>{\r\n            let examenes =[]\r\n            response.forEach((doc)=>{\r\n              examenes.push(\r\n                {\r\n                  id:doc.id,\r\n                  data:doc.data(),\r\n                }\r\n              );\r\n            });\r\n            return examenes;\r\n        }).then( doc =>{setItems(doc);console.log(items)})\r\n    },[])\r\n\r\n    useEffect(()=>{\r\n      setData({\r\n        ciudades:props.datos.ciudades,\r\n        clientesActuales:props.datos.clientesActuales,\r\n        simulacrosTotales:props.datos.simulacrosTotales,\r\n        colaboradores:props.datos.colaboradores,\r\n      });\r\n    },[props.datos]);\r\n    \r\n    return(\r\n    <>\r\n        <div  className=\"bg-no-repeat bg-cover bg-white flex flex-row pt-0 pb-2 sm:flex-col md:flex-row sm:pt-10 md:pt-12\" >\r\n          <div className=\"h-96 w-2/5 pl-5 block sm:hidden md:block\" style={{backgroundImage:`url(${image})`,backgroundSize:'contain',backgroundRepeat:'no-repeat'}}></div>\r\n          <div className=\"h-96 w-3/5 bg-white px-20 flex flex-col justify-center sm:h-full md:h-96 sm:w-full md:w-3/5 sm:px-5 md:px-10 text-left sm:text-center md:text-left\">\r\n                 <div>\r\n                   <span className='text-primary font-bold text-base sm:text-2xl md:text-base'>¿Quiénes somos? </span>\r\n                   <div className='font-bold text-3xl sm:text-2xl md:text-3xl'>Somos un equipo multidisciplinario de profesionales que están comprometidos con tus resultados</div>\r\n                 </div>\r\n                 <div className=\"flex flex-row pt-3 sm:flex-col md:flex-row items-start sm:items-center md:text-start\">\r\n                   <div>< FaBalanceScale  className=\"text-primary text-5xl\"/></div>\r\n                   <div  className=\"px-7\">\r\n                    <div><span className='mb-5'>Apriori pura preparación, puro poder</span></div>\r\n                    {/* <div className='mt-5'>Slogan de la empresa Slogan de la empresa Slogan de la empresa Slogan de la empresa Slogan de la empresa Slogan de la empresa .</div> */}\r\n                    <Contactanos type={'fill'} texto={'Contactanos'} />\r\n                   </div>\r\n                 </div>\r\n          </div>\r\n        </div>\r\n        <div ref={divElemento} className='bg-gray-200 flex flex-row flex-wrap justify-around py-8'>\r\n          <div className='flex flex-col items-center '>\r\n            <div ref={clientes}  className='transition ease-in-out delay-150 font-bold text-5xl scale-0  duration-700 opacity-0'>{props.clients}</div>\r\n            <span>Clientes Actuales</span>\r\n          </div>\r\n          <div className='flex flex-col items-center'>\r\n            <div ref={simulacros} className='transition ease-in-out delay-150 font-bold text-5xl scale-0  duration-700 opacity-0'>{items.length}</div>\r\n            <span>Exámenes</span>\r\n          </div>\r\n          <div className='flex flex-col items-center  sm:hidden md:flex'>\r\n            <div ref={ciudades} className='transition ease-in-out delay-150 font-bold text-5xl scale-0  duration-700 opacity-0'>7</div>\r\n            <span>Ciudades</span>\r\n          </div>\r\n          <div className='flex flex-col items-center sm:hidden md:flex'>\r\n            <div ref={colaboradores} className='transition ease-in-out delay-150 font-bold text-5xl scale-0  duration-700 opacity-0'>{props.totalPreguntas}+</div>\r\n            <span>Preguntas</span>\r\n          </div>\r\n        </div>\r\n        <div className=\"bg-white pb-10 pt-10 px-20 sm:pt-10 sm:px-5 lg:pt-10 lg:px-20 -z-10\">\r\n            <h2 className=\"text-3xl sm:text-2xl lg:text-3xl text-primary text-start sm:text-center md:text-start\">PRUEBAS DISPONIBLES</h2>\r\n            <p className=\"mt-3 text-xl  sm:text-base md:text-xl font-regular text-start sm:text-center md:text-start\">Nuestro trabajo está desarrollado por profesionales en el área, a la par de la última tecnología para ofrecerle a usted la mejor preparación que todo nuestro equipo pueda brindarle.</p>\r\n            <div className=\"flex flex-col items-center mt-5 flex-wrap\">\r\n                <div>\r\n                    {/* <button \r\n                    onClick={()=>{\r\n                      setNac(true); \r\n                      setDep(false);\r\n                      btnAnalitycs('Activos');\r\n                    }} \r\n                    className={`border-primary border-2 px-5 py-2 rounded-t-3xl mr-3 -bottom-px ${nac?' text-white bg-primary':'text-primary'}`\r\n                 }>Activos</button> */}\r\n                    {/* <button\r\n                      onClick={()=>{\r\n                        setNac(false);\r\n                        setDep(true);\r\n                        btnAnalitycs('Previas');\r\n                        }}\r\n                      className={`border-primary border-2 px-5 py-2 rounded-t-3xl -bottom-px ${dep?' text-white bg-primary':'text-primary'}`}>\r\n                        Previas\r\n                    </button> */}\r\n                </div> \r\n                <div className=\"relative w-full h-auto px-8 pt-0 sm:px-2 md:px-8\" >\r\n                  {//<div  className={nac?\"absolute border-primary border-2 w-full h-full rounded-2xl -top-px\":\"absolute border-primary border-2 rounded-2xl w-full h-full hidden -top-px\"}>\r\n                  }\r\n                    {/* <div  className={`overflow-auto border-primary max-w-full border-2 w-full h-full rounded-2xl p-2 -top-px ${nac?'flex':'hidden'}`}> */}\r\n                    <div  className={`border-primary max-w-full w-full h-full rounded-2xl p-2 -top-px flex`}>\r\n                    {/* // <ScrollMenu\r\n                    //     LeftArrow={LeftArrow}\r\n                    //     RightArrow={RightArrow}\r\n                    //     >\r\n                    //     {items.map(({ id }) => (\r\n                    //         <Card\r\n                    //         itemId={id} // NOTE: itemId is required for track items\r\n                    //         title={id}\r\n                    //         key={id}\r\n                    //         onClick={handleClick(id)}\r\n                    //         selected={isItemSelected(id)}\r\n                    //         />)\r\n                    //     )}\r\n\r\n                    //     </ScrollMenu> */}\r\n                    <div className=\"flex justify-center flex-wrap sm:flex-wrap md:flex-wrap w-full lg:flex-wrap  w-full\">\r\n                    {\r\n                      items.map((examen,index) => (\r\n                        examen.data.visible?\r\n                          <Card key={index} data = {examen} id={examen.id}/>\r\n                          :null\r\n                          )\r\n                      )\r\n                    }\r\n                    </div>\r\n                        \r\n                    </div>\r\n                    {/* <div  className={`overflow-auto border-primary max-w-full justify-self-start border-2 w-full h-full rounded-2xl p-2 -top-px ${dep?'flex':'hidden'}`}>\r\n                      <div className=\"flex justify-start\">\r\n                      {\r\n                        items.map((examen,index) => (\r\n                          examen.data.visible?\r\n                            null\r\n                            :<Card key={index} data = {examen} id={examen.id}/>\r\n                            )\r\n                        )\r\n                      }\r\n                      </div>\r\n                    </div> */}\r\n                </div>\r\n\r\n              \r\n              {/* <button  className={\r\n                    `border-primary border-2 px-5 py-2 rounded-3xl my-3 -bottom-px text-white bg-primary`\r\n                }>Ver todos</button> */}\r\n            </div>\r\n            \r\n            \r\n            \r\n        </div>\r\n    </>\r\n    );\r\n};","export default __webpack_public_path__ + \"static/media/abogados.263efdab.jpg\";","import React,{useState} from 'react';\r\nimport backgroun from './../../assets/images/abogados.jpg'\r\nimport { FaMobileAlt} from 'react-icons/fa';\r\nimport { Contactanos } from './../components/uiComponents';\r\n\r\nexport default function ContentParallax(props){\r\n\r\n    var sectionStyle = {\r\n        width: \"100%\",\r\n        // height: \"80vh\",\r\n        background: \"url(\"+backgroun+\") fixed 50% 50%\",\r\n      };\r\n\r\n    return(\r\n    <>\r\n     <div  style={sectionStyle} className=\"p-12 sm:p-4 md:p-12 flex flex-row items-center\">\r\n         <div className=\"bg-white w-2/6 rounded p-10 sm:p-4 md:p-10 sm:w-full md:w-2/3\">\r\n          <h3 className=\"text-primary text-3xl font-bold leading-relaxed\">Beneficios Apriori</h3>\r\n          <ul className=\"ml-4 text-xl sm:text-base\"> \r\n            <li type=\"disc\" className=' mt-2'>Exámenes diseñados estrictamente con base en los ejes temáticos oficiales.</li>\r\n            <li type=\"disc\" className=' mt-2'>Preguntas elaboradas por especialistas que ocupan u ocuparon el cargo al que postulas.</li>\r\n            <li type=\"disc\" className=' mt-2'>Tendrás revisión de cada examen que des, PREGUNTA POR PREGUNTA. </li>\r\n            <li type=\"disc\" className=' mt-2'>Gráficos que te indicaran tu progreso y te ayudaran a identificar en qué materias necesitas reforzar.</li>\r\n            <li type=\"disc\" className=' mt-2'>Soporte personalizado. </li>\r\n            <li type=\"disc\" className=' mt-2'>Disponibilidad 24/7.</li>\r\n          </ul>\r\n         </div>\r\n         \r\n     </div>\r\n    </>\r\n    );\r\n};","import React from 'react';\r\n\r\nconst Thumbnail = ({ children, id, selectedKey }) => {\r\n  const show = (id === selectedKey);\r\n\r\n  return (\r\n    <div className={`object-fill display flex justify-center ${show ? 'opacity-100 transition-all duration-1000 ease-in-out' : 'opacity-0 h-0'}`}>\r\n      {children}\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default Thumbnail;","import React from 'react';\r\n\r\nconst DotIcon = ({ selected }) => {\r\n  const activeColor = \"#e84529\";\r\n  const inactiveColor = \"rgba(208, 224, 240)\";\r\n  const fillColor = selected ? activeColor : inactiveColor;\r\n\r\n  return (\r\n    <svg className=\"px-1 animate-pulse\" width=\"20px\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"circle\" role=\"button\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\r\n        <path fill={fillColor} d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\" />\r\n    </svg>\r\n  );\r\n}\r\n\r\nexport default DotIcon;","import React, {  useEffect } from 'react';\r\nimport Thumbnail from '../Thumbnail';\r\nimport DotIcon from '../DotIcon';\r\n\r\nconst Carousel = ({ children, time }) => {\r\n  const [index, setIndex] = React.useState(0);\r\n  const keys = children.map((child, index) => index);\r\n\r\n  useEffect(() => {\r\n    const interval = setInterval(() => {\r\n      const newIndex = (index + 1) % keys.length;\r\n      setIndex(newIndex);\r\n      // console.log('tiempo'+time);\r\n    }, time);\r\n    return () => clearInterval(interval);\r\n  });\r\n  \r\n  const _slides = () => {\r\n    return children.map((child, idx) => (\r\n      <Thumbnail key={idx} id={idx} selectedKey={index}>\r\n        {child}\r\n      </Thumbnail>\r\n    ));\r\n  }\r\n\r\n  const _sliderDots = () => {\r\n    return keys.map(key => (\r\n      <span key={key} onClick={() => setIndex(key)}>\r\n        {<DotIcon selected={key === index} />}\r\n      </span>\r\n    ));\r\n  }\r\n\r\n  return (\r\n    <div className=\"flex justify-center w-full ml-5 sm:ml-0 md:ml-5 my-3\">\r\n      <div className=\"grid grid-flow-row auto-rows-max\">\r\n        <div className=\"min-h-300\">\r\n          { _slides() }\r\n        </div>\r\n        <div className=\"flex justify-center mt-2\">\r\n          { _sliderDots() }\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default Carousel;","import React,{useState, useEffect} from 'react';\r\nimport backgroun from './../../assets/images/abogados.jpg'\r\nimport { FaRegBookmark} from 'react-icons/fa';\r\n//import { Carousel } from 'react-responsive-carousel';\r\nimport { Carousel } from './carousel/components';\r\n//import {images} from './carousel/mock';\r\nimport {db} from '../../config/firebase';\r\nimport { collection, getDocs } from \"firebase/firestore\";\r\n\r\n\r\nexport default function Comments(props){\r\n\r\n  const [images , setimages] = useState([]);\r\n  const [comentarios, setComentarios] = useState([]);\r\n\r\n\r\n  useEffect(()=>{\r\n    getDocs(collection(db,'galeria'))\r\n    .then((response)=>{\r\n        let img =[]\r\n        response.forEach((doc)=>{\r\n          img.push(doc.data());\r\n        });\r\n        return img;\r\n    }).then( doc =>{setimages(doc)})\r\n  },[])\r\n\r\n  useEffect(()=>{\r\n    getDocs(collection(db,'comentarios'))\r\n    .then((response)=>{\r\n        let comment =[]\r\n        response.forEach((doc)=>{\r\n          comment.push(doc.data());\r\n        });\r\n        return comment;\r\n    }).then( doc =>{setComentarios(doc)})\r\n  },[])\r\n\r\n\r\n\r\n  return(\r\n    props.tema === 'claro'?\r\n    <>\r\n     <div className = \"p-8 items-center sm:p-5 md:p-8 bg-white\">\r\n         \r\n     <div className=\"flex flex-row justify-start sm:flex-col md:flex-row\">\r\n        <div  className=\"flex flex-row justify-center w-5/12  sm:w-full md:w-5/12\">\r\n         <Carousel time={5000}>\r\n         { \r\n           images.map((image, index) => \r\n             <div\r\n             className=\" bg-black w-full border-2 border-white\"\r\n             key={index}>\r\n               <img src={image.url} alt={image.alt} />\r\n               <p className=\"text-center font-regular text-white leading-10 p-5 w-full\">{image.titulo}</p>\r\n             </div>\r\n           )\r\n         }\r\n       </Carousel>\r\n          {/* <h3\r\n            className=\"text-primary text-2xl font-bold leading-relaxed\"\r\n          >Beneficios Apriori</h3>\r\n          <ul\r\n            className=\"ml-4\"\r\n          > \r\n            <li type=\"disc\" className=' text-xl mt-2'>Exámenes diseñados estrictamente con base en los ejes temáticos oficiales.</li>\r\n            <li type=\"disc\" className=' text-xl mt-2'>Preguntas elaboradas por especialistas que ocupan u ocuparon el cargo al que postulas.</li>\r\n            <li type=\"disc\" className=' text-xl mt-2'>Tendrás revisión de cada examen que des, PREGUNTA POR PREGUNTA. </li>\r\n            <li type=\"disc\" className=' text-xl mt-2'>Gráficos que te indicaran tu progreso y te ayudaran a identificar en qué materias necesitas reforzar.</li>\r\n            <li type=\"disc\" className=' text-xl mt-2'>Soporte personalizado. </li>\r\n            <li type=\"disc\" className=' text-xl mt-2'>Disponibilidad 24/7.</li>\r\n          </ul> */}\r\n        </div>\r\n        <div className=\" w-6/12  sm:w-full md:w-6/12 p-4 \">\r\n        <h3\r\n            className=\"text-primary text-2xl font-bold leading-relaxed\"\r\n          >Testimonio de Clientes</h3>\r\n      <h2 className=\"font-medium text-4xl leading-10 my-5 w-2/4 sm:w-full nd:w-full sm:text-base md:text-xl text-left sm:text-center md:text-left\">Comprueba lo que dicen nuestros clientes sobre nosotros</h2>\r\n      \r\n        <Carousel time={5000}>\r\n        { \r\n          comentarios.map((image, index) => \r\n            <div \r\n            className=\"flex flex-row justify-start items-start w-full p-8 sm:justify-center sm:items-center sm:w-full md:w-full sm:p-4 md:p-4 sm:flex-col md:flex-row\"\r\n            key={index}>\r\n              <FaRegBookmark className=\"text-primary text-3xl self-start \"/>\r\n              <div className=\"ml-5 text-left sm:text-center md:text-left sm:ml-0 md:ml-3\">\r\n                  <p className=\"font-medium text-xl leading-10 pl-3 w-full sm:pl-0 md:pl-3\">{image.message}</p>\r\n                  <p className=\"font-medium pt-5 pl-3  sm:pl-0 md:pl-3\">{image.autor}</p>\r\n                  <p className=\"font-bold pl-3  sm:pl-0 md:pl-3\">{image.cargo}</p>\r\n              </div>\r\n              \r\n              \r\n            </div>\r\n          )\r\n        }\r\n      </Carousel>\r\n        </div>\r\n\r\n      \r\n      </div>\r\n      \r\n     </div>\r\n    </>:\r\n    <>\r\n    <div className = \"p-20 items-center bg-fondo sm:p-5 md:p-8\">\r\n        \r\n     <h1 className=\"text-primary text-xl sm:text-center md:text-left\">Testimonio de Clientes</h1>\r\n     <h2 className=\"font-medium text-4xl leading-10 my-5 w-2/4 text-white  sm:w-full md:w-2/4 sm:text-base md:text-xl text-left sm:text-center md:text-left\">Comprueba lo que dicen nuestros clientes sobre nosotros</h2>\r\n     <div className=\"flex flex-row justify-start sm:flex-col md:flex-row\">\r\n       <div  className=\"flex flex-row justify-center w-5/12  sm:w-full md:w-5/12\">\r\n         <Carousel time={5000}>\r\n         { \r\n           images.map((image, index) => \r\n             <div\r\n             className=\" bg-black w-full border-2 border-white\"\r\n             key={index}>\r\n               <img src={image.url} alt={image.alt} />\r\n               <p className=\"text-center font-regular text-white leading-10 p-5 w-full\">{image.titulo}</p>\r\n             </div>\r\n           )\r\n         }\r\n       </Carousel>\r\n       </div>\r\n       <div className=\" w-6/12 sm:w-full md:w-6/12 a\">\r\n       <Carousel time={5000}>\r\n       { \r\n         comentarios.map((image, index) => \r\n           <div \r\n           className=\"flex flex-row justify-start items-start w-full p-8 h-full\"\r\n           key={index}>\r\n             <FaRegBookmark className=\"text-primary text-3xl\"/>\r\n             <div className=\"ml-5 sm:ml-0 md:ml-3\">\r\n                 <p className=\"font-medium text-xl sm:text-base md:text-xl leading-10 pl-3 w-full text-white sm:pl-0 md:pl-3\">{image.message}</p>\r\n                 <p className=\"font-medium pt-5 pl-3 text-white  sm:pl-0 md:pl-3\">{image.autor}</p>\r\n                 <p className=\"font-bold pl-3 text-white  sm:pl-0 md:pl-3\">{image.cargo}</p>\r\n             </div>\r\n             \r\n             \r\n           </div>\r\n         )\r\n       }\r\n     </Carousel>\r\n       </div>\r\n\r\n     \r\n     </div>\r\n     \r\n    </div>\r\n   </>\r\n    );\r\n};\r\n","import React,{useState, useEffect} from 'react';\r\nimport {db} from '../../config/firebase';\r\nimport { collection, getDocs } from \"firebase/firestore\";\r\nimport { FaBookmark } from \"react-icons/fa\";\r\n\r\nconst Card =(props)=>{\r\n  return(\r\n    <div className=\"w-1/3 sm:w-full md:w-1/3 mx-3  rounded-lg border-primary border-2 bg-black flex flex-col justify-between pb-3\">\r\n      <img className=\"rounded-t-lg\" src={props.url} alt=\"\"/>\r\n      <div className=\"p-5\">\r\n        <h5 className=\"text-primary font-bold\">{props.titulo}</h5>\r\n        <p className=\"text-white font-regular\">{props.descripcion}</p>\r\n        \r\n      </div>\r\n      {\r\n        props.active?\r\n        <button className=\"bg-primary text-white font-bold mx-auto my-2 py-2 px-4 rounded-lg\">Ver mas</button> \r\n        :\r\n        <button className=\"bg-primary text-white font-bold mx-auto my-2 py-2 px-4 rounded-lg\">Proximamente</button> \r\n      }\r\n      \r\n    </div>\r\n  )\r\n}\r\n\r\nconst CardService = (props) =>{\r\n  return(\r\n      <div className=\"flex flex-row sm:flex-col md:flex-row items-start justify-center h-auto p-5 bg-white rounded-lg\">\r\n          <FaBookmark className=\"text-5xl text-primary mx-0 sm:mx-auto md:mx-0 sm:text-3xl md:text-5xl\"/>\r\n          <div className=\" pl-5 sm:pl-0 md:pl-5 text-left sm:text-center md:text-left\">\r\n              <p className=\"text-xl font-bold text-fondo\">{props.titulo}</p>\r\n              <p className=\"font-regular\">{props.descripcion}</p> \r\n          </div>            \r\n      </div>\r\n   );\r\n}\r\n\r\nexport default function NextQuestion(props){\r\n\r\n  const [events, setEvents] = useState([]);\r\n\r\n  useEffect(()=>{\r\n    getDocs(collection(db,'eventos'))\r\n    .then((response)=>{\r\n        let event =[]\r\n        response.forEach((doc)=>{\r\n          event.push(doc.data());\r\n        });\r\n        return event;\r\n    }).then( doc =>{console.log(doc); setEvents(doc)})\r\n  },[])\r\n\r\n    return(\r\n    <>\r\n\r\n        <div  className=\"bg-black bg-no-repeat bg-cover\" >\r\n        <div className=\"flex flex-col items-center justify-around w-full p-8\">\r\n            <p className=\"font-bold text-primary text-xl text \">\r\n            ¿Cómo funciona Apriori?\r\n            </p>\r\n            <p className=\"w-1/2 text-center text-3xl sm:text-xl md:text-3xl font-bold mt-5 tracking-wider sm:w-full md:w-1/2 text-white\">Rapido y Sencillo</p>\r\n        </div>\r\n          {/*<div className=\"h-full z-10 flex flex-col w-full items-center\"> \r\n            <div className=\"w-full bg-black  p-5\">\r\n            <h1 className=\"text-white text-4xl text-center leading-relaxed font-normal\">Ultimos eventos.</h1>\r\n            <p className=\"text-white text-center leading-relaxed -mt-3\">Puedes ver toda la informacion ahora</p>\r\n            </div>\r\n            \r\n            {/* <h1 className=\"text-primary\">subtitulo deseado</h1> */}\r\n            {/* <div className=\"w-full flex flex-row mt-5 justify-center\"> */}\r\n            {/*\r\n              events.map((event, index)=>{\r\n                return(\r\n                  <Card \r\n                  key={index}\r\n                  titulo={event.titulo}\r\n                  descripcion={event.descripcion}\r\n                  url={event.url}\r\n                  />\r\n                )\r\n              })\r\n              */\r\n            }\r\n          {/* </div>\r\n          </div> */}\r\n          <div className=\"grid grid-cols-2 sm:grid-cols-1 md:grid-cols-2 gap-6 auto-rows-min h-auto w-full p-8 pb-16 sm:px-4 md:px-24 \">\r\n            <CardService titulo=\"1. Encuentra la convocatoria a la que postulas.\" \r\n            descripcion=\"Podras ver en nuestro sitio todas las convovatorias vigentes, elige la convocatoria a la que postulas y empieza tu preparación.\r\n            \" />\r\n            <CardService titulo=\"2. Prepárate en cualquier momento.\" \r\n            descripcion=\"Al ser usuario de Apriori, la plataforma esta disponible 24/7, solo debes elegir el momento adecuado para empezar a prepararte.\r\n            \" />\r\n            <CardService titulo=\"3. Disfruta de un contenido estructurado.\" \r\n            descripcion=\"Nuestras pruebas siguen los parametros establecidos por su respectiva convocatoria, tales como: tiempo cronometrado y preguntas del eje temático.\r\n            \" />\r\n            <CardService titulo=\"4. Comienza cuando quieras.\" \r\n            descripcion=\"Genera confianza con Apriori, optimiza tu tiempo y crea familiaridad con el examen que rendirás, además te mostramos los resultados y avance en tus pruebas.\r\n            \" />\r\n        </div>\r\n\r\n        </div>\r\n    </>\r\n    );\r\n};","import React,{useState} from 'react';\r\nimport { FaFacebookF, FaInstagram,FaTwitter,FaEnvelope} from 'react-icons/fa';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst Card =(props)=>{\r\n  return(\r\n    <div className=\"w-1/3 mx-3 min-h-5/6 rounded-lg border-white border-2 bg-black flex flex-col justify-between pb-3\">\r\n      <img className=\"min-h-1/3\" src={props.urlImg} alt=\"\" />\r\n      <div className=\"p-5\">\r\n        <h5 className=\"text-primary font-bold\">props.title</h5>\r\n        <p className=\"text-white font-regular\">Descripciones del evento donde se muestra las caracteristicas y todo lo respecto al evento </p>\r\n        \r\n      </div>\r\n      <button className=\"bg-primary text-white font-bold mx-auto my-2 py-2 px-4 rounded-lg\">Ver mas</button> \r\n    </div>\r\n  )\r\n}\r\n\r\nexport default function Footer(props){\r\n\r\n    return(\r\n    <>\r\n\r\n        <div  className=\"h-auto bg-gray-100 z-10 flex flex-col items-center mt-5 w-full sm:items-start\" >\r\n            {\r\n                props.mensaje ?\r\n                <div className=\"w-full bg-fondo p-10 sm:p-3 md:p-5 flex flex-row sm:flex-col md:flex-row items-center justify-around text-left sm:text-center md:text-left\">\r\n                    <div className=\" w-3/4 sm:w-full md:w-1/2 p-3\">\r\n                        <h1 className=\"text-primary\">Para cualquier Duda o Consulta</h1>\r\n                        <p className=\"text-extrabold text-3xl text-white\">Confíe su futuro a nuestro equipo de profesionales</p>\r\n                    </div>\r\n                    <div >\r\n                        <button className=\"bg-primary text-white font-normal mx-auto my-2 py-2 px-4 rounded-full\">Contáctanos</button>\r\n                    </div>\r\n                </div>:null\r\n            }\r\n          <div className=\"p-10 z-10 flex flex-row items-start sm:flex-col sm:p-2 w-full md:flex-row\"> \r\n            <div className=\"w-full m-3 flex flex-col text-start sm:hidden md:flex\">\r\n                <h1 className=\"mb-5 text-regular text-xl text-start \">Empresa</h1>\r\n                <ul>\r\n                    <li>\r\n                    <Link to=\"/terminos\" className='hover:text-primary'>Terminos y condiciones</Link>\r\n                    </li>\r\n                    <li>\r\n                        <Link to=\"/politicas\" className='hover:text-primary'>Politicas de privacidad</Link>\r\n                    </li>\r\n                    <li>\r\n                    <a href='https://wa.me/59175413873' target='_blank' rel=\"noopener noreferrer\" className='hover:text-primary'>\r\n                       Soporte\r\n                      </a>\r\n                    </li>\r\n                    <li>\r\n                    <Link to=\"/contact\"  className='hover:text-primary'>Contacto</Link>\r\n                    </li>\r\n                </ul>\r\n            </div>\r\n            <div className=\"w-full m-3 flex flex-col text-start sm:hidden md:flex\"> \r\n                <h1  className=\"mb-5 text-xl\">Enlaces Rápidos</h1>\r\n                <ul>\r\n                    <li>\r\n                        <Link to=\"/\" className='hover:text-primary'>Inicio</Link>\r\n                    </li>\r\n                    <li>\r\n                        <Link to=\"/team\" className='hover:text-primary'>Nosotros</Link>\r\n                    </li>\r\n                    <li>\r\n                        <Link to=\"/pricing\" className='hover:text-primary'>Planes</Link>\r\n                    </li>\r\n                    <li>\r\n                        <Link to=\"/service\" className='hover:text-primary'>Servicio</Link>\r\n                    </li>\r\n                    <li>\r\n                        <Link to=\"/contact\" className='hover:text-primary'>Contactos</Link>\r\n                    </li>\r\n                </ul>\r\n            </div>\r\n            {\r\n                props.contact ?\r\n               null\r\n              :<div className=\"w-full m-3 -ml-10 sm:-ml-0 sm:p-3 sm:text-center\">\r\n              <h1 className=\"mb-5 text-xl\">Suscríbete Con Nosotros</h1>\r\n              <p>Suscríbase para recibir las últimos convocatorias y recursos</p>\r\n              <div className='sm:flex sm:flex-col'>\r\n              <input \r\n              id='footer-message'\r\n              type=\"text\" \r\n              placeholder=\"Suscríbase ahora ...\" \r\n              className=\"bg-white border border-primary rounded-lg p-2 mt-5\"/>\r\n              <button \r\n              className=\"bg-primary text-white font-bold mx-auto my-2 py-2 px-4 rounded mt-5\"\r\n              onClick={()=>{\r\n                const message = document.getElementById('footer-message').value;\r\n                if(message.length>0){\r\n                  window.open(`https://api.whatsapp.com/send?phone=59161885865&text=${message}`);\r\n                }else{\r\n                  alert('Escribenos tu mensaje');\r\n                }\r\n              }}\r\n              >Suscríbete</button>\r\n              </div>  \r\n            </div> \r\n            }\r\n            \r\n            <div className=\"w-full m-3 sm:text-center\">\r\n                <h1 className=\"mb-5 text-3xl\"><span className=\"mb-5 text-primary\">A</span>priori</h1>\r\n                <a className=\"font-bold\" href=\"mailto:apriori.bolivian@gmail.com\" >apriori.bolivian@gmail.com</a>\r\n                <p><a href='https://wa.me/+591 61885865' target='_blank' rel=\"noopener noreferrer\" className='hover:text-primary'>\r\n                +591 61885865\r\n                      </a></p>\r\n                \r\n                    \r\n            </div>\r\n\r\n            \r\n          </div>\r\n          <div className=\"flex flex-row justify-around items-center w-full bg-gray-200 py-4 sm:flex-col sm:p-3 sm:text-center\">\r\n              <div>© Copyright Reserved to AprioriBolivia by R&L Dev</div>\r\n              \r\n              <div className=\"flex flex-row justify-between w-1/3 sm:w-full sm:justify-center\">\r\n                  <div className=\"flex flex-row items-center sm:mx-2\">\r\n                      <FaFacebookF  className=\"text-xl\"/>\r\n                      <p className='sm:hidden md:block block'>Facebook</p>\r\n                  </div>\r\n                  <div className=\"flex flex-row items-center sm:mx-2\">\r\n                      <FaInstagram className=\"text-xl\"/>\r\n                      <p className='sm:hidden md:block block'>Instangram</p>\r\n                  </div>\r\n                  <div className=\"flex flex-row items-center sm:mx-2\">\r\n                      <FaEnvelope  className=\"text-xl\"/>\r\n                      <p className='sm:hidden md:block block'>Correo</p>\r\n                  </div>\r\n\r\n              </div>\r\n          </div>\r\n        </div>\r\n    </>\r\n    );\r\n};","export default __webpack_public_path__ + \"static/media/activate.97893bcf.png\";","export default __webpack_public_path__ + \"static/media/fepch.547eeda6.png\";","export default __webpack_public_path__ + \"static/media/pnud.939bea2a.png\";","export default __webpack_public_path__ + \"static/media/usfx3.9d23e39a.png\";","export default __webpack_public_path__ + \"static/media/warmilab.5d17d7aa.png\";","import React,{useState} from 'react';\r\nimport activate from '../../assets/images/logos/activate.png';\r\nimport fepch from '../../assets/images/logos/fepch.png';\r\nimport pnud from '../../assets/images/logos/pnud.png';\r\nimport solides from '../../assets/images/logos/solides.png';\r\nimport usfx3 from '../../assets/images/logos/usfx3.png';\r\nimport warmilab from '../../assets/images/logos/warmilab.png';\r\n\r\n\r\nexport default function Company(props){\r\n\r\n    return(\r\n    \r\n      <div  className=\"bg-fondo flex flex-col items-center w-full sm:items-start md:items-center p-8\" >\r\n        <h1 className=\"text-white text-4xl text-center leading-relaxed font-normal\">Apoyado por :</h1>\r\n        <div className=\"flex flex-row flex-wrap p-8 sm:p-2 md:p-8 justify-center items-center w-full sm:items-start md:items-center\">\r\n          <a\r\n            href=\"https://activatebolivia.org/\"\r\n            target=\"_blank\"\r\n            className=\"max-w-1/4 sm:max-w-1/2 md:max-w-1/4 sm:m-1 md:m-4 m-4 bg-white\" \r\n            rel = 'noopener noreferrer'\r\n          >\r\n            <img src={activate} alt=\"activate\"/>\r\n          </a>\r\n          <a\r\n            href=\"https://www.solydesaceleradora.org/\"\r\n            target=\"_blank\"\r\n            rel = 'noopener noreferrer'\r\n            className=\"max-w-1/4 sm:max-w-1/2 md:max-w-1/4 sm:m-1 md:m-4 m-4 bg-white\" \r\n          >\r\n          <img src={'https://www.solydesaceleradora.org/wp-content/themes/aceleradora-solydes/assets/img/logo-header.jpg'} alt=\"solides\"/>\r\n          </a>\r\n          <a\r\n            target={'_blank'}\r\n            href=\"https://www.usfx.bo/\"\r\n            rel = 'noopener noreferrer'\r\n            className=\"max-w-1/4 sm:max-w-1/2 md:max-w-1/4 sm:m-1 md:m-4 m-4\"\r\n          >\r\n            <img src={usfx3} alt=\"usfx3\"/>\r\n          </a>\r\n          <a\r\n            href='https://www.facebook.com/ActivateSucreBolivia'\r\n            target={'_blank'}\r\n            rel = 'noopener noreferrer'\r\n            className=\"max-w-1/4 sm:max-w-1/2 md:max-w-1/4 sm:m-1 md:m-4 m-4\" \r\n          >\r\n            <img src={warmilab} alt=\"warmilab\"/>\r\n          </a>\r\n          <a\r\n            href='https://www.facebook.com/Federacion-de-Empresarios-Privados-de-Chuquisaca-FEPCH-101234058189721/'\r\n            target={'_blank'}\r\n            rel = 'noopener noreferrer'\r\n            className=\"max-w-1/4 sm:max-w-1/2 md:max-w-1/4 sm:m-1 md:m-4 m-4\" \r\n          >\r\n            <img src={fepch} alt=\"fepch\"/>\r\n          </a>\r\n          <a\r\n            href='https://www.undp.org/es/'\r\n            target={'_blank'}\r\n            rel = 'noopener noreferrer' \r\n            className=\"max-w-1/4 sm:max-w-1/2 md:max-w-1/4 sm:m-1 md:m-4 m-4 h-1/4\" \r\n            \r\n          >\r\n            <img src={pnud}alt=\"pnud\" style={{\r\n              maxHeight:'200px'\r\n            }}/>  \r\n          </a>\r\n        </div>\r\n      </div>\r\n    \r\n    );\r\n};","const types = {\r\n  GET_DATA_REQUEST: 'GET_DATA_REQUEST',\r\n  GET_DATA_SUCCESS: 'GET_DATA_SUCCESS',\r\n  GET_DATA_FAILURE: 'GET_DATA_FAILURE',\r\n}\r\nexport default types;\r\n","import {db} from '../../config/firebase'\r\nimport { collection, getDocs } from \"firebase/firestore\";\r\n//import { doc, getDoc } from \"firebase/firestore\";\r\nimport types from '../types/dataPage';\r\n// import dbRef from '../../config/dbRef';\r\n\r\n// const getDataPageRequest = payload => ({\r\n//     type: types.GET_DATA_REQUEST,\r\n//     payload:payload,\r\n// });\r\n\r\nconst getDataPageSuccess = payload => ({\r\n    type:types.GET_DATA_SUCCESS,\r\n    payload:payload,\r\n});\r\n\r\nconst getDataPageFailure = payload => ({\r\n    type:types.GET_DATA_FAILURE,\r\n    payload:payload,\r\n});\r\n\r\nexport const getDataPage = (payload) => {\r\n    return async (dispatch) => {\r\n        try{\r\n        \r\n            getDocs(collection(db,'dataPage'))\r\n            .then((response)=>{\r\n               let data = {};\r\n                response.forEach((doc)=>{\r\n                    data = doc.data();\r\n                });\r\n\r\n                return data;\r\n            }).then( data =>\r\n                {dispatch(getDataPageSuccess(data))\r\n                console.log(data)}\r\n            )\r\n            .catch(error =>\r\n                dispatch(getDataPageFailure(error))\r\n            )\r\n            \r\n        } catch(error){\r\n            console.log(\"[Actions][user][getUser]:\", error);\r\n        }\r\n    };\r\n}","import { auth, db } from \"../../config/firebase\";\r\nimport dbRef from \"../../config/dbRef\";\r\nimport { collection, getDocs } from \"firebase/firestore\";\r\nimport { doc, addDoc, updateDoc, query, where, getDoc } from \"firebase/firestore\";\r\n\r\n\r\nexport const getAllMaterias = () => \r\n    new Promise(async (resolve, reject) => {\r\n        try {\r\n            const docRef = collection(db, dbRef.materias);\r\n            const docSnap = await getDocs(docRef);\r\n            const materiasList = [];\r\n\r\n            docSnap.forEach((doc) => {\r\n                materiasList.push({ id: doc.id, ...doc.data() });\r\n            });\r\n\r\n            resolve(materiasList);\r\n        } catch (error) {\r\n            console.log(error);\r\n            reject(error);\r\n        }\r\n    })\r\n\r\nexport const getMaterias = (id) =>\r\n    new Promise(async (resolve, reject) => {\r\n        try {\r\n            const docRef = doc(db, dbRef.exam, id);\r\n            const docSnap = await getDoc(docRef);\r\n\r\n            if (docSnap.exists()) {\r\n                console.log(\"Document data:\", docSnap.data());\r\n            } else {\r\n                // docSnap.data() will be undefined in this case\r\n                console.log(\"No such document!\");\r\n            }\r\n            resolve(docSnap.data().materias);\r\n        } catch (error) {\r\n            console.log(error);\r\n            reject(error);\r\n        }\r\n    });\r\n\r\nexport const getQuestion = (id) =>\r\n    new Promise(async (resolve, reject) => {\r\n        try {\r\n            const q = query(collection(db, id));\r\n            const arrayPreguntas = await getDocs(q);\r\n            const preguntas = [];\r\n            arrayPreguntas.forEach((doc) => {\r\n                preguntas.push(doc.data());\r\n            });\r\n            shffleArray(preguntas);\r\n            preguntas.map((pregunta) => shffleArray(pregunta.opciones));\r\n            console.log(preguntas);\r\n            resolve(preguntas);\r\n        } catch (error) {\r\n            console.log(error);\r\n            reject(error);\r\n        }\r\n    });\r\n\r\nexport const createExam = async (idExamen, cantidadExamenes, cantidadPreguntas, iduser, idCuentaExamn, idExamenGeneral, plan) => {\r\n    try {\r\n        let examenPreguntas = [];\r\n        let cantidadMaterias = 0;\r\n\r\n        const materias = await getMaterias(idExamen);\r\n        cantidadMaterias = materias.length;\r\n        //cantidad de preguntas / cantidad de materias * cantidad de examenes\r\n        await Promise.all(materias.map(async (materia) => {\r\n            let materiaPreguntas = {};\r\n            const preguntas = await getQuestion(materia.Id);\r\n            materiaPreguntas = {\r\n                idMateria: materia.Id,\r\n                nombre: materia.nombre,\r\n                preguntas: preguntas\r\n            };\r\n            examenPreguntas.push(materiaPreguntas);\r\n        }));\r\n\r\n\r\n        let arrayPreguntaPorMateria = calculatePreguntaPorMateria(cantidadPreguntas, cantidadMaterias);\r\n\r\n\r\n        let examenFinal = []\r\n        for (let i = 1; i <= cantidadExamenes; i++) {\r\n            let examenTemp = [];\r\n\r\n            arrayPreguntaPorMateria.forEach((element, index) => {\r\n                const inicio = (i - 1) * element;\r\n                const final = i * element - 1;\r\n                const materia = index;\r\n                /**\r\n                 * \r\n                 * idExamen(pin):\"4s4Fm0qx1qz0D5tZiJkj\"\r\n                    idCuenta(pin):\"o8OJXLCsGYrH6NfzLX1j\"\r\n                    plan(pin):\"Premium\"\r\n                    idMateria(pin):\"DerechoConstitucional\"\r\n                    materia(pin):\"Derecho Constitucional\"\r\n                 */\r\n\r\n                let newmateria = {\r\n                    idExamen: idExamenGeneral,\r\n                    idCuenta: idCuentaExamn,\r\n                    plan: plan,\r\n                    idMateria: examenPreguntas[materia].idMateria,\r\n                    materia: examenPreguntas[materia].nombre,\r\n                    preguntas: examenPreguntas[materia].preguntas.slice(inicio, final + 1)\r\n                };\r\n\r\n                examenTemp.push(newmateria);//psuch\r\n\r\n            })\r\n            examenFinal.push(examenTemp);\r\n\r\n        }\r\n\r\n        const examenes = doc(db, dbRef.user + '/' + iduser);\r\n        console.log(examenFinal);\r\n        let arrayIDs = [];\r\n\r\n        await Promise.all(examenFinal.map(async (examn, index) => {\r\n            let examennuevo = await addDoc(collection(examenes, 'examenes'), {\r\n                id: index,\r\n                examen: examn,\r\n                idCuentaExamn: idCuentaExamn\r\n            });\r\n\r\n            arrayIDs.push({ id: examennuevo.id, isResolve: false });\r\n        }));\r\n        //(db, dbRef.user, iduser, 'cuenta', idCuentaExamn)\r\n        //const messageRef = doc(db, \"rooms\", \"roomA\", \"messages\", \"message1\");\r\n        const refCuenta = doc(db, dbRef.user, iduser, 'cuenta', idCuentaExamn); //doc(db, dbRef.user + '/' + iduser+'/cuenta/',idCuentaExamn);\r\n        await updateDoc(refCuenta, { examenes: arrayIDs });\r\n\r\n        alert(\"Examen creado correctamente\");\r\n    } catch (error) {\r\n        console.error(\"Error adding document: \", error);\r\n    }\r\n}\r\n\r\nconst calculatePreguntaPorMateria = (cantidaPreguntas, cantMaterias) => {\r\n    const cantPorMateria = Math.floor(cantidaPreguntas / cantMaterias);\r\n    let resto = Math.abs(cantPorMateria * cantMaterias - cantidaPreguntas);\r\n    console.log(cantPorMateria, resto)\r\n    const nPPorMateria = [];\r\n    for (let i = 0; i < cantMaterias; i++) {\r\n\r\n        if (resto > 0) {\r\n            nPPorMateria.push(cantPorMateria + 1);\r\n            resto = resto - 1;\r\n        } else {\r\n            nPPorMateria.push(cantPorMateria);\r\n        }\r\n    }\r\n    return nPPorMateria;\r\n}\r\n\r\nconst shffleArray = (inputArray) => inputArray.sort(() => Math.random() - 0.5);\r\n\r\n\r\n\r\n// let cantidaPreguntas = 7;\r\n// let cantMaterias =3 ;\r\n// let cantidadExamenes = 2;\r\n\r\n// let arrayMaterias = [0,0,0];\r\n\r\n\r\n//console.log(examenFinal);\r\n\r\n","import { Dialog, Transition } from '@headlessui/react'\r\nimport { Fragment, useEffect, useState } from 'react'\r\n\r\nexport default function Modal({visible, title, onClose, children}) {\r\n  let [isOpen, setIsOpen] = useState(false)\r\n\r\n  useEffect(() => {\r\n    setIsOpen(visible)\r\n  }, [visible]);\r\n\r\n\r\n  return (\r\n    <>\r\n      <Transition appear show={isOpen} as={Fragment}>\r\n        <Dialog\r\n          as=\"div\"\r\n          className=\"fixed inset-0 z-10\"\r\n          onClose={()=>onClose()}\r\n        >\r\n          <div className=\"min-h-screen px-4 text-center\">\r\n            <Transition.Child\r\n              as={Fragment}\r\n              enter=\"ease-out duration-300\"\r\n              enterFrom=\"opacity-0\"\r\n              enterTo=\"opacity-100\"\r\n              leave=\"ease-in duration-200\"\r\n              leaveFrom=\"opacity-100\"\r\n              leaveTo=\"opacity-0\"\r\n            >\r\n              <Dialog.Overlay className=\"fixed inset-0 bg-fondo\" style={{opacity:0.5}} />\r\n            </Transition.Child>\r\n\r\n            {/* This element is to trick the browser into centering the modal contents. */}\r\n            <span\r\n              className=\"inline-block h-screen align-middle\"\r\n              aria-hidden=\"true\"\r\n            >\r\n              &#8203;\r\n            </span>\r\n            <Transition.Child\r\n              as={Fragment}\r\n              enter=\"ease-out duration-300\"\r\n              enterFrom=\"opacity-0 scale-95\"\r\n              enterTo=\"opacity-100 scale-100\"\r\n              leave=\"ease-in duration-200\"\r\n              leaveFrom=\"opacity-100 scale-100\"\r\n              leaveTo=\"opacity-0 scale-95\"\r\n            >\r\n              <div className=\"inline-block w-full max-w-xl p-5 my-5 overflow-hidden text-left align-middle transition-all transform bg-white shadow-xl border-2 border-gray-300 rounded-2xl\">\r\n                {title?<Dialog.Title\r\n                          as=\"h3\"\r\n                          className=\"text-lg text-center font-medium leading-6 text-primary py-2 border-b border-solid border-blueGray-200\"\r\n                          >\r\n                          {title}\r\n                        </Dialog.Title>:null\r\n                }\r\n                {children}\r\n\r\n              </div>\r\n            </Transition.Child>\r\n          </div>\r\n        </Dialog>\r\n      </Transition>\r\n    </>\r\n  )\r\n}\r\n","import React, {Fragment, useState, useEffect} from 'react';\r\n\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { login_, startClearError } from '../../redux/actions/auth';\r\nimport {Redirect} from 'react-router-dom';\r\nimport Modal from '../components/Modal';\r\n\r\nimport {useForm} from 'react-hook-form';\r\n//link  to Profile\r\nconst Form =  () => {\r\n    const reduxAuth = useSelector(state => state.auth);\r\n    const dispatch = useDispatch();\r\n\r\n    const { register, handleSubmit, formState: { errors } } = useForm();\r\n    //const [user , setUser] = useState({});\r\n    const [isLoading, setIsLoading] = useState(false);\r\n    const [errorModal, setErrorModal] = useState(false);\r\n    const [isAuthenticated, setIsAuthenticated] = useState(false);\r\n\r\n    const closeErrorModal = () => {\r\n        setErrorModal(false);\r\n        dispatch(startClearError());\r\n    }\r\n\r\n    const onSubmit = (data, e) => {\r\n        dispatch(login_(data));\r\n    };\r\n\r\n    useEffect(() => {\r\n        if(reduxAuth.error){\r\n            console.log('hay un error de loggin');\r\n            setErrorModal(true);\r\n        }\r\n        setIsLoading(reduxAuth.loading);\r\n        setIsAuthenticated(reduxAuth.isAuthenticated);\r\n\r\n    }, [reduxAuth]);\r\n\r\n    return(\r\n        <Fragment>\r\n            {isAuthenticated?<Redirect to=\"/profile\" />:null}\r\n            <form onSubmit={handleSubmit(onSubmit)} className=\"flex flex-col justify-center w-full\">\r\n            <h1 className=\" text-red-500 text-center\">Inicio de sesion</h1>\r\n                <input\r\n                    icon=\"user\"\r\n                    name=\"user\"\r\n                    placeholder=\"Correo electronico\"\r\n                    type=\"email\"\r\n                    className=\"my-3 p-2 border-2 focus:border-0 focus:border-red-0 focus:border-red-300\"\r\n\r\n                    {...register(\"user\", {required:true})}\r\n                    \r\n                />\r\n                <input\r\n                    name=\"password\"\r\n                    type=\"password\"\r\n                    \r\n                    placeholder=\"Contraseña\"\r\n                    className=\"my-3 p-2 border-2 focus:border-0 focus:border-red-0 focus:border-red-300\"\r\n                    {...register(\"password\", {required:true})}\r\n                />\r\n                {errors.password?.type === 'required' && \"Debe introducir una contraseña\"}\r\n                {errors.user?.type === 'required' && \"Email esta vacio\"}\r\n\r\n                {!isLoading?<button className=\"py-2 px-4 border-2 border-primary font-semibold rounded-lg shadow-md text-white bg-primary hover:bg-transparent hover:text-primary\">\r\n                    iniciar sesion\r\n                </button>:\r\n                <button className=\"py-2 px-4 border-2 border-primary font-semibold rounded-lg shadow-md text-white bg-primary\" disabled>\r\n                    <center>\r\n                    <div className='flex'>\r\n                        <div className=\"mr-1\">cargando</div>\r\n                        <div className={`h-2.5 w-2.5 bg-current rounded-full mr-1 animate-bounce`}></div>\r\n                        <div className={`h-2.5 w-2.5 bg-current rounded-full mr-1 animate-bounce200`}></div>\r\n                        <div className={`h-2.5 w-2.5 bg-current rounded-full mr-1 animate-bounce400`}></div>\r\n                    </div>\r\n                    </center>\r\n                </button>\r\n                }\r\n                {/* <p>\r\n                Password:{\r\n                    user?user.password?user.password:'':''\r\n                }\r\n                </p>\r\n               \r\n                <p> \r\n                Usuario:{\r\n                    user?user.user?user.user:'':''\r\n                }\r\n                </p> */}\r\n    \r\n      \r\n            </form>\r\n            <Modal\r\n            visible={errorModal}\r\n            title=\"Ocurrio un error\"\r\n            onClose={()=>closeErrorModal()}\r\n            >\r\n                <div className=\"mt-2\">\r\n                <p className=\"text-sm text-gray-1000\">\r\n                    Error al iniciar sesión, Verifique sus datos e intentelo nuevamente\r\n                </p>\r\n                </div>\r\n                <div className=\"mt-4\">\r\n                <button\r\n                type=\"button\"\r\n                className=\"inline-flex justify-center px-4 py-2 text-sm font-medium text-red-100 bg-red-500 border border-transparent rounded-md hover:bg-red-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-red-500\"\r\n                onClick={()=>closeErrorModal()}\r\n                >\r\n                Aceptar\r\n                </button>\r\n                </div>\r\n            </Modal>\r\n        </Fragment>\r\n    )\r\n}\r\n\r\nexport default Form;\r\n","import React from \"react\";\r\nimport { Background } from \"react-parallax\";\r\nimport Banner from \"../components/banner\";\r\n//crear componente funcinal\r\nconst HeaderPage = (props) => {\r\n    return (\r\n        <>\r\n            <div className=\"w-full text-white pt-52 pb-36 sm:pt-24 sm:pb-16 md:pt-52 md:pb-36\" style={{backgroundImage:`url(${props.image})`,backgroundSize:'cover' }}>\r\n              <div className=\"flex flex-col justify-center items-center py-5 md:py-5 sm:px-3\" style={{backgroundColor:'#00000099'}}>\r\n                <h3>{props.titulo}</h3>\r\n                <h1 className=\"text-5xl my-5 sm:text-2xl md:text-5xl sm:my-2 md:my-5\">{props.mensaje}</h1>\r\n                <h3>Inicio / {props.nombre}</h3>\r\n              </div>  \r\n            </div>\r\n        </>\r\n    );\r\n}\r\n\r\nexport default HeaderPage;","import React from \"react\";\r\nconst title = (props) => {\r\n\r\n    return (\r\n        <>\r\n            <div className=\"flex flex-col items-center justify-around w-full p-8\">\r\n            <p className=\"font-bold text-primary text-xl text \">{props.titulo}</p>\r\n            <p className=\"w-1/2 text-center text-3xl sm:text-xl md:text-3xl font-bold mt-5 tracking-wider sm:w-full md:w-1/2\">{props.mensaje}</p>\r\n        </div>\r\n        </>\r\n    );\r\n}\r\n\r\nexport default title;","export default __webpack_public_path__ + \"static/media/team.cd7e4cee.png\";","export default __webpack_public_path__ + \"static/media/redes.181674e5.png\";","export default __webpack_public_path__ + \"static/media/banner.faf693c4.png\";","export default __webpack_public_path__ + \"static/media/leo.a95be329.png\";","export default __webpack_public_path__ + \"static/media/abi.d6c2c3b0.jpg\";","export default __webpack_public_path__ + \"static/media/rimber.cbf93321.jpg\";","import React from \"react\";\r\nimport Header from \"../components/headerPage\";\r\nimport { FaFacebook, FaInstagram  } from \"react-icons/fa\";\r\nimport {IoIosGlobe} from \"react-icons/io\";\r\nimport {MdDesignServices} from \"react-icons/md\";\r\nimport {RiUser5Line} from \"react-icons/ri\";\r\nimport {HiDesktopComputer} from \"react-icons/hi\";\r\n\r\n// import \r\n\r\nimport  Comments  from \"../components/comments\";\r\nimport Footer from \"../components/footer\";\r\nimport Title from \"../components/title\";\r\nimport image from \"../../assets/images/team.png\";\r\nimport redes from \"../../assets/images/redes.png\";\r\nimport banner from \"../../assets/images/banner.png\";\r\nimport leo from \"../../assets/images/team/leo.png\";\r\nimport abi from \"../../assets/images/team/abi.jpg\";\r\nimport rimber from \"../../assets/images/team/rimber.jpg\";\r\n\r\n\r\nfunction Card(props) {\r\n    return (\r\n        <div class=\" m-8 bg-gray-400 flex justify-center items-center\">\r\n        <div class=\"flex flex-col justify-between w-72 sm:w-96 h-96 bg-white bg-center text-gray-800 shadow-md overflow-hidden cursor-pointer\" \r\n            style={{\r\n            backgroundImage: `url(${props.foto})`,\r\n            backgroundSize: \"cover\",\r\n            backgroundPosition: \"center\",\r\n            backgroundFilter: \"grayscale(100%)\"\r\n\r\n            \r\n            }}>\r\n            <div class=\"flex justify-between items-center ml-4 pr-8\">\r\n            <div class=\"bg-primary text-white bg-opacity-95 shadow px-2 py-1 flex items-center font-bold text-xs rounded\"></div>\r\n            <div class=\"bg-primary w-10 h-12 shadow flex flex-col-reverse p-2 text-center font-bold text-white rounded-b-full\">\r\n            {\r\n              props.icon === 'ceo' ? <RiUser5Line className=\"text-2xl text-center\"/> :\r\n              props.icon === 'design' ? <MdDesignServices className=\"text-2xl text-center\"/>:\r\n              <HiDesktopComputer className=\"text-2xl text-center\"/>\r\n            }\r\n\r\n            </div>\r\n            </div>\r\n            <div class=\"bg-white bg-opacity-95 shadow-md rounded-r-xl p-4 flex flex-col mr-4 mb-2\">\r\n                <h3 class=\"text-xl font-bold pb-2\">{props.nombre}</h3>\r\n                <h3 class=\"text-xl text-primary font-bold pb-2\">{props.cargo}</h3>\r\n                <p class=\"text-gray-500 text-xs\">{props.descripcion}</p>\r\n            \r\n            </div>\r\n        </div>\r\n        </div>\r\n\r\n        // <div className={` grayscale flex items-center justify-center w-1/3 sm:w-full md:w-1/3 sm:flex-col md:flex-row`}>\r\n        //   <div className=\"h-full w-full m-4\" style={{\r\n        //     backgroundImage: `url(${props.foto})`,\r\n            \r\n        //     contain:' ',\r\n        //     backgroundSize:'cover',\r\n        //     //filter: 'grayscale(100%)',\r\n        //     minHeight:'450px',\r\n        //   }}>\r\n        //     <img src={props.foto} alt=\"\"/>\r\n        //     <div className=\"bg-fondo h-full w-full px-5 py-8 sm:text-center md:text-left text-left\">\r\n        //         <h1 className=\"text-2xl mt-2 font-bold text-white\">{props.nombre}</h1>\r\n        //         <p className=\"font-base text-white\">{props.cargo}</p> \r\n        //         {/* <a className=\"font-sm text-white\" href={`mailto:${props.correo}`}>{props.correo}</a>\r\n        //         <p className=\"font-base text-white mt-5\">{props.descripcion}</p> */}\r\n        //     </div>\r\n        //   </div>\r\n          \r\n         \r\n        // </div>\r\n    );\r\n}\r\n//crear componente funcinal\r\nconst Team = () => {\r\n    return (\r\n        <>\r\n        <Header titulo={\"Quienes somos\"} nombre={\"Nosotros\"} mensaje={\"Tu Empresa de Aprendizaje\"} image={image} />\r\n        <div className=\"bg-white w-full py-20 px-32 sm:px-4 md:px-32\">\r\n            <div className=\"flex flex-row justify-around sm:flex-col md:flex-row text-left sm:text-center md:text-left\">\r\n                <div className=\"w-1/2 pr-32 sm:w-full sm:pr-0 md:w-1/2 md:pr-32\">\r\n                    <h1 className=\"text-primary\">Quienes somos</h1>\r\n                    <p  className=\"my-5 font-bold text-3xl pr-10 text-justify sm:text-center md:text-justify sm:pr-0 md:pr-10\">\r\n                    <span className=\"text-primary\" >A</span>priori una plataforma pionera.\r\n                    </p>\r\n                    <p className=\"text-justify\">\r\n                        Enfocada en la preparación de postulantes a convocatorias que exigen un examen de competencias.\r\n                    </p>\r\n                    <p className=\"text-justify\">\r\n                        Somos un equipo multidisciplinario de profesionales que se especializan en el desarrollo de soluciones tecnológicas para la gestión de las convocatorias.\r\n                    </p>\r\n                    {/* <Link >as</Link> */}\r\n                    <button className=\"bg-primary text-white py-2 px-4 rounded-full mt-5\">Inicia ahora</button>\r\n                </div>\r\n                <div className=\"bg-equipo bg-cover w-1/2 sm:w-0 md:w-1/2\" style={{backgroundImage:`url(${banner})`}}></div>\r\n            </div>\r\n            {/* <div  className=\"flex flex-row justify-between mt-14\" >\r\n                <div>\r\n                    <h1 className=\"text-2xl\"><span  className=\"text-4xl text-primary mb-8\">01.</span> mision</h1>\r\n                    <p className=\"mt-3\">la mision de apriori es la mision de apriori cumpliendo la mision que todos tenemos\" osea aqui la mision\"</p>\r\n                </div>\r\n                <div>\r\n                    <h1 className=\"text-2xl\"><span className=\"text-4xl text-primary mb-8\">02.</span> vision</h1>\r\n                    <p className=\"mt-3\">la mision de apriori es la mision de apriori cumpliendo la mision que todos tenemos\" osea aqui la mision\"</p>\r\n                </div>\r\n                <div>\r\n                    <h1 className=\"text-2xl\"><span className=\"text-4xl text-primary mb-8\">03.</span> enfoque</h1>\r\n                    <p className=\"mt-3\">la mision de apriori es la mision de apriori cumpliendo la mision que todos tenemos\" osea aqui la mision\"</p>\r\n                </div>\r\n            </div> */}\r\n        </div>\r\n        <div className=\"flex flex-row justify-around w-full p-8\" style={{backgroundImage:`url(${redes})`,backgroundPosition:'bottom'}}>\r\n            <div className=\"flex flex-col items-center\">\r\n                <FaFacebook className=\"text-3xl text-primary\"/>\r\n                <h1 className=\"text-5xl mt-2 text-white\">600+</h1>\r\n                <p className=\"text-white\">Facebook</p>\r\n            </div>\r\n            <div className=\"flex flex-col items-center\">\r\n                <FaInstagram className=\"text-3xl text-primary\"/>\r\n                <h1 className=\"text-5xl mt-2 text-white\">60+</h1>\r\n                <p className=\"text-white\">Instagram</p>\r\n            </div>\r\n            <div className=\"flex flex-col items-center text-primary\">\r\n                <IoIosGlobe className=\"text-3xl text-primary\"/>\r\n                <h1 className=\"text-5xl mt-2 text-white\">8000+</h1>\r\n                <p className=\"text-white\">Visitas Web</p>\r\n            </div>\r\n        </div>\r\n        <Title titulo=\"Nuestro Equipo\" mensaje=\"Miembros del equipo de expertos para obtener el mejor servicio\"/>\r\n        <div className=\"w-full bg-gray-900 flex flex-row flex-wrap justify-center\">\r\n            <Card foto={abi} icon={'ceo'} nombre={'Abigail Mamani'} cargo={'CEO'} correo={'abigailmam95@gmail.com'} descripcion={'Administradora de empresas, parte de diferentes programas para el fortalecimiento empresarial de negocios presentes en Bolivia.'} />\r\n             <Card foto={rimber} icon={'web'} nombre={'Rimber R. Uyuquipa Mamani'} cargo={'CTO'} correo={'rimber.re95@gmail.com'} descripcion={'Mi motivación ha sido siempre aprender tecnologias nuevas que me ayuden a resolver problemas tecnológicos con métodos vanguardistas.'} />\r\n            <Card foto={leo} icon={'design'} nombre={'Leonel Avendaño Villarroel'} cargo={'CTO'} correo={'leonel.sis12@gmmail.com'} descripcion={'Apasionado de la tecnología y de como la misma podria cambiar la realidad y prometer nuevas alternativas.'} />\r\n        </div>\r\n\r\n        <Comments />\r\n        <Footer/>\r\n        \r\n        </>\r\n    );\r\n}\r\n\r\nexport default Team;","export default __webpack_public_path__ + \"static/media/service.9310f7b4.png\";","import React from \"react\";\r\nimport Header from \"../components/headerPage\";\r\nimport { FaBookmark } from \"react-icons/fa\";\r\n//import  Comments  from \"../components/comments\";\r\nimport Footer from \"../components/footer\";\r\nimport Title from \"../components/title\";\r\nimport image from \"../../assets/images/service.png\";\r\nimport contact from \"../../assets/images/redes.png\";\r\nimport { Contactanos } from \"../components/uiComponents\";\r\n\r\nconst CardService = (props) =>{\r\n    return(\r\n        <div className=\"flex flex-row sm:flex-col md:flex-row items-start justify-center h-auto p-5\">\r\n            <FaBookmark className=\"text-5xl text-primary mx-0 sm:mx-auto md:mx-0 sm:text-3xl md:text-5xl\"/>\r\n            <div className=\" pl-5 sm:pl-0 md:pl-5 text-left sm:text-center md:text-left\">\r\n                <p className=\"text-xl font-bold text-fondo\">{props.titulo}</p>\r\n                <p className=\"font-regular\">{props.descripcion}</p> \r\n            </div>            \r\n        </div>\r\n     );\r\n}\r\n\r\nconst Contact = (props) =>{\r\n    return(\r\n        <div  className=\" flex flex-col items-center my-20 sm:my-10 md:my-20\" >\r\n        <div className=\"flex flex-row sm:flex-col md:flex-row justify-around items-center p-8 h-auto  tracking-wider w-full\" style={{backgroundImage:`url(${contact})`,backgroundPosition:'bottom'}}>\r\n            <div className=\"w-7/12 sm:w-full md:w-7/12 text-left sm:text-center md:text-left\">\r\n                <h1 className=\"text-3xl font-bold text-primary\">A<span className=\"text-3xl font-bold text-white\">priori</span></h1>\r\n                <p className=\"text-3xl text-white border-t-2 border-white mt-2 sm:text-xl md:text-3xl\">\r\n                ¿Necesitas evaluar a tu personal en algún tema específico?\r\n                </p> \r\n            </div>\r\n            \r\n            <div className=\"flex flex-row justify-center w-3/12\">\r\n                <Contactanos type={'fill'} texto={'Contactanos'}/>\r\n                \r\n            </div>\r\n        </div>\r\n      </div>\r\n     );\r\n}\r\n\r\n\r\n\r\n\r\n\r\nconst Service = () => {\r\n    return (\r\n        <>\r\n        <Header titulo={\"Que hacemos\"} nombre={\"servicios\"} mensaje={\"Preparate ahora mismo.\"} image={image}/>\r\n        <Title titulo=\"Nuestro Servicio\" mensaje=\"¿Cómo funciona Apriori?\"/>\r\n        <div className=\"grid grid-cols-2 sm:grid-cols-1 md:grid-cols-2 gap-4 bg-white auto-rows-min h-auto w-full px-32 sm:px-4 md:px-24 \">\r\n            <CardService titulo=\"1. Encuentra la convocatoria a la que postulas.\" \r\n            descripcion=\"Podras ver en nuestro sitio todas las convovatorias vigentes, elige la convocatoria a la que postulas y empieza tu preparación.\r\n            \" />\r\n            <CardService titulo=\"2. Prepárate en cualquier momento.\" \r\n            descripcion=\"Al ser usuario de Apriori, la plataforma esta disponible 24/7, solo debes elegir el momento adecuado para empezar a prepararte.\r\n            \" />\r\n            <CardService titulo=\"3. Disfruta de un contenido estructurado.\" \r\n            descripcion=\"Nuestras pruebas siguen los parametros establecidos por su respectiva convocatoria, tales como: tiempo cronometrado y preguntas del eje temático.\r\n            \" />\r\n            <CardService titulo=\"4. Comienza cuando quieras.\" \r\n            descripcion=\"Genera confianza con Apriori, optimiza tu tiempo y crea familiaridad con el examen que rendirás, además te mostramos los resultados y avance en tus pruebas.\r\n            \" />\r\n        </div>\r\n    \r\n        <Contact/>\r\n\r\n        <Footer/>\r\n        \r\n        </>\r\n    );\r\n}\r\n\r\nexport default Service;","export default __webpack_public_path__ + \"static/media/contact.e95de7a9.jpg\";","import React,{useState} from \"react\";\r\nimport Header from \"../components/headerPage\";\r\nimport { FaFacebookSquare ,FaTwitter ,FaInstagramSquare} from \"react-icons/fa\";\r\nimport { GiSmartphone } from \"react-icons/gi\";\r\nimport { BiDirections } from \"react-icons/bi\";\r\nimport { AiOutlineMail } from \"react-icons/ai\";\r\nimport  Comments  from \"../components/comments\";\r\nimport Footer from \"../components/footer\";\r\nimport contact from \"../../assets/images/contact.jpg\";\r\n\r\n\r\nconst Contact = () => {\r\n  const [ciudad,setCiudad]= useState(\"abc\");\r\n    return (\r\n        <>\r\n        <Header titulo={\"Contacta con nosotros\"} nombre={\"Contacto\"} mensaje={\"Contáctanos ahora\"} image={contact}/>\r\n        <div className=\"h-auto w-full py-20 px-32 sm:px-4 md:px-20 sm:py-4 md:py-4 flex flex-row sm:flex-col md:flex-row justify-between\">\r\n            <div  className=\"w-1/2 sm:w-full md:w-1/2 p-10 flex flex-col justify-start text-left sm:text-center md:text-left\">\r\n                <p className=\"text-lg font-bold text-primary\">Envíanos un mensaje:</p>\r\n                <p className=\"text-3xl\">Formulario de contacto</p>\r\n                <input id=\"contact-name\" type=\"text\" className=\"w-full p-3 mt-3 my-1 bg-gray-200\" placeholder=\"Nombre\"/>\r\n                <input\r\n                  id=\"contact-email\"\r\n                type=\"text\" className=\"w-full p-3 my-1 bg-gray-200\" placeholder=\"Correo electronico\"/>\r\n                <div\r\n                className=\"flex flex-row justify-between items-center mt-3\">\r\n                  <input \r\n                  id=\"contact-phone\"\r\n                  type=\"text\" className=\"w-1/2 p-3 my-1 bg-gray-200 mr-3\" placeholder=\"Número telefonico\"/>   \r\n                  <select\r\n                  id=\"contact-city\"\r\n                  value={ciudad}\r\n                  className=\"w-1/2 p-3 my-1 bg-gray-200\"\r\n                  onChange={e => setCiudad(e.target.value)}\r\n                  name='ciudad' >\r\n                    <option value=\"0\">Ciudad de residencia</option>\r\n                    <option value=\"chuquisaca\">Chuquisaca</option>\r\n                    <option value=\"laPaz\">La Paz</option>\r\n                    <option value=\"cochabamba\">Cochabamba</option>\r\n                    <option value=\"oruro\">Oruro</option>\r\n                    <option value=\"potosi\">Potosi</option>\r\n                    <option value=\"tarija\">Tarija</option>\r\n                    <option value=\"pando\">Pando</option>\r\n                    <option value=\"beni\">Beni</option>\r\n                    <option value=\"santaCruz\">Santa Cruz</option>\r\n                  </select>\r\n                </div>\r\n                <textarea\r\n                id=\"contact-message\"\r\n                className=\"w-full p-3 my-1 bg-gray-200\" placeholder=\"Mensaje\"></textarea>\r\n                <button \r\n                onClick={() => {\r\n                  const name = document.getElementById('contact-name').value;\r\n                  const email = document.getElementById('contact-email').value;\r\n                  const phone = document.getElementById('contact-phone').value;\r\n                  const city = document.getElementById('contact-city').value;\r\n                  const message = document.getElementById('contact-message').value;\r\n                  window.open(`https://api.whatsapp.com/send?phone=59161885865&text=Nombre: ${name}%0AEmail: ${email}%0ATelefono: ${phone}%0ACiudad: ${city}%0AMensaje: ${message}`);\r\n\r\n                }}\r\n                className=\"w-1/3 sm:w-full md:w-1/3 p-3 mt-6 sm:mt-2 md:mt-6 bg-primary text-white rounded\">Enviar</button>\r\n\r\n</div>\r\n            <div className=\"w-1/2 sm:w-full md:w-1/2 p-10 sm:p-4 md:p-10 flex flex-col justify-start sm:justify-center md:justify-start mx-1\">\r\n            <p className=\"text-lg text-primary font-bold sm  text-left sm:text-center md:text-left\">¿Quíenes somos?\r\n            </p>\r\n            <p className=\"text-4xl  text-left sm:text-center md:text-left sm:text-2xl md:text-4xl\">\r\n            Apriori es la primera plataforma que te prepara para el examen de competencias.\r\n            </p>\r\n            <ol className=\"text-gray-500\">\r\n                <li className=\"flex flex-row mx-0 sm:mx-auto md:mx-0 my-3 ml-5 sm:ml-0 md:ml-5\"><a className=\"flex flex-row base\" href=\"mailto:apriori.bolivian@gmail.com\" ><AiOutlineMail size={25} className=\"mr-3\" color=\"#e84529\"/>Email:apriori.bolivian@gmail.com</a></li>\r\n                <li className=\"flex flex-row mx-0 sm:mx-auto md:mx-0 my-3 ml-5 sm:ml-0 md:ml-5\">\r\n                  <a\r\n                    href=\"https://wa.me/56975555555\"\r\n                    target=\"_blank\"\r\n                    rel=\"noopener noreferrer\"\r\n                    className=\"flex flex-row base\" \r\n                  >\r\n                    <GiSmartphone  size={25} className=\"mr-3\" color=\"#e84529\"/>\r\n                    Telefono:+591 61885865\r\n                  </a>\r\n                </li>\r\n            </ol>\r\n            <div className=\"flex flex-row justify-start sm:justify-center md:justify-start text-5xl mt-3\">\r\n              <a\r\n                href=\"https://www.facebook.com/aprioribol\"\r\n                target=\"_blank\"\r\n                rel=\"noopener noreferrer\"\r\n              ><FaFacebookSquare  className=\"mx-3\"  color=\"#1A2527\"/></a>\r\n              <a href=\"https://www.instagram.com/apriori_bo\"\r\n                target=\"_blank\"\r\n                rel=\"noopener noreferrer\"\r\n              ><FaInstagramSquare className=\"mx-3\" color=\"#1A2527\"/></a>\r\n            </div>\r\n                \r\n            </div>\r\n            \r\n        </div>\r\n        <Footer/>\r\n        \r\n        </>\r\n    );\r\n}\r\n\r\nexport default Contact;","export default __webpack_public_path__ + \"static/media/precios.130ab48d.png\";","export default __webpack_public_path__ + \"static/media/newPlan.8b1fae44.jpg\";","export default __webpack_public_path__ + \"static/media/inversion.530763c2.png\";","const types = {\r\n  ADD_CART_SUCCESS: 'ADD_CART_SUCCESS',\r\n}\r\nexport default types;","import types from '../types/cart';\r\n\r\nconst addCartSuccess = payload => ({\r\n    type: types.ADD_CART_SUCCESS,\r\n    payload:payload,\r\n});\r\n\r\nexport const addCart = (payload) => {\r\n    return async (dispatch) => {\r\n        try{\r\n          dispatch(addCartSuccess(payload))\r\n          console.log(payload);\r\n        } catch(error){\r\n            alert(\"Error Cart:\", error);\r\n        }\r\n    };\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport Header from \"../components/headerPage\";\r\nimport { ImPower } from \"react-icons/im\";\r\nimport Comments from \"../components/comments\";\r\nimport Footer from \"../components/footer\";\r\nimport background from \"../../assets/images/precios.png\"\r\nimport newPlan from \"../../assets/images/newPlan.jpg\"\r\nimport inversion from \"../../assets/images/inversion.png\"\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { addCart } from '../../redux/actions/cart';\r\nimport Modal from \"../components/Modal\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { FiClock } from \"react-icons/fi\";\r\nimport { FiClipboard } from \"react-icons/fi\";\r\nimport { AiOutlineFileText } from \"react-icons/ai\";\r\nimport { CgCheck } from \"react-icons/cg\";\r\nimport { BiX } from \"react-icons/bi\";\r\nimport { BsFillTelephoneFill } from \"react-icons/bs\";\r\nimport { getDataPage } from \"../../redux/actions/dataPage\";\r\n\r\nconst Card = (props) => {\r\n  const [visible, setVisible] = useState(false);\r\n\r\n  return (\r\n    <>\r\n      <Modal visible={visible} title={props.tipo} onClose={() => { setVisible(false) }}>\r\n        <div className=\"mx-3 w-full flex flex-col items-center\">\r\n          <p className=\"text-base text-center\">Gracias por seleccionar el plan {props.tipo}</p>\r\n          <p className=\"text-base text-center\">Ir a convocatoria para seleccionar un examen o simulacro </p>\r\n          <div className=\"flex\" >\r\n            <button className=\"bg-transparent text-primary border-2 border-primary font-bold py-2 my-5 px-4 rounded-full\" onClick={() => {\r\n              setVisible(false)\r\n            }}>Cerrar</button>\r\n            <Link className=\"bg-primary text-white font-bold py-2 my-5 px-4 rounded-full ml-2\" onClick={() => {\r\n              setVisible(false)\r\n            }\r\n            } to=\"/convocatoria\">Ir a convocatoria</Link>\r\n          </div>\r\n        </div>\r\n      </Modal>\r\n      <div className=\"bg-white rounded-lg shadow-lg h-full px-3 flex flex-col items-start justify-around mx-5 sm:mx-1 md:mx-5 border-red-400 border-4\">\r\n\r\n        <div className=\"bg-red-500 w-full p-4 -mt-16 sm:mt-0 md:-mt-16 rounded-b-lg rounded-t-md\">\r\n          <div className=\"flex flex-col items-center\">\r\n            {props.tipo === 'Plan Premium' && <p className=\"font-bold bg-white text-primary text-center text-xl m-2 p-1  -mt-12 sm:-mt-8  md:-mt-12 z-10 w-4/6 rounded border-2 border-red-500\">Recomendado</p>}\r\n            {/* <p className=\"text-2xl text-left text-accent font-bold\">Plan</p>props.tipo */}\r\n            <p className=\"text-4xl text-center text-white font-bold\">{props.tipo}</p>\r\n          </div>\r\n\r\n          <h1 className=\"text-5xl my-1 font-bold my-5 text-gray-700 text-center\">Bs.<span className=\"text-white\"> {props.precio}</span></h1>\r\n        </div>\r\n        {/* <p className=\"font-regular\">Por Usario / Meses</p> */}\r\n        <div className=\"flex flex-col justify-center items-start mx-4 mt-4\">\r\n          <p className=\"font-bold text-primary text-left text-lg md:text-lg sm:text-base flex items-center mr-2\"><FiClock className=\"mr-2\" />Suscripción: </p>\r\n          <p className=\"font-regular text-center text-lg sm:text-base md:text-lg ml-3\">{props.suscripcion}</p>\r\n        </div>\r\n        <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n          <p className=\"font-bold text-primary text-left text-lg sm:text-base md:text-lg flex items-start mr-2\"><FiClipboard className=\"mr-2 text-primary\" />Pruebas Prácticas: {props.cantidadPracticas}</p>\r\n          <p className=\"font-regular text-left text-lg sm:text-base md:text-lg  ml-3\">{props.practicas}</p>\r\n        </div>\r\n        <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n          <p className=\"font-bold text-primary text-left md:text-lg  text-lg sm:text-base flex items-start mr-2\"><FiClipboard className=\"mr-2 text-primary\" />Pruebas finales: {props.cantidadfinales}</p>\r\n          <p className=\"font-regular text-left text-lg sm:text-base md:text-lg ml-3\">{props.finales}</p>\r\n        </div>\r\n        <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n          <p className=\"font-bold text-primary text-left text-lg sm:text-base md:text-lg flex items-start mr-2\"><AiOutlineFileText className=\"mr-2 text-primary\" />Total de Preguntas: </p>\r\n          <p className=\"font-regular text-left text-lg sm:text-base md:text-lg ml-3\">{props.preguntas}</p>\r\n        </div>\r\n        <p className=\"font-bold text-primary text-center text-xl flex items-center mr-2 mt-4\">Beneficios:</p>\r\n        <ol>\r\n          <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n            <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!props.uno ? 'text-gray-400' : 'text-black'}`}>{props.uno ? <CgCheck size={32} className=\"text-red-500\" /> : <BiX />} Examen cronometrado. </p>\r\n          </li>\r\n          <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n            <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!props.dos ? 'text-gray-400' : 'text-black'}`}>{props.dos ? <CgCheck size={32} className=\"text-red-500\" /> : <BiX />} Calificacion inmediata. </p>\r\n          </li>\r\n          <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n            <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!props.tres ? 'text-gray-400' : 'text-black'}`}>{props.tres ? <CgCheck size={32} className=\"text-red-500\" /> : <BiX />} Revisión.</p>\r\n          </li>\r\n          <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n            <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!props.cuatro ? 'text-gray-400' : 'text-black'}`}>{props.cuatro ? <CgCheck size={32} className=\"text-red-500\" /> : <BiX />} Gráficos comparativos.</p>\r\n          </li>\r\n          <li className=\"font-regular text-left text-lg flex items-center mr-2\">\r\n            <p className={`font-regular text-lwft text-lg sm:text-base md:text-lg flex items-left mr-2 mt-1 ${!props.cinco ? 'text-gray-400' : 'text-black'}`}>{props.cinco ? <CgCheck size={32} className=\"text-red-500\" /> : <BiX />} Puede modificar la fecha de sus exámenes finales.</p>\r\n          </li>\r\n          <li className=\"font-regular text-left text-lg flex items-center mr-2\">\r\n            <p className={`font-regular text-lwft text-lg sm:text-base md:text-lg flex items-left mr-2 mt-1 ${!props.seis ? 'text-gray-400' : 'text-black bg-red-100 rounded'}`}>{props.seis ? <CgCheck size={32} className=\"text-red-500\" /> : <BiX />} Puede modificar las materias de los exámenes.</p>\r\n          </li>\r\n          {/*\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!props.seis?'text-gray-400':'text-black'}`}>{props.seis?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} SESION EN VIVO.</p>\r\n            </li>*/\r\n          }\r\n        </ol>\r\n\r\n        <button onClick={() => { setVisible(!visible) }} className=\"bg-primary text-white font-bold py-2 my-5 px-4 rounded-full m-auto\">Suscribirse</button>\r\n      </div>\r\n    </>\r\n  );\r\n};\r\n\r\nconst Pricing = () => {\r\n  const store = useSelector(state => state.dataPage);\r\n  const [data, setData] = useState();\r\n\r\n  const dispatch = useDispatch();\r\n  useEffect(() => {\r\n    dispatch(getDataPage());\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  }, []);\r\n  useEffect(() => {\r\n    setData(store);\r\n    // console.log(store.cart.datos)\r\n    console.log(store)\r\n    //console.log(data.dataPage[0].precios)\r\n  }, [store]);\r\n\r\n  const bar = document.getElementById('bar');\r\n  if (bar) {\r\n    bar.style.display = 'block';\r\n  }\r\n\r\n  return (\r\n    <>\r\n      <Header titulo={\"Nuestros Planes\"} nombre={\"Planes\"} mensaje={\"Adquiere ahora un Plan\"} image={background} />\r\n      <div className=\"w-full py-20 sm:py-8 md:py-20 px-24 sm:px-8 md:px-24 flex flex-row sm:flex-col md:flex-row sm:px-4 md:px-20\">\r\n        <div className=\"w-2/4 p-5 py-8 justify-center items-center sm:w-full md:w-2/4 text-left sm:text-center md:text-left\">\r\n          <p className=\"text-2xl text-primary font-bold\">Nosotros somos expertos</p>\r\n          <p className=\"text-3xl sm:text-xl md:text-3xl\">Brindamos la mejor solución al cliente para su preparación.</p>\r\n        </div >\r\n        <div className=\"w-1/4 p-3 sm:w-full md:w-1/2 text-left sm:text-center md:text-left\">\r\n          <ImPower size={50} className=\"text-primary sm:mx-auto md:mx-0 mx-0\" />\r\n          <p className=\"text-lg font-bold my-5\">Optimiza tu tiempo</p>\r\n          <p className=\"text-xl sm:text-base md:text-xl\">La plataforma Apriori permite que tengas mejor administración del tiempo al momento de rendir el examen.</p>\r\n        </div>\r\n        <div className=\"w-1/4 p-3 sm:w-full md:w-1/2 text-left sm:text-center md:text-left\">\r\n          <ImPower size={50} className=\"text-primary sm:mx-auto md:mx-0 mx-0\" />\r\n          <p className=\"text-lg font-bold my-5\">Familiaridad con el examen</p>\r\n          <p className=\"text-xl sm:text-base md:text-xl\">Una prueba simulacro te permite familiarizarte con lo que te encontrarás en tu examen, generando así mayor confianza.</p>\r\n        </div>\r\n      </div>\r\n      {/* <button className=\"bg-primary text-white font-bold py-2 my-5 px-4 rounded-full\" onClick={()=>{\r\n            dispatch(addCart({\r\n                datos: \"Plan 1\",\r\n                tipo: \"Plan 1\",\r\n            })).then(() => {\r\n                alert(data.datos);\r\n            });\r\n        }}>Comprar</button> */}\r\n      <div className=\"w-full bg-gray-600 p-6 flex flex-col \">\r\n        <h3 className=\"text-center text-white font-bold text-3xl sm:text-2xl md:text-3xl\">Planes Disponibles unicamente para la convocatoria:</h3>\r\n        <h3 className=\"text-center text-white font-normal text-2xl sm:text-xl md:text-2xl mt-2\">{data ? data.dataPage[0]?.tituloBanner : null}</h3>\r\n        <p className=\"text-white text-center mt-6\">Contáctanos para consultar sobre otros planes para una convocatoria diferente :</p>\r\n        <a href=\"https://api.whatsapp.com/send?phone=525568888888&text=Hola%20quisiera%20saber%20más%20sobre%20los%20planes%20de%20Apriori\"\r\n          target=\"_blank\"\r\n          rel=\"noopener noreferrer\"\r\n          className=\"bg-white text-fondo font-bold py-2 my-2 p-4 rounded-full mx-auto flex items-center justify-center hover:bg-primary hover:text-white transition-all duration-300 ease-in-out\"\r\n        >\r\n          <BsFillTelephoneFill className=\"mr-2\" />\r\n          Contáctanos\r\n        </a>\r\n      </div>\r\n      <div className=\"w-full p-6 py-16 flex flex-col border-t-8 border-b-8 border-primary\"\r\n        style={{ backgroundImage: `url(${newPlan})`, backgroundSize: 'cover', backgroundPosition: 'top' }}\r\n      >\r\n        <h4 className=\"text-center text-white font-bold text-3xl sm:text-2xl md:text-3xl my-2\">Ahora tenemos un plan, pruebalo ahora:</h4>\r\n        <div className=\"bg-white w-1/3 md:w-1/3 sm:w-5/6 p-4 my-4 rounded-b-lg rounded-t-md self-center border-4 border-red-500\">\r\n          <div className=\"flex flex-col items-center bg-fondo py-4 rounded\">\r\n            <p className=\"text-4xl md:text-4xl sm:text-2xl text-center text-white font-bold\"> Plan Fast\r\n            </p>\r\n          </div>\r\n\r\n          <h1 className=\"text-5xl md:text-5xl sm:text-4xl font-bold my-5 text-gray-700 text-center\">Bs.<span className=\"text-primary\"> 60</span></h1>\r\n\r\n\r\n        </div>\r\n        <details className=\"w-1/4 md:w-1/4 sm:w-3/4 self-center\">\r\n          <summary className=\"text-white text-center py-4 -mt-10 rounded-md font-bold text-xl md:text-xl sm:text-lg bg-red-500 self-center\">Ver Informacion</summary>\r\n\r\n          <div className=\"m-1 bg-fondo rounded absolute border-4 border-primary -ml-20 p-8 max-w-45 z-100 md:-ml-20 sm:-ml-8 md:max-w-45 sm:max-w-screen-lg mr-4 md:mr-0 sm:mr-4\">\r\n            <p className=\"text-center mt-4 md:mt-4 sm:mt-0 text-sm text-white\">\r\n              Este plan solo esta disponible el dia de la adquisición, en las cuales podras realizar las pruebas que desees, al finalizar el tiempo se cerrara la sesión y no podras realizar mas pruebas.\r\n\r\n            </p>\r\n\r\n            <div className=\"flex flex-col justify-center items-start mx-4 mt-4\">\r\n\r\n\r\n              <p className=\"font-bold text-primary text-left text-lg md:text-lg sm:text-sm flex items-center mr-2\"><FiClock className=\"mr-2\" />Suscripción: </p>\r\n              <p className=\"font-regular text-white text-center text-lg sm:text-sm md:text-lg ml-3\">Hasta las 23:59 del dia de suscripción </p>\r\n            </div>\r\n            <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n              <p className=\"font-bold text-primary text-left text-lg sm:text-sm md:text-lg flex items-start mr-2\"><FiClipboard className=\"mr-2 text-primary\" />Pruebas Prácticas: 3</p>\r\n              <p className=\"font-regular text-left text-lg sm:text-sm md:text-lg  text-white ml-3\">Más de 25 en cada examen</p>\r\n            </div>\r\n            <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n              <p className=\"font-bold text-primary text-left md:text-lg  text-lg sm:text-sm flex items-start mr-2\"><FiClipboard className=\"mr-2 text-primary\" />Pruebas finales: 1</p>\r\n              <p className=\"font-regular text-left text-lg sm:text-sm md:text-lg ml-3 text-white\">Más de 40 en el examen</p>\r\n            </div>\r\n            <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n              <p className=\"font-bold text-primary text-left text-lg sm:text-sm md:text-lg flex items-start mr-2\"><AiOutlineFileText className=\"mr-2 text-primary\" />Total de Preguntas: </p>\r\n              <p className=\"font-regular text-left text-lg sm:text-sm md:text-lg ml-3  text-white\">Más de 290 preguntas</p>\r\n            </div>\r\n            <p className=\"font-bold text-primary text-center text-xl md:text-xl sm:text-lg flex items-center mr-2 mt-4\">Beneficios:</p>\r\n            <ol>\r\n              <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n                <p className={`font-regular text-left text-lg sm:text-sm md:text-lg flex items-start mr-2 mt-1 text-white`}><CgCheck size={32} className=\"text-red-500\" /> Examen cronometrado. </p>\r\n              </li>\r\n              <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n                <p className={`font-regular text-left text-lg sm:text-sm md:text-lg flex items-start mr-2 mt-1 text-white`}><CgCheck size={32} className=\"text-red-500\" /> Calificacion inmediata. </p>\r\n              </li>\r\n              <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n                <p className={`font-regular text-left text-lg sm:text-sm md:text-lg flex items-start mr-2 mt-1 text-white`}><CgCheck size={32} className=\"text-red-500\" />Revisión.</p>\r\n              </li>\r\n              <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n                <p className={`font-regular text-left text-lg sm:text-sm md:text-lg flex items-start mr-2 mt-1 text-white`}><CgCheck size={32} className=\"text-red-500\" />Gráficos comparativos.</p>\r\n              </li>\r\n              {/*\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!props.seis?'text-gray-400':'text-black'}`}>{props.seis?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} SESION EN VIVO.</p>\r\n            </li>*/\r\n              }\r\n            </ol>\r\n            {/* <button onClick={()=>{\r\n            window.location.href = 'https://api.whatsapp.com/send?phone=59161885865&text=Hola,%20quiero%20mas%20informacion%20sobre%20el%20plan%20Fast%20de%20la%20plataforma'\r\n          }} className=\"bg-primary text-white font-bold py-2 my-5 px-4 rounded-full m-auto\">Contactar</button> */}\r\n          </div>\r\n        </details>\r\n\r\n\r\n      </div>\r\n      <div className=\"grid grid-cols-3 gap-4 w-full sm:grid-cols-1 md:grid-cols-3 py-20 px-10 pt-28 bg-gray-700\" >\r\n\r\n        <Card\r\n          tipo={\"Plan Básico\"}\r\n          precio={'120'}\r\n          uno={true}\r\n          dos={true}\r\n          tres={true}\r\n          cuatro={true}\r\n          suscripcion='Hasta el día del examen'\r\n          cantidadPracticas='3'\r\n          cantidadfinales='1'\r\n          practicas='Más de 50 preguntas en cada examen'\r\n          finales='Más de 40 preguntas en cada prueba'\r\n          preguntas='Más de 190 preguntas'\r\n        />\r\n\r\n        <Card\r\n          tipo={\"Plan Profesional\"}\r\n          precio={'210'}\r\n          uno={true}\r\n          dos={true}\r\n          tres={true}\r\n          cuatro={true}\r\n          cinco={true}\r\n          cantidadPracticas='5'\r\n          cantidadfinales='2'\r\n          suscripcion='Hasta el día del examen'\r\n          practicas='Más de 50 preguntas en cada examen'\r\n          finales='Más de 40 preguntas en cada prueba'\r\n          preguntas='Más de 330 preguntas'\r\n        />\r\n\r\n        <Card\r\n          tipo={\"Plan Premium\"}\r\n          precio={'290'}\r\n          uno={true}\r\n          dos={true}\r\n          tres={true}\r\n          cuatro={true}\r\n          cinco={true}\r\n          seis={true}\r\n          cantidadPracticas='8'\r\n          cantidadfinales='2'\r\n          suscripcion='Hasta el día del examen'\r\n          practicas='Más de 50 preguntas en cada examen'\r\n          finales='Más de 40 preguntas en cada prueba'\r\n          preguntas='Más de 480 preguntas'\r\n        />\r\n\r\n      </div>\r\n      <Footer />\r\n\r\n    </>\r\n  );\r\n}\r\n\r\nexport default Pricing;","import { useEffect, useState } from \"react\";\r\nimport {MdEventNote, MdSource} from 'react-icons/md';\r\nimport {ImStatsDots} from 'react-icons/im';\r\nimport {BiTask,BiPhoneCall} from 'react-icons/bi';\r\n\r\nexport default function NabarPhone({active, onActive}) {\r\n    const [windowActive, setWindowActive] = useState(active);\r\n    useEffect(() => {\r\n        setWindowActive(active);\r\n    }, [active]);\r\n    return (\r\n        <>\r\n        <div className='bg-primary fixed sm:fixed md:hidden mt-full flex flex-row w-full text-white w-full justify-between px-8 sm:px-3 md:px-4 rounded-b-lg'\r\n         style={{position:'fixed',bottom:'0px',zIndex:999999 }}\r\n         >\r\n           <p className={`flex flex-col items-center mt-2 py-2 pb-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg  ${windowActive === 'exams'?' bg-white text-primary':'text-white'}`} \r\n           onClick={() => onActive('exams')}\r\n           ><BiTask className='text-3xl'/><span className='text-xs'>Examenes</span></p>\r\n           <p className={`flex flex-col items-center mt-2 py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'events'?' bg-white text-primary':'text-white'}`}\r\n           onClick={() => onActive('events')}\r\n           ><MdEventNote className='text-3xl'/><span className='text-xs'>Eventos</span></p>\r\n           <p className={`flex flex-col items-center mt-2 py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'history'?' bg-white text-primary':'text-white'}`}\r\n           onClick={() => onActive('history')}\r\n           ><ImStatsDots className='text-3xl'/> <span className='text-xs'>Resultados</span> </p>\r\n           <p className={`flex flex-col items-center mt-2 py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'sources'?' bg-white text-primary':'text-white'}`}\r\n           onClick={() => onActive('sources')}\r\n           ><MdSource className='text-3xl'/> <span className='text-xs'>Recursos</span> </p>\r\n           <p className={`flex flex-col items-center mt-2 py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'contact'?' bg-white text-primary':'text-white'}`}\r\n           onClick={() => onActive('contact')}\r\n           ><BiPhoneCall className='text-3xl'/><span className='text-xs'>Soporte</span> </p>\r\n         </div>\r\n       </>\r\n    )\r\n}","export default \"data:image/png;base64,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\"","import { useEffect, useState } from 'react';\r\nimport userApriori from '../../../assets/images/aprioriUser.png';\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport default function Photo({userName, userLastName, userEmail, userPhoto, userMensajes,isAfiliate}) {\r\n    const [name, setName] = useState(userName);\r\n    const [lastName, setLastName] = useState(userLastName);\r\n    const [photo, setPhoto] = useState(userPhoto);\r\n    const [mensajes, setMensajes] = useState(userMensajes);\r\n    const [email, setEmail] = useState(userEmail);\r\n    const [afiliate, setAfiliate] = useState(isAfiliate);\r\n\r\n    useEffect(() => {\r\n        setName(userName);\r\n        setLastName(userLastName);\r\n        setPhoto(userPhoto);\r\n        setMensajes(userMensajes);\r\n        setEmail(userEmail);\r\n        setAfiliate(isAfiliate);\r\n    } , [userName, userLastName, userPhoto, userMensajes, userEmail, isAfiliate]);\r\n\r\n\r\n    return(\r\n        <div className='w-3/12 flex flex-col justify-center items-center pb-16 sm:hidden md:flex'>\r\n           <img className=\"mt-4 border-8 border-gray-200 w-3/4\" src={photo?photo:userApriori} alt=\"no photo\"/>\r\n            <h2 className='mt-8 text-3xl text-primary'>{name && name}</h2>\r\n            <h3>{lastName && lastName}</h3>\r\n            <p>{email && email}</p>\r\n            {/* <p>{auth.currentUser.uid && auth.currentUser.uid}</p> */}\r\n            <div className=\"flex flex-col justify-center items-center border border-accent mx-5 mt-5 rounded-t-xl \">\r\n              <div className=\"flex flex-col justify-center bg-accent rounded-t-xl w-full py-3\"><h2 className=\"text-center text-white\">Mensajes</h2></div>\r\n              <div className=\"flex flex-col justify-center items-center \">\r\n                {\r\n                  mensajes?\r\n                    mensajes?\r\n                      mensajes.map((mensaje, index) => {\r\n                        if (index %2===0 ){\r\n                          return <p key={index} className=\"text-center bg-gray-300 w-full p-2\">{mensaje}</p>\r\n                        }else{\r\n                          return <p key={index} className=\"text-center bg-gray-100 w-full p-2\">{mensaje}</p>\r\n                        }\r\n                      })\r\n                    :\r\n                    <p className='p-2'>No tiene mensajes</p>\r\n                  :\r\n                  <p className='p-2'>No tiene mensajes</p>\r\n                }\r\n              </div>\r\n            </div>\r\n            {\r\n              afiliate?\r\n                <Link to='/adminAfiliate' className='mt-8 bg-primary text-white p-2 rounded-xl'>Administrar Afiliado</Link>\r\n              :\r\n              <div className='text-center mt-4'>\r\n                <p>Ahora puede ser un Afiliado</p>\r\n                <Link\r\n                  to='/adminAfiliate'\r\n                  className='mt-8 text-blue-500 p-2'\r\n                >\r\n                  ¿Qué es ser un Afiliado?\r\n                </Link>\r\n              </div>\r\n            }\r\n\r\n        </div>\r\n    )\r\n}","/* eslint-disable no-lone-blocks */\r\nimport React,{useEffect, useState} from \"react\";\r\nimport {Link, Redirect } from 'react-router-dom';\r\nimport Modal from \"../../components/Modal\";\r\nimport { FaWhatsapp } from \"react-icons/fa\";\r\nimport  {Contactanos} from '../../components/uiComponents';\r\nimport {useSelector} from 'react-redux';\r\n\r\nexport default function ExamenCard({plan,idCuenta,data}){\r\n      // \r\n    const [showModal, setShowModal] = useState(false);\r\n    const [showModalInfo, setShowModalInfo] = useState(false);\r\n    const [idCuenta_, setIdCuenta_] = useState();\r\n    const {cuenta} = useSelector(state => state.user);\r\n\r\n    const [habilitado, setHabilitado] = useState(false);\r\n    const [mensaje, setMensaje] = useState(\"no hay mensaje\");\r\n\r\n    const [idExamen, setIdExamen] = useState(\"\");\r\n\r\n\r\n\r\n    const btnAbrir = (d)=>{\r\n      \r\n      if(d.plan.includes(\"ast\")){\r\n        let ahora = new Date();\r\n        let fechaExamen = new Date(d.fechaRegistro);\r\n        \r\n        if(ahora.getDay() === fechaExamen.getDay()){\r\n          if(d?.intentos > 0){\r\n            setShowModal(true)\r\n          } else {\r\n            //alert(\"No tiene intentos disponibles\");\r\n            window.confirm(\"No tiene intentos disponibles\");\r\n          }\r\n        }else{\r\n          window.confirm(\"Su suscripción no esta disponible o ya expiro\");\r\n        }\r\n      }else{\r\n        if(d?.intentos > 0){\r\n          setShowModal(true)\r\n        } else {\r\n          //alert(\"No tiene intentos disponibles\");\r\n          window.confirm(\"No tiene intentos disponibles\");\r\n        }\r\n      }\r\n    }\r\n\r\n    const changeState = (state, menssage) => { \r\n      setHabilitado(state);\r\n      setMensaje(menssage);\r\n    }\r\n    const loadIdExamen = (dataUs) => {\r\n      let idExamenDato = \"\";\r\n      dataUs?.examenes?.forEach(element => {\r\n        if(element.isResolve === false){\r\n          idExamenDato = element.id;\r\n        }\r\n      });\r\n\r\n      setIdExamen(idExamenDato) ;\r\n    }\r\n    useEffect(() => {\r\n      if(data){\r\n        console.log(\"data\",data);\r\n        loadIdExamen(data);\r\n      }\r\n    }, [data])\r\n      \r\n\r\n    useEffect(() => {\r\n      if(data.tipo ===\"PFinal\"){\r\n        cuenta?.forEach(element => {\r\n          if(element.nombre === data.nombre){\r\n            if(element.tipo === \"PPrac\"){\r\n              \r\n              if(plan.includes(\"ast\")){\r\n                let fechaActual = new Date();\r\n                let fechaExamen = new Date(element.fechaRegistro);\r\n\r\n                if (fechaActual.getDay() === fechaExamen.getDay() ){\r\n                  if(element.intentos+'' === \"0\"){\r\n                    changeState(true, \"Mucho exito en su examen.\");\r\n                  } else {\r\n                    changeState(false, \"Disponible al terminar sus intentos de practica.\");\r\n                  }\r\n                }\r\n                else{\r\n                  changeState(false, \"Suscripción no disponible.\");\r\n                }\r\n              }\r\n\r\n\r\n              if(plan.includes(\"sico\")){\r\n                if(element.intentos+'' === \"0\"){\r\n                  changeState(true, \"Mucho exito en su examen.\");\r\n                } else {\r\n                  changeState(false, \"Disponible al terminar sus intentos de practica.\");\r\n                }\r\n              }\r\n\r\n              if(plan.includes(\"rofe\")){\r\n                switch (data.intentos+'') {\r\n                  case \"0\": {\r\n                    changeState(false, \"Disponible al terminar sus intentos de practica.\");\r\n                  }break;\r\n                  case \"1\": {\r\n                    if(parseInt(element.intentos) === 0){\r\n                      changeState(true, \"Mucho exito en su examen.\");\r\n                    }else{\r\n                      changeState(false, \"Disponible al terminar los intentos de practica.\");\r\n                    }\r\n                    \r\n                  } break;\r\n                  case \"2\": {\r\n                    if(parseInt(element.intentos) <= 3){\r\n                      changeState(true, \"Mucho exito en su examen.\");\r\n                    }else{\r\n                      changeState(false, `Disponible despues de 2 intentos de practica.${data.intentos}`);\r\n                    }\r\n                  }break;\r\n                  default:{\r\n                    changeState(false, `Disponible al terminar los intentos de practicaa. ${data.intentos}`);\r\n                  }\r\n              }\r\n            }\r\n\r\n            if(plan.includes(\"mium\")){\r\n              switch (data.intentos+'') {\r\n                case \"0\": {\r\n                  changeState(false, \"Disponible al terminar sus intentos de practica.\");\r\n                }break;\r\n                case \"1\": {\r\n                  if(parseInt(element.intentos) === 0){\r\n                    changeState(true, \"Mucho exito en su examen.\");\r\n                  }else{\r\n                    changeState(false, \"Disponible al terminar los intentos de practica.\");\r\n                  }\r\n                  \r\n                } break;\r\n                case \"2\": {\r\n                  if(parseInt(element.intentos) <= 4){\r\n                    changeState(true, \"Mucho exito en su examen.\");\r\n                  }else{\r\n                    changeState(false, \"Disponible despues de 4 intentos de practica.\");\r\n                  }\r\n                }break;\r\n                default:{\r\n                  changeState(false, \"Disponible al terminar los intentos de practica.\");\r\n                }\r\n            }\r\n          }\r\n          }\r\n        }\r\n        });\r\n      } else {\r\n\r\n      }\r\n    }, [cuenta])\r\n\r\n\r\n    useEffect(() => {\r\n      if(idCuenta){\r\n        setIdCuenta_(idCuenta);\r\n      } else {\r\n        console.log(\"No hay idCuenta\");\r\n      }\r\n    }, [idCuenta])\r\n    return (\r\n      <>\r\n        <Modal visible={showModalInfo} title=\"Apriori informa.\" onClose={()=>setShowModalInfo(false)}>\r\n          <div className=\" p-6 flex flex-col justify-center items-start\">\r\n            <p>Estamos trabajandando para que el pago de nuestro servicio sea verificado</p>\r\n            <p>este proceso puede durar como maximo 24 horas.</p>\r\n            <p>\r\n              Si no recibes una respuesta en 24 horas, por favor comunicate con nosotros.\r\n            </p>\r\n            <div className=\"flex w-full justify-center mt-5\">\r\n              <button\r\n                className=\"flex flex-row items-center hover:bg-green-400 hover:border-green-400 bg-transparent border-2 border-primary hover:text-white text-primary font-bold uppercase text-sm px-6 py-2 rounded shadow hover:shadow-lg outline-none mb-1\"\r\n                type=\"button\"\r\n                style={{ transition: \"all .15s ease\" }}\r\n              >\r\n                <FaWhatsapp size={24} className='mr-4'/>\r\n                <a\r\n                  href=\"https://wa.me/56975555555\"\r\n                  target=\"_blank\"\r\n                  rel=\"noopener noreferrer\"\r\n                >\r\n                  \r\n                  Contactanos\r\n                </a>\r\n              </button>\r\n            </div>      \r\n          </div>\r\n          {/*footer*/}\r\n          <div className=\"flex items-center justify-end border-t border-solid border-blueGray-200 rounded-b\">\r\n            <button\r\n              className=\"text-white hover:text-primary bg-primary mt-2 rounded font-bold uppercase px-6 py-2 text-sm outline-none hover:bg-transparent border-2 border-primary mr-1ease-linear transition-all duration-150\"\r\n              type=\"button\"\r\n              onClick={() => setShowModalInfo(false)}\r\n            >\r\n              \r\n            Aceptar\r\n            </button>\r\n          </div>\r\n        </Modal>\r\n       {showModal ? (\r\n          <>\r\n            <div\r\n              className=\"justify-center items-center flex overflow-x-hidden overflow-y-auto fixed inset-0 z-50 outline-none focus:outline-none\"\r\n            >\r\n              <div className=\"relative w-auto my-6 mx-auto max-w-3xl\">\r\n                {/*content*/}\r\n                <div className=\"border-0 rounded-lg shadow-lg relative flex flex-col w-full bg-white outline-none focus:outline-none\">\r\n                  {/*header*/}\r\n                  <div className=\"flex items-start justify-between p-5 border-b border-solid border-blueGray-200 rounded-t bg-gray-100\">\r\n                    <h3 className=\"text-3xl font-semibold text-primary\">\r\n                      {data.nombre}\r\n                    </h3>\r\n                    <button\r\n                      className=\"p-1 ml-auto bg-transparent border-0 text-black float-right text-3xl leading-none font-semibold outline-none focus:outline-none\"\r\n                      onClick={() => setShowModal(false)}\r\n                    >\r\n                      <span className=\"bg-transparent text-primary h-6 w-6 text-2xl block outline-none focus:outline-none\">\r\n                        ×\r\n                      </span>\r\n                    </button>\r\n                  </div>\r\n                  {/*body*/}\r\n                  <div className=\" p-6 flex flex-row justify-center items-center\">\r\n                    <div className=\"w-1/2 mx-6 text-blueGray-500 self-start \">\r\n                    <h3 className=\"font-bold text-base mb-2 text-primary\">Recomendaciones antes de comenzar</h3><hr/>\r\n                      <ol className=\"ml-8\">\r\n                        <li type=\"disc\">Asegurese de tener una buena conexion a internet.</li>\r\n                        <li type=\"disc\">Revise muy bien los intentos disponibles.</li>\r\n                        <li type=\"disc\">Para una mejor experiencia inicie en una computadora.</li>\r\n                        <li type=\"disc\">Controle muy bien su tiempo disponible.</li>\r\n                        <li type=\"disc\">Sitúese en un lugar como y libre de distracciones.</li>\r\n                      </ol>\r\n\r\n                      <Link to={`/`} className=\"text-blue-800 text-center mt-4\">Terminos y Condiciones</Link>\r\n                        \r\n                    </div>\r\n                    <div className=\"w-1/2\" >\r\n                      <h3 className=\"font-bold mb-2 text-primary text-base\">Preguntas del examen</h3><hr/>\r\n                        <div className=\"flex flex-row items-start justify-between py-3 px-6\">\r\n                          <ol>\r\n                          {\r\n                            data.materias.map((pregunta,index) => {\r\n                              return (\r\n                                <li key={index} type='disc' className=\"text-blueGray-500 my-2\">{pregunta}</li>\r\n                              )\r\n                            })\r\n                          }\r\n                          </ol>\r\n                          {/* <div>as</div> */}\r\n                        </div>        \r\n                    </div>\r\n                    \r\n                  </div>\r\n                  <p className=\"mx-16 text-primary font-700 text-center my-4\">Este examen tiempo un tiempo limite, Le Recomendamos controlar muy bien su tiempo disponible...</p>\r\n                  {/*footer*/}\r\n                  <div className=\"flex items-center justify-end p-6 border-t border-solid border-blueGray-200 rounded-b bg-gray-300\">\r\n                    <button\r\n                      className=\"text-gray-800 hover:text-primary background-transparent font-bold uppercase px-6 py-2 text-sm outline-none focus:outline-none mr-1 mb-1 ease-linear transition-all duration-150\"\r\n                      type=\"button\"\r\n                      onClick={() => setShowModal(false)}\r\n                    >\r\n                      Cancelar\r\n                    </button>\r\n                    {\r\n                        idExamen&&\r\n                        <Link \r\n                          className=\"text-center md:inline-block cursor-pointer hover:bg-green-500 md:border-none py-2 px-3 bg-primary rounded text-white\" to={`/examen/${idExamen}`}\r\n                        >Continuar</Link>\r\n                    }\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n            <div className=\"opacity-25 fixed inset-0 z-40 bg-black\"></div>\r\n          </>\r\n        ) : null}\r\n      <div className=\" flex flex-col mt-3 m-3 justify-between items-center text-black border-accent border-2 w-full rounded-md  bg-basic max-w-45 md:max-w-45 sm:max-w-full\">\r\n        <div className=\"bg-accent text-white w-full text-center py-2 px-4\">\r\n          <h1 className=\"border-b-2 border-white\" >{data.nombre}</h1>\r\n          <h3>{data.tipo==='PFinal'? 'Prueba Final': 'Pruebra de Práctica'}</h3>\r\n        </div>\r\n        <div className=\"flex flex-col justify-start items-start  w-full p-3\"> \r\n          <p className=\"text-start text-primary\">Fecha de examen: <span className=\"text-black\">{data.fechaExamen}</span> </p>\r\n          {//<p className=\"text-start text-primary\">Materias: <span className=\"text-black\"></span> </p>\r\n          }\r\n          {/*<ol className=\"pl-5\">\r\n            {\r\n              data.materias.map((materia,index)=>{\r\n                return <li type=\"disc\" key={index}>{materia}</li>\r\n              })\r\n            }\r\n          </ol>*/}\r\n          <p className=\"text-start text-primary\">Intentos disponibles: <span className=\"text-black pl-1\">{data.intentos}</span> </p>\r\n          <p className=\"text-start text-primary\">Total de preguntas: <span className=\"text-black pl-1\">{data.cantidadPreguntas}</span> </p>\r\n          <p>{data.estado}</p>\r\n\r\n          {/**<Link className=\"bg-primary text-white font-normal mx-auto my-2 py-2 px-4 rounded my-3\" to={{\r\n          pathname: `/Details`,\r\n          data: props.data,\r\n        }}>Ver Detalles</Link> */}\r\n          <p className=\"text-start text-primary\">Plan: <span className=\"text-black pl-1\">{plan}</span> </p>\r\n        </div>\r\n        {\r\n          data.type !== 'teacher' ?\r\n          <div className=\"p-4\">\r\n          {\r\n              data.estado === 'activo' ?\r\n                data.tipo === 'PFinal' ?\r\n                  habilitado ? \r\n                  <button className=\"bg-primary text-white py-2 px-4 rounded-md\" onClick={() =>{btnAbrir(data) } }>\r\n                      {data.estado=== 'pendiente' ? 'Plan Pendiente' : 'Abrir Examen'}\r\n                  </button>\r\n                  :\r\n                  <button className=\"bg-gray-700 text-white py-2 px-4 rounded-md\" onClick={() =>{alert('No disponible')}}>\r\n                    {data.estado=== 'pendiente' ? 'Plan Pendiente' : 'No disponible'}\r\n                  </button>\r\n                  // data.fechaExamen === new Date().toLocaleDateString() ?\r\n                  //   <button className=\"bg-primary text-white py-2 px-4 rounded-md\" onClick={() =>{btnAbrir(data) } }>\r\n                  //     {data.estado=== 'pendiente' ? 'Plan Pendiente' : 'Abrir Examen'}\r\n                  //   </button>\r\n                  //   :\r\n                  //   <button className=\"bg-gray-700 text-white py-2 px-4 rounded-md\" onClick={() =>{alert('No disponible')}}>\r\n                  //     {data.estado=== 'pendiente' ? 'Plan Pendiente' : 'Disponible el  '+data.fechaExamen}\r\n                  //   </button>\r\n                :\r\n                <button className=\"bg-primary text-white py-2 px-4 rounded-md\" onClick={() =>{btnAbrir(data) } }>\r\n                    {data.estado=== 'pendiente' ? 'Plan Pendiente' : 'Abrir Examen'}\r\n                </button>\r\n              :\r\n              data.estado === 'pendiente' ?\r\n                <div className=\"flex flex-row justify-center items-center\">\r\n                {\r\n                  data.type !== 'teacher' &&\r\n                  <Link className=\"bg-gray-500 text-center text-white py-2 px-4 rounded-md mr-2\" to={{\r\n                    pathname: `/plans`,\r\n                    data: data,\r\n                  }}>\r\n                    {\r\n                      data.plan === 0 || data.plan === 'Pendiente'?\r\n                      'Seleccionar Plan' :\r\n                      'Cambiar Plan'\r\n                    }\r\n                  </Link>\r\n                }\r\n                <Link className=\"bg-gray-500 text-center text-white py-2 px-4 rounded-md ml-2\" to={{\r\n                  pathname: `/payment`,\r\n                  data: data,\r\n                }}>\r\n                  Reportar Pago\r\n                </Link>\r\n                </div>\r\n                :\r\n              data.estado === 'aprobacion' ?\r\n              <button className=\"bg-green-600 text-white py-2 px-4 rounded-md\" onClick={() =>{setShowModalInfo(true)} }>\r\n                Pago en aprobación\r\n              </button>\r\n                :<p>Algo salio mal </p>\r\n            }\r\n          </div>\r\n          :\r\n          <div className=\"p-4\">\r\n            {\r\n              data.estado === 'activo' ?\r\n              <button className=\"bg-primary text-white py-2 px-4 rounded-md\" onClick={() =>{setShowModal(true)} }>\r\n                Iniciar Examen\r\n              </button>\r\n              :\r\n              <Link className=\"bg-gray-500 text-white py-2 px-4 rounded-md\" to={{\r\n                  pathname: `/simple-pay`,\r\n                  data: data,\r\n              }}>\r\n                Reportar Pago\r\n              </Link>\r\n            }\r\n          </div>\r\n        }\r\n        {data.tipo==='PFinal'&&<p className=\"text-sm\">{mensaje}</p>}\r\n        <p className=\"text-center text-primary\">aaa{idExamen}</p>\r\n        \r\n        <Contactanos type='text' texto='Solicitar una Prueba' mensaje={'Apriori, Me gustaría solicitar mi primera prueba en la plataforma'} style={{\r\n              marginY:'12px',\r\n              fontWeight: 'normal',\r\n              fontSize: '24px',\r\n              textDecoration: 'noopener',\r\n            }}/>\r\n        \r\n      </div>\r\n      </>\r\n    );\r\n  }\r\n  ","import React from 'react';\r\nimport './styles/styles.css';\r\n\r\nexport function OnLoad(props){\r\n\r\n    return(\r\n      <div className=\"balls\">\r\n        <div style={{backgroundColor:`${props.color?props.color:'red'}`}}></div>\r\n        <div style={{backgroundColor:`${props.color?props.color:'red'}`}}></div>\r\n        <div style={{backgroundColor:`${props.color?props.color:'red'}`}}></div>\r\n        <div style={{backgroundColor:`${props.color?props.color:'red'}`}}></div>\r\n        <div style={{backgroundColor:`${props.color?props.color:'red'}`}}></div>\r\n      </div>\r\n    \r\n    );\r\n};\r\nexport function Box(props){\r\n\r\n  return(\r\n    <div className=\"box\">\r\n      <div className=\"plane\" style={{backgroundColor:`${props.color?props.color:'red'}`}}></div>\r\n    </div>\r\n  \r\n  \r\n  );\r\n};\r\n\r\nexport function Bar(props){\r\n\r\n  return(\r\n    <div className=\"bar\">\r\n      <span style={{backgroundColor:`${props.color?props.color:'red'}`}}></span>\r\n      <span style={{backgroundColor:`${props.color?props.color:'red'}`}}></span>\r\n      <span style={{backgroundColor:`${props.color?props.color:'red'}`}}></span>\r\n      <span style={{backgroundColor:`${props.color?props.color:'red'}`}}></span>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport function Spin(props){\r\n\r\n  return(\r\n    <div className=\"spin\"  style={{borderTopColor:`${props.color?props.color:'red'}`,width:props.size?props.size:5,height:props.size?props.size:5}}></div>\r\n  );\r\n};\r\n\r\nexport function Spinner(props){\r\n\r\n  return(\r\n    <div className=\"spinner\"  style={{borderTopColor:`${props.color?props.color:'red'}`,borderBottomColor:`${props.colorBotton?props.colorBotton:'red'}`}}></div>\r\n  );\r\n};\r\n\r\nexport function SpinnerLoader(props){\r\n\r\n  return(\r\n    <div className=\"loader\">\r\n      <div className=\"outer\" style={{borderTopColor:`${props.color?props.color:'red'}`,borderRightColor:`${props.color?props.color:'red'}`}}></div>\r\n      <div className=\"middle\" style={{borderTopColor:`${props.color?props.color:'red'}`,borderRightColor:`${props.color?props.color:'red'}`}}></div>\r\n      <div className=\"inner\" style={{borderTopColor:`${props.color?props.color:'red'}`,borderRightColor:`${props.color?props.color:'red'}`}}></div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport function SquareFill(props){\r\n\r\n  return(\r\n    <div className=\"square\" ></div>\r\n  );\r\n};\r\n\r\nexport function Dots(props){\r\n\r\n  return(\r\n    <div className=\"dots\">\r\n      <div style={{backgroundColor:`${props.color?props.color:'red'}`}}></div>\r\n      <div style={{backgroundColor:`${props.color?props.color:'red'}`}}></div>\r\n      <div style={{backgroundColor:`${props.color?props.color:'red'}`}}></div>\r\n      <div style={{backgroundColor:`${props.color?props.color:'red'}`}}></div>\r\n      <div style={{backgroundColor:`${props.color?props.color:'red'}`}}></div>\r\n    </div>\r\n\r\n  );\r\n};","import { useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport Modal from '../../components/Modal';\r\n\r\nexport default function EventsCard(props){\r\n    const {fecha, contenido, expositor, modalidad, nombre, url} = props.data.data;\r\n    const [isOpen, setIsOpen] = useState(false);\r\n    console.log(props.data)\r\n    return (\r\n      <>\r\n       <Modal visible={isOpen} title=\"Apriori Eventos.\" onClose={()=>setIsOpen(false)}>\r\n         <div className='text-center'>\r\n          <h1 className='text-primary my-4'>Bienvenido a Apriori - Eventos, una nueva forma de aprender </h1>\r\n          <p>Le damos la bienvenida al evento <b>{nombre}</b>, impartido por el {expositor}.</p>\r\n          <p>Para una mejor experiencia le recomendamos tener buena conexion a internet, agüita o cafe y estar comodos</p>\r\n          <div className='my-8'>\r\n            {/* {<Link to={url} target='_blank' className=\"bg-primary text-white py-2 px-4 my-16 rounded-md\" >Comenzar</Link>} */}\r\n            <Link className=\"bg-primary text-white py-2 px-4 my-16 rounded-md\" to={{\r\n            pathname: `/Live`,\r\n            data: props.data,\r\n          }}>Comenzar</Link>\r\n          </div>\r\n          \r\n         </div>\r\n         \r\n         \r\n       </Modal>\r\n        <div className=\" flex flex-col m-3 justify-between items-center text-black border-accent border-2 w-full max-w-45  md:max-w-45 sm:max-w-full rounded-md\">\r\n        <div className=\" flex flex-row \">\r\n          <div className=\"flex flex-col justify-start w-2/4 \"> \r\n          <h1 className=\"bg-accent text-white text-center py-2 p-2\">{nombre}</h1>\r\n          <div className=\"px-3\">\r\n            \r\n            <p className=\"text-start text-primary\">Fecha de evento: <span className=\"text-black\">{fecha}</span> </p>\r\n            <p className=\"text-start text-primary\">Contenido: <span className=\"text-black\"></span> </p>\r\n              <ol className=\"pl-5\">\r\n                {\r\n                  contenido.map((item, index) => {\r\n                    return <li type=\"square\" key={index}>{item}</li>\r\n                  }\r\n                  )\r\n                }\r\n              </ol>\r\n            </div>\r\n          </div>\r\n          <img className=\"border-white w-2/4 rounded-tr-md\" src={url} alt=\"\"/>\r\n        </div>\r\n        <div className=\"bg-gray-200 w-full justify-center flex flex-col px-3 py-2 rounded-b-md\">\r\n          {\r\n            expositor.length === 1 ?\r\n            <p className=\"text-start text-primary\">Expositor</p>\r\n            :\r\n            <p className=\"text-start text-primary\">Expositores:</p>\r\n          }\r\n          <ol className=\"pl-5 text-black\">\r\n            {\r\n              expositor.map((item, index) => {\r\n                return <li key={index}>{item}</li>\r\n              }\r\n              )\r\n            }\r\n          </ol>\r\n            \r\n          <p className=\"text-start text-primary\">Medio: <span className=\"text-black pl-1\">{modalidad}</span> </p>\r\n  \r\n          <button className=\"bg-primary text-white py-2 px-4 mt-3 rounded-md\" onClick={() => setIsOpen(!isOpen)}>\r\n            {'Ingresar'}\r\n          </button>\r\n        </div>\r\n  \r\n        </div>\r\n      </>\r\n    );\r\n  }\r\n  ","import { useState, useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { collection, getDocs } from \"firebase/firestore\";\r\nimport { doc, getDoc, addDoc } from \"firebase/firestore\";\r\nimport Footer from '../components/footer';\r\nimport {auth, db} from '../../config/firebase'\r\nimport NabarPhone from \"./components/navbar-phone\";\r\nimport Photo from \"./components/Photo\";\r\nimport ExamenCard from \"./components/ExamenCard\";\r\nimport {OnLoad, Bar as BarLoad, Dots} from '../components/onload';\r\nimport { Link } from 'react-router-dom';\r\nimport EventsCard from \"./components/EventsCard\";\r\nimport { FaWhatsapp, FaEnvelope, FaFacebookF, FaInstagramSquare} from \"react-icons/fa\";\r\n\r\nimport { Line, Bar } from \"react-chartjs-2\";\r\nimport {Chart,CategoryScale,LinearScale,PointElement,LineElement,Title,Tooltip,Legend,BarElement} from 'chart.js'\r\n\r\nconst options = {\r\n  responsive: true,\r\n  plugins: {\r\n    legend: {\r\n      position: 'top',\r\n    },\r\n    title: {\r\n      display: true,\r\n      text: 'Respuestas del ultimo examen',\r\n    },\r\n  },\r\n};\r\nChart.register(\r\n  CategoryScale,\r\n  LinearScale,\r\n  BarElement,\r\n  PointElement,\r\n  LineElement,\r\n  Title,\r\n  Tooltip,\r\n  Legend\r\n)\r\n\r\nexport default function UserProfile() {\r\n  const reduxUser = useSelector(state => state.user);\r\n  const data = useSelector(state => state.dataPage);\r\n\r\n  const [windowActive, setWindowActive] = useState(\"exams\");\r\n  const [user, setUser] = useState({});\r\n  const [loading, setLoading] = useState(true);\r\n  const [exams, setExams] = useState([]);\r\n  const [eventos , setEventos] = useState([]);\r\n  const [indexContent, setIndexContent] = useState([]);\r\n  const [pruebas, setPruebas] = useState();\r\n  const [mensajeContacto, setMensajeContacto] = useState('');\r\n  const [datos , setDatos] = useState([]);\r\n\r\n  const bar = document.getElementById('bar');\r\n  if (bar) {\r\n    bar.style.display = 'block';\r\n  }\r\n\r\n  useEffect(() => {\r\n    if (data.dataPage.length > 0) {\r\n      setDatos(data.dataPage[0].examenCpmpleto);\r\n    }\r\n  },[data]);\r\n\r\n\r\n  const changeContent = (param) => {\r\n    let newArray = [];\r\n    indexContent.forEach((item, index) => {\r\n      if (index === param){\r\n        newArray.push('flex');\r\n      }else{\r\n        newArray.push('none');\r\n      }\r\n    })\r\n    setIndexContent(newArray);\r\n  }\r\n\r\n  useEffect(() => {\r\n    setUser(reduxUser.user);\r\n    console.log(user);\r\n  }, [reduxUser.user])\r\n\r\n  useEffect(() => { \r\n    if(reduxUser.user){\r\n      setLoading(false);\r\n    }else{\r\n      setLoading(true);\r\n    }\r\n    console.log('se ejecuto useEffect');\r\n  }, [reduxUser])\r\n  \r\n  useEffect(() => {\r\n    console.log(\"userProfile useEffect setExams\");\r\n    if(reduxUser.cuenta){\r\n      setExams(reduxUser.cuenta);\r\n    }\r\n  }, [reduxUser.cuenta]);\r\n  useEffect(()=>{\r\n    getDocs(collection(db,'Cursos'))\r\n    .then((response)=>{\r\n        let event =[]\r\n        response.forEach((doc)=>{\r\n          event.push(\r\n            {\r\n              id: doc.id,\r\n              data:doc.data()\r\n            }\r\n            );\r\n        });\r\n        return event;\r\n    }).then( doc =>{console.log(doc); setEventos(doc)})\r\n    .catch(err => console.log(err));\r\n    //getEvents();\r\n  },[])\r\n  useEffect(() => {\r\n    if(reduxUser){\r\n      const pruebas = [];\r\n      const cuenta = reduxUser.cuenta;\r\n      console.log(cuenta);\r\n      if (cuenta){\r\n        let index = 0;\r\n        let type = [];\r\n        cuenta.forEach(exam => {\r\n          pruebas.push(exam);\r\n          if (index === 0){\r\n            type.push('flex');\r\n          }else{\r\n            type.push('none');\r\n          }\r\n          index++;\r\n        });\r\n        setIndexContent(type);\r\n        setPruebas(pruebas);  \r\n      }\r\n      \r\n    }\r\n    \r\n  }, [reduxUser])\r\n  return (\r\n    <>\r\n      <NabarPhone active={windowActive} onActive={setWindowActive} />\r\n      <div className=\"w-full text-white flex flex-col justify-center items-center border-b-16 border-accent\" >\r\n        <h1 className=\"text-3xl my-5  sm:text-xl md:text-3xl mx-0 sm:mx-4 md:mx-0 text-center \">Bienvenido</h1>\r\n      </div>\r\n      <div className='flex flex-row items-start justify-center w-full h-full px-28 sm:px-2 md:px-16'>\r\n        <Photo userName={user?.name} userLastName={user?.lastName} userPhoto={user?.photo} userEmail={user?.email} userMensajes={user?.mensajes} isAfiliate={user?.isAfiliate} />\r\n        <div className='w-9/12 h-80 flex flex-col justify-start items-start -mt-1 sm:mt-1 md:-mt-1 w-full'>\r\n          <div className='bg-accent flex flex-row w-full text-white w-full justify-between px-8 rounded-b-lg sm:hidden md:flex'>\r\n            <p className={`py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'exams'?' bg-white text-primary':'text-white'}`} \r\n            onClick={() => setWindowActive('exams')}\r\n            >Examenes</p>\r\n            {/* <p className={`py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'events'?' bg-white text-primary':'text-white'}`}\r\n            onClick={() => setWindowActive('events')}\r\n            >Eventos</p> */}\r\n            <p className={`py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'history'?' bg-white text-primary':'text-white'}`}\r\n            onClick={() => setWindowActive('history')}\r\n            >Resultados</p>\r\n            <p className={`py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'sources'?' bg-white text-primary':'text-white'}`}\r\n            onClick={() => setWindowActive('sources')}\r\n            >Recursos</p>\r\n            <p className={`py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'contact'?' bg-white text-primary':'text-white'}`}\r\n            onClick={() => setWindowActive('contact')}\r\n            >Soporte</p>\r\n          </div>\r\n\r\n          <div className={`w-full h-full pt-8 px-0 justify-center flex-wrap max-h-screen overflow-auto ${windowActive === 'exams'?'flex flex-row':'hidden'}`}>\r\n          {\r\n            loading?\r\n            <div className='w-full flex flex-col justify-center'>\r\n              <p className=\"text-2xl text-center text-primary\">\r\n              <Dots color={'gray'}/></p>\r\n              <h1  className='w-full text-center'>Cargando...</h1>\r\n            </div>\r\n              : exams.map((examen, index) => {\r\n                  return(<ExamenCard key={index} plan={examen.plan} idCuenta={examen.id} data={examen}/>)\r\n                }\r\n            )\r\n          }\r\n          {\r\n            exams.length === 0 && !loading &&\r\n            <div className='w-full flex flex-col justify-center self-start'>\r\n              <p \r\n              className=\"text-xl text-center text-secundary\"\r\n              >En este momento usted no tiene examenes</p>\r\n              <Link \r\n                className=\"m-4 text-center text-white base sm:base lg:base cursor-pointer hover:fondo py-2 rounded-full px-4  bg-primary flex flex-row items-center hover:bg-blue-600 self-center\" to={{\r\n                    pathname: `/Details`,\r\n                    data: datos\r\n                }}>Detalles de convocatoria</Link>\r\n            </div>\r\n          }\r\n          <div className='w-full flex flex-col justify-center self-start'>\r\n              <Link \r\n                className=\"m-4 text-center text-white base sm:base lg:base cursor-pointer hover:fondo py-2 rounded-full px-4  bg-primary flex flex-row items-center hover:bg-blue-600 self-center\" to={{\r\n                    pathname: `/Details`,\r\n                    data: datos\r\n                }}>Ver Examen Vigente</Link>\r\n            </div>\r\n          </div>\r\n\r\n          <div className={`w-full h-full pt-8 px-0 justify-center flex-wrap max-h-screen overflow-auto ${windowActive === 'events'?'flex flex-row':'hidden'}`}>\r\n            {\r\n              eventos.map((evento, index) =><EventsCard key={index} data={evento}/>)\r\n            }\r\n          </div>\r\n          <div className={`w-full h-full pt-8 px-0 justify-center flex-wrap max-h-screen overflow-auto ${windowActive === 'history'?'flex flex-row':'hidden'}`}>\r\n            <div className=\"flex flex-row justify-center items-center w-full flex-wrap\">\r\n              {\r\n                //estadisticas\r\n                pruebas?\r\n                pruebas.map((prueba, index) => {\r\n                  return(\r\n                      <div key={index} className={`w-1/4 text-center border-2 border-primary m-2 rounded p-2 cursor-pointer ${indexContent[index] !=='flex'?'text-primary bg-transparent':'text-white bg-primary'}`}\r\n                      onClick={()=>{changeContent(index)}}\r\n                      >\r\n                        <p className={`border-b-2 ${indexContent[index] ==='flex'?'border-white':'border-primary'}`}>{prueba?prueba.nombre:'no data'}</p>\r\n                        <p>{prueba?\r\n                        prueba.tipo==='PFinal'?\r\n                        'Prueba Final':\r\n                        'Prueba practica':\r\n                        'no data'}</p>\r\n                      </div>\r\n                  )\r\n                }) :\r\n                \r\n                <div className='w-full flex flex-col justify-center'>\r\n                  <p className=\"text-2xl text-center text-primary\">\r\n                    no hay pruebas\r\n                  </p>\r\n                  <h1  className='w-full text-center'>No hay pruebas</h1>\r\n                </div>\r\n\r\n              }\r\n            </div>\r\n            {\r\n              pruebas?\r\n              pruebas.map((prueba, index) => {\r\n                return(\r\n                 \r\n                    <div\r\n                    className='w-full flex flex-col justify-center items-center'\r\n                      style={{display:`${indexContent[index]}`}}\r\n                      key={index}\r\n                    >\r\n                      <p className='w-full border-primary border-t-2 text-black mb-2 mt-5 text-center'>\r\n                        Estadisticas de respuestas correctas e incorrectas del ultimo intento realizado.\r\n                      </p>\r\n                      {pruebas[index].notas?\r\n                      <Bar options={options} data={{\r\n                        labels : pruebas[index]?pruebas[index].notas[pruebas[index].notas.length-1].notas.map((materia, index)=>{return materia.materia}):[],\r\n                        datasets: [\r\n                          {\r\n                            label: 'Correctos',\r\n                            data: pruebas[index]?pruebas[index].notas[pruebas[index].notas.length-1].notas.map((materia, index)=>{return materia.correctas}):[],\r\n                            backgroundColor: 'rgba(53, 162, 235, 0.5)',\r\n                          },\r\n                          {\r\n                            label: 'Incorrectos',\r\n                            data:  pruebas[index]?pruebas[index].notas[pruebas[index].notas.length-1].notas.map((materia, index)=>{return materia.incorrectas}):[],\r\n                            backgroundColor: 'rgba(255, 99, 132, 0.5)',\r\n                          },\r\n                        ],\r\n                      }} />:<p className='text-primary m-2'>No tiene notas en este examen</p>\r\n                      }\r\n                      <p className='w-full border-primary border-t-2 text-black mb-2 mt-5 text-center'>\r\n                        Estadisticas de notas de todos los intentos realizado.\r\n                      </p>\r\n                      {pruebas[index].notas?\r\n                        <Line data={{\r\n                          labels: pruebas[index]?pruebas[index].notas.map((materia, index)=>{return 'intento '+(index+1)}):[],\r\n                          datasets: [\r\n                            {\r\n                              label: \"Notas Generales\",\r\n                              data: pruebas[index]?pruebas[index].notas.map((materia, index)=>{return materia.calificacion}):[],\r\n                              fill: true,\r\n                              backgroundColor: \"#e8452909\",\r\n                              borderColor: \"#e84529\"\r\n                            },\r\n                          ]}} />\r\n                        :<p className='text-primary'>No tiene notas en este examen</p>\r\n                      }\r\n                    </div>\r\n                )\r\n              }) :\r\n              <p>No data</p>\r\n            }  \r\n          </div>\r\n          <div className={`w-full h-full pt-8 px-0 justify-center flex-wrap max-h-screen overflow-auto ${windowActive === 'sources'?'flex flex-row':'hidden'}`}>\r\n            <div className='flex flex-col items-start justify-center mt-4 mx-4 '>\r\n            <p className='text-center font-bold text-primary text-xl'>Tus recursos disponibles: </p>\r\n              <ul>\r\n                {user?\r\n                  user.recursos?\r\n                  user.recursos.map((recurso,index)=>{\r\n                    return(\r\n                      <li type='disc' className='ml-8' >\r\n                        <a href={recurso.url} target='_blank' rel=\"noopener noreferrer\" className='mx-1 text-start text-black'>{recurso.nombre}</a>\r\n                      </li>\r\n                    )\r\n                      })\r\n                    :\r\n                    <li>No cuenta con Recursos en este momento</li>\r\n                  :\r\n                  null\r\n                }\r\n              </ul>\r\n              \r\n            </div>\r\n          </div>\r\n          <div className={`w-full h-full pt-8 px-0 justify-center flex-wrap max-h-screen overflow-auto ${windowActive === 'contact'?'flex flex-row':'hidden'}`}>\r\n          <h1>Hola {user?user.name:null}, en que podemos ayudarte:</h1>\r\n                <div className=\"flex flex-row justify-center items-start mt-5 w-full\">\r\n                  <div className=\"flex flex-col justify-center items-center  w-full mr-8\">\r\n                    <div className='flex self-start justify-start items-center bg-gray-300 mt-2 w-full'>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaWhatsapp className='bg-green-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaEnvelope className='bg-blue-600 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <p className='px-3 text-center text-black'>Leonel de Sistemas</p>\r\n                    </div>\r\n                    <div className='flex self-start justify-start items-center bg-gray-300 mt-2 w-full'>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaWhatsapp className='bg-green-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaEnvelope className='bg-blue-600 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <p className='px-3 text-center text-black'>Abigail de administracion</p>\r\n                    </div>\r\n                    {/* <div className='flex self-start justify-start items-center bg-gray-300 mt-2 w-full'>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaWhatsapp className='bg-green-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaEnvelope className='bg-blue-600 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <p className='px-3 text-center text-black'>Valeria de Finanzas</p>\r\n                    </div> */}\r\n                    <div className='flex self-start justify-start items-center bg-gray-300 mt-2 w-full'>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaWhatsapp className='bg-green-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaEnvelope className='bg-blue-600 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <p className='px-3 text-center text-black'>Rimber de sistemas</p>\r\n                    </div>\r\n                  </div>\r\n                  <div className=\"flex flex-col justify-start items-end w-full sefl-start ml-4\">\r\n                    <div className='flex self-end justify-end items-center bg-green-300 mt-2 w-full'>\r\n                      <p className='px-3 text-center text-black'>Apriori Whatsapp</p>\r\n                      <a href='https://wa.me/+59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaWhatsapp className='bg-green-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                    </div>\r\n                    <div className='flex self-end justify-end items-center bg-red-300 mt-2 w-full'>\r\n                      <p className='px-3 text-center text-black'>Apriori Email</p>\r\n                      <a className=\"text-primary\" href=\"mailto:apriori.bolivian@gmail.com\" >\r\n                       <FaEnvelope className='bg-red-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      \r\n                    </div>\r\n                    <div className='flex self-end justify-end items-center bg-blue-300 mt-2 w-full'>\r\n                      <p className='px-3 text-center text-black'>Apriori Facebook</p>\r\n                      <a href=\"https://m.me/aprioribol\" target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaFacebookF className='bg-blue-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                    </div>\r\n                    <div className='flex self-end justify-end items-center bg-pink-300 mt-2 w-full'>\r\n                      <p className='px-3 text-center text-black'>Apriori Instagram</p>\r\n                      <a href=\"https://in.me/aprioribol\" target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaInstagramSquare className='bg-pink-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n\r\n                <div className='flex flex-col items-center mt-8'>\r\n                <p className='my-1 text-center'>Tuviste algun incoveniente con la plataforma? </p>\r\n                <textarea  onChange={(e)=>{setMensajeContacto(e.target.value)}}  className='w-2/3 border-2 border-red-400 p-2 rounded my-3' placeholder='Escribe aqui tu mensaje'></textarea>\r\n                  <div className='flex justify-center' >\r\n                  <a href={`https://wa.me/+59175413873?text=${mensajeContacto}`} target='_blank' rel=\"noopener noreferrer\" className='my-2 bg-primary p-2 rounded text-white px-3'>Enviar a Soporte\r\n                      </a>\r\n                  </div>\r\n                  \r\n                </div>\r\n               \r\n                <div div=\"flex flex-col w-full justify-center bg-red-200\"> \r\n                  \r\n                </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <Footer contact='not'/>\r\n    </>\r\n  );\r\n}","const types = {\r\n    GET_QUESTION_REQUEST: 'GET_QUESTION_REQUEST',\r\n    GET_QUESTION_SUCCESS: 'GET_QUESTION_SUCCESS',\r\n    GET_QUESTION_FAILURE: 'GET_QUESTION_FAILURE',\r\n    \r\n    LOAD_EXAM_REQUEST: 'LOAD_EXAM_REQUEST',\r\n    LOAD_EXAM_SUCCESS: 'LOAD_EXAM_SUCCESS',\r\n    LOAD_EXAM_FAILURE: 'LOAD_EXAM_FAILURE',\r\n\r\n    CLEAR_EXAM: 'CLEAR_EXAM',\r\n    \r\n    MARCAR_PREGUNTA_REQUEST: 'MARCAR_PREGUNTA_REQUEST',\r\n    MARCAR_PREGUNTA_SUCCESS: 'MARCAR_PREGUNTA_SUCCESS',\r\n    MARCAR_PREGUNTA_FAILURE: 'MARCAR_PREGUNTA_FAILURE',\r\n\r\n    MARCAR_PREGUNTA_TEST_FAILURE: 'MARCAR_PREGUNTA_TEST_FAILURE',\r\n    MARCAR_PREGUNTA_TEST_REQUEST: 'MARCAR_PREGUNTA_TEST_REQUEST',\r\n    MARCAR_PREGUNTA_TEST_SUCCESS: 'MARCAR_PREGUNTA_TEST_SUCCESS',\r\n\r\n    SAVE_NOTAS_REQUEST: 'SAVE_NOTAS_REQUEST',\r\n    SAVE_NOTAS_SUCCESS: 'SAVE_NOTAS_SUCCESS',\r\n    SAVE_NOTAS_FAILURE: 'SAVE_NOTAS_FAILURE',\r\n    LOAD_EXAM_TEST: 'LOAD_EXAM_TEST',\r\n}\r\nexport default types;\r\n","import {db, auth} from '../../config/firebase';\r\nimport axios from 'axios';\r\nimport types from '../types/exam';\r\nimport dbRef from '../../config/dbRef';\r\n//import { useDispatch, useSelector } from 'react-redux';\r\nimport { doc, updateDoc} from \"firebase/firestore\";\r\n//import {shuffleArray} from './../../utils/arrays';\r\n//import {getExamId, getMateriaId} from '../../utils/exam';\r\n\r\nconst getQuestionRequest = payload => ({\r\n    type: types.GET_QUESTION_REQUEST,\r\n    payload: payload,\r\n});\r\n\r\nconst getQuestionSuccess = payload => ({\r\n    type: types.GET_QUESTION_SUCCESS,\r\n    payload: payload,\r\n});\r\n\r\n// const getQuestionFailure = payload => ({\r\n//     type: types.GET_QUESTION_FAILURE,\r\n//     payload: payload,\r\n// });\r\n\r\nconst loadExamRequest = payload => ({\r\n    type: types.LOAD_EXAM_REQUEST,\r\n    payload: payload,\r\n});\r\n\r\nconst loadExamSuccess = payload => ({\r\n    type: types.LOAD_EXAM_SUCCESS,\r\n    payload: payload,\r\n});\r\n\r\nconst loadExamFailure = payload => ({\r\n    type: types.LOAD_EXAM_FAILURE,\r\n    payload: payload,\r\n});\r\n\r\nconst marcarPreguntaRequest = payload => ({\r\n    type: types.MARCAR_PREGUNTA_REQUEST,\r\n    payload: payload,\r\n});\r\n\r\nconst marcarPreguntaTestRequest = payload => ({\r\n    type: types.MARCAR_PREGUNTA_TEST_REQUEST,\r\n    payload: payload,\r\n});\r\n\r\n\r\nconst marcarPreguntaSuccess = payload => ({\r\n    type: types.MARCAR_PREGUNTA_SUCCESS,\r\n    payload: payload,\r\n});\r\n\r\nconst marcarPreguntaTestSuccess = payload => ({\r\n    type: types.MARCAR_PREGUNTA_TEST_SUCCESS,\r\n    payload: payload,\r\n});\r\n\r\nconst marcarPreguntaFailure = payload => ({\r\n    type: types.MARCAR_PREGUNTA_TEST_FAILURE,\r\n    payload: payload,\r\n});\r\nconst marcarPreguntaTestFailure = payload => ({\r\n    type: types.MARCAR_PREGUNTA_FAILURE,\r\n    payload: payload,\r\n});\r\n\r\nconst saveNotasRequest= payload => ({\r\n    type: types.SAVE_NOTAS_REQUEST,\r\n    payload: payload,\r\n});\r\n\r\nconst saveNotasSuccess = payload => ({\r\n    type: types.SAVE_NOTAS_SUCCESS, \r\n    payload: payload,\r\n});\r\n\r\nconst saveNotasFailure = payload => ({\r\n    type: types.SAVE_NOTAS_FAILURE,\r\n    payload: payload,\r\n});\r\n\r\nexport const clearExam = () => ({\r\n    type: types.CLEAR_EXAM,\r\n})\r\n\r\nexport const loarExamTest = (data) => ({\r\n    type: types.LOAD_EXAM_TEST,\r\n})\r\n\r\nexport const getQuestion = (idUsuario) => {\r\n    return async (dispatch) => {\r\n        try{\r\n            //YLpDjjCWcvMkJPmVUvEn4EyaALf2\r\n            const baseUrl= `https://apri-back.herokuapp.com/exams/${idUsuario}`;\r\n            dispatch(getQuestionRequest());\r\n            const raw = JSON.stringify({\r\n                typeReq: 'get',\r\n              });\r\n            \r\n              const config = {\r\n                method: 'get',\r\n                url: baseUrl,\r\n                headers: {\r\n                    \"Access-Control-Allow-Origin\": \"*\",\r\n                    \"access-control-allow-methods\": \"GET, POST, PATCH, PUT, DELETE, OPTIONS\",\r\n                    \"access-control-allow-headers\": \"Origin, Content-Type, X-Auth-Token, Authorization\",\r\n                    'Content-Type': 'application/json',\r\n                },\r\n                data: raw,\r\n              };\r\n            \r\n            const data = await axios(config);\r\n            dispatch(getQuestionSuccess(data.data));\r\n        }\r\n        catch(error){\r\n            console.log(error);\r\n        }\r\n    }\r\n}\r\n\r\nexport const loadExam = (data) => {\r\n    return async (dispatch) => {\r\n        try{\r\n            dispatch(loadExamRequest());\r\n            //dispatch(loadExam_({examId:examId,estado:estado}));\r\n            dispatch(loadExamSuccess(data));\r\n        }\r\n        catch(error){\r\n            dispatch(loadExamFailure(error));\r\n        }\r\n    }\r\n}\r\n\r\nexport const loadToExams = (data) => {\r\n    return async (dispatch) => {\r\n        try{\r\n            dispatch(getQuestionSuccess(data));\r\n        }\r\n        catch(error){\r\n            dispatch(loadExamFailure(error));\r\n        }\r\n    }\r\n}\r\n\r\nexport const marcarRespuesta = (idMateria,idPregunta,marcado,estado) => {\r\n    return async (dispatch) => {\r\n        try{\r\n            let estadoCopy=estado;\r\n            dispatch(marcarPreguntaRequest());\r\n            let indexMateria \r\n            const copia = estado.find((e,i)=>{\r\n              indexMateria=i\r\n              return e.idMateria === idMateria;\r\n            })\r\n            \r\n            console.log(\"this:\",indexMateria)\r\n            //console.log(copia)\r\n            let indexPregunta;\r\n            \r\n            const copiaOpciones = copia.preguntas.find((e,i)=>{\r\n              indexPregunta=i\r\n              return e.id === idPregunta;\r\n            })\r\n            \r\n            console.log(\"estado copy:\",estadoCopy[indexMateria].preguntas)\r\n            console.log(\"index pregunta:\",indexPregunta)\r\n            \r\n            estadoCopy[indexMateria].preguntas[indexPregunta].marcado=marcado;\r\n            dispatch(marcarPreguntaSuccess(estadoCopy));\r\n        }\r\n        catch(error){\r\n            dispatch(marcarPreguntaFailure(error));\r\n        }\r\n    }\r\n}\r\nexport const marcarRespuestaTest = (idMateria,idPregunta,marcado,estado) => {\r\n    return async (dispatch) => {\r\n        try{\r\n            let estadoCopy=estado;\r\n            dispatch(marcarPreguntaTestRequest());\r\n            let indexMateria \r\n            const copia = estado.find((e,i)=>{\r\n              indexMateria=i\r\n              return e.idMateria === idMateria;\r\n            })\r\n            \r\n            console.log(\"this:\",indexMateria)\r\n            //console.log(copia)\r\n            let indexPregunta;\r\n            \r\n            // const copiaOpciones = copia.preguntas.find((e,i)=>{\r\n            //   indexPregunta=i\r\n            //   return e.id === idPregunta;\r\n            // })\r\n            estadoCopy[indexMateria].preguntas[indexPregunta].marcado=marcado;\r\n            dispatch(marcarPreguntaTestSuccess(estadoCopy));\r\n        }\r\n        catch(error){\r\n            dispatch(marcarPreguntaTestFailure(error));\r\n        }\r\n    }\r\n}\r\n\r\nexport const saveNotas = (notas,notasA)=>{\r\n    return async (dispatch) =>{\r\n        try{\r\n            dispatch(saveNotasRequest());\r\n            const ex = notasA.filter((e)=>e.id === notas.idCuenta)\r\n            const notas_ = ex[0].notas?ex[0].notas:[];\r\n\r\n            const userId = auth.currentUser.uid\r\n            const notas__=[...notas_,notas];\r\n\r\n            const cuenta = doc(db, dbRef.user, userId,'cuenta',notas.idCuenta);\r\n\r\n            await updateDoc(cuenta, {notas:notas__});\r\n            dispatch(saveNotasSuccess(notas));\r\n        } catch(error){\r\n            dispatch(saveNotasFailure(error));\r\n        }\r\n    }\r\n}","import React ,{useState,useEffect} from 'react';\r\nimport { RiSendPlane2Fill} from \"react-icons/ri\";\r\nimport {marcarRespuesta} from './../../../redux/actions/exam';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport { set } from 'react-ga';\r\nconst mostrarPreguntaProcesada = (item, estado, correct) => {\r\n  return (\r\n  <>\r\n    {\r\n      <p className={`flex flex-col w-full p-4 ${correct?'border-green-500':''} rounded-md ${estado?'border-0':'border-2'}  ` }>\r\n     { item.map((itemd,index)=>{\r\n        if(itemd.includes(\"IMGAQUI\")){\r\n          return(\r\n            <img src={\r\n              itemd.replace(\"IMGAQUI\",\"\")\r\n            } className='w-1/2 max-h-96' alt='imagen'/>\r\n          )\r\n        }else{\r\n          return(\r\n            <p className='text-justify text-gray-800'>{itemd}</p>\r\n          )\r\n        }       \r\n      })}\r\n      </p>\r\n    }\r\n  </>\r\n  )\r\n}\r\nconst Opcion = (props) => {\r\n  const {correcta} = props;\r\n  const [textoProcesado, setTextoProcesado] = useState([]);\r\n  const [estado,setEstado] = useState(props.active);\r\n  useEffect(()=>{\r\n    setEstado(props.active);\r\n  },[props.active])\r\n\r\n  //procesar texto\r\n  const procesarTexto = (text) => {\r\n    // console.log(\"procesarTEXTO\");\r\n    let textP=[];\r\n    text.split(\"imgcontent\").forEach((item,index)=>{\r\n      if(item !==  \"\"){\r\n        // console.log(\"procesarTEXTO\",item);\r\n        textP.push(item);\r\n      }\r\n    });\r\n    setTextoProcesado(textP);\r\n    // console.log(text);\r\n  }\r\n  useEffect(() => {\r\n    procesarTexto(props.dato);\r\n    // console.log(props.dato);\r\n    // console.log(textoProcesado);\r\n  }, [props.dato]);\r\n  //fin procesar texto\r\n\r\n  return(\r\n    estado === false ?\r\n    <div className='flex flex-row items-start justify-start border-primary border-0 mt-2 pl-4 rounded cursor-pointer w-full'\r\n      onClick={()=>{props.onPress()}}\r\n    >\r\n      <RiSendPlane2Fill size={32} className='mr-2 mt-2 text-gray-800' style={{maxWidth:20,minWidth:19}}/>\r\n      \r\n      {correcta? \r\n      (<>\r\n        {\r\n          correcta===props.dato?\r\n          <>\r\n            {\r\n              \r\n              mostrarPreguntaProcesada(textoProcesado, estado, true)\r\n            }\r\n          </>:\r\n          <>\r\n\r\n\r\n          {mostrarPreguntaProcesada(textoProcesado, estado, false)}\r\n          </>\r\n        }\r\n      </>):\r\n      (<>\r\n        {mostrarPreguntaProcesada(textoProcesado, estado, false)}\r\n      </>)\r\n      }\r\n    </div>\r\n    :\r\n    <div className='flex flex-row items-start justify-start border-primary border-2 mt-2 pl-4 rounded  w-full cursor-pointer'\r\n      onClick={()=>{props.onPress()}}\r\n    >\r\n      <RiSendPlane2Fill size={32} className='mr-2 mt-2 text-primary' style={{maxWidth:20,minWidth:19}}/>\r\n      {correcta? (<>\r\n        {\r\n          correcta===props.dato?\r\n          <>\r\n          {mostrarPreguntaProcesada(textoProcesado, estado, true)}\r\n          </>:\r\n          <>\r\n          {mostrarPreguntaProcesada(textoProcesado, estado, false)}\r\n          </>\r\n        }\r\n      </>):\r\n      (<>\r\n        {mostrarPreguntaProcesada(textoProcesado, estado, false)}\r\n      </>)\r\n      }\r\n    </div>\r\n  );\r\n}\r\n\r\nconst Question = (props) => {\r\n  const [textoProcesado, setTextoProcesado] = useState([]);\r\n  const procesarTexto = (text) => {\r\n    // console.log(\"procesarTEXTO\");\r\n    let textP=[];\r\n    text.split(\"imgcontent\").forEach((item,index)=>{\r\n      if(item !==  \"\"){\r\n        // console.log(\"procesarTEXTO\",item);\r\n        textP.push(item);\r\n      }\r\n    });\r\n    setTextoProcesado(textP);\r\n    // console.log(text);\r\n  }\r\n  useEffect(() => {\r\n    procesarTexto(props.dato);\r\n    // console.log(props.dato);\r\n    // console.log(textoProcesado);\r\n  }, [props.dato]);\r\n  return(\r\n    <>\r\n    { textoProcesado.map((itemd,index)=>{\r\n       if(itemd.includes(\"IMGAQUI\")){\r\n         return(\r\n           <img src={\r\n             itemd.replace(\"IMGAQUI\",\"\")\r\n           } className='w-1/2 max-h-96' alt='imagen'/>\r\n         )\r\n       }else{\r\n         return(\r\n          <span className='text-left text-2xl text-gray-800  font-bold ml-3'>{itemd}</span>\r\n         )\r\n       }       \r\n     })}\r\n     </>\r\n  );\r\n\r\n}\r\n\r\n\r\n\r\nexport default function Pregunta  (props) {\r\n  const dispatch = useDispatch();\r\n  const {revision, correct} = props;\r\n  const examen = useSelector(state=>state.exam.exam);\r\n  const [estados,setEstados] = useState([false,false,false,false]);\r\n  const [revision_,setRevision_] = useState(revision);\r\n  const [currentState,setCurrentState] = useState();\r\n  const [dataProps,setDataProps] = useState(props);\r\n  const [context, setContext] = useState('');\r\n  const [modalContext, setModalContext] = useState(false);\r\n\r\n  const changeState = (index,respuesta,idP,idM,estado,revision) => {\r\n    if(revision === 'rev'){\r\n      console.log(\"esta en revision\");\r\n      return\r\n    }\r\n    let newEstados = [false,false,false,false];\r\n    newEstados[index] = !newEstados[index];\r\n    setEstados(newEstados);\r\n    console.log(estados);\r\n\r\n    // setEstados([...estados.slice(0,index),true, ...estados.slice(index+1)]);\r\n    console.log(\"changeState\",index,respuesta,idP,idM,estado);\r\n    dispatch(marcarRespuesta(idM,idP,respuesta,estado));\r\n  }\r\n\r\n  useEffect(()=>{\r\n    setCurrentState(examen);\r\n  },[examen]);\r\n\r\n  useEffect(()=>{\r\n    setRevision_(revision);\r\n  },[revision]);\r\n\r\n  useEffect(()=>{\r\n    setDataProps(props);\r\n  },[props]);\r\n\r\n  return(\r\n  <>\r\n    {\r\n      modalContext &&\r\n      <div className='fixed top-0 left-0 w-full h-full bg-gray-800 bg-opacity-50 flex flex-col justify-center items-center'>\r\n        <div className='w-3/4 bg-white p-4 rounded-lg'>\r\n          <p className='text-justify text-gray-800'>{context}</p>\r\n          <button className='bg-primary text-white px-2 py-1 rounded-md mt-4' onClick={()=>{setModalContext(false)}}>Cerrar</button>\r\n        </div>\r\n      </div>\r\n    }\r\n    <div className=\"w-full bg-white flex flex-col justify-start p-8 rounded mt-4\">\r\n      <div className='flex flex-row justify-start items-end border-primary border-b-2'>\r\n        <p className='text-left text-4xl text-fondo bg-primary px-2 text-white py-1'>{dataProps.index}.</p> \r\n        <div className=\"w-full flex flex-col justify-start p-2\" >\r\n          <Question\r\n            dato={dataProps.pregunta}\r\n          />\r\n        </div>\r\n        {\r\n          props?.item?.contexto &&\r\n          <button className='text-center text-sm font-bold ml-3 bg-primary text-white px-2 py-1 rounded-t-md mt-2' onClick={()=>{\r\n            setContext(props?.item?.contexto ? props.item.contexto : ''  );\r\n            setModalContext(true);\r\n          }}>\r\n            Ver Contexto\r\n          </button>\r\n        }\r\n        \r\n      </div>\r\n      {\r\n        revision_?\r\n        <div className='flex flex-col justify-start items-start mt-4'>\r\n        {\r\n          dataProps.marcado?<>\r\n            {\r\n              dataProps.respuestas[0]=== \"\" || dataProps.respuestas[0]=== undefined? null :\r\n              <Opcion\r\n                correcta={correct}\r\n                dato={dataProps.respuestas[0]}\r\n                active={dataProps.respuestas[0]===dataProps.marcado?true:false}\r\n                onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n              />\r\n            }\r\n            {\r\n              dataProps.respuestas[1]=== \"\" || dataProps.respuestas[1]=== undefined? null :\r\n              <Opcion\r\n                correcta={correct}\r\n                dato={dataProps.respuestas[1]}\r\n                active={dataProps.respuestas[1]===dataProps.marcado?true:false}\r\n                onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n              />\r\n            }\r\n            {\r\n              dataProps.respuestas[2]=== \"\" || dataProps.respuestas[2]=== undefined? null :\r\n              <Opcion\r\n                correcta={correct}\r\n                dato={dataProps.respuestas[2]} \r\n                active={dataProps.respuestas[2]===dataProps.marcado?true:false}\r\n                onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n              />\r\n            }\r\n            {\r\n              dataProps.respuestas[3]=== \"\" || dataProps.respuestas[3]=== undefined? null :\r\n              <Opcion\r\n                correcta={correct}\r\n                dato={dataProps.respuestas[3]}\r\n                active={dataProps.respuestas[3]===dataProps.marcado?true:false}\r\n                onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n              />\r\n            }\r\n          </>:\r\n          <>\r\n            {dataProps.respuestas[0]=== \"\" || dataProps.respuestas[0]=== undefined? null :\r\n              <Opcion \r\n                correcta={correct}\r\n                dato={dataProps.respuestas[0]}\r\n                active={estados[0]} \r\n                onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n              />\r\n            }\r\n            {\r\n              dataProps.respuestas[1]=== \"\" || dataProps.respuestas[1]=== undefined? null :\r\n              <Opcion\r\n              correcta={correct}\r\n              dato={dataProps.respuestas[1]}\r\n              active={estados[1]}\r\n              onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n            />}\r\n            {\r\n              dataProps.respuestas[2]=== \"\" || dataProps.respuestas[2]=== undefined? null :\r\n              <Opcion\r\n              correcta={correct}\r\n              dato={dataProps.respuestas[2]} \r\n              active={estados[2]}\r\n              onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n            />}\r\n           {\r\n             dataProps.respuestas[3]=== \"\" || dataProps.respuestas[3]=== undefined? null :\r\n            <Opcion\r\n              correcta={correct}\r\n              dato={dataProps.respuestas[3]}\r\n              active={estados[3]}\r\n              onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n            />}\r\n          </>\r\n        }\r\n\r\n        </div>:\r\n        <div className='flex flex-col justify-start items-start mt-4'>\r\n              <>\r\n                  {\r\n                    dataProps.respuestas[0]=== \"\" || dataProps.respuestas[0]=== undefined? null :\r\n                    <Opcion \r\n                   \r\n                    dato={dataProps.respuestas[0]}\r\n                    active={estados[0]} \r\n                    onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState)}}\r\n                  />}\r\n                  {\r\n                    dataProps.respuestas[1]=== \"\" || dataProps.respuestas[1]=== undefined? null :\r\n                    <Opcion\r\n                    \r\n                    dato={dataProps.respuestas[1]}\r\n                    active={estados[1]}\r\n                    onPress={()=>{changeState(1,dataProps.respuestas[1],dataProps.idPregunta,dataProps.materia,currentState)}}\r\n                  />}\r\n                  {\r\n                    dataProps.respuestas[2]=== \"\" || dataProps.respuestas[2]=== undefined? null :\r\n                    <Opcion\r\n                    \r\n                    dato={dataProps.respuestas[2]} \r\n                    active={estados[2]} \r\n                    onPress={()=>{changeState(2,dataProps.respuestas[2],dataProps.idPregunta,dataProps.materia,currentState)}}\r\n                  />}\r\n                  {\r\n                    dataProps.respuestas[3]=== \"\" || dataProps.respuestas[3]=== undefined? null :\r\n                    <Opcion\r\n                    dato={dataProps.respuestas[3]}\r\n                    active={estados[3]}\r\n                    onPress={()=>{changeState(3,dataProps.respuestas[3],dataProps.idPregunta,dataProps.materia,currentState)}}\r\n                  />}\r\n              </>\r\n      \r\n        </div>\r\n      }\r\n      {\r\n        revision_ ?\r\n          dataProps.explicacionCorrecta?\r\n            <p className='w-full p-2 border-primary border-t-2 mt-3'><span className='text-primary'>Fundamento : </span>{dataProps.explicacionCorrecta}</p>\r\n            :\r\n            null\r\n          :\r\n          null\r\n      }\r\n     \r\n    </div>\r\n  </>\r\n  );\r\n};","import React ,{useState,useEffect,useRef} from 'react';\r\nimport { RiSendPlane2Fill} from \"react-icons/ri\";\r\nimport Pregunta from './pregunta';\r\nimport {BsFillCaretLeftFill, BsFillCaretRightFill } from \"react-icons/bs\";\r\n\r\nconst Marker=({texto, select})=>{\r\n  \r\n  const [state,setState] = useState(false);\r\n  const [text,setText] = useState('');\r\n  useEffect(()=>{\r\n    setState(select);\r\n    setText(texto);\r\n  },[select,texto])\r\n  return(\r\n    <div className= {`bg-fondo m-1 mx-2 px-4 p-2 border-2 text-red-600  -md border-withe  hover:border-primary hover:text-primary ${state?\r\n      'bg-primary border-primary text-fondo':\r\n      ''\r\n    } `}>\r\n      <p\r\n        className={`text-center font-bold  ${state? 'text-fondo':'text-primary'}`}\r\n      >{text}</p>\r\n      \r\n    </div>\r\n  );\r\n}\r\n\r\nexport default function Materia  (props) {\r\n  const {revision, siguenteMateria, anteriorMateria, cantidadMateria, index} = props;\r\n\r\n  //const data = props.data.preguntas;\r\n  const [revision_,setRevision_] = useState(revision);\r\n  const [data,setData] = useState(props.data.preguntas);\r\n  useEffect(()=>{\r\n    setRevision_(revision);\r\n  },[revision])\r\n\r\n  useEffect(()=>{\r\n    setData(props.data.preguntas);\r\n  },[props.data])\r\n  return(\r\n    <>\r\n        <div className='w-3/4 flex flex-col justify-start items-center overflow-scroll h-screen pt-20 bg-gray-200 px-6 pb-24' style={{overflowX:'hidden',\r\n        display:`${props.display}`,\r\n      }}>\r\n         \r\n          <div className='flex flex-row justify-center items-center absolute items-self-end justify-self-end mt-full bg-gray-400 p-1 rounded drop-shadow-lg' style={{marginTop:'40%'}}>\r\n          {\r\n           data.map((item,index)=>{\r\n             return(\r\n                <Marker texto={index+1} select={item.marcado?true:false}/>\r\n             )\r\n            })\r\n         }\r\n          </div>\r\n          {\r\n            data.map((item,index)=>{\r\n              return(\r\n                <Pregunta \r\n                  marcado={item.marcado?item.marcado:null} \r\n                  idPregunta={item.id}\r\n                  materia={item.materia}\r\n                  key={index}\r\n                  index={index+1}\r\n                  pregunta={item.pregunta}\r\n                  respuestas={item.opciones}\r\n                  correct={item.opcionCorrecta}\r\n                  revision={revision_}\r\n                  explicacionCorrecta={item.explicacionCorrecta}\r\n                  item={item}\r\n                />\r\n                  \r\n              )\r\n            })\r\n          }\r\n          <div className='flex flex-row justify-center' >\r\n            {\r\n              index!==0?\r\n                <button className='flex flex-row items-center ali bg-primary text-white p-2 rounded-lg mt-5 mx-4' onClick={()=>{anteriorMateria()}}>\r\n                  <BsFillCaretLeftFill className='text-white'/>\r\n                  Anterior Materia\r\n                </button>\r\n              :null}\r\n            {\r\n              index!==cantidadMateria-1?\r\n                <button className='flex flex-row items-center bg-primary text-white p-2 rounded-lg mt-5 mx-4' onClick={()=>{siguenteMateria()}}>\r\n                  Siguiente Materia\r\n                  <BsFillCaretRightFill className='text-white'/>\r\n                </button>\r\n                :\r\n                null\r\n\r\n            }\r\n            \r\n          </div>\r\n          \r\n        </div>\r\n    </>\r\n    );\r\n};","import React ,{useState,useEffect,useRef} from 'react';\r\nimport { RiSendPlane2Fill} from \"react-icons/ri\";\r\n\r\nexport default function Pestania  (props) {\r\n\r\n  console.log(\"desde pestania\"+props);\r\n\r\n  const [state,setState] = useState(true);\r\n\r\n  const changeState = () => {\r\n    alert(props.id);\r\n  }\r\n\r\n  return(\r\n  <>\r\n    <div className={`${\r\n      props.active ? \r\n      'divide-y items-self-end text-center p-3 border-t-2 border-b-2 w-full border-transparent bg-gray-200 text-primary':\r\n      'divide-y items-self-end text-center p-3 border-t-2 border-b-2 w-full border-primary text-white'\r\n    } cursor-pointer`} style={{\r\n      width: '100%',\r\n    }}\r\n    onClick={()=>{props.onPress()}}\r\n    >\r\n      {props.nombre}\r\n    </div>\r\n  </>\r\n  );\r\n};","export const shuffleArray = (inputArray) => inputArray.sort(()=> Math.random() - 0.5);\r\n\r\n","//import { id } from 'react-horizontal-scrolling-menu/dist/types/constants';\r\nimport { db } from '../../src/config/firebase';\r\nimport dbRef from '../config/dbRef';\r\nimport {shuffleArray} from './arrays';\r\n//import { useDispatch, useSelector } from 'react-redux';\r\nimport { collection, getDocs, doc, getDoc, query,where} from \"firebase/firestore\";\r\n\r\nexport const loadExams = (idExamem, iduser) =>\r\nnew Promise(async (resolve, reject) => {\r\n    try{\r\n        console.log('idExamen:', idExamem);\r\n        console.log('iduser:', iduser);\r\n        const examenRef = doc(db,dbRef.user, iduser, 'examenes', idExamem);\r\n        const docSnap = await getDoc(examenRef);\r\n        \r\n        resolve(docSnap.data().examen);\r\n        //data.push(materias);\r\n\r\n        // resolve(materias);\r\n    } catch (error) {\r\n        reject(error);\r\n    }\r\n});\r\n\r\nexport const getExamId =  (examId) =>\r\nnew Promise(async (resolve, reject) => {\r\n    try{\r\n        const docRef = doc(db, dbRef.exam, examId);\r\n        const docSnap = await getDoc(docRef);\r\n\r\n        if (docSnap.exists()) {\r\n            console.log('data obtenido de exam');\r\n        } else {\r\n            reject('[utils][exam]No Existe el examen');\r\n            console.log(\"[Actions][exam][getQuestion]:Error No existe el examen\");\r\n        }\r\n        const exam = docSnap.data()\r\n        resolve(exam);\r\n\r\n    } catch (error) {\r\n        reject(error);\r\n    }\r\n\r\n});\r\n\r\nexport const getMateriaId =  (IdMateria) => \r\nnew Promise(async (resolve, reject) => {\r\n    try {\r\n        const materias = query(collection(db, IdMateria), where(\"id\",\">=\",0));\r\n        const querySnapshot = await getDocs(materias);\r\n        let preguntas= [];\r\n        querySnapshot.forEach(doc => {\r\n            preguntas.push(doc.data());\r\n        })\r\n        //mezclamos el orden de las preguntas\r\n        shuffleArray(preguntas);\r\n        \r\n        //mezclamos el orden de las opciones\r\n        preguntas.map(pregunta =>shuffleArray(pregunta.opciones));\r\n\r\n        resolve(preguntas);\r\n\r\n    } catch(error) {\r\n        reject(error);\r\n    }\r\n});\r\n\r\nexport const getMateriaId2 =  (IdMateria, cantidadP) => \r\nnew Promise(async (resolve, reject) => {\r\n    try {\r\n        const materias = query(collection(db, IdMateria), where(\"id\",\">=\",0));\r\n        const querySnapshot = await getDocs(materias);\r\n        let preguntas= [];\r\n        querySnapshot.forEach(doc => {\r\n            preguntas.push(doc.data());\r\n        })\r\n        //mezclamos el orden de las preguntas\r\n        shuffleArray(preguntas);\r\n        \r\n        //mezclamos el orden de las opciones\r\n        preguntas.map(pregunta =>shuffleArray(pregunta.opciones));\r\n\r\n        const preguntas_ = preguntas.slice(0,cantidadP);\r\n        resolve(preguntas_);\r\n\r\n    } catch(error) {\r\n        reject(error);\r\n    }\r\n});\r\n\r\nexport const evaluarExamen = (exam) => {\r\n    let materias = [];\r\n    let idCuenta = '';\r\n    let totalCorretas = 0; \r\n    let totalIncorrectas = 0;\r\n    exam.map((mat)=>{\r\n        const materia = mat.materia;\r\n        idCuenta = mat.idCuenta;\r\n        let correctas = 0;\r\n        let incorrectas = 0;\r\n        mat.preguntas.map((p) => {\r\n            if(p.marcado){\r\n                if(p.marcado === p.opcionCorrecta){\r\n                    correctas++;\r\n                    totalCorretas++;\r\n                }else{\r\n                    incorrectas++;\r\n                    totalIncorrectas++;\r\n                }\r\n            } else {\r\n                incorrectas++;\r\n                totalIncorrectas++;\r\n            }\r\n        });\r\n        let materia_ = {            \r\n            materia: materia,\r\n            correctas: correctas,\r\n            incorrectas: incorrectas,\r\n        }\r\n        materias.push(materia_);\r\n    })\r\n    console.log(\"total de ppreguntas :\",totalCorretas, totalIncorrectas);\r\n    const notaPorPregunta = 100/(totalCorretas+totalIncorrectas);\r\n    const calificacion = notaPorPregunta*totalCorretas;\r\n    const nota = {\r\n        fecha: new Date(),\r\n        correctas: totalCorretas,\r\n        incorrectas: totalIncorrectas,\r\n        calificacion: calificacion,\r\n        idCuenta: idCuenta,\r\n        notas:materias\r\n    };\r\n\r\n    return nota;\r\n}\r\n\r\n","const types = {\r\n  ADD_TEST_FAILURE: 'ADD_TEST_FAILURE',\r\n  ADD_TEST_SUCCESS : 'ADD_TEST_SUCCESS',\r\n  REMPLACE_TEST_SUCCESS: 'REMPLACE_TEST_SUCCESS',\r\n  REMPLACE_TEST_FAILURE: 'REMPLACE_TEST_FAILURE',\r\n}\r\nexport default types;\r\n","import types from '../types/test';\r\n\r\nconst addTestFailure = payload => ({\r\n    type: types.ADD_TEST_FAILURE,\r\n    payload:payload,\r\n});\r\n\r\nconst addTestSuccess = payload => ({\r\n    type:types.ADD_TEST_SUCCESS,\r\n    payload:payload,\r\n});\r\n\r\nconst remplaceTestFailure = payload => ({\r\n    type: types.REMPLACE_TEST_FAILURE,\r\n    payload:payload,\r\n});\r\n\r\nconst remplaceTestSuccess = payload => ({\r\n    type:types.REMPLACE_TEST_SUCCESS,\r\n    payload:payload,\r\n});\r\n\r\n\r\nexport const addTest = (payload) => {\r\n    return (dispatch) => {\r\n        try{\r\n            dispatch(addTestSuccess(payload))\r\n            // alert(\"lleogotest\");\r\n        } catch(error){\r\n            dispatch(addTestFailure())\r\n            console.log(\"ErrorTest:\", error);\r\n        }\r\n    };\r\n}\r\n\r\nexport const remplaceTest = (payload) => {\r\n  return (dispatch) => {\r\n      try{\r\n          dispatch(remplaceTestSuccess(payload));\r\n      } catch(error){\r\n          dispatch(remplaceTestFailure())\r\n          console.log(\"ErrorTest:\", error);\r\n      }\r\n  };\r\n}","import React ,{useState,useEffect} from 'react';\r\nimport { RiSendPlane2Fill} from \"react-icons/ri\";\r\nimport {marcarRespuestaTest} from './../../../redux/actions/exam';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport { remplaceTest } from \"./../../../redux/actions/test\";\r\n\r\nconst Opcion = (props) => {\r\n  const {correcta} = props;\r\n  const [estado,setEstado] = useState(props.active);\r\n  useEffect(()=>{\r\n    setEstado(props.active);\r\n  },[props.active])\r\n\r\n\r\n  return(\r\n    estado === false ?\r\n    <div className='flex flex-row items-start justify-start border-primary border-0 mt-2 pl-4 rounded cursor-pointer w-full'\r\n      onClick={()=>{props.onPress()}}\r\n    >\r\n      <RiSendPlane2Fill size={32} className='mr-2 mt-2 text-gray-800' style={{maxWidth:20,minWidth:19}}/>\r\n      \r\n      {correcta? \r\n      (<>\r\n        {\r\n          correcta===props.dato?\r\n          <>\r\n          <p className='text-left text-lg sm:text-base md:text-lg text-green-200 my-2 ml-4'>\r\n            {props.dato}\r\n          </p>\r\n          </>:\r\n          <>\r\n          <p className='text-left text-lg sm:text-base md:text-lg text-fondo my-2 ml-4'>\r\n            {props.dato}\r\n          </p>\r\n          </>\r\n        }\r\n      </>):\r\n      (<>\r\n        <p className='text-left text-lg sm:text-base md:text-lg text-fondo my-2 ml-4'>\r\n          {props.dato}\r\n        </p>\r\n      </>)\r\n      }\r\n    </div>\r\n    :\r\n    <div className='flex flex-row items-start justify-start border-primary border-2 mt-2 pl-4 rounded  w-full cursor-pointer'\r\n      onClick={()=>{props.onPress()}}\r\n    >\r\n      <RiSendPlane2Fill size={32} className='mr-2 mt-2 text-primary' style={{maxWidth:20,minWidth:19}}/>\r\n      {correcta? (<>\r\n        {\r\n          correcta===props.dato?\r\n          <>\r\n          <p className='text-left text-lg sm:text-base md:text-lg text-green-200 my-2 ml-4'>\r\n            {props.dato}\r\n          </p>\r\n          </>:\r\n          <>\r\n          <p className='text-left text-lg sm:text-base md:text-lg text-red-200 my-2 ml-4'>\r\n            {props.dato}\r\n          </p>\r\n          </>\r\n        }\r\n      </>):\r\n      (<>\r\n        <p className='text-left text-lg sm:text-base md:text-lg text-primary my-2 ml-4'>\r\n          {props.dato}\r\n        </p>\r\n      </>)\r\n      }\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default function Pregunta  (props) {\r\n  const dispatch = useDispatch();\r\n  const {revision, correct} = props;\r\n  const examen = useSelector(state=>state.exam.exam);\r\n  const test = useSelector(state => state.test.test);\r\n  const [estados,setEstados] = useState([false,false,false,false]);\r\n  const [revision_,setRevision_] = useState(revision);\r\n  const [currentState,setCurrentState] = useState();\r\n  const [dataProps,setDataProps] = useState(props);\r\n\r\n  const changeState = (index,respuesta,idP,idM,estado,revision) => {\r\n    if(revision === 'rev'){\r\n      console.log(\"esta en revision\");\r\n      return\r\n    }\r\n    let newEstados = [false,false,false,false];\r\n    newEstados[index] = !newEstados[index];\r\n    setEstados(newEstados);\r\n    console.log(respuesta);\r\n    handleAddTest(idP+idM,respuesta);\r\n  }\r\n\r\n  \r\n  const handleAddTest = (id, opcionMarcada) => {\r\n    console.log(opcionMarcada);\r\n    test.map((item) => {  \r\n      if(item.id === id && item.opcionCorrecta === opcionMarcada){\r\n          item.correcto = true;\r\n          item.opcionSeleccionada = opcionMarcada;\r\n        }\r\n    });\r\n    dispatch(remplaceTest(test));\r\n  }\r\n\r\n  useEffect(()=>{\r\n    setCurrentState(examen);\r\n  },[examen]);\r\n\r\n  useEffect(()=>{\r\n    setRevision_(revision);\r\n  },[revision]);\r\n\r\n  useEffect(()=>{\r\n    setDataProps(props);\r\n  },[props]);\r\n\r\n  return(\r\n  <>\r\n    <div className=\"w-full bg-white flex flex-col justify-start p-8 sm:p-2 md:p-8 rounded mt-4\">\r\n      <div className='flex flex-row justify-start items-end border-primary border-b-2'>\r\n        <p className='text-left text-4xl sm:text-xl md:text-4xl text-fondo bg-primary px-2 text-white py-1'>{dataProps.index}.</p> \r\n        <span className='text-left text-2xl sm:text-base text-gray-800 md:text-2xl  font-bold ml-3'>{dataProps.pregunta}</span>\r\n        \r\n      </div>\r\n      {\r\n        revision_?\r\n        <div className='flex flex-col justify-start items-start mt-4'>\r\n        {\r\n          dataProps.marcado?<>\r\n            {\r\n              dataProps.respuestas[0]=== \"\" || dataProps.respuestas[0]=== undefined? null :\r\n              <Opcion\r\n              correcta={correct}\r\n              dato={dataProps.respuestas[0]}\r\n              active={dataProps.respuestas[0]===dataProps.marcado?true:false}\r\n              onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n            />}\r\n            {dataProps.respuestas[1]=== \"\" || dataProps.respuestas[1]=== undefined? null :\r\n              <Opcion\r\n              correcta={correct}\r\n              dato={dataProps.respuestas[1]}\r\n              active={dataProps.respuestas[1]===dataProps.marcado?true:false}\r\n              onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n            />}\r\n            {dataProps.respuestas[2]=== \"\" || dataProps.respuestas[2]=== undefined? null :\r\n              <Opcion\r\n              correcta={correct}\r\n              dato={dataProps.respuestas[2]} \r\n              active={dataProps.respuestas[2]===dataProps.marcado?true:false}\r\n              onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n            />}\r\n            {dataProps.respuestas[3]=== \"\" || dataProps.respuestas[3]=== undefined? null :\r\n              <Opcion\r\n              correcta={correct}\r\n              dato={dataProps.respuestas[3]}\r\n              active={dataProps.respuestas[3]===dataProps.marcado?true:false}\r\n              onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n            />}\r\n          </>:\r\n          <>\r\n            {dataProps.respuestas[0]=== \"\" || dataProps.respuestas[0]=== undefined? null :\r\n              <Opcion \r\n              correcta={correct}\r\n              dato={dataProps.respuestas[0]}\r\n              active={estados[0]} \r\n              onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n            />}\r\n            {dataProps.respuestas[1]=== \"\" || dataProps.respuestas[1]=== undefined? null :\r\n              <Opcion\r\n              correcta={correct}\r\n              dato={dataProps.respuestas[1]}\r\n              active={estados[1]}\r\n              onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n            />}\r\n            {dataProps.respuestas[2]=== \"\" || dataProps.respuestas[2]=== undefined? null :\r\n              <Opcion\r\n              correcta={correct}\r\n              dato={dataProps.respuestas[2]} \r\n              active={estados[2]}\r\n              onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n            />}\r\n            {dataProps.respuestas[3]=== \"\" || dataProps.respuestas[3]=== undefined? null :\r\n              <Opcion\r\n              correcta={correct}\r\n              dato={dataProps.respuestas[3]}\r\n              active={estados[3]}\r\n              onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState,'rev')}}\r\n            />}\r\n          </>\r\n        }\r\n\r\n        </div>:\r\n        <div className='flex flex-col justify-start items-start mt-4'>\r\n              <>\r\n                  {dataProps.respuestas[0]=== \"\" || dataProps.respuestas[0]=== undefined? null :\r\n                    <Opcion \r\n                   \r\n                    dato={dataProps.respuestas[0]}\r\n                    active={estados[0]} \r\n                    onPress={()=>{changeState(0,dataProps.respuestas[0],dataProps.idPregunta,dataProps.materia,currentState)}}\r\n                  />}\r\n                  {dataProps.respuestas[1]=== \"\" || dataProps.respuestas[1]=== undefined? null :\r\n                    <Opcion\r\n                    \r\n                    dato={dataProps.respuestas[1]}\r\n                    active={estados[1]}\r\n                    onPress={()=>{changeState(1,dataProps.respuestas[1],dataProps.idPregunta,dataProps.materia,currentState)}}\r\n                  />}\r\n                  {dataProps.respuestas[2]=== \"\" || dataProps.respuestas[2]=== undefined? null :\r\n                    <Opcion\r\n                    \r\n                    dato={dataProps.respuestas[2]} \r\n                    active={estados[2]} \r\n                    onPress={()=>{changeState(2,dataProps.respuestas[2],dataProps.idPregunta,dataProps.materia,currentState)}}\r\n                  />}\r\n                  {dataProps.respuestas[3]=== \"\" || dataProps.respuestas[3]=== undefined? null :\r\n                    <Opcion\r\n                    dato={dataProps.respuestas[3]}\r\n                    active={estados[3]}\r\n                    onPress={()=>{changeState(3,dataProps.respuestas[3],dataProps.idPregunta,dataProps.materia,currentState)}}\r\n                  />}\r\n              </>\r\n      \r\n        </div>\r\n      }\r\n      {\r\n        revision_ ?\r\n          dataProps.explicacionCorrecta?\r\n            <p className='w-full p-2 border-primary border-t-2 mt-3'><span className='text-primary'>Fundamento : </span>{dataProps.explicacionCorrecta}</p>\r\n            :\r\n            null\r\n          :\r\n          null\r\n      }\r\n     \r\n    </div>\r\n  </>\r\n  );\r\n};","import React ,{useState,useEffect,useRef} from 'react';\r\nimport { RiSendPlane2Fill} from \"react-icons/ri\";\r\nimport Pregunta from './pregunta';\r\nimport {useDispatch ,useSelector} from 'react-redux';\r\nimport { addTest } from '../../../redux/actions/test';\r\n\r\nconst Marker=({texto, select})=>{\r\n  \r\n  const [state,setState] = useState(false);\r\n  const [text,setText] = useState('');\r\n  useEffect(()=>{\r\n    setState(select);\r\n    setText(texto);\r\n  },[select,texto])\r\n  return(\r\n    <div className= {`bg-fondo m-1 mx-2 px-4 p-2 border-2 text-red-600  -md border-withe  hover:border-primary hover:text-primary ${state?\r\n      'bg-primary border-primary text-fondo':\r\n      ''\r\n    } `}>\r\n      {text}\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default function Materia  (props) {\r\n  const {revision} = props;\r\n  const dispatch = useDispatch();\r\n  //const data = props.data.preguntas;\r\n  const [revision_,setRevision_] = useState(revision);\r\n  const [data,setData] = useState(props.data.preguntas);\r\n  const [notas ,setNotas] = useState(props.notas);\r\n  const [dataNotas,setDataNotas] = useState({nombre:\"\",notas:[]});\r\n  const [memoria ,setMemoria] = useState(props.espacio);\r\n\r\n  const test = useSelector(state => state.test.test);\r\n  useEffect(()=>{\r\n    setRevision_(revision);\r\n  },[revision])\r\n\r\n  useEffect(()=>{\r\n    setData(props.data.preguntas);\r\n\r\n  },[props.data])\r\n\r\n  useEffect(()=>{\r\n    dataNotas.nombre=props.data.nombre;\r\n    console.log(props.data.nombre);\r\n    setMemoria(dataNotas);\r\n  },[])\r\n  return(\r\n    <>\r\n      <div \r\n        className='w-3/4 sm:w-full md:w-3/4 flex flex-col justify-start items-center overflow-scroll h-screen pt-20 bg-gray-200 px-6 sm:px-2 md:px-6 pb-24 mt-0 sm:mt-32 md:mt-0'\r\n        style={{overflowX:'hidden',display:`${props.display}`,}}\r\n      >   \r\n        <div className='flex flex-row justify-center items-center absolute items-self-end justify-self-end mt-full bg-gray-400 p-1 rounded drop-shadow-lg content-q1uestion'>\r\n          {\r\n            data.map((item,index)=>{\r\n              return(\r\n                  <Marker texto={index+1} select={item.marcado?true:false}/>\r\n              )\r\n            })\r\n          }\r\n          </div>\r\n          {\r\n            data.map((item,index)=>{\r\n              let data ={\r\n                id:item.id+item.materia,\r\n                opcionCorrecta : item.opcionCorrecta,\r\n                opcionSeleccionada :'',\r\n                correcto : false,\r\n              }\r\n              //si el id exite no lo agrega\r\n              if (test.find((element) => element.id === data.id) === undefined) {\r\n                dispatch(addTest(data));\r\n              }\r\n\r\n              return(\r\n                <Pregunta \r\n                  marcado={item.marcado?item.marcado:null} \r\n                  idPregunta={item.id}\r\n                  materia={item.materia}\r\n                  key={index}\r\n                  index={index+1}\r\n                  pregunta={item.pregunta}\r\n                  respuestas={item.opciones}\r\n                  correct={item.opcionCorrecta}\r\n                  revision={revision_}\r\n                  explicacionCorrecta={item.explicacionCorrecta}\r\n                  campo = {dataNotas.notas[index]}\r\n                  onPress = {props.onPress()}\r\n                />\r\n                  \r\n              )\r\n            })\r\n          }\r\n        </div>\r\n    </>\r\n    );\r\n};","import React ,{useState,useEffect,useRef} from 'react';\r\nimport { RiSendPlane2Fill} from \"react-icons/ri\";\r\n\r\nexport default function Pestania  (props) {\r\n\r\n  const [state,setState] = useState(true);\r\n\r\n  const changeState = () => {\r\n    alert(props.id);\r\n  }\r\n\r\n  return(\r\n  <>\r\n    <div className={`${\r\n      props.active ? \r\n      'divide-y items-self-end text-center p-3 border-t-2 border-b-2 w-full border-transparent bg-gray-200 text-primary':\r\n      'divide-y items-self-end text-center p-3 border-t-2 border-b-2 w-full border-primary text-white'\r\n    } cursor-pointer`} style={{\r\n      width: '100%',\r\n    }}\r\n    onClick={()=>{props.onPress()}}\r\n    >\r\n      {props.nombre}\r\n    </div>\r\n  </>\r\n  );\r\n};","import jwt from 'jsonwebtoken';\r\nimport {db} from '../../config/firebase'\r\nimport { collection, getDocs } from \"firebase/firestore\";\r\nimport { query, orderBy, limit } from \"firebase/firestore\";\r\nimport { doc, getDoc } from \"firebase/firestore\";\r\n\r\nconst shffleArray = (inputArray) => inputArray.sort(() => Math.random() - 0.5);\r\nexport const privateToken = \"apriori123-.\";\r\n\r\nexport const getExamTest = async (data) =>\r\nnew Promise(async (resolve, reject) => {\r\n    try{\r\n        console.log(data,\"aaaaaaaaaaaaaaaaaqqqqqqqqqqqqqquiieee\")\r\n        const privateAccesToken= privateToken;\r\n\r\n    //    const materias = data\r\n        //convertir data en json string \r\n  //      const materiasJson = JSON.stringify(materias);\r\n\r\n//        const token = jwt.sign(materiasJson, privateAccesToken);\r\n\r\n        //console.log(token, \"tokeeennnss\")\r\n        // desencryptar token \r\n        const decoded = jwt.verify(data, privateAccesToken);\r\n        //console.log(decoded, \"tokeeennnss desencryptado\")\r\n        // const data = await\r\n        const idMaterias=[];\r\n        // if(decoded.length>3){\r\n        //     for(let i= 0; i<3; i++){\r\n        //         idMaterias.push({id:decoded[i].Id,name:decoded[i].nombre});\r\n        //     }\r\n        // }else{\r\n        decoded.map((item)=>{\r\n            idMaterias.push({id:item.Id,name:item.nombre});\r\n        });\r\n        // }\r\n        const maxQuestions = 5;\r\n        const materias_final = [];\r\n\r\n        await Promise.all(\r\n            idMaterias.map(async (idM)=>{\r\n                const matRef = collection(db, idM.id);\r\n                const q = query(matRef, orderBy(\"id\"), limit(maxQuestions));\r\n                const quest = await getDocs(q);\r\n                const preguntas = [];\r\n                quest.forEach((doc) => {\r\n                preguntas.push(doc.data());\r\n                });\r\n                preguntas.map((pregunta) => shffleArray(pregunta.opciones));\r\n                const f = {\r\n                    idExamen: \"test\",\r\n                    idCuenta: \"_test_acc\",\r\n                    plan: \"test_plan\",\r\n                    idMateria: idM.id,\r\n                    materia: idM.name,\r\n                    preguntas: preguntas,\r\n                }\r\n                materias_final.push(f);\r\n            })\r\n        )\r\n        // console.log(materias_final, \"materias_final\")\r\n        resolve(materias_final);\r\n    }catch(error){\r\n        reject(error);\r\n    }\r\n});","/* eslint-disable no-unused-vars */\r\nimport React,{useState, useEffect} from \"react\";\r\nimport jwt from 'jsonwebtoken';\r\nimport {privateToken} from '../ExamTest/getExam';\r\nimport Footer from \"../components/footer\";\r\nimport {addCart} from '../../redux/actions/cart';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport dbRef from \"../../config/dbRef\";\r\nimport { getAuth } from \"firebase/auth\";\r\nimport {db} from '../../config/firebase'\r\nimport { collection} from \"firebase/firestore\";\r\nimport { doc, addDoc } from \"firebase/firestore\";\r\nimport { Bar } from \"../components/onload\";\r\nimport { getUser } from '../../redux/actions/user';\r\nimport {auth} from '../../config/firebase';\r\nimport { Contactanos } from \"../components/uiComponents\";\r\nimport { getExamTest } from \"../ExamTest/getExam\";\r\nimport {Link} from 'react-router-dom';\r\nimport ReactGa from 'react-ga';\r\n\r\nconst Details = (props) => {\r\n  const user = useSelector(state => state.user);\r\n  const dispatch = useDispatch();\r\n  const [id,setId]= useState('');\r\n  const [data ,setData]= useState();\r\n  const [textBtn,setTextBtn]= useState(\"Adquirir Plan\");\r\n\r\n  const btnAnalytics = (btn) => {\r\n    ReactGa.event({\r\n      category: 'Button-details',\r\n      action: 'Click button :'+btn,\r\n    });\r\n  }\r\n\r\n  useEffect(() => {\r\n    try {\r\n    if(props.location.data){\r\n      if(props.location.data.nombre){\r\n        setData(props.location.data);\r\n        if(props.location.data.id)\r\n          setId(props.location.data.id);\r\n        if(props.location.data.idExamen)\r\n          setId(props.location.data.idExamen);\r\n        return;\r\n      }\r\n      if(props.location.data.data.nombre){\r\n        if(props.location.data.id)\r\n          setId(props.location.data.id);\r\n        if(props.location.data.data.idExamen)\r\n          setId(props.location.data.idExamen);\r\n        setData(props.location.data.data);\r\n        return;\r\n      }\r\n    }else{\r\n      props.history.push('/convocatoria');\r\n    }\r\n    } catch (error) {\r\n      props.history.push('/convocatoria');\r\n    }\r\n    \r\n  } ,[props.location.data])\r\n\r\n  const anidirExamen = async (paramId) => {\r\n    let dataMaterias=[];\r\n    data.materias.map(materia => {\r\n      dataMaterias.push(materia.nombre);\r\n    })\r\n    \r\n    const auth = getAuth();\r\n    const user = auth.currentUser;\r\n    \r\n    const cuenta = doc(db, dbRef.user + '/' + user.uid);\r\n\r\n    console.log('🦖🚀', props.location.type);\r\n\r\n    if(props.location.type==='teacher'){\r\n      const newExamFinal = {\r\n        idExamen: paramId,\r\n        fechaRegistro: new Date().toISOString(),\r\n        plan:'Pendiente',\r\n        tipo : 'PFinal',\r\n        nombre : data.nombre,\r\n        fechaExamen: data.fecha,\r\n        materias :dataMaterias,\r\n        estado: 'pendiente',\r\n        cantidadPreguntas: 40,\r\n        intentos: 10,\r\n        type: 'teacher'\r\n      }\r\n      await addDoc(collection(cuenta, 'cuenta'), newExamFinal);\r\n    }else{\r\n      const newExamFinal = {\r\n        idExamen: paramId,\r\n        fechaRegistro: new Date().toISOString(),\r\n        plan:'Pendiente',\r\n        tipo : 'PFinal',\r\n        nombre : data.nombre,\r\n        fechaExamen: data.fecha,\r\n        materias :dataMaterias,\r\n        estado: 'pendiente',\r\n        cantidadPreguntas: `${data.cantidadPreguntas?data.cantidadPreguntas:0}`,\r\n        intentos: `${data.intentos?data.intentos:0}`,\r\n      }\r\n      const newExamPrueba = {\r\n        idExamen: paramId,\r\n        fechaRegistro: new Date().toISOString(),\r\n        plan:'Pendiente',\r\n        tipo : 'PPrac',\r\n        nombre : data.nombre,\r\n        fechaExamen: data.fecha,\r\n        materias :dataMaterias,\r\n        estado: 'pendiente',\r\n        cantidadPreguntas: `${data.cantidadPreguntas?data.cantidadPreguntas:0}`,\r\n        intentos: `${data.intentos?data.intentos:0}`,\r\n      }\r\n      await addDoc(collection(cuenta, 'cuenta'), newExamFinal);\r\n      await addDoc(collection(cuenta, 'cuenta'), newExamPrueba);\r\n    }\r\n    alert('Examen agregado');\r\n  };\r\n\r\n  const verificarExamen = (paramId) => {\r\n    let examenEncontrado = true;\r\n\r\n    user.cuenta.map(examen => {\r\n      if(examen.idExamen === paramId){\r\n        examenEncontrado = false;\r\n      }else{\r\n        examenEncontrado = true;\r\n      }\r\n    });\r\n    return examenEncontrado;\r\n  }\r\n\r\n\r\n    return (\r\n        <>\r\n        {\r\n          data ?<>\r\n          <div className=\"bg-gray-100 bg-contexto mt-20 py-8 px-10 sm:px-6 md:px-10 flex flex-col items-center justify-center\">\r\n            <h1 className=\"text-center text-5xl sm:text-2xl md:text-5xl font-bold text-white\">{data.nombre&&data.nombre}</h1>\r\n            <div className=\"text-center py-4 flex flex-col flex-wrap\">\r\n            <p className='text-xl text-white sm:text-base md:text-xl'>\r\n              Te damos la posibilidad de probar nuestra plataforma de forma gratuita\r\n              \r\n            </p>\r\n            <Link\r\n              onClick={()=>btnAnalytics('Prueba Gratis')}\r\n              className=\"bg-primary text-white grow-0 text-xl m-auto font-bold py-4 sm:py-2 md:py-4 px-4 rounded-full mt-5 transition ease-in-out delay-150 duration-300 border-white border-2 \"\r\n              to={`/examtest/${jwt.sign(JSON.stringify(data.materias), privateToken)}`}\r\n            >\r\n              Prueba gratis ahora\r\n            </Link>\r\n          </div>\r\n          </div>\r\n          \r\n          <div className=\"h-auto w-full py-3 px-32 sm:px-4 md:px-32 flex flex-row sm:flex-col md:flex-row justify-between\">\r\n            <div  className=\"w-1/2 sm:w-full md-w-1/2  text-left sm:text-center md:text-left p-10 sm:p-2 md:p-10 flex flex-col justify-start items-start sm:justify-center md:justify-start\">\r\n              <p className=\"text-xl font-bold text-primary text-left sm:text-center md:text-left\">Datos generales:</p>\r\n              <p className=\"text-3xl\">{data&&data.nombre}</p>\r\n              <p className=\"text-sm text-justify mt-3\">\r\n                {data&&data.descripcion}\r\n              </p>\r\n              <p className=\"text-xl font-bold text-primary mt-3\"> Recursos: </p>\r\n              <ul className=\"ml-8\">\r\n                  {data&&\r\n                    data.recursos?\r\n                    data.recursos.map((item,index)=>{\r\n                      return(\r\n                        <li type = \"square\" key={index} className=\"text-sm\">\r\n                          <a href={item.url} target=\"_blank\" rel=\"noopener noreferrer\">{item.nombre}</a>\r\n                        </li>\r\n                      )\r\n                    })\r\n                    :\r\n                    null\r\n                  }\r\n              </ul>\r\n              <div className=\"w-full flex flex-row items-center justify-center\">\r\n                <Link\r\n                  onClick={()=>btnAnalytics('Prueba Gratis')}\r\n                  className=\"bg-primary text-white font-normal mx-auto py-4 px-4 mr-4 rounded mt-5 transition ease-in-out delay-150 duration-300\"\r\n                  to={`/examtest/${jwt.sign(JSON.stringify(data.materias), privateToken)}`}\r\n                >\r\n                  Prueba gratis\r\n                </Link>\r\n                \r\n                {\r\n                data.estado==='activo'?\r\n                \r\n                <button className={`bg-primary text-white font-normal mx-auto py-4 px-4 rounded mt-5 transition ease-in-out delay-150 duration-300`}\r\n                onClick={()=>{\r\n                  btnAnalytics('adquirir plan');\r\n                  if(textBtn === 'Adquirir Plan'){\r\n                    setTextBtn(\"Agregado\");\r\n                    dispatch(addCart({\r\n                      id:id,\r\n                    })).then(() => {\r\n                        if(auth.currentUser){\r\n                          console.log('🦖😍', id);\r\n                          if(verificarExamen(id)){\r\n                            anidirExamen(id).then(()=>{\r\n                              const userID = auth.currentUser.uid;\r\n                              dispatch(getUser(userID));\r\n                            }).then(()=>{\r\n                              props.history.push('/profile'); \r\n                            });\r\n                          }else{\r\n                            alert('Esta Prueba ya existe en su perfil');\r\n                            props.history.push('/convocatoria');\r\n                          }\r\n                        }else{\r\n                          props.history.push('/login');\r\n                        }\r\n                    });\r\n                  } else {\r\n                    console.log('procesando');\r\n                  }\r\n                }}\r\n              >\r\n                {/**transition ease-in-out delay-150 bg-blue-500 hover:-translate-y-1 hover:scale-110 hover:bg-indigo-500 duration-300 */}\r\n                {textBtn === 'Adquirir Plan'?textBtn:<Bar color={'white'}/>}\r\n                </button>\r\n                :\r\n                <Contactanos type='fill' texto='Contactanos'/>\r\n              }\r\n              \r\n              {/* <Link className=\"bg-primary text-white font-normal mx-auto py-2 px-4 rounded mt-5\" to={{\r\n                      pathname: `/pricing`,\r\n                      data: {\r\n                        nombre: 'Convocatoria'\r\n                      }\r\n                    }}>Adquirir Plan</Link> */}\r\n                \r\n              </div>\r\n            </div>\r\n            <div className=\"w-1/2 p-10 flex flex-col justify-start mx-1\">\r\n              <p className=\"text-xl text-primary font-bold \">Documentación mínima habilitante:\r\n              </p>\r\n              <ul className=\"ml-8\" >\r\n                {data&&\r\n                  data.documentacion?\r\n                  data.documentacion.map((item,index)=>{\r\n                    return(\r\n                      <li type = \"square\" key={index} className=\"text-sm\">\r\n                        {item}\r\n                      </li>\r\n                    )\r\n                  }\r\n                  )\r\n                  :\r\n                  null\r\n                }\r\n              </ul>\r\n            </div>\r\n              \r\n          </div></>:null \r\n        }\r\n        <Footer/>\r\n        \r\n        </>\r\n    );\r\n}\r\n\r\nexport default Details;","export default __webpack_public_path__ + \"static/media/convocatoria.d9383988.jpg\";","/* eslint-disable no-unused-vars */\r\n/* eslint-disable no-lone-blocks */\r\nimport React,{useState, useEffect} from \"react\";\r\nimport Header from \"../components/headerPage\";\r\nimport Footer from \"../components/footer\";\r\nimport image from \"../../assets/images/convocatoria.jpg\";\r\nimport {db} from '../../config/firebase';\r\nimport dbRef from '../../config/dbRef';\r\nimport { collection, getDocs } from \"firebase/firestore\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { OnLoad } from \"../components/onload\";\r\n\r\n\r\nconst Details = (props) => {\r\n  const [data,setData]= useState([]);\r\n  const [juridico,setJuridico]= useState(false);\r\n  const [medico,setMedico]= useState(false);\r\n  const [academico,setAcademico]= useState(false);\r\n  const [policial,setPolicial]= useState(true);\r\n\r\n  const [dataJur,setDataJur]= useState([]);\r\n  const [dataMed,setDataMed]= useState([]);\r\n  const [dataAcad,setDataAcad]= useState([]);\r\n  const [dataPol,setDataPol]= useState([]);\r\n  const [indiceJur,setIndiceJur]= useState(0);\r\n\r\n  useEffect(() => {\r\n    getDocs(collection(db,dbRef.exam))\r\n    .then((response)=>{\r\n        response.forEach((doc)=>{\r\n          switch(doc.data().area){\r\n            case 'juridico':\r\n              dataJur.push({id:doc.id,data:doc.data()});break;\r\n            case 'medico':\r\n              dataMed.push({id:doc.id,data:doc.data()});break;\r\n            case 'academico':\r\n              dataAcad.push({id:doc.id,data:doc.data()});break;\r\n            default:\r\n              dataPol.push({id:doc.id,data:doc.data()});break;\r\n          }\r\n        });\r\n    }).then( doc =>{console.log(dataJur); setData(doc)})\r\n    console.log(dataPol);\r\n  } ,[])\r\n\r\n  const handleClick = (param) =>{\r\n    switch(param){\r\n      case 1:{\r\n        setJuridico(true);\r\n        setMedico(false);\r\n        setAcademico(false);\r\n        setPolicial(false);\r\n      };break;\r\n      case 2:{\r\n        setJuridico(false);\r\n        setMedico(true);\r\n        setAcademico(false);\r\n        setPolicial(false);\r\n      };break;\r\n      case 3:{\r\n        setJuridico(false);\r\n        setMedico(false);\r\n        setAcademico(true);\r\n        setPolicial(false);\r\n      };break;\r\n      default:{\r\n        setJuridico(false);\r\n        setMedico(false);\r\n        setAcademico(false);\r\n        setPolicial(true);\r\n      };\r\n    \r\n  }}\r\n\r\n  const Card = (props) =>{\r\n    return(\r\n      <div className=\"bg-basic border-2 border-b-green-500 flex flex-col items-stretch justify-between rounded-lg\">\r\n        <div className=\"bg-accent py-2 w-full rounded-t-lg border-2 border-b-green-500\">\r\n          <h3 className=\"text-center text-white font-bold  self-center px-12 underline decoration-solid\">{props.data.data.nombre}</h3>\r\n          <p className=\"text-center text-white \">N° Convocatoria 004/22</p>\r\n          <p>{props.id}</p>\r\n        </div>\r\n        <div className=\"flex flex-row justify-between p-4  sm:p-2 md:p-4\">\r\n          <div className=\"w-full\">\r\n            <p className=\"text-start text-primary text-lg text-center\">Vigencia:</p>\r\n            <p className=\"text-start text-black text-center font-semibold\">Del: <span className=\"text-gray-600 font-normal\" >{props.data.data.fecha}</span> - Al: <span className=\"text-gray-600  font-normal\" >{props.data.data.fecha}</span></p> \r\n            {/* <p className=\"text-primary text-center mt-4 text-lg\">Distritos:</p>\r\n\r\n            <ul className=\"flex flex-row justify-center w-full flex-wrap text-sm\">\r\n              <li type='disc' className=\"mx-4\">Sucre</li>\r\n              <li type='disc' className=\"mx-4\">Potosi</li>\r\n              <li type='disc' className=\"mx-4\">Tarija</li>\r\n              <li type='disc' className=\"mx-4\">Cochabamba</li>\r\n              <li type='disc' className=\"mx-4\">Chuquisaca</li>\r\n              <li type='disc' className=\"mx-4\">Beni</li>\r\n              <li type='disc' className=\"mx-4\">Pando</li>\r\n            </ul> */}\r\n          </div>\r\n          \r\n        </div>\r\n        <Link className=\"text-primary font-normal mx-auto my-2 py-2 px-4 rounded my-3 hover:text-white hover:bg-primary border-2 border-primary\" to={{\r\n          pathname: `/Details`,\r\n          data: props.data,\r\n        }}>Ver Detalles</Link>\r\n\r\n      </div>\r\n    )\r\n  }\r\n\r\n    return (\r\n        <>\r\n        <Header titulo={\"Convocatorias\"} nombre={\"Convocatoria\"} mensaje={\"Tu futuro aqui\"} image={image} posicion={'center'} />\r\n\r\n        <div className=\"h-auto w-full py-3 px-32 sm:px-4 md:px-32 my-5 mb-12\">\r\n          <h1 className=\"text-4xl sm:text-2xl md:text-4xl font-bold text-primary text-center w-full\">Convocatorias Previas</h1>\r\n          \r\n          {/* <div className=\"flex flex-row justify-center w-full border-accent mt-6\" style={{paddingBottom:'0'}}>\r\n            <p onClick={()=>{handleClick(1)}} style={{cursor:'pointer', backgroundColor:`${juridico?'#750016':'transparent'}`,color:`${juridico?'white':'#750016'}`}} className=\"text-xl text-accent border-2 border-accent border-b-0 border-r-0 p-2 px-6 rounded-tl-2xl\">Vigentes</p>\r\n             <p onClick={()=>{handleClick(2)}} style={{cursor:'pointer', backgroundColor:`${medico?'#750016':'transparent'}`,color:`${medico?'white':'#750016'}`}} className=\"text-xl text-accent border-2 border-accent border-b-0 border-r-0 p-2 px-6\">Pasadas</p>\r\n           <p onClick={()=>{handleClick(3)}} style={{cursor:'pointer', backgroundColor:`${academico?'#750016':'transparent'}`,color:`${academico?'white':'#750016'}`}} className=\"text-xl text-accent border-2 border-accent border-b-0 border-r-0 p-2 px-6\">Académico</p> \r\n            <p onClick={()=>{handleClick(4)}} style={{cursor:'pointer', backgroundColor:`${policial?'#750016':'transparent'}`,color:`${policial?'white':'#750016'}`}} className=\"text-xl text-accent border-2 border-accent border-b-0 p-2 px-6 rounded-tr-2xl\">Pasadas</p>\r\n          </div>*/}\r\n          <div className=\"flex flex-col justify-center  w-full border-t-2 border-accent\">\r\n          <p className=\"mt-2 text-center w-full\">\r\n            Te presentamos las convocatorias que hemos atendido en el área judicial, puedes preguntar por las que no se encuentran en esta lista.\r\n          </p>\r\n             <div style={{display:`${juridico?'grid':'none'}`}} className=\" grid grid-cols-2  sm:grid-cols-1 md:grid-cols-2 gap-4 m-8 \">\r\n              {\r\n                dataJur.length>0?\r\n                dataJur.map((item,index)=>{\r\n                  console.log(item);\r\n                  let fechaItem = item.data.fecha.split('/');\r\n                  console.log(fechaItem);\r\n                  let fecha = new Date(fechaItem[1]+'/'+fechaItem[0]+'/'+fechaItem[2]);\r\n                  let ahora = new Date();\r\n                  if(fecha>ahora){\r\n                    return(\r\n                      <Card key={index} data={item}/>\r\n                    )\r\n                  }\r\n                  else{\r\n                    return null;\r\n                  }\r\n                })\r\n                :\r\n                <div className=\"text-center col-span-2\">\r\n                  <p className=\"text-center\">No hay Convocatorias en esta area.</p>\r\n                  <p className=\"text-center text-blue-700 mb-5 text-sm\">Conoces alguna que no este aqui? </p>\r\n                   <Link className=\"bg-primary text-white font-normal mx-auto py-2 px-4 rounded mt-5\" to={{\r\n                    pathname: `/contact`,\r\n                    data: {\r\n                      nombre: 'Convocatoria'\r\n                    }\r\n                  }}>Contactanos</Link>\r\n                  <p className=\"text-center text-gray-700 mt-5 text-sm \">Avisanos de una convocatoria que no conozcamos y ganate una suscripcion gratis </p>\r\n                \r\n                </div>\r\n              }\r\n            </div>\r\n            {/*<div style={{display:`${medico?'grid':'none'}`}} className=\"container grid grid-cols-2 gap-4 m-8\">\r\n              {\r\n                 dataJur.length>0?\r\n                 dataJur.map((item,index)=>{\r\n                   console.log(item);\r\n                   let fechaItem = item.data.fecha.split('/');\r\n                   console.log(fechaItem);\r\n                   let fecha = new Date(fechaItem[1]+'/'+fechaItem[0]+'/'+fechaItem[2]);\r\n                   let ahora = new Date();\r\n                   if(fecha<ahora){\r\n                     return(\r\n                       <Card key={index} data={item}/>\r\n                     )\r\n                   }\r\n                   else{\r\n                     return null;\r\n                   }\r\n                 })\r\n                :\r\n                <div className=\"text-center col-span-2\">\r\n                  <p className=\"text-center\">No hay Convocatorias en esta area.</p>\r\n                  <p className=\"text-center text-blue-700 mb-5 text-sm\">Conoces alguna que no este aqui? </p>\r\n                   <Link className=\"bg-primary text-white font-normal mx-auto py-2 px-4 rounded mt-5\" to={{\r\n                    pathname: `/contact`,\r\n                    data: {\r\n                      nombre: 'Convocatoria'\r\n                    }\r\n                  }}>Contactanos</Link>\r\n                  <p className=\"text-center text-gray-700 mt-5 text-sm \">Avisanos de una convocatoria que no conozcamos y ganate una suscripcion gratis </p>\r\n                \r\n                </div>\r\n              }\r\n            </div>\r\n            <div style={{display:`${academico?'grid':'none'}`}} className=\"container grid grid-cols-2 gap-4 m-8\">\r\n              {\r\n                dataAcad.length>0?\r\n                dataAcad.map((item,index)=>{\r\n                  return(\r\n                    <Card key={index} data={item}/>\r\n                  )\r\n                })\r\n                :\r\n                <div className=\"text-center col-span-2\">\r\n                  <p className=\"text-center\">No hay Convocatorias en esta area.</p>\r\n                  <p className=\"text-center text-blue-700 mb-5 text-sm\">Conoces alguna que no este aqui? </p>\r\n                   <Link className=\"bg-primary text-white font-normal mx-auto py-2 px-4 rounded mt-5\" to={{\r\n                    pathname: `/contact`,\r\n                    data: {\r\n                      nombre: 'Convocatoria'\r\n                    }\r\n                  }}>Contactanos</Link>\r\n                  <p className=\"text-center text-gray-700 mt-5 text-sm \">Avisanos de una convocatoria que no conozcamos y ganate una suscripcion gratis </p>\r\n                \r\n                </div>\r\n              }\r\n            </div> */}\r\n            <div style={{display:`${policial?'flex':'none'}`}} className=\"  m-8\">\r\n              {\r\n                 dataJur.length>0?\r\n                 <div className=\"text-center\">\r\n                  <div className=\" grid grid-cols-2  sm:grid-cols-1 md:grid-cols-2 gap-4 m-8\">\r\n                    {dataJur[indiceJur] && <Card data={dataJur[indiceJur]}/> }\r\n                    {dataJur[indiceJur+1] && <Card data={dataJur[indiceJur+1]}/> }\r\n                    {dataJur[indiceJur+2] && <Card data={dataJur[indiceJur+2]}/> }\r\n                    {dataJur[indiceJur+3] && <Card data={dataJur[indiceJur+3]}/> }\r\n                  </div>\r\n                  <div id=\"paginacion\" className=\"\">\r\n                    <div className=\"flex flex-row justify-center\">\r\n                      <button onClick={()=>{\r\n                      if (indiceJur>0)\r\n                        setIndiceJur(indiceJur-4)\r\n                      }} className={`text-xl text-white ${indiceJur>0?\"bg-accent\":\"bg-gray-400\"} p-2 px-6 rounded-l-2xl`}> ◄ </button>\r\n                      <p\r\n                        className=\"text-xl text-accent border-2 border-accent bg-transparent p-2 px-6\"\r\n                      >{parseInt(indiceJur/4)+1}</p>\r\n                      <button onClick={()=>{\r\n                        if(indiceJur+4<dataJur.length){\r\n                        setIndiceJur(indiceJur+4)\r\n                        }\r\n                      }} className={`text-xl text-white ${indiceJur+4<dataJur.length?\"bg-accent\":\"bg-gray-400\"} p-2 px-6 rounded-r-2xl`}> ► </button>\r\n                    </div>\r\n                  </div>\r\n                  <p className=\"mt-2\">{\r\n                  parseInt(indiceJur/4)+1\r\n                  } paginas de {\r\n                    dataJur.length%4===0?\r\n                    parseInt(dataJur.length/4)\r\n                    :\r\n                    parseInt(dataJur.length/4)+1\r\n                  }</p>\r\n                  </div>\r\n                 \r\n                :\r\n                <div className=\"text-center w-full flex flex-col items-center\">\r\n                  <p className=\"text-center font-bold text-primary text-2xl my-4\">Cargando Datos...</p>\r\n                  <OnLoad color=\"gray\"/>\r\n                  {/* <p className=\"text-center\">No hay Convocatorias en esta area.</p>\r\n                  <p className=\"text-center text-blue-700 mb-5 text-sm\">Conoces alguna que no este aqui? </p>\r\n                   <Link className=\"bg-primary text-white font-normal mx-auto py-2 px-4 rounded mt-5\" to={{\r\n                    pathname: `/contact`,\r\n                    data: {\r\n                      nombre: 'Convocatoria'\r\n                    }\r\n                  }}>Contactanos</Link>\r\n                  <p className=\"text-center text-gray-700 mt-5 text-sm \">Avisanos de una convocatoria que no conozcamos y ganate una suscripcion gratis </p> */}\r\n                \r\n                </div>\r\n              }\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <Footer/>\r\n        \r\n        </>\r\n    );\r\n}\r\n\r\nexport default Details;","export default __webpack_public_path__ + \"static/media/qr.5257807c.png\";","import React,{useEffect, useState} from \"react\";\r\nimport Footer from \"../components/footer\";\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport Modal from \"../components/Modal\";\r\n//importar firebase storage\r\n//import { storage } from \"../../config/firebase\";\r\n//import {getDownloadURL, ref as referencia, uploadBytesResumable} from \"@firebase/storage\";\r\nimport { auth } from \"../../config/firebase\";\r\nimport imgQr from './../../assets/images/qr.png'\r\nimport { db } from \"../../config/firebase\";\r\nimport dbRef from \"../../config/dbRef\";\r\n//import { collection} from \"firebase/firestore\";\r\nimport { doc, updateDoc } from \"firebase/firestore\";// addDoc\r\nimport { Link } from \"react-router-dom\";\r\n//import {BsWhatsapp} from \"react-icons/bs\";\r\nimport {Dots} from \"../components/onload\"\r\n\r\nimport {FiClock} from \"react-icons/fi\";\r\nimport {FiClipboard} from \"react-icons/fi\";\r\nimport {AiOutlineFileText} from \"react-icons/ai\";\r\nimport {CgCheck} from \"react-icons/cg\";\r\nimport {BiX} from \"react-icons/bi\";\r\nimport {BsFillTelephoneFill} from \"react-icons/bs\";\r\nimport {getDataPage} from \"../../redux/actions/dataPage\"\r\nimport newPlan from \"../../assets/images/newPlan.jpg\"\r\n\r\nimport {IoMdRadioButtonOff, IoMdRadioButtonOn, IoMdCheckmark} from \"react-icons/io\";\r\n\r\nconst RadioButton = (props) => {\r\n  const [active , setActive] = useState(props.active);\r\n  useEffect(() => {\r\n    setActive(props.active);\r\n  }, [props.active]);\r\n  return (\r\n    <div className=\"flex flex-row justify-center items-center cursor-pointer\" onClick={\r\n      ()=>{\r\n        setActive(!active);\r\n        props.onClick();\r\n      }\r\n    }>\r\n\r\n      {\r\n        active ? <IoMdRadioButtonOn color={props.color}/> : <IoMdRadioButtonOff color={props.color}/>\r\n      }\r\n      \r\n      <p className=\"text-sm\">{props.label}</p>\r\n    </div>\r\n    \r\n  );\r\n}\r\n\r\n\r\nconst Plans = (props) => {\r\n  \r\n  const [data,setData]= useState([]);\r\n  const [id, setId] = useState('');\r\n  const [visible, setVisible] = useState(false);\r\n  const [tigo, setTigo] = useState(true);\r\n  const [deposito, setDeposito] = useState(false);\r\n  const [transferencia, setTransferencia] = useState(false);\r\n  const [qr, setQr] = useState(false);\r\n  const [child, setChild] = useState('');\r\n\r\n  const [plan, setPlan] = useState('0');\r\n  const [banco, setBanco] = useState('bnb');\r\n  const [titulo, setTitulo] = useState('Titulo');\r\n  const [telefono, setTelefono] = useState('Telefono');\r\n  const [monto, setMonto] = useState(0);\r\n  const [imagen, setImagen] = useState('');\r\n  const [progreso , setProgreso] = useState(0);\r\n  const [url, setUrl] = useState('');\r\n  const [load, setLoad] = useState(0);//0 false -1 true -2 loading\r\n  const [text, setText] = useState('ninguna imagen');\r\n\r\n  const [textAdvertencia, setTextAdvertencia] = useState('Inntroducir un numero de telefono valido');\r\n\r\n  const [metodo, setMetodo] = useState('vacio');\r\n\r\n  // const storage \r\n  const info = useSelector(state => state.dataPage);\r\n\r\n  const [dataPage , setDataPage] = useState(info);\r\n  //verificar si el store de redux esta vacio\r\n  useEffect(() => {\r\n    if(info.dataPage[0]){\r\n      // alert ('si hay datos');\r\n      setDataPage(info);\r\n    }else{\r\n      dispatch(getDataPage());\r\n      setDataPage(info);\r\n    }\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    setDataPage(info.dataPage[0]);\r\n  }, [info]);\r\n\r\n  const dispatch = useDispatch();\r\n  console.log(auth.currentUser);\r\n\r\n  const changeRadioButton = (index) => {\r\n    switch (index) {\r\n      case 1:\r\n        setTigo(true);\r\n        setDeposito(false);\r\n        setTransferencia(false);\r\n        setQr(false);\r\n        break;\r\n      case 2:\r\n        setTigo(false);\r\n        setDeposito(true);\r\n        setTransferencia(false);\r\n        setQr(false);\r\n        break;\r\n      case 3:\r\n        setTigo(false);\r\n        setDeposito(false);\r\n        setTransferencia(true);\r\n        setQr(false);\r\n        break;\r\n      case 4:\r\n        setTigo(false);\r\n        setDeposito(false);\r\n        setTransferencia(false);\r\n        setQr(true);\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n  }\r\n\r\n  const subirPlan = () => {\r\n    if(plan  !=='0'){\r\n      setLoad(1);\r\n      setChild('deposito');\r\n      setTitulo('Información')\r\n      updateDocumento(data.id,'ninguno').then(()=>{\r\n        setLoad(2);\r\n        setVisible(true);\r\n      })\r\n    }else{\r\n      setText(\"Seleccione un plan\");\r\n    }\r\n  }\r\n\r\n  const sendWhatsapp = () => {\r\n    if (telefono.length > 7 && telefono.length < 9) {\r\n      let mensaje= `${\r\n        banco === 'bnb'? `*CUENTA DE DEPOSITO: Nombre del Titular :* Leonel Avendaño Villarroel *Numero de cuenta :* 4500837492 *Carnet de Identidad :* 10377499 *Banco :* Banco Nacional de Bolivia (BNB) *Monto :* ${monto}`:\r\n        banco === 'bisa'? `*CUENTA DE DEPOSITO: Nombre del Titular :* Abigail Mamani *Numero de cuenta :*  495340-401-5 *Carnet de Identidad :* 13427301 pt *Banco :* Banco Bisa *Monto :* ${monto}`:\r\n        banco === 'union'? `*CUENTA DE DEPOSITO: Nombre del Titular :* Leonel Avendaño Villarroel *Numero de cuenta :*  10000042944682 - Caja de ahorro M/N *Carnet de Identidad : *10377499 *Banco :* Banco Unión *Monto :* ${monto}`:\r\n        `*CUENTA DE DEPOSITO: Nombre del Titular :* Rocely Valeria Cruz *Numero de cuenta :*  703-2-1-03486-9 *Carnet de Identidad :* 10330317 *Banco :* Banco Prodem *Monto :* ${monto}`\r\n\r\n\r\n      }`;\r\n      const url = `https://api.whatsapp.com/send?phone=591${telefono}&text=${mensaje}`;\r\n      window.open(url, '_blank');\r\n    }else{\r\n      alert(\"Introducir un numero de telefono valido\");\r\n    }\r\n  }\r\n\r\n  const updateDocumento = async (paramId) => {\r\n    //const messageRef = doc(db, \"rooms\", \"roomA\", \"messages\", \"message1\");\r\n    const authUser = auth.currentUser.uid;\r\n    const cuenta = doc(db, dbRef.user, authUser,'cuenta',paramId);\r\n    const newExam = {\r\n      metodo: metodo,\r\n      banco: banco,\r\n      rebizado: false,\r\n      plan: plan,\r\n    }\r\n    await updateDoc(cuenta, newExam);\r\n    // await updateDoc(cuenta, paramId, newExam);\r\n    setText(\"Comprobante enviado\");\r\n\r\n  };\r\n\r\n  useEffect(() => {\r\n    \r\n    if(!props.location.data){\r\n      props.history.push('/profile');\r\n    }else{\r\n      setData(props.location.data);\r\n      setId(props.location.data.id);\r\n      setPlan(props.location.data.plan);\r\n      console.log(data);\r\n      if(props.location.data.plan !==0 || props.location.data.plan !== 'pendiente'  ){\r\n        setLoad(0);\r\n      }\r\n      else{\r\n        setLoad(2);\r\n      }\r\n    }\r\n  } ,[props.history,load])\r\n\r\n  useEffect(() => {\r\n    if (monto < 10) {\r\n      setTextAdvertencia('Debe seleccionar un plan')\r\n    }else{\r\n      if (telefono.length <7) {\r\n        setTextAdvertencia('Debe introducir un numero de telefono valido');\r\n        \r\n      }\r\n      \r\n    }\r\n    if (telefono.length <7) {\r\n      setTextAdvertencia('Debe introducir un numero de telefono valido')\r\n    }\r\n\r\n    if(monto > 10 && telefono.length >7){\r\n      setTextAdvertencia('Perfecto');\r\n    }\r\n  } ,[monto,telefono])\r\n\r\n\r\n\r\n    return (\r\n      <>\r\n        <Modal visible={visible} title={titulo} onClose={()=>{setVisible(false);setProgreso(0)}}>\r\n          {\r\n            child === 'wpp' ? \r\n            <>\r\n              <p className=\"text-sm\">Numero de celular:</p>\r\n              <div className=\"flex flex-row justify-center items-center\">\r\n                <p className=\"text-base\">+591 </p>\r\n                <input onChange={ \r\n                  (e) => {\r\n                    setTelefono(e.target.value);\r\n                  }\r\n                } className=\"border-b-2 border-b-gray-400 w-full p-2\" type=\"text\" placeholder=\"75413879\"/>\r\n              </div>\r\n              <p className=\"text-base m-2 text-center\">{textAdvertencia}{textAdvertencia==='Perfecto'? true :false  }</p>\r\n              <div className=\"flex flex-row justify-end items-center self-end\">\r\n                <button onClick={()=>{setVisible(false)}} className=\"hover:bg-red-700 hover:text-white text-primary mt-4 font-bold py-1 px-4 rounded border-2 border-primary mr-2\">Cerrar</button>\r\n                <button disabled={false  } onClick={()=>sendWhatsapp() } className={`${textAdvertencia!=='Perfecto'?'bg-gray-500 cursor-not-allowed':'bg-green-500 cursor-pointer'} mt-4 text-white p-2 rounded text-sm self-end`}>Enviar a Whatsapp</button>\r\n              </div>\r\n            </>\r\n            : child === 'deposito' ?\r\n            <>\r\n            <div className=\"w-full my-4 flex flex-col items-center\">\r\n              <p>Muchas Gracias por seleccionar el plan {plan}. </p>\r\n              <p className=\"text-center mt-2\">Para reportar el pago, por favor regrese al su perfil y click en el boton \"Reportar Pago\" de su examen.</p>\r\n              <div className=\"flex flex-row justify-center items-center mt-6\">\r\n                <Link\r\n                  className=\"border-2 border-primary text-primary text-sm py-2 px-4 rounded mr-4\"\r\n                  to=\"/profile\"\r\n                >Volver a Perfil</Link>\r\n                <button className=\"bg-green-500 text-white p-2 rounded text-sm self-end flex flex-row items-center px-2 border-2 border-green-500\" onClick={()=>{\r\n                  const url = `https://api.whatsapp.com/send?phone=59161885865&text=Quiero reportar el pago de mi plan ${plan}, para el examen de ${data.nombre} .`;\r\n                  window.open(url, '_blank');\r\n                  }}>\r\n                  {/* <BsWhatsapp className=\"mr-2\"/> */}\r\n                  Contactar con Apriori\r\n                </button>\r\n              </div>\r\n            </div>\r\n            <p className=\"text-primary text-center cursor-pointer\" onClick={()=>setVisible(false)}>Cerrar</p>\r\n            </>:'no cargo'\r\n          }\r\n        </Modal>\r\n        <div className=\"pt-24 flex flex-col justify-center items-center bg-secundary w-full text-white pb-6 text-4xl sm:text-2xl md:text-4xl\" style={{backgroundColor:'#303030'}}>\r\n          <div><h1>Planes de pago{'\\n'}</h1></div>\r\n          <div className=\"px-4 text-center\"><p className=\"text-white text-xl sm:text-base md:text-xl mx-auto tex-center\">{data.nombre}</p></div>\r\n        </div>\r\n        <div className=\"flex flex-col-reverse justify-center items-center p-0 mx-0 sm:mx-2 md:mx-0\">\r\n          <div className=\"border-2 border-primary mt-24 rounded-md\">\r\n          <div className=\"w-full p-8 flex flex-col justify-start items-center bg-fondo rounded-t-md\">\r\n            <h1 className=\"text-primary text-3xl font-normal font-bold\">Detalles de Plan:</h1>\r\n            <h3 className=\"text-white text-2xl\">{plan==='0'?'No seleccionado':plan}</h3>\r\n          </div>\r\n          <div className=\"w-full p-8 flex flex-col justify-start items-center bg-gray-100 rounded-b-md\">\r\n            <h3 className=\"text-primary text-xl mt-2 font-bold\">Fecha del examen :</h3>\r\n            <p className=\"text-xl \">{data.fechaExamen}</p>\r\n            <h3 className=\"text-primary text-xl mt-5 font-bold\">Plan seleccionado </h3>\r\n            <p className=\"text-xl\">{plan!=='0' ?plan:'ninguno' }</p>\r\n            <h3 className=\"text-primary text-xl mt-5 font-bold\">Intentos totales :</h3>\r\n            <p className=\"text-xl\">{\r\n              plan === 'fast' ? <><p>3 en Pruebas Prácticas </p><p>1 en Pruebas de finales</p></>:\r\n              plan === 'basico' ? <><p>3 en Pruebas Prácticas </p><p>1 en Pruebas de finales</p></>:\r\n              plan === 'profesional' ? <><p>5 en Pruebas Prácticas </p><p>2 en Pruebas de finales</p></>:\r\n              plan === 'premium' ? <><p>8 en Pruebas Prácticas </p><p>2 en Pruebas de finales</p></>:\r\n              null\r\n            }</p>\r\n            <h3 className=\"text-primary text-xl mt-5 font-bold\">Monto :</h3>\r\n            {\r\n              plan === 'fast' ? <p className=\"text-xl\">60 Bs.</p>:\r\n              plan === 'basico' ? <p className=\"text-xl\">120 Bs.</p>:\r\n              plan === 'profesional' ? <p className=\"text-xl\">210 Bs.</p>:\r\n              plan === 'premium' ? <p className=\"text-xl\">290 Bs.</p>:\r\n              null\r\n            }\r\n            <h3 className=\"text-primary text-xl mt-5 font-bold\">Metodo de pago :</h3>\r\n            <p className=\"text-sm w-2/3 text-center mb-3\">Seleccione el metodo de pago que prefiera, para ver mas información. </p>\r\n            <div className=\"flex flex-col justify-center items-center\">\r\n              {/**panel de seleccion de 4 opciones */}\r\n              <div className=\"flex flex-col justify-center items-start self-start \">\r\n                <RadioButton color={'green'} active={tigo} label = 'Tigo Money' onClick={()=> changeRadioButton(1)} />\r\n                <RadioButton color={'green'} active={deposito} label = 'Deposito Bancario'  onClick={()=> changeRadioButton(2)}/>\r\n                <RadioButton color={'green'} active={transferencia} label = 'Transferencia' onClick={()=> changeRadioButton(3)}/>\r\n                <RadioButton color={'green'} active={qr} label = 'Codigo QR' onClick={()=> changeRadioButton(4)}/>\r\n              </div>\r\n              \r\n              <div className=\"flex flex-col justify-center items-start p-4 border-accent border-2 rounded mt-4 ease-in duration-300 acordion\">\r\n              <p className=\"text-primary font-bold\">Información :</p>\r\n                {\r\n                  tigo &&\r\n                  <div className=\"flex flex-col justify-center items-start\">\r\n                    <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Numero de Telefono : </span> 75795725</p>\r\n                    <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">nombre del titular : </span> Rimber Romario Uyuquipa Mamani</p>\r\n                  </div>\r\n                }\r\n                {\r\n                  deposito &&\r\n                  <div className=\"flex flex-col justify-center items-start\">\r\n                    <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Nombre del Titular : </span>AVENDAÑO VILLARROEL LEONEL</p>\r\n                    <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Numero de cuenta : </span> 10000042944682 - Caja de ahorro M/N</p>\r\n                    <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Carnet de Identidad : </span> 10377499 CH.</p>\r\n                    <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Banco : </span>Banco Union</p>\r\n                    <button className=\"bg-green-500 mt-4 text-white p-2 rounded text-sm self-end\" onClick={()=>{setChild('wpp'); setVisible(true); setTitulo('Enviar Datos:')} } >Enviar estos datos a mi Whatsapp</button>\r\n                  </div>\r\n                }\r\n                {\r\n                  transferencia &&\r\n                  <div className=\"flex flex-col justify-center items-center\">\r\n                    <div className=\"flex flex-row border-b-2 border-accent\">\r\n                      <div onClick={()=>setBanco('bnb')} className={`p-2 px-4 text-sm rounded-t-lg cursor-pointer ${banco === 'bnb' ?'bg-accent text-white':'bg-transparent text-accent'}`}>BnB</div>\r\n                      <div onClick={()=>setBanco('bisa')} className={`p-2 px-4 text-sm rounded-t-lg cursor-pointer ${banco === 'bisa'?'bg-accent text-white':'bg-transparent text-accent'}`}>Bisa</div>\r\n                      <div onClick={()=>setBanco('union')} className={`p-2 px-4 text-sm rounded-t-lg cursor-pointer ${banco === 'union'?'bg-accent text-white':'bg-transparent text-accent'}`}>Union</div>\r\n                      <div onClick={()=>setBanco('prodem')} className={`p-2 px-4 text-sm rounded-t-lg cursor-pointer ${banco === 'prodem'?'bg-accent text-white':'bg-transparent text-accent'}`}>Prodem</div>\r\n                    </div>\r\n                    <div className=\"flex flex-col my-4\">\r\n                      {\r\n                        banco === 'bnb' &&\r\n                        <div className=\"flex flex-col justify-center items-start\">\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Nombre del Titular : </span>AVENDAÑO VILLARROEL LEONEL</p>\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Numero de cuenta : </span> 4500837492</p>\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Carnet de Identidad : </span> 10377499</p>\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Banco : </span>Banco Nacional de Bolivia  (BNB)</p>\r\n                          <button className=\"bg-green-500 mt-4 text-white p-2 rounded text-sm self-end\" onClick={()=>{setChild('wpp'); setVisible(true)} } >Enviar estos datos a mi Whatsapp</button>\r\n                        </div>\r\n                      }\r\n                      {\r\n                        banco === 'bisa' &&\r\n                        <div className=\"flex flex-col justify-center items-start\">\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Nombre del Titular : </span>ABIGAIL MAMANI</p>\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Numero de cuenta : </span> 495340-401-5</p>\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Carnet de Identidad : </span> 13427301 pt</p>\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Banco : </span>Banco bisa</p>\r\n                          <button className=\"bg-green-500 mt-4 text-white p-2 rounded text-sm self-end\" onClick={()=>{setChild('wpp'); setVisible(true)} } >Enviar estos datos a mi Whatsapp</button>\r\n                        </div>\r\n                      }\r\n                      {\r\n                        banco === 'union' &&\r\n                        <div className=\"flex flex-col justify-center items-start\">\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Nombre del Titular : </span>AVENDAÑO VILLARROEL LEONEL</p>\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Numero de cuenta : </span> 10000042944682 - Caja de ahorro M/N</p>\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Carnet de Identidad : </span> 10377499</p>\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Banco : </span>Banco Union </p>\r\n                          <button className=\"bg-green-500 mt-4 text-white p-2 rounded text-sm self-end\" onClick={()=>{setChild('wpp'); setVisible(true)} } >Enviar estos datos a mi Whatsapp</button>\r\n                        </div>\r\n                      }\r\n                      {\r\n                        banco === 'prodem' &&\r\n                        <div className=\"flex flex-col justify-center items-start\">\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Nombre del Titular : </span>ROCELY VALERIA CRUZ</p>\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Numero de cuenta : </span>  703-2-1-03486-9 </p>\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Carnet de Identidad : </span> 10330317</p>\r\n                          <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Banco : </span>Banco Prodem</p>\r\n                          <button className=\"bg-green-500 mt-4 text-white p-2 rounded text-sm self-end\" onClick={()=>{setChild('wpp'); setVisible(true)} } >Enviar estos datos a mi Whatsapp</button>\r\n                        </div>\r\n                      }\r\n                    </div>\r\n                  </div>\r\n                }\r\n                {\r\n                  qr &&\r\n                  <div className=\"flex flex-col justify-center items-center\" style={{padding:0}}>\r\n                    <img src={imgQr} alt=\"qr\" className=\"w-3/4\"/>\r\n                    <p className=\"text-sm text-gray-700 text-center\">Escane la imagen de arriba y suba el comprobante de tranferecia con el monto del plan seleccionado.</p>\r\n                  </div>\r\n                }\r\n              </div>\r\n              {\r\n                \r\n                load === 0 ?\r\n                  <button className=\"bg-primary p-2 px-8 rounded text-white mt-4 text-base\" onClick={()=>{subirPlan()}}>\r\n                    Continuar\r\n                  </button>\r\n                : load === 1 ?\r\n                <button className=\"bg-gray-400 p-2 px-8 rounded text-white mt-4 text-base p-4\">\r\n                  <Dots color='white'/>\r\n                </button>:\r\n                <>\r\n                  <button className=\"bg-gray-400 p-2 px-8 rounded text-white mt-4 text-base p-4\">\r\n                    Plan Registrado\r\n                  </button>\r\n                  <div>Para cambiar de plan contáctese <a className=\"text-green-500\" href={`https://api.whatsapp.com/send?phone=59161885865&text=Buenas%20Apriori.%20Deseo%20cambiar%20mi%20plan%20actual.`} >aqui.</a> </div>\r\n                  \r\n                </>\r\n                \r\n              }\r\n              \r\n            </div>  \r\n          </div>\r\n          </div>\r\n          <div className=\"w-full p-8 px-32 sm:px-4 md:px-32 flex flex-col justify-start items-center text-xl self-start\">\r\n              <h1 className=\"text-primary  text-3xl font-bold text-center\">Planes de suscripcion:</h1>\r\n              <div className=\"w-full p-6 py-8 flex flex-col\"\r\n        >\r\n          <h4 className=\"text-center text-fondo font-bold text-xl sm:text-xl md:text-xl my-2\">Ahora tenemos un plan, pruebalo ahora:</h4>\r\n          <div className=\"bg-white w-1/3 md:w-1/3 sm:w-5/6 p-4 my-4 rounded-b-lg rounded-t-md self-center border-4 border-red-500\">\r\n            <div className=\"flex flex-col items-center bg-fondo py-4 rounded\">\r\n              <p className=\"text-4xl md:text-4xl sm:text-2xl text-center text-white font-bold\"> Plan Fast\r\n              </p> \r\n            </div>\r\n            \r\n            <h1 className=\"text-5xl md:text-5xl sm:text-4xl font-bold my-5 text-gray-700 text-center\">Bs.<span className=\"text-primary\"> 60</span></h1>\r\n\r\n            \r\n          </div>\r\n          <details className=\"w-1/4 md:w-1/4 sm:w-3/4 self-center\">\r\n          <summary className=\"text-white text-center py-4 -mt-10 rounded-md font-bold text-xl md:text-xl sm:text-lg bg-red-500 self-center\">Ver Informacion</summary> \r\n          \r\n            <div className=\"m-1 bg-fondo rounded absolute border-4 border-primary -ml-20 p-8 max-w-45 z-100 md:-ml-20 sm:-ml-8 md:max-w-45 sm:max-w-screen-lg mr-4 md:mr-0 sm:mr-4\">\r\n            <p className=\"text-center mt-4 md:mt-4 sm:mt-0 text-sm text-white\">\r\n                Este plan solo esta disponible el dia de la adquisición, en las cuales podras realizar las pruebas que desees, al finalizar el tiempo se cerrara la sesión y no podras realizar mas pruebas.\r\n              \r\n              </p>\r\n              \r\n            <div className=\"flex flex-col justify-center items-start mx-4 mt-4\">\r\n              \r\n              \r\n            <p className=\"font-bold text-primary text-left text-lg md:text-lg sm:text-sm flex items-center mr-2\"><FiClock className=\"mr-2\"/>Suscripción: </p>\r\n            <p className=\"font-regular text-white text-center text-lg sm:text-sm md:text-lg ml-3\">Hasta las 23:59 del dia de suscripción </p>\r\n          </div>\r\n          <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left text-lg sm:text-sm md:text-lg flex items-start mr-2\"><FiClipboard className=\"mr-2 text-primary\"/>Pruebas Prácticas: 3</p>\r\n            <p className=\"font-regular text-left text-lg sm:text-sm md:text-lg  text-white ml-3\">Más de 25 en cada examen</p>\r\n          </div>\r\n          <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left md:text-lg  text-lg sm:text-sm flex items-start mr-2\"><FiClipboard className=\"mr-2 text-primary\"/>Pruebas finales: 1</p>\r\n            <p className=\"font-regular text-left text-lg sm:text-sm md:text-lg ml-3 text-white\">Más de 40 en el examen</p>\r\n          </div>\r\n          <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left text-lg sm:text-sm md:text-lg flex items-start mr-2\"><AiOutlineFileText className=\"mr-2 text-primary\"/>Total de Preguntas: </p>\r\n            <p className=\"font-regular text-left text-lg sm:text-sm md:text-lg ml-3  text-white\">Más de 190 preguntas</p>\r\n          </div>\r\n          <p className=\"font-bold text-primary text-center text-xl md:text-xl sm:text-lg flex items-center mr-2 mt-4\">Beneficios:</p>\r\n          <ol>\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-sm md:text-lg flex items-start mr-2 mt-1 text-white`}><CgCheck size={32} className=\"text-red-500\"/> Examen cronometrado. </p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-sm md:text-lg flex items-start mr-2 mt-1 text-white`}><CgCheck size={32} className=\"text-red-500\"/> Calificacion inmediata. </p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-sm md:text-lg flex items-start mr-2 mt-1 text-white`}><CgCheck size={32} className=\"text-red-500\"/>Revisión.</p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-sm md:text-lg flex items-start mr-2 mt-1 text-white`}><CgCheck size={32} className=\"text-red-500\"/>Gráficos comparativos.</p>\r\n            </li>\r\n            {/*\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!props.seis?'text-gray-400':'text-black'}`}>{props.seis?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} SESION EN VIVO.</p>\r\n            </li>*/\r\n            }\r\n          </ol>\r\n          \r\n          {\r\n                      plan === 'fast'?\r\n                      <a href=\"#infoPlans\"  onClick={()=>{setPlan('fast');setMonto(60)}} className='bg-green-500 p-2 rounded text-sm m-4 text-white boton mx-8 flex flex-row justify-center items-center'>\r\n                        <p>Seleccionado</p>\r\n                      <IoMdCheckmark className=\"text-white ml-2\" size={24} />\r\n                      </a>:\r\n                      <a href=\"#infoPlans\"   onClick={()=>{setPlan('fast');setMonto(60)}}  className='bg-primary p-2 rounded text-sm m-4 text-white boton mx-8'>Seleccionar Plan</a>\r\n                    }\r\n            </div>\r\n        </details>\r\n\r\n          \r\n        </div>\r\n              <div className=\"flex flex-row sm:flex-col md:flex-row justify-center items-start w-full mt-20 sm:mt-8 md:mt-20 \">\r\n\r\n              \r\n\r\n\r\n\r\n                <div className={`rounded w-full flex flex-col justify-center  mt-8  ${plan === 'basico'?'bg-green-400' :'bg-gradient-to-t from-gray-300 to-gray-600'}`} style={{padding:3}}>\r\n                  <div className=\"bg-basic w-full rounded flex flex-col justify-center\">\r\n                    <p className={`text-center text-4xl px-2 ${plan === 'basico'?'bg-green-400' :' bg-red-500'} w-full p-4 py-6 sm:py-2 md:py-6 -mt-16 sm:mt-0 md:-mt-16 rounded-b-lg rounded-t-md font-bold text-white drop-shadow-md`}>Plan <p>Básico</p>\r\n                    <p className=\"text-3xl text-gray-800 \">Bs. <span>120</span></p>\r\n                    </p>\r\n                    <div className=\"flex flex-col justify-center items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left text-lg md:text-lg sm:text-base flex items-center mr-2\"><FiClock className=\"mr-2\"/>Suscripción: </p>\r\n            <p className=\"font-regular text-center text-lg sm:text-base md:text-lg ml-3\">Hasta el día del examen</p>\r\n          </div>\r\n          <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left text-lg sm:text-base md:text-lg flex items-start mr-2\"><FiClipboard className=\"mr-2 text-primary\"/>Pruebas Prácticas: 3</p>\r\n            <p className=\"font-regular text-left text-lg sm:text-base md:text-lg  ml-3\">Más de 50 preguntas en cada examen</p>\r\n          </div>\r\n          <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left md:text-lg  text-lg sm:text-base flex items-start mr-2\"><FiClipboard className=\"mr-2 text-primary\"/>Pruebas finales: 1</p>\r\n            <p className=\"font-regular text-left text-lg sm:text-base md:text-lg ml-3\">Más de 40 preguntas en cada prueba</p>\r\n          </div>\r\n          <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left text-lg sm:text-base md:text-lg flex items-start mr-2\"><AiOutlineFileText className=\"mr-2 text-primary\"/>Total de Preguntas: </p>\r\n            <p className=\"font-regular text-left text-lg sm:text-base md:text-lg ml-3\">Más de 190 preguntas</p>\r\n          </div>\r\n          <p className=\"font-bold text-primary text-center text-xl flex items-center mr-2 mt-4 mx-4\">Beneficios:</p>\r\n          <ol  className=\"mx-4\">\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Examen cronometrado. </p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Calificacion inmediata. </p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Revisión.</p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Gráficos comparativos.</p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-center mr-2\">\r\n              <p className={`font-regular text-lwft text-lg sm:text-base md:text-lg flex items-left mr-2 mt-1 ${!props.cinco?'text-gray-400':'text-black'}`}>{props.cinco?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Puede modificar la fecha de los exámenes finales.</p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-center mr-2\">\r\n              <p className={`font-regular text-lwft text-lg sm:text-base md:text-lg flex items-left mr-2 mt-1 ${!props.cinco?'text-gray-400':'text-black'}`}>{props.cinco?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Puede modificar las materias de los exámenes.</p>\r\n            </li>\r\n            {/*\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!props.seis?'text-gray-400':'text-black'}`}>{props.seis?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} SESION EN VIVO.</p>\r\n            </li>*/\r\n            }\r\n          </ol>\r\n                    {\r\n                      plan === 'basico'?\r\n                      <a href=\"#infoPlans\"  onClick={()=>{setPlan('basico');setMonto(90)}} className='bg-green-500 p-2 rounded text-sm m-4 text-white boton mx-8 flex flex-row justify-center items-center'>\r\n                        <p>Seleccionado</p>\r\n                      <IoMdCheckmark className=\"text-white ml-2\" size={24} />\r\n                      </a>:\r\n                      <a href=\"#infoPlans\"   onClick={()=>{setPlan('basico');setMonto(90)}}  className='bg-primary p-2 rounded text-sm m-4 text-white boton mx-8'>Seleccionar Plan</a>\r\n                    }\r\n                  </div>\r\n                  \r\n                </div>\r\n                <div className=\"bg-basic rounded mx-4 sm:mx-0 md:mx-4 w-full mt-0 sm:mt-8 md:mt-0 flex flex-col justify-center\">\r\n                <div className={`rounded w-full flex flex-col justify-center ${plan === 'profesional'?'bg-green-400' :'bg-gradient-to-t from-accent to-primary'}`} style={{padding:3}}>\r\n                  <div className=\"bg-basic w-full rounded flex flex-col justify-center\">\r\n                  <p className={`text-center text-4xl px-2 ${plan === 'profesional'?'bg-green-400' :' bg-red-500'} w-full p-4 py-6 sm:py-2 md:py-6 -mt-16 sm:mt-0 md:-mt-16 rounded-b-lg rounded-t-md font-bold text-white drop-shadow-md`}>Plan <p>Profesional</p>\r\n                    <p className=\"text-3xl text-gray-800 \">Bs. <span>210</span></p>\r\n                    </p>\r\n                    <div className=\"flex flex-col justify-center items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left text-lg md:text-lg sm:text-base flex items-center mr-2\"><FiClock className=\"mr-2\"/>Suscripción: </p>\r\n            <p className=\"font-regular text-center text-lg sm:text-base md:text-lg ml-3\">Hasta el día del examen</p>\r\n          </div>\r\n          <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left text-lg sm:text-base md:text-lg flex items-start mr-2\"><FiClipboard className=\"mr-2 text-primary\"/>Pruebas Prácticas: 5</p>\r\n            <p className=\"font-regular text-left text-lg sm:text-base md:text-lg  ml-3\">Más de 50 preguntas en cada examen</p>\r\n          </div>\r\n          <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left md:text-lg  text-lg sm:text-base flex items-start mr-2\"><FiClipboard className=\"mr-2 text-primary\"/>Pruebas finales: 2</p>\r\n            <p className=\"font-regular text-left text-lg sm:text-base md:text-lg ml-3\">Más de 40 preguntas en cada prueba</p>\r\n          </div>\r\n          <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left text-lg sm:text-base md:text-lg flex items-start mr-2\"><AiOutlineFileText className=\"mr-2 text-primary\"/>Total de Preguntas: </p>\r\n            <p className=\"font-regular text-left text-lg sm:text-base md:text-lg ml-3\">Más de 330 preguntas</p>\r\n          </div>\r\n          <p className=\"font-bold text-primary text-center text-xl flex items-center mr-2 mt-4 mx-4\">Beneficios:</p>\r\n          <ol  className=\"mx-4\">\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Examen cronometrado. </p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Calificacion inmediata. </p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Revisión.</p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Gráficos comparativos.</p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-center mr-2\">\r\n              <p className={`font-regular text-lwft text-lg sm:text-base md:text-lg flex items-left mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Puede modificar la fecha de los exámenes finales.</p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-center mr-2\">\r\n              <p className={`font-regular text-lwft text-lg sm:text-base md:text-lg flex items-left mr-2 mt-1 ${!props.cinco?'text-gray-400':'text-black'}`}>{props.cinco?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Puede modificar las materias de los exámenes.</p>\r\n            </li>\r\n            {/*\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!props.seis?'text-gray-400':'text-black'}`}>{props.seis?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} SESION EN VIVO.</p>\r\n            </li>*/\r\n            }\r\n          </ol>\r\n                    {\r\n                      plan === 'profesional'?\r\n                      <a href=\"#infoPlans\" onClick={()=>{setPlan('profesional');setMonto(175)}} className='bg-green-500 p-2 rounded text-sm m-4 text-white boton mx-8 flex flex-row justify-center items-center'>\r\n                        <p>Seleccionado</p>\r\n                      <IoMdCheckmark className=\"text-white ml-2\" size={24} />\r\n                      </a>\r\n                      :\r\n                      <a href=\"#infoPlans\" onClick={()=>{setPlan('profesional');setMonto(175)}}  className='bg-primary p-2 rounded text-sm m-4 text-white boton mx-8'>Seleccionar Plan</a>\r\n                    }\r\n                  </div>\r\n                  \r\n                </div>\r\n                </div>\r\n                <div className=\"bg-basic rounded w-full flex flex-col justify-center mt-8\">\r\n                \r\n                <div className={`rounded w-full flex flex-col justify-center  ${plan === 'premium'?'bg-dorado' :'bg-gradient-to-t from-gray-300 to-gray-600'}`} style={{padding:3}}>\r\n                \r\n                  <div className=\"bg-basic w-full rounded flex flex-col justify-center \">\r\n                  \r\n                  <p className={`text-center text-4xl px-2 text-dorado flex flex-col items-center ${plan === 'premium'?'bg-green-400' :' bg-red-500'} w-full p-4 py-6 sm:py-2 md:py-6 -mt-16 sm:mt-0 md:-mt-16 rounded-b-lg rounded-t-md font-bold text-white drop-shadow-md`}>\r\n                  <p className=\"font-bold bg-white text-primary text-center text-xl m-2 p-1  -mt-12 sm:-mt-8  md:-mt-12 z-10 w-4/6 rounded border-2 border-red-500\">Recomendado</p>\r\n                    Plan <p>Premium</p>\r\n                   \r\n                    <p className=\"text-3xl text-gray-800 \">Bs. <span>290</span></p>\r\n                  </p>\r\n                    <div className=\"flex flex-col justify-center items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left text-lg md:text-lg sm:text-base flex items-center mr-2\"><FiClock className=\"mr-2\"/>Suscripción: </p>\r\n            <p className=\"font-regular text-center text-lg sm:text-base md:text-lg ml-3\">Hasta el día del examen</p>\r\n          </div>\r\n          <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left text-lg sm:text-base md:text-lg flex items-start mr-2\"><FiClipboard className=\"mr-2 text-primary\"/>Pruebas Prácticas: 8</p>\r\n            <p className=\"font-regular text-left text-lg sm:text-base md:text-lg  ml-3\">Más de 50 preguntas en cada examen</p>\r\n          </div>\r\n          <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left md:text-lg  text-lg sm:text-base flex items-start mr-2\"><FiClipboard className=\"mr-2 text-primary\"/>Pruebas finales: 2</p>\r\n            <p className=\"font-regular text-left text-lg sm:text-base md:text-lg ml-3\">Más de 40 preguntas en cada prueba</p>\r\n          </div>\r\n          <div className=\"flex flex-col justify-start items-start mx-4 mt-4\">\r\n            <p className=\"font-bold text-primary text-left text-lg sm:text-base md:text-lg flex items-start mr-2\"><AiOutlineFileText className=\"mr-2 text-primary\"/>Total de Preguntas: </p>\r\n            <p className=\"font-regular text-left text-lg sm:text-base md:text-lg ml-3\">Más de 480 preguntas</p>\r\n          </div>\r\n          <p className=\"font-bold text-primary text-center text-xl flex items-center mr-2 mt-4 mx-4\">Beneficios:</p>\r\n          <ol  className=\"mx-4\">\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Examen cronometrado. </p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Calificacion inmediata. </p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Revisión.</p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Gráficos comparativos.</p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-center mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-left mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Puede modificar la fecha de los exámenes finales.</p>\r\n            </li>\r\n            <li className=\"font-regular text-left text-lg flex items-center mr-2 bg-red-100 text-red-900 rounded\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-left mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>}\r\n                Puede modificar las materias de los exámenes.\r\n              </p>\r\n            </li>\r\n\r\n            {/*\r\n            <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n              <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!props.seis?'text-gray-400':'text-black'}`}>{props.seis?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} SESION EN VIVO.</p>\r\n            </li>*/\r\n            }\r\n          </ol>\r\n                    <div  id=\"infoPlans\"/>\r\n                    {\r\n                      plan === 'premium'?\r\n                      <a href=\"#infoPlans\"  onClick={()=>{setPlan('premium');setMonto(200)}} className='bg-green-500 p-2 rounded text-sm m-4 text-white boton mx-8 flex flex-row justify-center items-center'>\r\n                        <p>Seleccionado</p>\r\n                      <IoMdCheckmark className=\"text-white ml-2\" size={24} />\r\n                      </a>:\r\n                      <a href=\"#infoPlans\"  onClick={()=>{setPlan('premium');;setMonto(200)}}  className='bg-primary p-2 rounded text-sm m-4 text-white boton mx-8'>Seleccionar Plan</a>\r\n                    }\r\n                  </div>\r\n                  \r\n                </div>\r\n                </div>\r\n              </div>\r\n\r\n          </div>\r\n        </div>\r\n        {/* <div className=\"w-ful flex flex-col items-center\">\r\n          <p className=\"text-2xl text-gray-700\">si ya cuenta con un comprobante de pago...</p>\r\n          <button className=\"bg-primary p-3 px-8 rounded text-white mt-4 text-xl\" onClick={()=>{setVisible(true);setChild('deposito');setTitulo('Registro de comprobante')}}>Adquirir Plan</button>\r\n        </div> */}\r\n        \r\n        \r\n        <Footer/>\r\n      </>\r\n    );\r\n}\r\n\r\nexport default Plans;","import React,{useEffect, useState, useRef} from \"react\";\r\n\r\nimport { db } from \"../../config/firebase\";\r\nimport dbRef from \"../../config/dbRef\";\r\nimport { collection, getDocs } from \"firebase/firestore\";\r\nimport { doc, addDoc, updateDoc } from \"firebase/firestore\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst Management = (props) => {\r\n  const [users, setUsers] = useState([]);\r\n  const [param , setParam] = useState('xxxxx');\r\n\r\n  const [codigoAcceso, setCodigoAcceso] = useState('');\r\n\r\n  useEffect(() => {\r\n    console.log(users);\r\n  }, [users]);\r\n\r\n  useEffect(()=>{\r\n    getDocs(collection(db,dbRef.user))\r\n    .then((response)=>{\r\n        let user =[]\r\n        response.forEach((doc)=>{\r\n          user.push(\r\n            {\r\n              id:doc.id,\r\n              data:doc.data(),\r\n            }\r\n          );\r\n          // console.log(user);\r\n        });\r\n        return user;\r\n    }).then( doc =>{setUsers(doc);console.log(users)})\r\n},[])\r\n    return (\r\n      <>\r\n      {\r\n        codigoAcceso === '123321'?\r\n        <div className=\"flex flex-row justify-center items-center mt-16 flex-wrap\">\r\n          <div className=\"w-full flex flex-row m-16\">\r\n            <input type=\"text\" className=\"w-full border-2 border-gray-400 rounded-lg p-2\" placeholder=\"Buscar telefono\"\r\n              onChange={(e) => setParam(e.target.value)}\r\n            />\r\n            <button className=\"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded-lg mx-2\"\r\n              onClick={() => {\r\n                setParam(param);\r\n              }}\r\n\r\n            >Buscar</button>\r\n          </div>\r\n          <div className=\"w-full flex flex-row m-16\">\r\n            <div className=\"w-3/4 min-w-3/4 bg-textBajo flex flex-wrap m-1 items-stretch justify-items-stretch\">\r\n              {\r\n                users?\r\n                // <h1 className=\"mt-8 pt-8\" >Carga.</h1>\r\n                users.map((user,index)=>{\r\n                  if(user.data.name.includes(param)|| user.data.phone.includes(param)){\r\n\r\n                    return <div key={index} className=\"rounded w-1/3 min-w-1/3 p-1\">\r\n                  <div className=\"card text-gray-800 flex flex-col justify-around bg-gray-200 p-2 rounded-sm\">\r\n                    <div className=\"\">\r\n                      <div className =\"text-gray-800 font-bold text-base uppercase text-center -mx-3\">{user.data.name}</div>\r\n                      <hr className=\"color-gray-800\"/>\r\n                      <p className=\"font-normal text-14 text-center -mx-3 my-1\">{user.data.lastName}</p>\r\n                      \r\n                    </div>\r\n                    <div className=\"text-sm\">\r\n                      <div>\r\n                        <span className=\"font-regular text-primary\">Telefono:</span> \r\n                        <span>  {user.data.phone}</span>\r\n                      </div>\r\n                      <div>\r\n                        <span className=\"font-regular text-primary\">correo:</span> \r\n                        <span>  {user.data.email}</span>\r\n                      </div>\r\n                      <div>\r\n                        <span className=\"font-regular text-primary\">contrasenia:</span>\r\n                        <span>  {user.data.password}</span>\r\n                      </div>\r\n                      {\r\n                        user.data.codeAfiliate&&\r\n                        <div className=\"bg-gray-400 rounded-sm\">\r\n                          <span className=\"font-regular text-primary\">Cod. Afiliado:</span>\r\n                          <span>  {user.data.codeAfiliate}</span>\r\n                        </div>\r\n                      }\r\n                      \r\n                      <div className=\"font-normal text-xs\"> \r\n                      {/* <span className=\"font-bold text-primary\"> Colaboradores :</span>\r\n                        <ul>\r\n                          {user.data.colaboradores.map((colaborador,index)=>{\r\n                            return <li key={index}>{colaborador}</li>\r\n                          })}\r\n                        </ul> */}\r\n                        <span className=\"text-xs mx-0\"> {user.id}</span>\r\n                        <div className=\"mt-4 items-self-center\">\r\n                          <Link to={{\r\n                            pathname:`/counts`,\r\n                            id : user.id,\r\n                            codeAfiliate : user.data.codeAfiliate,\r\n                          }} className=\"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded-lg mx-2\">Editar</Link>\r\n                          {/* <button className=\"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded-lg mx-2\"\r\n                            onClick={() => {\r\n                              setParam(param);\r\n                            }\r\n                            }\r\n                          >Ver Examenes</button>\r\n                          <button className=\"bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded-lg mx-2\"\r\n                            onClick={() => {\r\n                              setParam(param);\r\n                            }\r\n                            }\r\n                          >Eliminar</button> */}\r\n                        </div>\r\n                      </div>\r\n                      \r\n                    </div>\r\n                    \r\n                  </div>\r\n                </div>\r\n                  }\r\n                })\r\n                :\r\n                <h1 className=\"mt-8 pt-8\" >Cargando...</h1>\r\n              }\r\n            </div>\r\n            <div className=\"w-1/4 min-w-1/4 bg-textBajo\">\r\n              <p>Hola comoestas </p>\r\n            </div>\r\n        </div>\r\n        </div>\r\n        :\r\n        <div className=\"flex flex-row justify-center items-center mt-16 flex-wrap\">\r\n          <div className=\"w-full flex flex-row m-16\">\r\n            <input type=\"text\" className=\"w-full border-2 border-gray-400 rounded-lg p-2\" placeholder=\"Codigo de acceso\"\r\n              onChange={(e) => setCodigoAcceso(e.target.value)}\r\n            />\r\n          </div>\r\n        </div>\r\n      }\r\n      </>\r\n    );\r\n}\r\n\r\nexport default Management;","export default __webpack_public_path__ + \"static/media/primer.5938ad9a.png\";","export default function Panel({panelId, panelSelect, btnNext, btnPrev, btnSubmit, error, errorMessage , children}) {\r\n    return (\r\n    <> \r\n        <div className=' flex flex-col justify-center p-5 w-full' style={{display:`${panelId===panelSelect?'flex':'none'}`}} >\r\n        {children}\r\n        {error?\r\n            <div role=\"alert\">\r\n                <div className=\"bg-red-500 text-white font-bold rounded-t px-4 py-2\">\r\n                    \r\n                </div>\r\n                <div className=\"border border-t-0 border-red-400 rounded-b bg-red-100 px-4 py-3 text-red-700\">\r\n                    {errorMessage?\r\n                        <p>{errorMessage}</p>:\r\n                        <p>complete el formulario antes de continuar</p>\r\n                    }\r\n\r\n                </div>\r\n            </div>:null\r\n        }\r\n        <div className='flex flex-row justify-center '>\r\n            \r\n            {btnPrev?\r\n                <div \r\n                  className=\"w-1/3 py-2 px-4 border-2 border-primary font-semibold rounded-lg shadow-md text-white bg-primary hover:bg-transparent hover:text-primary mt-3\"\r\n                  onClick={btnPrev}>\r\n                    Atras\r\n                </div>:null\r\n            }\r\n            {btnNext?\r\n                <div\r\n                  className=\"min-w-1/2 ml-3 w-1/3 py-2 px-4 border-2 border-primary font-semibold rounded-lg shadow-md text-white bg-primary hover:bg-transparent hover:text-primary mt-3\"\r\n                  onClick={btnNext}\r\n                >\r\n                    Siguiente\r\n                </div>:null\r\n            }\r\n            {btnSubmit?\r\n                <button\r\n                 className=\"min-w-1/2 ml-3 py-2 px-4 border-2 border-primary font-semibold rounded-lg shadow-md text-white bg-primary hover:bg-transparent hover:text-primary mt-3\"\r\n                 onClick={btnSubmit}\r\n                >\r\n                 Registrar\r\n                </button>:null\r\n            }\r\n\r\n         </div>\r\n         <div className=\"flex flex-col text-center justify-center mt-3\">\r\n             <p className=\"text-sm text-gray-1000 w-full°\">Tus datos estan protegidos por nuestras</p><a className=\"text-sm text-blue-500\" href=\"https://www.google.com/\">Politicas de privacidad</a>\r\n         </div>\r\n        </div>\r\n\r\n    </>\r\n    )\r\n}","import { db,auth } from '../../../config/firebase';\r\nimport dbRef from '../../../config/dbRef';\r\nimport { collection, getDocs, doc, setDoc, getDoc, query,where} from \"firebase/firestore\";\r\nimport { signInWithEmailAndPassword, createUserWithEmailAndPassword } from \"firebase/auth\";\r\nimport { addDoc } from \"firebase/firestore\";\r\n\r\nexport const getInscritoByEmail = (eventId, email) =>\r\nnew Promise(async (resolve, reject) => {\r\n    try{\r\n        const cursos = doc(db, dbRef.cursos, eventId);\r\n        const inscritos = await getDocs(collection(cursos, \"Inscritos\"));\r\n        let dataInscritos = [];\r\n        inscritos.forEach(doc => {\r\n            dataInscritos.push({id:doc.id,...doc.data()});\r\n        });\r\n        const inscrito = dataInscritos.find(inscrito => inscrito.email === email);\r\n        if(inscrito){\r\n            resolve('existe');\r\n        } else {\r\n            resolve('no inscrito');\r\n        }\r\n    } catch (error) {\r\n        reject(error);\r\n    }\r\n\r\n});\r\n\r\nexport const userExist = (email) =>\r\nnew Promise(async (resolve, reject) => {\r\n    try{\r\n        const users = await  getDocs(collection(db, dbRef.user));\r\n        let dataUsers = [];\r\n        users.forEach(doc => {\r\n            dataUsers.push({id:doc.id,...doc.data()});\r\n        });\r\n        //email \"paolapebles@gmail.com\r\n        const inscrito = dataUsers.find(u => u.email === email);\r\n        if(inscrito){\r\n            resolve(inscrito.id);\r\n        } else {\r\n            resolve('no Existe');\r\n        }\r\n    } catch (error) {\r\n        reject(error);\r\n    }\r\n\r\n});\r\nexport const randomString = (length) => {\r\n    const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\r\n    var result = '';\r\n    for (var i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)];\r\n    return result;\r\n}\r\n\r\nexport const generateBarCode = (eventId) =>\r\nnew Promise(async (resolve, reject) => {\r\n    try{\r\n        let igual=0;\r\n        while(igual===0){\r\n            const barCode = randomString(10);\r\n            const cursos = doc(db, dbRef.cursos, eventId);\r\n            const inscritos = await getDocs(collection(cursos, \"Inscritos\"));\r\n            let dataInscritos = [];\r\n            inscritos.forEach(doc => {\r\n                dataInscritos.push({id:doc.id,...doc.data()});\r\n            });\r\n            const inscrito = dataInscritos.find(inscrito => inscrito.codigoBarras === barCode);\r\n            if(inscrito){\r\n                igual=0;\r\n            } else {\r\n                igual=1;\r\n                resolve(barCode);\r\n            }\r\n        }\r\n    } catch (error) {\r\n        reject(error);\r\n    }\r\n\r\n});\r\n\r\nexport const registerUser = (data) =>\r\nnew Promise (async (resolve, reject) => {\r\n    try {\r\n        const { birthday,city,email,lastName,name,password,phone } = data;\r\n        const user = {\r\n            birthday,\r\n            city,\r\n            email,\r\n            lastName,\r\n            name,\r\n            password,\r\n            phone,\r\n            country: \"Bolivia\",\r\n        }\r\n        const userCredential = await createUserWithEmailAndPassword(auth, email, password);\r\n        const userId = userCredential.user.uid;\r\n        const result = await setDoc(doc(db, dbRef.user, userId), user);\r\n        console.log(\"usuario creado\", result);\r\n        resolve(userId);\r\n    } catch (error) {\r\n        reject({\r\n            error:error,\r\n            message: '[registerToEvent,events]registerUser'\r\n        });\r\n    }\r\n});\r\n\r\nexport const registerUserEvents = (data) =>\r\nnew Promise (async (resolve, reject) => {\r\n    try {\r\n        const {userId, eventId, codigoBarras, city, direccion, grado, modalidad, preferencia} = data;\r\n        \r\n        const user = doc(db, dbRef.user + '/' + userId);\r\n        const event = {\r\n            idEvent:eventId,\r\n            codigoBarras:codigoBarras,\r\n            city:city,\r\n            direccion:direccion,\r\n            grado:grado,\r\n            modalidad:modalidad,\r\n            preferenciaRefrigerio:preferencia,\r\n            habilitado:'no'\r\n        }\r\n        await addDoc(collection(user, 'Events'), event);\r\n        resolve('ok');\r\n    } catch (error) {\r\n        reject({\r\n            error:error,\r\n            message: '[registerToEvent,events]registerUserEvents'\r\n        });\r\n    }\r\n});\r\n\r\nexport const registerCursosIncritos = (data) =>\r\nnew Promise (async (resolve, reject) => {\r\n    try {\r\n        const {userId, eventId, codigoBarras, grado, modalidad, preferencia, email} = data;\r\n        const event = doc(db, dbRef.cursos + '/' + eventId);\r\n        const inscrito = {\r\n            userId:userId,\r\n            codigoBarras:codigoBarras,\r\n            grado:grado,\r\n            modalidad:modalidad,\r\n            preferenciaRefrigerio:preferencia,\r\n            email:email,\r\n            habilitado:\"no\"\r\n        }\r\n        await addDoc(collection(event, 'Inscritos'), inscrito);\r\n        resolve('ok');\r\n    } catch (error) {\r\n        reject({\r\n            error:error,\r\n            message: '[registerToEvent,events]registerCursosIncritos'\r\n        });\r\n    }\r\n});\r\n\r\nexport const registerData = (data) =>\r\nnew Promise (async (resolve, reject) => {\r\n    try {\r\n        let {birthday,city,codigoBarras,direccion,email,eventId,grado,isNewUser,lastName,modalidad,name,password,phone,preferencia,userId} = data;\r\n\r\n        if(isNewUser){\r\n            // registramos usuario i retornar su id en userId\r\n            const user = await registerUser({birthday,city,email,lastName,name,password,phone})\r\n            userId = user;\r\n        }\r\n        \r\n        // registramos user Events con el id : userId\r\n        const regEventInUser = await registerUserEvents({userId, eventId, codigoBarras, city, direccion, grado, modalidad, preferencia});\r\n        \r\n        if(regEventInUser === 'ok'){\r\n            console.log('registro de evento el usuario exitoso');\r\n        }\r\n        // registramos inscritos  de curoso:eventId con el id : userId\r\n        const regInscrito = await registerCursosIncritos({userId, eventId, codigoBarras, grado, modalidad, preferencia, email});\r\n        if(regInscrito === 'ok'){\r\n            console.log('registro de inscrito exitoso');\r\n        }\r\n        resolve('ok');\r\n    } catch (error) {\r\n        reject({\r\n            error:error,\r\n            message: '[registerToEvent,events]registerData'\r\n        });\r\n    }\r\n});","/* eslint-disable no-unused-vars */\r\nimport React,{useState, useEffect} from \"react\";\r\nimport jwt from 'jsonwebtoken';\r\nimport {privateToken} from '../ExamTest/getExam';\r\nimport Footer from \"../components/footer\";\r\nimport {addCart} from '../../redux/actions/cart';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport dbRef from \"../../config/dbRef\";\r\nimport { getAuth } from \"firebase/auth\";\r\nimport {db} from '../../config/firebase'\r\nimport { collection} from \"firebase/firestore\";\r\nimport { doc, addDoc } from \"firebase/firestore\";\r\nimport { Bar } from \"../components/onload\";\r\nimport { getUser } from '../../redux/actions/user';\r\nimport {auth} from '../../config/firebase';\r\nimport { Contactanos } from \"../components/uiComponents\";\r\nimport { getExamTest } from \"../ExamTest/getExam\";\r\nimport {Link} from 'react-router-dom';\r\nimport { map } from \"@firebase/util\";\r\n\r\nconst Live = (props) => {\r\n  //const user = useSelector(state => state.user);\r\n  const dispatch = useDispatch();\r\n  const [id,setId]= useState('');\r\n  const [data ,setData]= useState();\r\n  const [textBtn,setTextBtn]= useState(\"Adquirir Plan\");\r\n  const [allOk ,setAllOk]= useState(false);\r\n  console.log(props.location.data);\r\n\r\n  useEffect(() => {\r\n    try {\r\n    if(props.location.data){\r\n     \r\n        console.log(props.location.data.data)\r\n        setData(props.location.data.data);\r\n        setAllOk(true);\r\n    }else{\r\n      setAllOk(false);\r\n    }\r\n    } catch (error) {\r\n      setAllOk(false);\r\n    }\r\n    \r\n  } ,[props.location.data])\r\n\r\n    return (\r\n        <>\r\n        {allOk ? \r\n          <>\r\n            <div className=\"\">\r\n              <h1 className=\"text-center text-2xl font-bold text-white mt-20 bg-contexto py-6 px-10\">Apriori - Eventos, una diferente manera de aprender{/*data.nombre&&data.nombre*/}</h1>\r\n            </div>\r\n            <div className=\"px-32 py-16 flex flex-row sm:flex-col-reverse md:flex-row sm:px-4 md:px-32 sm:py-8 md:py-16\">\r\n              <div className=\"w-3/4 sm:w-full dm:w-3/4\">\r\n                <div className=\"px-4 sm:px-2 md:px-4\">\r\n                  <h2 className=\"text-4xl text-primary sm:text-2xl md:text-4xl\">{data.nombre}</h2>\r\n                  <h3 className=\"text-2xl text-primary sm:text-xl md:text-2xl\">Expositor:</h3>\r\n                  {data.expositor.map(expositor => {\r\n                    return(\r\n                      <p className=\"text-xl text-black\">{expositor}</p>\r\n                    )\r\n                  })\r\n                }\r\n                  <p>{/*data.expositor&&data.expositor*/}</p>\r\n                  <h3 className=\"text-2xl text-primary sm:text-xl md:text-2xl\">Contenido:</h3>\r\n                  <ul className=\"ml-8\">\r\n                  {\r\n                    data.contenido.map(expositor => {\r\n                      return(\r\n                        <li type='disc' className=\"text-xl text-black\">{expositor}</li>\r\n                      )\r\n                    })\r\n                  }\r\n                  </ul>\r\n                  <h3 className=\"text-2xl text-primary sm:text-xl md:text-2xl\">Recuros:</h3>\r\n                  <ul className=\"ml-8\">\r\n                  {\r\n                    data.recursos.map(expositor => {\r\n                      return(\r\n                        <li type='disc' className=\"text-xl text-black\">\r\n                          <a href={expositor.url} target=\"_blank\" rel=\"noopener noreferrer\">{expositor.nombre}</a>\r\n                        </li>\r\n                      )\r\n                    })\r\n                  }\r\n                  </ul>\r\n                  \r\n\r\n                </div>\r\n              </div>\r\n              <div className=\"bg-green-100 w-full\">\r\n              <iframe \r\n                width=\"100%\" \r\n                height=\"458\" \r\n                src={data.urlVideo}\r\n                title=\"YouTube video player\" \r\n                frameborder=\"0\" \r\n                allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; fullscreen\" \r\n                allowfullscreen\r\n              ></iframe>\r\n              </div>\r\n            </div>\r\n          </> \r\n          : \r\n          <>\r\n            <div className=\"px-32 py-16 flex flex-col w-full h-80 justify-center items-center text-center mt-8\">\r\n              <h1 className=\"text-5xl\">Algo salio mal</h1>\r\n              <h1 className=\"text-5xl my-4\">:-(</h1>\r\n              <Link to=\"/profile\" className=\"bg-primary hover:bg-green-700 text-white font-bold py-2 px-4 rounded-full  my-4\">\r\n                Volver a perfil\r\n              </Link>\r\n            </div>\r\n          </>\r\n          }\r\n        <Footer/>\r\n        \r\n        </>\r\n    );\r\n}\r\n\r\nexport default Live;","import React,{useEffect, useState, useRef} from \"react\";\r\n\r\nimport { db } from \"../../config/firebase\";\r\nimport dbRef from \"../../config/dbRef\";\r\nimport { collection, getDocs } from \"firebase/firestore\";\r\nimport { doc, addDoc, updateDoc , query,where } from \"firebase/firestore\";\r\nimport { set } from \"react-hook-form\";\r\n\r\nimport { getMaterias, getQuestion,createExam } from \"./utils\";\r\n\r\n\r\nconst CardCounts = (props) => {\r\n  const { exam, idUser, codeAfiliate } = props;\r\n  const [edit , setEdit] = useState(true);\r\n  const [editAfiliate , setEditAfiliate] = useState(true);\r\n  // referencias a todas las variables\r\n  const cantidadP = useRef();\r\n  const intentos = useRef();\r\n  const estado = useRef();\r\n  const idExamen = useRef();\r\n  const plan = useRef();\r\n\r\n  const monstoAfiliate = useRef();\r\n\r\n\r\n  //metodo asincrono para guardar los datos\r\n  const handleSave = async () => {\r\n    try{\r\n      let cantidad = cantidadP.current.value? cantidadP.current.value : exam.data.cantidadPreguntas;\r\n      let intento = intentos.current.value? intentos.current.value : exam.data.intentos;\r\n\r\n      let estadoExamen = estado.current.value ? estado.current.value : exam.data.estado;\r\n      let idExam = idExamen.current.value? idExamen.current.value : exam.data.idExamen;\r\n      let planExamen = plan.current.value? plan.current.value : exam.data.plan;\r\n\r\n      const cuenta = doc(db, dbRef.user, idUser,'cuenta', exam.id);\r\n      await updateDoc(cuenta, {\r\n        cantidadPreguntas: cantidad,\r\n        intentos: intento,\r\n        estado: estadoExamen,\r\n        idExamen: idExam,\r\n        plan: planExamen,\r\n\r\n      });\r\n      if(exam.data.tipo === \"PFinal\"){\r\n        console.log(\"entro a la prueba final\");\r\n      }\r\n      alert(`Datos guardados ${cantidad} ${intento} ${estadoExamen} ${idExam} ${planExamen}`);\r\n    }catch(error){\r\n      alert(\"Error al guardar los datos :\"+error);\r\n      console.log(error);\r\n    }\r\n\r\n  }\r\n\r\n  const handleSaveAfiliate = async () => {\r\n    setEditAfiliate(false);\r\n    try{\r\n      let planExamen = plan.current.value? plan.current.value : exam.data.plan;\r\n      let monto = monstoAfiliate.current.value;\r\n\r\n      if(planExamen === \"pendiente\"){\r\n        alert(\"El plan no puede ser pendiente\");\r\n        setEditAfiliate(true);\r\n        return;\r\n      }\r\n      if(monto === \"\"){\r\n        alert(\"El monto no puede estar vacio\");\r\n        setEditAfiliate(true);\r\n        return;\r\n      }\r\n\r\n      const querySnapshot = await getDocs(\r\n        query(collection(db, dbRef.user),where(\"code\", \"==\", codeAfiliate))\r\n      );\r\n      if(querySnapshot.size<=0){\r\n        alert(\"No se encontro el codigo de afiliado\");\r\n        setEditAfiliate(true);\r\n        return;\r\n      }\r\n\r\n      const afiliate = collection(db, dbRef.user, querySnapshot.docs[0].id, 'afiliates');\r\n      const queryAfiliate = await getDocs(\r\n        query(afiliate,where(\"afiliate\", \"==\",idUser ))\r\n      );\r\n\r\n      if(queryAfiliate.size>0){\r\n        const afiliateDoc = doc(db, dbRef.user, querySnapshot.docs[0].id, 'afiliates', queryAfiliate.docs[0].id);\r\n        await updateDoc(afiliateDoc, {\r\n          plan: planExamen,\r\n          monto: monto,\r\n          state : \"pago\"\r\n        });\r\n        \r\n      }else{\r\n        alert(\"No se encontro el codigo de afiliado\");\r\n        return;\r\n      }\r\n      alert(`Datos guardados: plan = ${planExamen}. monto: bs ${monto}`);\r\n      setEditAfiliate(true);\r\n        \r\n    }catch(error){\r\n      alert(\"Error al guardar los datos :\"+error);\r\n      console.log(error);\r\n      setEditAfiliate(true);\r\n    }\r\n  }\r\n\r\n  return (\r\n    <div className=\" max-w-1/3 w-1/3 self-start p-2\">\r\n      <div className=\"bg-gray-300 rounded p-4\">\r\n        <h2 className=\"text-center text-2xl text-primary \">{\r\n          exam.data.tipo === \"PPrac\" ? \"Prueba Practica\" : \"Prueba Final\"\r\n        } </h2>\r\n        <p className=\"font-bold text-center\">{exam.data.nombre}</p>\r\n        <p className=\"text-center text-xs\">{exam.id}</p>\r\n        <p className=\"text-center text-sm\">Fecha de Examen : {exam.data.fechaExamen}</p>\r\n        {\r\n          codeAfiliate && <p className=\"text-center text-sm\">Codigo de Afiliado : {codeAfiliate}</p> \r\n        }\r\n        <p className=\"text-center border-b-2 border-gray-500\">{exam.data.fechaRegistro}</p>\r\n        <div className=\"flex flex-row mt-4 justify-between \">\r\n          <p>Cantidad de preguntas : </p>\r\n          <input type=\"text\" className=\"border-2 border-gray-400 rounded-lg px-2 w-10 mx-2\" placeholder={exam.data.cantidadPreguntas} disabled={edit} ref={cantidadP}/>\r\n        </div>\r\n        <div className=\"flex flex-row my-1 justify-between\">\r\n          <p className=\"text-center\">Intentos :</p>\r\n          <input type=\"text\" className=\"border-2 border-gray-400 rounded-lg px-2 w-10 mx-2\" placeholder={exam.data.intentos} disabled={edit} ref={intentos}/>\r\n        </div>\r\n        <div className=\"flex flex-row my-1 justify-between\">\r\n          <p>Estado : </p>\r\n          {\r\n            edit ? <p className=\"border-2 border-gray-400 rounded-lg px-2 w-40 mx-2\">{exam.data.estado}</p> \r\n            : \r\n            <select className=\"border-2 border-gray-400 rounded-lg px-2 w-40 mx-2\" disabled={edit} ref={estado}>\r\n              \r\n              <option value=\"pendiente\"\r\n                className={`${exam.data.estado === 'pendiente' ? \"bg-blue-400\": null }`}\r\n                selected={exam.data.estado.includes(\"ente\")}\r\n              >pendiente</option>\r\n              <option \r\n                value=\"activo\" \r\n                className={`${exam.data.estado === 'activo' ? \"bg-blue-400\": null }`} \r\n                selected = {exam.data.estado === 'activo'}\r\n              >activo</option>\r\n              <option \r\n                value=\"inactivo\"\r\n                selected = {exam.data.estado === 'inactivo'}\r\n              >Inactivo</option>\r\n            </select>\r\n          }\r\n          \r\n        </div>\r\n        <div className=\"flex flex-row my-1 justify-between\">\r\n          <p>ID Examen: </p>\r\n          < input type=\"text\" className=\"border-2 border-gray-400 rounded-lg px-2 w-50 mx-2\" placeholder={exam.data.idExamen} disabled={edit} ref={idExamen} />\r\n        </div>\r\n        <div className=\"flex flex-row my-1 justify-between\">\r\n          <p className=\"text-center\">Plan :</p>{\r\n            edit ? <p className=\"border-2 border-gray-400 rounded-lg px-2 w-40 mx-2\">{exam.data.plan}</p>\r\n            :\r\n            <select className=\"border-2 border-gray-400 rounded-lg px-2 w-40 mx-2\" disabled={edit} ref={plan}>\r\n              <option value=\"pendiente\" className={`${exam.data.plan.includes(\"ente\")?'bg-blue-400':null }`} selected={exam.data.plan.includes(\"ente\")}>pendiente</option>\r\n              <option value=\"fast\" className={`${exam.data.plan.includes(\"ast\")?'bg-blue-400':null }`} selected={exam.data.plan.includes(\"ast\")}>Fast</option>\r\n              <option value=\"Básico\" className={`${exam.data.plan.includes(\"sico\")?'bg-blue-400':null }`} selected={exam.data.plan.includes(\"sico\")}>Basico</option>\r\n              <option value=\"Profesional\" className={`${exam.data.plan.includes(\"fesional\")?'bg-blue-400':null }`} selected={exam.data.plan.includes(\"fesional\")}>Profesional</option>\r\n              <option value=\"Premium\" className={`${exam.data.plan.includes(\"emium\")?'bg-blue-400':null }`} selected={exam.data.plan.includes(\"emium\")}>Premium</option>\r\n            </select>\r\n          }\r\n        </div>\r\n        <details className=\"\">\r\n          <summary>Materias :</summary>\r\n          {\r\n            exam.data.materias.map((materia)=>{\r\n              return (\r\n                <p className=\"m-1 bg-gray-400 p-1 px-2 rounded\">{materia}</p>\r\n              )\r\n            })\r\n          }\r\n        </details>\r\n        <div className=\"flex flex-row my-1 justify-between\">\r\n        <details className=\"\">\r\n          <summary>Examenes :</summary>\r\n          <button className={` text-white rounded-lg px-2 py-1 mx-2 ${edit ? \"bg-gray-400\":\"bg-green-500\"}`} disabled={edit===true}\r\n            onClick={()=>{\r\n              createExam(exam.data.idExamen,exam.data.intentos,exam.data.cantidadPreguntas,idUser,exam.id,exam.data.idExamen,exam.data.plan);\r\n            }\r\n          }\r\n          >Generar Examenes</button>\r\n\r\n          {\r\n            exam.data.materias.map((materia)=>{\r\n              return (\r\n                <p className=\"m-1 bg-gray-400 p-1 px-2 rounded\">{materia}</p>\r\n              )\r\n            })\r\n          }\r\n        </details>\r\n        \r\n        </div>\r\n\r\n        {\r\n          exam.data.tipo === \"PFinal\" &&\r\n          <details>\r\n            <summary className=\"cursor-pointer\">Afiliado : <span className=\"text-gray-600 text-sm\">Revise los datos  </span></summary>\r\n            <p>Monto : </p>\r\n            <input className=\"border-2 border-gray-400 rounded-lg px-2 w-50 mx-2\" ref={monstoAfiliate}></input>\r\n            <button className={` text-white rounded-lg px-2 py-1 mx-2 ${edit || editAfiliate ===false ? \"bg-gray-400\":\"bg-green-500\"}`} disabled={edit===true || editAfiliate===false}\r\n            onClick={()=>{\r\n             handleSaveAfiliate();\r\n            }\r\n          }\r\n          >{editAfiliate?'Agregar':'Guardando...'}</button>\r\n          </details>\r\n        }\r\n\r\n        <div className=\"flex flex-row justify-center items-center mt-4\">\r\n          <button className=\"bg-blue-400 text-white rounded-lg px-4 py-2 mx-2\"\r\n            onClick={()=>{\r\n              setEdit(!edit);\r\n            }}\r\n          >Editar</button>\r\n          <button className=\"bg-red-500 text-white rounded-lg px-4 py-2 mx-2\">Eliminar</button>\r\n          <button className={` text-white rounded-lg px-4 py-2 mx-2 ${edit? \"bg-gray-400\":\"bg-green-500\"}`} disabled={edit===true}\r\n            onClick={()=>{\r\n             handleSave();\r\n            }\r\n          }\r\n          >Guardar</button>\r\n        </div>\r\n      </div>\r\n\r\n    </div>\r\n  );\r\n};\r\n\r\nconst CardExamen = (props) =>{\r\n  const {exam , id, idUser, codeAfiliate} = props;\r\n  const [load , setLoad] = useState(false);\r\n\r\n  const cantidadPreguntasPractica = useRef(null);\r\n  const cantidadPreguntasFinal = useRef(null);\r\n\r\n  const intentosPractica = useRef(null);\r\n  const intentosFinal = useRef(null);\r\n\r\n  const estadoPractica = useRef(null);\r\n  const estadoFinal = useRef(null);\r\n\r\n  const fechaPractica = useRef(null);\r\n  const fechaFinal = useRef(null);\r\n\r\n  const [plan , setPlan] = useState(\"pendienteee\");\r\n\r\n  let materias = [];\r\n  exam.materias.forEach((materia)=>{\r\n    materias.push(materia.nombre);\r\n  });\r\n\r\n  const handleSaveExam = async () =>{\r\n    try{\r\n      const cuenta = doc(db, dbRef.user + '/' + idUser);\r\n      const newExamFinal = {\r\n        idExamen: id,\r\n        fechaRegistro: new Date().toISOString(),\r\n        plan:plan,\r\n        tipo : 'PFinal',\r\n        nombre : exam.nombre,\r\n        fechaExamen: fechaFinal.current.value,\r\n        materias :materias,\r\n        estado: estadoFinal.current.value,\r\n        cantidadPreguntas: cantidadPreguntasFinal.current.value,\r\n        intentos: intentosFinal.current.value,\r\n      }\r\n      const newExamPrueba = {\r\n        idExamen: id,\r\n        fechaRegistro: new Date().toISOString(),\r\n        plan:plan,\r\n        tipo : 'PPrac',\r\n        nombre : exam.nombre,\r\n        fechaExamen: fechaPractica.current.value,\r\n        materias : materias,\r\n        estado: estadoPractica.current.value,\r\n        cantidadPreguntas: cantidadPreguntasPractica.current.value,\r\n        intentos: intentosPractica.current.value,\r\n      }\r\n\r\n      await addDoc(collection(cuenta, 'cuenta'), newExamFinal);\r\n      await addDoc(collection(cuenta, 'cuenta'), newExamPrueba);\r\n\r\n\r\n      alert('Examen agregado');\r\n    }catch(e){\r\n      alert('Error al agregar examen');\r\n    }\r\n  }\r\n\r\n  //console.log(exman);\r\n  return (\r\n    <div className=\"p-1 w-1/3 self-start\">\r\n      <div className=\"bg-gray-300 rounded-lg shadow-lg p-4\">\r\n        <h2 className=\"text-center font-bold text-base\">{exam.nombre}</h2>\r\n        <p className=\"text-sm text-center\">{id}</p>\r\n        <p>{plan}</p>\r\n        <div className={`${load?'flex':'hidden'} flex-col`}>\r\n        <div className=\"flex flex-row my-1 justify-between\">\r\n          <p className=\"text-sm text-center\">Plan :</p>\r\n          <select className=\"border-2 border-gray-400 rounded-lg px-2 w-40 mx-2\"\r\n            onChange={(e)=>{\r\n              setPlan(e.target.value);\r\n            }}\r\n          >\r\n            <option value=\"pendiente\">Pendiente</option>\r\n            <option value=\"Básico\">Basico</option>\r\n            <option value=\"Profesional\">Profesional</option>\r\n          </select>\r\n        </div>\r\n          <p className=\"text-center border-b-2 border-gray-500 w-full text-primary font-bold\">Prueba Practica</p>\r\n          <div className=\"flex flex-row mt-1 justify-between \">\r\n            <p>Cantidad de preguntas : </p>\r\n            <input type=\"text\" className=\"border-2 border-gray-400 rounded-lg px-2 w-10 mx-2\" ref={cantidadPreguntasPractica}/>\r\n          </div>\r\n          <div className=\"flex flex-row mt-1 justify-between \">\r\n            <p>Intentos : </p>\r\n            <input type=\"text\" className=\"border-2 border-gray-400 rounded-lg px-2 w-10 mx-2\" ref={intentosPractica}/>\r\n          </div>\r\n          <div className=\"flex flex-row mt-1 justify-between \">\r\n            <p>Estado : </p>\r\n            <select className=\"border-2 border-gray-400 rounded-lg px-2 w-40 mx-2\" ref={estadoPractica}>\r\n              <option value=\"pendiente\">pendiente</option>\r\n              <option value=\"activo\">Activo</option>\r\n              <option value=\"inactivo\">Inactivo</option>\r\n            </select>\r\n          </div>\r\n          <div className=\"flex flex-row mt-1 justify-between \">\r\n            <p>Fecha de Examen : </p>\r\n            <input type=\"text\" className=\"border-2 border-gray-400 rounded-lg px-2 w-40 mx-2\" placeholder=\"dd/m/aaaa\" ref={fechaPractica}/>\r\n          </div>\r\n\r\n          <p className=\"text-center border-b-2 border-gray-500 w-full my-4  text-primary font-bold\">Prueba Final</p>\r\n          <div className=\"flex flex-row mt-1 justify-between \">\r\n            <p>Cantidad de preguntas : </p>\r\n            <input type=\"text\" className=\"border-2 border-gray-400 rounded-lg px-2 w-10 mx-2\" ref={cantidadPreguntasFinal}/>\r\n          </div>\r\n          <div className=\"flex flex-row mt-1 justify-between \">\r\n            <p>Intentos : </p>\r\n            <input type=\"text\" className=\"border-2 border-gray-400 rounded-lg px-2 w-10 mx-2\" ref={intentosFinal}/>\r\n          </div>\r\n          <div className=\"flex flex-row mt-1 justify-between \">\r\n            <p>Estado : </p>\r\n            <select className=\"border-2 border-gray-400 rounded-lg px-2 w-40 mx-2\" ref={estadoFinal}>\r\n              <option value=\"pendiente\">pendiente</option>\r\n              <option value=\"activo\">Activo</option>\r\n              <option value=\"inactivo\">Inactivo</option>\r\n            </select>\r\n          </div>\r\n          <div className=\"flex flex-row mt-1 justify-between \">\r\n            <p>Fecha de Examen : </p>\r\n            <input type=\"text\" className=\"border-2 border-gray-400 rounded-lg px-2 w-40 mx-2\" placeholder=\"dd/m/aaaa\" ref={fechaFinal}/>\r\n          </div>\r\n          <button className=\"bg-green-400 text-white rounded-lg px-4 py-2 m-2\"\r\n            onClick={()=>{\r\n              handleSaveExam();\r\n            }}\r\n          >Guardar</button>\r\n        </div>\r\n        <button className=\"bg-blue-400 text-white rounded-lg px-4 py-2 mx-2\"\r\n          onClick={()=>{setLoad(!load)}}\r\n        >Seleccionar</button>\r\n      </div>\r\n    </div>\r\n  );\r\n}\r\n\r\n\r\nconst Counts = (props) => {\r\n  const [exams, setExams] = useState([]);\r\n  const [load , setLoad] = useState(false);\r\n  const [modal , setModal] = useState(false);\r\n  const [dataExam , setDataExam] = useState([]);\r\n  //props.loca\r\n  \r\n  useEffect(()=>{\r\n    getExams();\r\n  },[])\r\n\r\n  useEffect(()=>{\r\n    setDataExam(dataExam);\r\n  },[dataExam])\r\n\r\n  const getExams = async () => {\r\n    const cuenta = doc(db, dbRef.user, props.location.id);\r\n    await getDocs(collection(cuenta, \"cuenta\")).then((response) => {\r\n      let newExams = [];\r\n      response.forEach((doc) => {\r\n        newExams.push({\r\n          id: doc.id,\r\n          data: doc.data(),\r\n        });\r\n      });\r\n      console.log(newExams);\r\n      setExams(newExams);\r\n    }).then(()=>{setLoad(true);console.log(exams)});\r\n    \r\n  }\r\n\r\n  const handleSave = async (id, exam) => {\r\n    setModal(!modal);\r\n    if(dataExam.length === 0){\r\n      alert(\"ya hay examenes\");\r\n      await getDocs(collection(db,dbRef.exam))\r\n      .then((response)=>{\r\n          response.forEach((doc)=>{\r\n            dataExam.push({id:doc.id,data:doc.data()});\r\n          });\r\n      }).then( doc =>{console.log(dataExam);\r\n        setDataExam(dataExam);\r\n      })\r\n    }else{\r\n      alert(\"no hay examenes\");\r\n    }\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <div className=\"flex flex-row justify-center items-start mt-16 py-8 flex-wrap w-full bg-gray-200\">\r\n        {\r\n          exams?\r\n          exams.map((exam)=>{\r\n            return (\r\n              <CardCounts exam={exam} idUser= {props.location.id}  codeAfiliate={props.location.codeAfiliate}/>\r\n            )\r\n          }):\r\n          null\r\n        }\r\n      </div>\r\n            {/*boton flotaante*/}\r\n            <div className=\"fixed bottom-0 right-0 m-4\">\r\n        <button className=\"bg-green-500 text-white rounded-full px-4 py-3\" onClick={()=>{handleSave()}}>Agregar Examen</button>\r\n      </div>\r\n      {/*modal*/}\r\n      <div className={`fixed top-0 left-0 w-full h-full bg-gray-500 bg-opacity-50 z-50 ${modal ? \"flex\":\"hidden\"}`}>\r\n        <div className=\"bg-white w-11/12  m-auto rounded-lg shadow-lg h-90\">\r\n          <div className=\"flex flex-row justify-between items-center p-4\">\r\n            <h1 className=\"text-2xl\">Agregar Examen</h1>\r\n            <button className=\"bg-red-500 text-white rounded-full px-4 py-3\" onClick={()=>{setModal(false)}}>X</button>\r\n          </div>\r\n          <div className=\"flex flex-row justify-center items-center p-4 flex-wrap overflow-auto h-70\">\r\n            {\r\n              dataExam.length > 0 ?\r\n              dataExam.map((exam)=>{\r\n                return (\r\n                  <CardExamen id = {exam.id} exam={exam.data} idUser= {props.location.id}/>\r\n                )\r\n              }):\r\n              null\r\n            }\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </>\r\n  );\r\n}\r\n\r\nexport default Counts;","import React,{useEffect, useState} from \"react\";\r\nimport Footer from \"../components/footer\";\r\nimport { useSelector} from 'react-redux';\r\nimport Modal from \"../components/Modal\";\r\n//importar firebase storage\r\nimport { storage } from \"../../config/firebase\";\r\nimport {getDownloadURL, ref as referencia, uploadBytesResumable} from \"@firebase/storage\";\r\nimport { auth } from \"../../config/firebase\";\r\n//import imgQr from './../../assets/images/qr.jpg'\r\nimport { db } from \"../../config/firebase\";\r\nimport dbRef from \"../../config/dbRef\";\r\n//import { collection} from \"firebase/firestore\";\r\nimport { doc, updateDoc } from \"firebase/firestore\";// addDoc\r\nimport { Link } from \"react-router-dom\";\r\nimport {BsWhatsapp, BsFillImageFill} from \"react-icons/bs\";\r\nimport {Dots} from \"../components/onload\"\r\nimport {IoMdRadioButtonOff, IoMdRadioButtonOn, IoMdCheckmark} from \"react-icons/io\";\r\n\r\nconst RadioButton = (props) => {\r\n  const [active , setActive] = useState(props.active);\r\n  useEffect(() => {\r\n    setActive(props.active);\r\n  }, [props.active]);\r\n  return (\r\n    <div className=\"flex flex-row justify-center items-center cursor-pointer\" onClick={\r\n      ()=>{\r\n        setActive(!active);\r\n        props.onClick();\r\n      }\r\n    }>\r\n\r\n      {\r\n        active ? <IoMdRadioButtonOn color={props.color}/> : <IoMdRadioButtonOff color={props.color}/>\r\n      }\r\n      \r\n      <p className=\"text-sm\">{props.label}</p>\r\n    </div>\r\n    \r\n  );\r\n}\r\n\r\n\r\nconst Payment = (props) => {\r\n  \r\n  const [data,setData]= useState([]);\r\n  const [id, setId] = useState('');\r\n  const [visible, setVisible] = useState(false);\r\n  const [tigo, setTigo] = useState(true);\r\n  const [deposito, setDeposito] = useState(false);\r\n  const [transferencia, setTransferencia] = useState(false);\r\n  const [qr, setQr] = useState(false);\r\n  const [child, setChild] = useState('');\r\n\r\n  const [plan, setPlan] = useState('0');\r\n  const [banco, setBanco] = useState('bnb');\r\n  const [titulo, setTitulo] = useState('Titulo');\r\n  const [telefono, setTelefono] = useState('Telefono');\r\n  const [monto, setMonto] = useState(0);\r\n  const [imagen, setImagen] = useState('');\r\n  const [progreso , setProgreso] = useState(0);\r\n  const [url, setUrl] = useState('');\r\n  const [load, setLoad] = useState(1);//0 false -1 true -2 loading\r\n  const [text, setText] = useState('ninguna imagen');\r\n\r\n  const [textAdvertencia, setTextAdvertencia] = useState('Inntroducir un numero de telefono valido');\r\n\r\n  const [metodo, setMetodo] = useState('vacio');\r\n\r\n  // const storage \r\n  \r\n  const user = useSelector(state => state.user);\r\n  const changeRadioButton = (index) => {\r\n    switch (index) {\r\n      case 1:\r\n        setTigo(true);\r\n        setDeposito(false);\r\n        setTransferencia(false);\r\n        setQr(false);\r\n        break;\r\n      case 2:\r\n        setTigo(false);\r\n        setDeposito(true);\r\n        setTransferencia(false);\r\n        setQr(false);\r\n        break;\r\n      case 3:\r\n        setTigo(false);\r\n        setDeposito(false);\r\n        setTransferencia(true);\r\n        setQr(false);\r\n        break;\r\n      case 4:\r\n        setTigo(false);\r\n        setDeposito(false);\r\n        setTransferencia(false);\r\n        setQr(true);\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n  }\r\n\r\n  const subirImagen = (img) => {\r\n      if(metodo !== 'vacio'){\r\n      if(imagen !== ''){\r\n      setLoad(2);\r\n      //fecha actual\r\n      const date = new Date();\r\n      const storeRef = referencia(storage,`comprobante/+${date}+${img.name}`);\r\n      const UploadTask = uploadBytesResumable(storeRef, img);\r\n      UploadTask.on('state_changed', (snapshot) => {\r\n          const progress = Math.round((snapshot.bytesTransferred / snapshot.totalBytes) * 100);\r\n          setProgreso(progress);\r\n        },\r\n        (error) => {\r\n            console.log(error);\r\n        },\r\n        () => {\r\n          getDownloadURL(UploadTask.snapshot.ref).then((downloadURL) => {\r\n              setText(\"Imagen subida correctamente\");\r\n              return downloadURL;\r\n          }).then((url)=>{\r\n            updateDocumento(data.id,url);\r\n            // console.log('llego')\r\n          }).then(()=>{\r\n            setVisible(true);\r\n            setTitulo('Comprobante subido correctamente');\r\n            setLoad(3);\r\n              setText(\"El comprobante se ha subido correctamente\");\r\n          });\r\n        }\r\n      );}else{\r\n        setText(\"Seleccione una imagen\");\r\n      }\r\n    }else{\r\n      setText(\"Seleccione un metodo de pago\");\r\n    }\r\n  }\r\n\r\n  const sendWhatsapp = () => {\r\n    if (telefono.length > 7 && telefono.length < 9) {\r\n      let mensaje= `${\r\n        banco === 'bnb'? `*CUENTA DE DEPOSITO: Nombre del Titular :* Leonel Avendaño Villarroel *Numero de cuenta :* 4500837492 *Carnet de Identidad :* 10377499 *Banco :* Banco Nacional de Bolivia (BNB) *Monto :* ${monto}`:\r\n        banco === 'bisa'? `*CUENTA DE DEPOSITO: Nombre del Titular :* Abigail Mamani *Numero de cuenta :*  495340-401-5 *Carnet de Identidad :* 13427301 pt *Banco :* Banco Bisa *Monto :* ${monto}`:\r\n        banco === 'union'? `*CUENTA DE DEPOSITO: Nombre del Titular :* Leonel Avendaño Villarroel *Numero de cuenta :*  10000042944682 - Caja de ahorro M/N *Carnet de Identidad : *10377499 *Banco :* Banco Unión *Monto :* ${monto}`:\r\n        `*CUENTA DE DEPOSITO: Nombre del Titular :* Rocely Valeria Cruz *Numero de cuenta :*  703-2-1-03486-9 *Carnet de Identidad :* 10330317 *Banco :* Banco Prodem *Monto :* ${monto}`\r\n\r\n\r\n      }`;\r\n      const url = `https://api.whatsapp.com/send?phone=591${telefono}&text=${mensaje}`;\r\n      window.open(url, '_blank');\r\n    }else{\r\n      alert(\"Introducir un numero de telefono valido\");\r\n    }\r\n  }\r\n\r\n  const updateDocumento = async (paramId,paramUrl) => {\r\n    //const messageRef = doc(db, \"rooms\", \"roomA\", \"messages\", \"message1\");\r\n    const authUser = auth.currentUser.uid;\r\n    const cuenta = doc(db, dbRef.user, authUser,'cuenta',paramId);\r\n    const newExam = {\r\n      urlRecibo: paramUrl,\r\n      metodo: metodo,\r\n      banco: banco,\r\n      rebizado: false,\r\n      plan: plan,\r\n    }\r\n    await updateDoc(cuenta, newExam);\r\n    // await updateDoc(cuenta, paramId, newExam);\r\n    setText(\"Comprobante enviado\");\r\n\r\n  };\r\n\r\n  useEffect(() => {\r\n    \r\n    if(!props.location.data){\r\n      props.history.push('/profile');\r\n    }else{\r\n      setData(props.location.data);\r\n      setId(props.location.data.id);\r\n      console.log(data);\r\n    }\r\n  } ,[props.history,load])\r\n\r\n    return (\r\n      <>\r\n        <Modal visible={visible} title={titulo} onClose={()=>{setVisible(false);setProgreso(0)}}>\r\n          {\r\n            <>\r\n              <h2 className=\"text-center text-primary text-3xl\">Apriori</h2>\r\n              <p className=\"text-center text-gray-900 my-4\">\r\n              El comprobante se ha subido correctamente, nuestro equipo se encargará de validarlo y será notificado.  \r\n              </p>\r\n              <div className=\"flex flex-row justify-center\">\r\n                <p className=\"text-primary text-center cursor-pointer border-2 border-primary rounded text-center p-2 mx-4\" onClick={()=>setVisible(false)}>Cerrar</p>\r\n                <button className=\"bg-green-500 text-white p-2 rounded text-sm self-end flex flex-row items-center px-2 border-2 border-green-500\" onClick={()=>{\r\n                  const url = `https://api.whatsapp.com/send?phone=59161885865&text=Quiero reportar el pago de mi plan ${data.plan}, para el examen de ${data.nombre} .`;\r\n                  window.open(url, '_blank');\r\n                  }}>\r\n                  <BsWhatsapp className=\"mr-2\"/>\r\n                  Contactar con Apriori\r\n                </button>\r\n              </div>\r\n            </>\r\n          }\r\n        </Modal>\r\n        <div className=\"pt-24 flex flex-col justify-center items-center bg-secundary w-full text-white pb-6 text-4xl\" style={{backgroundColor:'#303030'}}>\r\n          <div><h1>Reportes de Pago</h1></div>\r\n          <div><p className=\"text-white text-xl\">{data.nombre}</p></div>\r\n        </div>\r\n        <div className=\"flex flex-row justify-center items-start p-0 my-16\">\r\n          {/**drag and drop of image*/} \r\n          <div className=\"flex flex-col  justify-center items-center\">\r\n          <p>Seleccionar comprobante de pago.</p>\r\n          <div className=\"flex flex-row justify-center items-center border-4 border-gray-500 rounded-md mt-4 max-w-lg\">\r\n            \r\n          <input \r\n            id=\"fileImage\"\r\n            type=\"file\"\r\n            accept=\"image/*\"\r\n            onChange={(e)=>{setImagen(e.target.files[0]);setText(\"Imagen seleccionada\")}}\r\n            style={{display:'none',width:0,height:0}}\r\n          />\r\n          {\r\n            \r\n            <label className=\"cursor-pointer\" htmlFor=\"fileImage\">\r\n              {\r\n                imagen ?\r\n                  <img src={URL.createObjectURL(imagen)} alt=\"imagen\"/>\r\n                :\r\n                  <BsFillImageFill style={{fontSize:250 }} className=\"m-4\"/>\r\n              }\r\n            </label>\r\n          }\r\n          \r\n          </div>\r\n          <div className=\"w-full bg-gray-200 h-2 mb-6 mt-4\">\r\n            <div className=\"bg-primary h-2\"  style={{width:`${progreso}%`}}></div>\r\n          </div>\r\n          <p className=\"text-sm text-center\">{text}</p>\r\n          {\r\n            imagen ?\r\n              <label className=\"cursor-pointer bg-primary text-white p-2 px-3 rounded mt-4\" htmlFor=\"fileImage\">\r\n                Cambiar Imagen\r\n              </label>\r\n            :\r\n            null\r\n          }\r\n           \r\n          </div>\r\n          <div className=\"rounded-md z-10 pl-16\">\r\n          <div className=\"w-full p-8 flex flex-col justify-start items-start rounded-b-md\">\r\n          \r\n            <h3 className=\"text-primary text-xl font-bold\">Metodo de pago :</h3>\r\n            <p className=\"text-sm text-left mb-3\">Seleccione el método por el que realizó el pago.</p>\r\n            <div className=\"flex flex-col justify-center items-center\">\r\n              {/**panel de seleccion de 4 opciones */}\r\n              <div className=\"w-full flex flex-col justify-start items-start mt-2 px-6\">\r\n                <RadioButton color={'green'} active={metodo==='tigoMoney'?true:false} label = 'Tigo Money' onClick={()=> setMetodo('tigoMoney')} />\r\n                <RadioButton color={'green'} active={metodo==='deposito'?true:false} label = 'Deposito Bancario'  onClick={()=> setMetodo('deposito')}/>\r\n                <RadioButton color={'green'} active={metodo==='transferencia'?true:false} label = 'Transferencia' onClick={()=> setMetodo('transferencia')}/>\r\n                <RadioButton color={'green'} active={metodo==='qr'?true:false} label = 'Codigo QR' onClick={()=> setMetodo('qr')}/>\r\n\r\n              </div>\r\n              {\r\n                load === 1 ?\r\n                <button\r\n                  className=\"bg-primary p-2 px-8 rounded text-white mt-4 text-base\"\r\n                  onClick={()=>{subirImagen(imagen)}}\r\n                >\r\n                  Continuar\r\n                </button>:\r\n                load === 2 ?\r\n                <button className=\"bg-gray-400 p-2 px-8 rounded text-white mt-4 text-base p-4\">\r\n                  <Dots color='white'/>\r\n                </button>\r\n                :\r\n                load === 3 ?\r\n                <button className=\"bg-gray-400 p-2 px-8 rounded text-white mt-4 text-base p-4\">\r\n                  Comprobante Registrado\r\n                </button>\r\n                :\r\n                null\r\n              }\r\n              <Link className=\"bg-primary p-2 px-8 rounded text-white mt-4 text-base\" to={\"/profile\" }>Volver a Perfil</Link >\r\n            </div>  \r\n          </div>\r\n          </div>\r\n        </div>\r\n        <Footer/>\r\n      </>\r\n    );\r\n}\r\n\r\nexport default Payment;","export default __webpack_public_path__ + \"static/media/logo.faf693c4.png\";","import React,{useState, useEffect} from \"react\";\r\nimport Logo from \"../../assets/images/logo.png\";\r\nimport {FaCheckCircle} from \"react-icons/fa\";\r\nimport {CgRadioCheck} from \"react-icons/cg\";\r\nimport {FaRegShareSquare,FaRegEye} from \"react-icons/fa\";\r\nimport {RiWhatsappFill, RiFacebookBoxFill,RiEyeCloseFill} from \"react-icons/ri\";\r\nimport {GiRotaryPhone} from \"react-icons/gi\";\r\nimport {SiGooglemaps} from \"react-icons/si\";\r\nimport logo from \"../../assets/images/logo.png\";\r\nimport {BiDownArrow , BiUpArrow} from \"react-icons/bi\";\r\nfunction Entidad (props){\r\n  const {name, schedule, textSchedule, description, whatsapp, phone,facebook , map, address, children} = props;\r\n\r\n  const [isOpen, setIsOpen] = useState(false);\r\n  const [visible , setVisible] = useState(false);\r\n  //Descripcion de la escula planes de servicios de la escuela de conduccion acreditada por el SEGIP y el costo del plan de servicios, ademas de los requisitos para adquirir el plan de servicios.\r\n\r\n\r\n  const horarioCar = schedule\r\n  /*{\r\n    manianaInicio: 8,\r\n    manianaFin: 12,\r\n    tardeInicio: 14,\r\n    tardeFin: 18,\r\n  }*/\r\n\r\n  useEffect(() => {\r\n    //obtner la hora actual\r\n    const date = new Date();\r\n    const hour = date.getHours();\r\n    //obtener dia actual en numero\r\n    const day = date.getDay();\r\n    console.log(day);\r\n    //carburador car\r\n    if ((hour >= horarioCar.manianaInicio && hour <= horarioCar.manianaFin)||(hour >= horarioCar.tardeInicio && hour <= horarioCar.tardeFin) && day !== schedule.day1 &&  day !== schedule.day2 ) {\r\n      setIsOpen(true);\r\n    } else{\r\n      setIsOpen(false);\r\n    }\r\n  } , []);\r\n\r\n\r\n  return (\r\n    <div className=\"w-11/12\">\r\n      <h4 className=\"font-bold text-red-600 uppercase flex flex-row sm:flex-col md:flex-row items-start w-11/12\">\r\n        {name}\r\n      </h4>\r\n      <p className={`${isOpen?'text-green-500':'text-red-500'} text-sm`}>\r\n        Horario : {textSchedule}\r\n        <span>\r\n            {isOpen?'(abierto)':'(cerrado)'}\r\n        </span>\r\n      </p>\r\n      <span \r\n        className=\"text-sm normal-case font-normal ml-2 text-white bg-green-500 flex flex-row items-center justify-center mr-2 border-2 border-green-700 rounded p-1 text-center m-2\"\r\n        onClick={() => {setVisible(!visible)}}\r\n        >\r\n          {\r\n            !visible?\r\n            \"ver detalles\": \"ocultar detalles\"\r\n          }\r\n          {\r\n            !visible?<FaRegEye className=\"ml-2\"/> \r\n            :<RiEyeCloseFill className=\"ml-2\"/>\r\n          }\r\n           \r\n      </span>\r\n      <div className={`${visible?'flex':'hidden'} flex-col items-start mb-8 w-full`}>\r\n        {\r\n          description && <p className=\"text-justify\">{description} </p> \r\n        }\r\n      \r\n      {children}\r\n      <p className=\"mt-2 text-justify font-bold \">Contactos :</p>\r\n      <div  className=\"flex flex-row sm:flex-col sm:items-start ml-2 items-center justify-around \r\n      w-full mt-2\">\r\n        {\r\n          whatsapp&&\r\n          <a className=\"flex flex-row items-center text-green-600\"\r\n          href={`https://wa.me/591`+whatsapp}\r\n        >\r\n          <RiWhatsappFill/> {whatsapp}</a>\r\n        }\r\n        \r\n        {\r\n          phone&&<a  className=\"flex flex-row items-center text-red-700\"\r\n          href={`tel:`+phone}\r\n        >\r\n          <GiRotaryPhone/>\r\n          {phone}\r\n        </a>\r\n        }\r\n        {\r\n          facebook&&<a  className=\"flex flex-row items-center text-blue-700 w-1/2\"\r\n          href={`https://www.facebook.com/`+facebook}\r\n        >\r\n          <RiFacebookBoxFill/>\r\n          {facebook}\r\n        </a>\r\n        }\r\n      </div>\r\n      <div  className=\"flex flex-row items-center justify-center  w-full\">\r\n        \r\n        <a \r\n          className=\"flex flex-row items-center bg-blue-500 px-4 py-1 mt-4 rounded text-white\"\r\n          href={map}//https://goo.gl/maps/pyx4oRagp6P3xM3X8\"\r\n          target=\"_blank\" rel=\"noopener noreferrer\"\r\n        >\r\n            <SiGooglemaps size={36} \r\n  className=\"text-green-500\"  color={\"#fff\"}/>\r\n          <span className=\"flex flex-col items-left ml-4\">\r\n            Como llegar ?\r\n            <p className=\"text-sm\">{address}</p>\r\n          </span>  \r\n            </a>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  )\r\n}\r\n\r\nfunction Item(props){\r\n  const {active,text, children, description, childrenDescription} = props;\r\n  const [isOpen, setIsOpen] = useState(active);\r\n  const [visible , setVisible] = useState(children?true:false);\r\n  const [seeDatails , setSeeDatails] = useState(false);\r\n\r\n  useEffect(() => {\r\n    console.log(isOpen);\r\n  } , [isOpen]);\r\n  return (\r\n    <div className=\"flex flex-row justify-start items-start border-gray-300 border-b-2 p-2 my-2 w-full\">\r\n      <div className=\"w-10\">\r\n        {\r\n          isOpen?\r\n          <FaCheckCircle \r\n            className=\"text-green-500\" \r\n            size={24}\r\n            onClick={() => {setIsOpen(!isOpen)}}\r\n          />\r\n          :\r\n          <CgRadioCheck \r\n            className=\"text-gray-500\" \r\n            size={24}\r\n            onClick={() => {setIsOpen(!isOpen)}}\r\n          />\r\n        }\r\n        \r\n      </div>\r\n      <div className=\"ml-1\">\r\n        <span className=\"text-normal font-semibold\">{text}</span>\r\n        {\r\n          description && <p className=\"text-justify text-sm mt-2\">{description} </p>\r\n        }\r\n        {\r\n          childrenDescription && childrenDescription()\r\n        }\r\n        \r\n        {\r\n          visible&&\r\n          <div \r\n            className=\"flex flex-row items-center text-green-600 cursor-pointer mt-2 font-normal\"\r\n            onClick={() => {setSeeDatails(!seeDatails)}}\r\n          >\r\n            <p className=\"text-normal border-2 border-green-500 rounded flex flex-row items-center p-1 pl-3 \">{seeDatails?'Ocultar':'Ver'} como obtener   \r\n              {seeDatails?<BiUpArrow className=\"mx-4\"/>:<BiDownArrow className=\"mx-4\"/>}\r\n            </p>\r\n          </div>\r\n        }\r\n        {\r\n          seeDatails&& children\r\n        }\r\n      </div>\r\n    </div>\r\n  )\r\n\r\n}\r\n\r\nconst Driver = () => {\r\n  const bar = document.getElementById('bar');\r\n  if (bar) {\r\n    bar.style.display = 'none';\r\n  }\r\n\r\n  const [isOpen, setIsOpen] = useState(false);\r\n  const [start , setStart] = useState(true);\r\n  const [escCar, setEscCar] = useState(false);\r\n  const [escMotor, setEscMotor] = useState(false);\r\n  const [transito , setTransito] = useState(false);\r\n  const [detallesCar , setDetallesCar] = useState(false);\r\n  const [detallesMotor , setDetallesMotor] = useState(false);\r\n  const [detallesTransito , setDetallesTransito] = useState(false);\r\n\r\n  useEffect(() => {\r\n    console.log(isOpen);\r\n  } , []);\r\n\r\n  \r\n  return (\r\n    <>\r\n      <div className={`${start?'fixed snap-none ':'hidden'} top-0 left-0 w-full h-full bg-gray-900 bg-opacity-75 z-50 flex flex-col items-center justify-center`}>\r\n        <div className=\"bg-fondo w-11/12 md:w-1/2 lg:w-1/3 h-5/6 rounded-lg shadow-lg flex flex-col items-center justify-center\">\r\n          <div className=\"flex flex-col items-center justify-between w-full px-4 py-2\">\r\n            <img src={logo} alt=\"logo\" className=\"w-2/3\"/>\r\n            <h1 className=\"text-2xl font-bold text-primary text-center w-full m-2 text-white\">Te ayudamoos <span className=\"text-primary\">AHORA</span> </h1>\r\n            <p className=\"text-center text-white\">\r\n              Somos una empresa que brinda servicios de asistencia en diferentes áreas,\r\n              como lo son: asistencia vehicular, asistencia en tránsito, asistencia en viajes,\r\n              asistencia en salud, asistencia en hogar, asistencia en viajes, asistencia en viajes,\r\n            </p>\r\n            <button className=\"bg-primary text-white font-bold py-2 px-4 rounded mt-4\" onClick={() => {setStart(!start)}}>\r\n              Iniciar\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n      <nav className=\"navbar navbar-expand-lg navbar-light bg-fondo flex flex-row justify-around items-center p-4\">\r\n        <a className=\"navbar-brand\" href=\"#\">\r\n          <img src={Logo} width=\"100\" height=\"100\" alt=\"\"/>\r\n        </a>\r\n        <h1 className=\"text-white text-center text-xl\">Requisitos para Licencia</h1>\r\n        <div class=\"relative inline-block text-left\">\r\n          <div>\r\n            <button \r\n              type=\"button\" \r\n              className=\"inline-flex justify-center w-full rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-indigo-500\" \r\n              id=\"menu-button\" \r\n              aria-expanded=\"true\" \r\n              aria-haspopup=\"true\"\r\n              onClick={() => {setIsOpen(!isOpen)}}\r\n              >\r\n              Cambiar\r\n              <svg className=\"-mr-1 ml-2 h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n                <path fill-rule=\"evenodd\" d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\r\n              </svg>\r\n            </button>\r\n          </div>\r\n          \r\n          <div className={`origin-top-right ${isOpen?'absolute':'hidden'} right-0 mt-2 w-56 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 divide-y divide-gray-100 focus:outline-none`} role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n            <div className=\"py-1\" role=\"none\">\r\n              <a href=\"#\" className=\"text-gray-700 block px-4 py-2 text-sm\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">Edit</a>\r\n            </div>\r\n            <div class=\"py-1\" role=\"none\">\r\n              <a href=\"#\" className=\"text-gray-700 block px-4 py-2 text-sm\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-3\">Move</a>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </nav>\r\n      <div className=\"fixed bottom-0 right-0 m-4\">\r\n        <button className=\"bg-green-400 text-white font-bold py-2 px-4 rounded-full\">\r\n          todo ok\r\n        </button>\r\n      </div>\r\n\r\n      <div className=\"p-1\">\r\n        <h1 className=\"text-center text-xl\">Requisitos para Licencia de conducir nuevos</h1>\r\n        <p className=\"text-center text-gray-700 mx-8 text-sm\">\r\n          Los requisitos de acontinuacion son para adquirir una licencia de conducir por primera vez.\r\n        </p> \r\n        <p className=\"text-center text-gray-700 text-sm\">\r\n        Apto para categorias : <strong className=\"text-gray-700\">\"M\",\"P\",\"T\" y \"A\"</strong></p>\r\n        <p className=\"text-center text-gray-700  text-sm\">\r\n          Los solicitantes deben ser mayores de edad\r\n        </p>\r\n        <p className=\"text-center text-gray-700  text-sm\">\r\n          Los solicitantes deben ser mayores de edad\r\n        </p>    \r\n        <div className=\"flex flex-col justify-start items-start mt-4  mx-2  border-red-700 border-t-2 pt-8\">\r\n          <Item\r\n            active={true} \r\n            text={'Cedula de identidad original vigente y consolidado por el SEGIP.'} \r\n            description={'La cédula de identidad debe ser original, vigente y consolidado por el SEGIP. La cédula de identidad debe ser original, vigente y consolidado por el SEGIP.'}\r\n            />\r\n          <Item \r\n          text={'Certificado de habilidades para conducir original.'}\r\n          description = {'El certificado de habilidades para conducir debe ser obtenido en una de las instituciones autorizadas, en los que se mide dos habilidades:'}\r\n          childrenDescription={\r\n              ()=>{\r\n                return (\r\n                  <ul className=\"list-disc\">\r\n                    <li>\r\n                      <p className=\"text-sm mt-1\">\r\n                        <b>Habilidades practicas de conduccion.-</b> en este examen se evalua la capacidad del aspirante para conducir un vehiculo en condiciones normales de trafico.\r\n                      </p>\r\n                    </li>\r\n                    <li>\r\n                    <p className=\"text-sm mt-1\">\r\n                      <b>Habilidades teoricas de conduccion.-</b> en este examen se evalua al aspirante en normas de trafico, señales de transito, primeros auxilios, etc.\r\n                    </p>\r\n                    <button className=\"bg-primary hover:bg-primary text-white font-bold py-2 px-4 rounded my-4\">\r\n                      Examen de Prueba\r\n                    </button>\r\n                  </li>\r\n                </ul>\r\n\r\n              )\r\n            }\r\n        }\r\n        >\r\n          <div className=\"p-4\">\r\n            <h3 className=\"font-bold\">\r\n              Escuelas de conduccion acreditadas por el SEGIP.\r\n            </h3>\r\n            <ul>\r\n              <li type=\"disc\" className=\"text-gray-700\">\r\n              <Entidad \r\n              //name, schedule, textSchedule, description, whatsapp, phone,facebook , map, address, children\r\n                name = \"CARBURANDO CARS\"\r\n                schedule = {{manianaInicio: 8, manianaFin: 12, tardeInicio: 14, tardeFin: 18,day1:6,day2:0}}\r\n                textSchedule = \"Lun - Sab 08:00 a 12:00 - 14:00 a 18:00\"\r\n                description = \"Descripcion de la escula planes de servicios de la escuela de conduccion acreditada por el SEGIP y el costo del plan de servicios, ademas de los requisitos para adquirir el plan de servicios.\"\r\n                whatsapp = \"3197998899\"\r\n                phone = \"3197998899\"\r\n                facebook = \"carburandocars\"\r\n                map = \"https://goo.gl/maps/pyx4oRagp6P3xM3X8\"\r\n                address = \"Av. Jaime Mendoza # 555\"\r\n                /> \r\n                </li>\r\n              \r\n              <li type=\"disc\" className=\"text-gray-700\">\r\n              <Entidad\r\n                name = \"CARBURANDO motors\"\r\n                schedule = {{manianaInicio: 8, manianaFin: 12, tardeInicio: 14, tardeFin: 18,day1:6,day2:0}}\r\n                textSchedule = \"Lun - Vie 08:00 a 12:00 - 14:00 a 18:00\"\r\n                description = \"Descripcion de la escula planes de servicios de la escuela de conduccion acreditada por el SEGIP y el costo del plan de servicios, ademas de los requisitos para adquirir el plan de servicios.\"\r\n                whatsapp = \"3197998899\"\r\n                phone = \"3197998899\"\r\n                facebook = \"carburandocars/\"\r\n                map = \"https://goo.gl/maps/pyx4oRagp6P3xM3X8\"\r\n                address = \"Av. Jaime Mendoza # 55\"\r\n\r\n              />\r\n              </li>\r\n              <li type=\"disc\" className=\"text-gray-700\">\r\n              <Entidad\r\n                name = \"Transito\"\r\n                schedule = {{manianaInicio: 8, manianaFin: 12, tardeInicio: 14, tardeFin: 18,day1:6,day2:0}}\r\n                textSchedule = \"Lun - Vie 08:00 a 12:00 - 14:00 a 18:00\"\r\n                description = \"Descripcion de la escula planes de servicios de la escuela de conduccion acreditada por el SEGIP y el costo del plan de servicios, ademas de los requisitos para adquirir el plan de servicios.\"\r\n                whatsapp = \"3197998899\"\r\n                phone = \"3197998899\"\r\n                facebook = \"carburandocars/\"\r\n                map = \"https://goo.gl/maps/pyx4oRagp6P3xM3X8\"\r\n                address = \"Av. Jaime Mendoza # 55\"\r\n              />\r\n              </li>\r\n            </ul>\r\n          </div>\r\n        </Item>\r\n\r\n        <Item text={'Certificado Médico original.'}>\r\n        <div className=\"p-4\">\r\n            <h3 className=\"font-bold\">\r\n              Centros Médicos acreditadas por el SEGIP.\r\n            </h3>\r\n            <ul>\r\n              <li type=\"disc\" className=\"text-gray-700\">\r\n              <Entidad\r\n                name = \"Cies\"\r\n                schedule = {{manianaInicio: 8, manianaFin: 12, tardeInicio: 14, tardeFin: 18,day1:6,day2:0}}\r\n                textSchedule = \"Lun - Sab 08:00 a 12:00 - 14:00 a 18:00\"\r\n                description = \"Descripcion de la escula planes de servicios de la escuela de conduccion acreditada por el SEGIP y el costo del plan de servicios, ademas de los requisitos para adquirir el plan de servicios.\"\r\n                whatsapp = \"3197998899\"\r\n                phone = \"46440561\"\r\n                facebook = \"Cies\"\r\n                map = \"https://goo.gl/maps/XUC9cePF1dDq84Gt5\"\r\n                address = \"Av. Venezuela # 1001\"\r\n              />\r\n              </li>\r\n              <li type=\"disc\" className=\"text-gray-700\">\r\n                <Entidad\r\n                  name = \"Cimes\"\r\n                  schedule = {{manianaInicio: 8, manianaFin: 12, tardeInicio: 14, tardeFin: 18,day1:6,day2:0}}\r\n                  textSchedule = \"Lun - Sab 08:00 a 12:00 - 14:00 a 18:00\"\r\n                  description = \"Descripcion de la escula planes de servicios de la escuela de conduccion acreditada por el SEGIP y el costo del plan de servicios, ademas de los requisitos para adquirir el plan de servicios.\"\r\n                  whatsapp = \"3197998899\"\r\n                  phone = \"46460444\"\r\n                  facebook = \"cimesfb\"\r\n                  map = \"https://goo.gl/maps/tkrxczPDGP7pYfEh7\"\r\n                  address = \"Calle Nataniel Aguirre # 641\"\r\n                />\r\n              </li>\r\n              <li type=\"disc\" className=\"text-gray-700\">\r\n                <Entidad\r\n                  name = \"Clinica copacabana (Transito)\"\r\n                  schedule = {{manianaInicio: 8, manianaFin: 12, tardeInicio: 14, tardeFin: 18,day1:6,day2:0}}\r\n                  textSchedule = \"Lun - Sab 08:00 a 12:00 - 14:00 a 18:00\"\r\n                  description = \"Descripcion de la escula planes de servicios de la escuela de conduccion acreditada por el SEGIP y el costo del plan de servicios, ademas de los requisitos para adquirir el plan de servicios.\"\r\n                  whatsapp = \"3197998899\"\r\n                  phone = \"46434463\"\r\n                  facebook = \"copacabanacol\"\r\n                  map = \"https://goo.gl/maps/oagqUSSTgxgFxsmT9\"\r\n                  address = \"Calle Loa # 1070\"\r\n                />\r\n              </li>\r\n            </ul>\r\n          </div>\r\n        </Item>\r\n        <Item text={'Certificado de Antecedentes de transito, FELCC y FELCN.'} />\r\n        <Item text={'Constancia de Depósito Bancario.'} />\r\n        \r\n      </div>\r\n      </div>\r\n    </>\r\n  );\r\n}\r\n\r\nexport default Driver;","import React,{useEffect, useState} from \"react\";\r\nimport {Link, Redirect } from 'react-router-dom';\r\nimport Modal from \"../../components/Modal\";\r\nimport { FaWhatsapp } from \"react-icons/fa\";\r\nimport  {Contactanos} from '../../components/uiComponents';\r\n\r\nexport default function ExamenCard({plan,idCuenta,data}){\r\n      // \r\n    const [showModal, setShowModal] = useState(false);\r\n    const [showModalInfo, setShowModalInfo] = useState(false);\r\n    const [idCuenta_, setIdCuenta_] = useState();\r\n\r\n    const btnAbrir = (d)=>{\r\n      if(d?.intentos > 0){\r\n        setShowModal(true)\r\n      } else {\r\n        //alert(\"No tiene intentos disponibles\");\r\n        window.confirm(\"No tiene intentos disponibles\");\r\n      }\r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n      if(idCuenta){\r\n        setIdCuenta_(idCuenta);\r\n      } else {\r\n        console.log(\"No hay idCuenta\");\r\n      }\r\n    }, [idCuenta])\r\n    return (\r\n      <>\r\n        <Modal visible={showModalInfo} title=\"Apriori informa.\" onClose={()=>setShowModalInfo(false)}>\r\n          <div className=\" p-6 flex flex-col justify-center items-start\">\r\n            <p>Estamos trabajandando para que el pago de nuestro servicio sea verificado</p>\r\n            <p>este proceso puede durar como maximo 24 horas.</p>\r\n            <p>\r\n              Si no recibes una respuesta en 24 horas, por favor comunicate con nosotros.\r\n            </p>\r\n            <div className=\"flex w-full justify-center mt-5\">\r\n              <button\r\n                className=\"flex flex-row items-center hover:bg-green-400 hover:border-green-400 bg-transparent border-2 border-primary hover:text-white text-primary font-bold uppercase text-sm px-6 py-2 rounded shadow hover:shadow-lg outline-none mb-1\"\r\n                type=\"button\"\r\n                style={{ transition: \"all .15s ease\" }}\r\n              >\r\n                <FaWhatsapp size={24} className='mr-4'/>\r\n                <a\r\n                  href=\"https://wa.me/56975555555\"\r\n                  target=\"_blank\"\r\n                  rel=\"noopener noreferrer\"\r\n                >\r\n                  \r\n                  Contactanos\r\n                </a>\r\n              </button>\r\n            </div>      \r\n          </div>\r\n          {/*footer*/}\r\n          <div className=\"flex items-center justify-end border-t border-solid border-blueGray-200 rounded-b\">\r\n            <button\r\n              className=\"text-white hover:text-primary bg-primary mt-2 rounded font-bold uppercase px-6 py-2 text-sm outline-none hover:bg-transparent border-2 border-primary mr-1ease-linear transition-all duration-150\"\r\n              type=\"button\"\r\n              onClick={() => setShowModalInfo(false)}\r\n            >\r\n              \r\n            Aceptar\r\n            </button>\r\n          </div>\r\n        </Modal>\r\n       {showModal ? (\r\n          <>\r\n            <div\r\n              className=\"justify-center items-center flex overflow-x-hidden overflow-y-auto fixed inset-0 z-50 outline-none focus:outline-none\"\r\n            >\r\n              <div className=\"relative w-auto my-6 mx-auto max-w-3xl\">\r\n                {/*content*/}\r\n                <div className=\"border-0 rounded-lg shadow-lg relative flex flex-col w-full bg-white outline-none focus:outline-none\">\r\n                  {/*header*/}\r\n                  <div className=\"flex items-start justify-between p-5 border-b border-solid border-blueGray-200 rounded-t bg-gray-100\">\r\n                    <h3 className=\"text-3xl font-semibold text-primary\">\r\n                      {data.nombre}\r\n                    </h3>\r\n                    <button\r\n                      className=\"p-1 ml-auto bg-transparent border-0 text-black float-right text-3xl leading-none font-semibold outline-none focus:outline-none\"\r\n                      onClick={() => setShowModal(false)}\r\n                    >\r\n                      <span className=\"bg-transparent text-primary h-6 w-6 text-2xl block outline-none focus:outline-none\">\r\n                        ×\r\n                      </span>\r\n                    </button>\r\n                  </div>\r\n                  {/*body*/}\r\n                  <div className=\" p-6 flex flex-row justify-center items-center\">\r\n                    <div className=\"w-1/2 mx-6 text-blueGray-500 self-start \">\r\n                    <h3 className=\"font-bold text-base mb-2 text-primary\">Recomendaciones antes de comenzar</h3><hr/>\r\n                      <ol className=\"ml-8\">\r\n                        <li type=\"disc\">Asegurese de tener una buena conexion a internet.</li>\r\n                        <li type=\"disc\">Revise muy bien los intentos disponibles.</li>\r\n                        <li type=\"disc\">Para una mejor experiencia inicie en una computadora.</li>\r\n                        <li type=\"disc\">Controle muy bien su tiempo disponible.</li>\r\n                        <li type=\"disc\">Sitúese en un lugar como y libre de distracciones.</li>\r\n                      </ol>\r\n\r\n                      <Link to={`/`} className=\"text-blue-800 text-center mt-4\">Terminos y Condiciones</Link>\r\n                        \r\n                    </div>\r\n                    <div className=\"w-1/2\" >\r\n                      <h3 className=\"font-bold mb-2 text-primary text-base\">Preguntas del examen</h3><hr/>\r\n                        <div className=\"flex flex-row items-start justify-between py-3 px-6\">\r\n                          <ol>\r\n                          {\r\n                            data.materias.map((pregunta,index) => {\r\n                              return (\r\n                                <li type='disc' className=\"text-blueGray-500 my-2\">{pregunta}</li>\r\n                              )\r\n                            })\r\n                          }\r\n                          </ol>\r\n                          {/* <div>as</div> */}\r\n                        </div>        \r\n                    </div>\r\n                    \r\n                  </div>\r\n                  <p className=\"mx-16 text-primary font-700 text-center my-4\">Este examen tiempo un tiempo limite, Le Recomendamos controlar muy bien su tiempo disponible..</p>\r\n                  {/*footer*/}\r\n                  <div className=\"flex items-center justify-end p-6 border-t border-solid border-blueGray-200 rounded-b bg-gray-300\">\r\n                    <button\r\n                      className=\"text-gray-800 hover:text-primary background-transparent font-bold uppercase px-6 py-2 text-sm outline-none focus:outline-none mr-1 mb-1 ease-linear transition-all duration-150\"\r\n                      type=\"button\"\r\n                      onClick={() => setShowModal(false)}\r\n                    >\r\n                      Cancelar\r\n                    </button>\r\n                    {idCuenta_?<Link className=\"text-center md:inline-block cursor-pointer hover:bg-green-500 md:border-none py-2 px-3 bg-primary rounded text-white\" to={`/examen/${idCuenta_/*ovsjXW4VBFRhvZd0XHx4*/}`}>Continuar</Link>:null}\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n            <div className=\"opacity-25 fixed inset-0 z-40 bg-black\"></div>\r\n          </>\r\n        ) : null}\r\n      <div className=\" flex flex-col mt-3 m-3 justify-between items-center text-black border-accent border-2 w-full rounded-md  bg-basic max-w-45 md:max-w-45 sm:max-w-full\">\r\n        <div className=\"bg-accent text-white w-full text-center py-2 px-4\">\r\n          <h1 className=\"border-b-2 border-white\" >{data.nombre}</h1>\r\n          <h3>{data.tipo==='PFinal'? 'Prueba Final': 'Pruebra de Práctica'}</h3>\r\n        </div>\r\n        <div className=\"flex flex-col justify-start items-start  w-full p-3\"> \r\n          <p className=\"text-start text-primary\">Fecha de examen: <span className=\"text-black\">{data.fechaExamen}</span> </p>\r\n          <p className=\"text-start text-primary\">Materias: <span className=\"text-black\"></span> </p>\r\n          <ol className=\"pl-5\">\r\n            {\r\n              data.materias.map((materia,index)=>{\r\n                return <li type=\"disc\" key={index}>{materia}</li>\r\n              })\r\n            }\r\n          </ol>\r\n          <p className=\"text-start text-primary\">Intentos disponibles para hoy: <span className=\"text-black pl-1\">{data.intentos}</span> </p>\r\n          <p className=\"text-start text-primary\">Total de preguntas: <span className=\"text-black pl-1\">{data.cantidadPreguntas}</span> </p>\r\n          \r\n          {/**<Link className=\"bg-primary text-white font-normal mx-auto my-2 py-2 px-4 rounded my-3\" to={{\r\n          pathname: `/Details`,\r\n          data: props.data,\r\n        }}>Ver Detalles</Link> */}\r\n          <p className=\"text-start text-primary\">Plan: <span className=\"text-black pl-1\">{plan}</span> </p>\r\n        </div>\r\n        <div className=\"p-4\">\r\n        {\r\n            data.estado === 'activo' ?\r\n\r\n              data.tipo === 'PFinal' ?\r\n              data.fechaExamen === new Date().toLocaleDateString() ?\r\n                <button className=\"bg-primary text-white py-2 px-4 rounded-md\" onClick={() =>{btnAbrir(data) } }>\r\n                  {data.estado=== 'pendiente' ? 'Plan Pendiente' : 'Abrir Examen'}\r\n                </button>\r\n                :\r\n                <button className=\"bg-gray-700 text-white py-2 px-4 rounded-md\" onClick={() =>{alert('No disponible')}}>\r\n                  {data.estado=== 'pendiente' ? 'Plan Pendiente' : 'Disponible el  '+data.fechaExamen}\r\n                </button>\r\n              :\r\n              <button className=\"bg-primary text-white py-2 px-4 rounded-md\" onClick={() =>{btnAbrir(data) } }>\r\n                  {data.estado=== 'pendiente' ? 'Plan Pendiente' : 'Abrir Examen'}\r\n                </button>\r\n              :\r\n            data.estado === 'pendiente' ?\r\n              <div className=\"flex flex-row justify-center items-center\">\r\n\r\n              <Link className=\"bg-gray-500 text-center text-white py-2 px-4 rounded-md mr-2\" to={{\r\n                pathname: `/plans`,\r\n                data: data,\r\n              }}>\r\n                {\r\n                  data.plan === 0 || data.plan === 'Pendiente'?\r\n                  'Seleccionar Plan' :\r\n                  'Cambiar Plan'\r\n                }\r\n              </Link>\r\n              <Link className=\"bg-gray-500 text-center text-white py-2 px-4 rounded-md ml-2\" to={{\r\n                pathname: `/payment`,\r\n                data: data,\r\n              }}>\r\n                Reportar Pago\r\n              </Link>\r\n              </div>\r\n              :\r\n            data.estado === 'aprobacion' ?\r\n            <button className=\"bg-green-600 text-white py-2 px-4 rounded-md\" onClick={() =>{setShowModalInfo(true)} }\r\n              \r\n            >\r\n               Pago en aprobación\r\n              </button>\r\n              :null\r\n          }\r\n          </div>\r\n          <Contactanos type='text' texto='Solicitar una Prueba' mensaje={'Apriori, Me gustaría solicitar mi primera prueba en la plataforma'} style={{\r\n                marginY:'12px',\r\n                fontWeight: 'normal',\r\n                fontSize: '24px',\r\n                textDecoration: 'noopener',\r\n              }}/>\r\n        \r\n      </div>\r\n      </>\r\n    );\r\n  }\r\n  ","export default __webpack_public_path__ + \"static/media/book.f44fc4f2.png\";","import React ,{Fragment, useEffect, useState} from 'react';\r\nimport Footer from '../components/footer';\r\nimport ExamenCard from './components/ExamenCard';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { getQuestion } from '../../redux/actions/exam';\r\nimport {OnLoad, Bar as BarLoad, Dots} from '../components/onload';\r\nimport { startLogOut } from '../../redux/actions/auth';\r\nimport {auth, db} from '../../config/firebase'\r\nimport { collection, getDocs } from \"firebase/firestore\";\r\nimport { doc, getDoc, addDoc } from \"firebase/firestore\";\r\nimport { getAuth } from \"firebase/auth\";\r\nimport dbRef from '../../config/dbRef';\r\nimport book from '../../assets/images/book.png';\r\nimport userApriori from '../../assets/images/aprioriUser.png';\r\nimport { FaWhatsapp, FaEnvelope, FaFacebookF, FaInstagramSquare} from \"react-icons/fa\";\r\nimport {BiTask,BiPhoneCall} from 'react-icons/bi';\r\nimport {MdEventNote, MdSource} from 'react-icons/md';\r\nimport {ImStatsDots} from 'react-icons/im';\r\nimport { Link } from 'react-router-dom';\r\nimport Modal from '../components/Modal';\r\n//import { Chart as ChartJS } from 'chart.js/auto'\r\n\r\nimport { Line, Bar } from \"react-chartjs-2\";\r\nimport {Chart,CategoryScale,LinearScale,PointElement,LineElement,Title,Tooltip,Legend,BarElement} from 'chart.js'\r\n\r\nconst options = {\r\n  responsive: true,\r\n  plugins: {\r\n    legend: {\r\n      position: 'top',\r\n    },\r\n    title: {\r\n      display: true,\r\n      text: 'Respuestas del ultimo examen',\r\n    },\r\n  },\r\n};\r\n\r\n\r\nChart.register(\r\n  CategoryScale,\r\n  LinearScale,\r\n  BarElement,\r\n  PointElement,\r\n  LineElement,\r\n  Title,\r\n  Tooltip,\r\n  Legend\r\n)\r\n\r\nconst EventsCard = (props) => {\r\n  const {fecha, contenido, expositor, modalidad, nombre, url} = props.data.data;\r\n  const [isOpen, setIsOpen] = useState(false);\r\n  console.log(props.data)\r\n  return (\r\n    <>\r\n     <Modal visible={isOpen} title=\"Apriori Eventos.\" onClose={()=>setIsOpen(false)}>\r\n       <div className='text-center'>\r\n        <h1 className='text-primary my-4'>Bienvenido a Apriori - Eventos, una nueva forma de aprender </h1>\r\n        <p>Le damos la bienvenida al evento <b>{nombre}</b>, impartido por el {expositor}.</p>\r\n        <p>Para una mejor experiencia le recomendamos tener buena conexion a internet, agüita o cafe y estar comodos</p>\r\n        <div className='my-8'>\r\n          {/* {<Link to={url} target='_blank' className=\"bg-primary text-white py-2 px-4 my-16 rounded-md\" >Comenzar</Link>} */}\r\n          <Link className=\"bg-primary text-white py-2 px-4 my-16 rounded-md\" to={{\r\n          pathname: `/Live`,\r\n          data: props.data,\r\n        }}>Comenzar</Link>\r\n        </div>\r\n        \r\n       </div>\r\n       \r\n       \r\n     </Modal>\r\n      <div className=\" flex flex-col m-3 justify-between items-center text-black border-accent border-2 w-full max-w-45  md:max-w-45 sm:max-w-full rounded-md\">\r\n      <div className=\" flex flex-row \">\r\n        <div className=\"flex flex-col justify-start w-2/4 \"> \r\n        <h1 className=\"bg-accent text-white text-center py-2 p-2\">{nombre}</h1>\r\n        <div className=\"px-3\">\r\n          \r\n          <p className=\"text-start text-primary\">Fecha de evento: <span className=\"text-black\">{fecha}</span> </p>\r\n          <p className=\"text-start text-primary\">Contenido: <span className=\"text-black\"></span> </p>\r\n            <ol className=\"pl-5\">\r\n              {\r\n                contenido.map((item, index) => {\r\n                  return <li type=\"square\" key={index}>{item}</li>\r\n                }\r\n                )\r\n              }\r\n            </ol>\r\n          </div>\r\n        </div>\r\n        <img className=\"border-white w-2/4 rounded-tr-md\" src={url} alt=\"\"/>\r\n      </div>\r\n      <div className=\"bg-gray-200 w-full justify-center flex flex-col px-3 py-2 rounded-b-md\">\r\n        {\r\n          expositor.length === 1 ?\r\n          <p className=\"text-start text-primary\">Expositor</p>\r\n          :\r\n          <p className=\"text-start text-primary\">Expositores:</p>\r\n        }\r\n        <ol className=\"pl-5 text-black\">\r\n          {\r\n            expositor.map((item, index) => {\r\n              return <li key={index}>{item}</li>\r\n            }\r\n            )\r\n          }\r\n        </ol>\r\n          \r\n        <p className=\"text-start text-primary\">Medio: <span className=\"text-black pl-1\">{modalidad}</span> </p>\r\n\r\n        <button className=\"bg-primary text-white py-2 px-4 mt-3 rounded-md\" onClick={() => setIsOpen(!isOpen)}>\r\n          {'Ingresar'}\r\n        </button>\r\n      </div>\r\n\r\n      </div>\r\n    </>\r\n  );\r\n}\r\n\r\nexport default function Profile(){\r\n    const reduxUser = useSelector(state => state.user);\r\n    const reduxExam = useSelector(state => state.exam);\r\n    const dispatch = useDispatch();\r\n    const materias  = [ 'Penal', 'Carcel', 'Familia','Sin materia'];\r\n    let cantMaterias = [];\r\n    const [windowActive, setWindowActive] = useState('exams');\r\n    const [exams, setExams] = useState([]);\r\n    const [loading, setLoading] = useState(true);\r\n    const [user, setUser] = useState({});\r\n    const [mensaje, setMensaje] = useState('Bienvenido a Apriori');\r\n    const [pruebas, setPruebas] = useState();\r\n    const [indexContent, setIndexContent] = useState([]);\r\n    const [mensajeContacto, setMensajeContacto] = useState('');\r\n    const [eventos , setEventos] = useState([]);\r\n    const [userEvents, setUserEvents] = useState([]);\r\n\r\n    //buscar el elemento de tipo iframe y eliminarlo\r\n  \r\n\r\n    const sendWhatsapp = (telefono) => {\r\n      \r\n      //salto de linea en el mensaje\r\n      let mensaje = `Apriori, Datos de cuenta: \\n Monto: `;\r\n      let url = `https://api.whatsapp.com/send?phone=${telefono}&text=${mensajeContacto}`;\r\n      window.open(url, '_blank');\r\n    \r\n    }\r\n  \r\n    const logOut = () => {\r\n      dispatch(startLogOut());\r\n    }\r\n    \r\n    //console.log(store);\r\n    useEffect(() => {\r\n      document.title =`Apriori-${user.name?user.name:''}`;\r\n      materias.forEach(materia => {\r\n        const nuevaMateria = {\r\n          materia: materia,\r\n          cantidad: 0\r\n        };\r\n        cantMaterias.push(nuevaMateria);\r\n      })\r\n      console.log(cantMaterias);\r\n    }, [])\r\n    //metodo asincrono para obtener los examenes\r\n    // const getEvents = async () => {\r\n    //   const cuenta = doc(db, dbRef.user, auth.currentUser.uid);\r\n    //   const eventsSnap = await getDocs(collection(cuenta, \"Cursos\"));\r\n\r\n    //   let eventsData = [];\r\n    //   eventsSnap.forEach(doc => {\r\n    //     eventsData.push({id:doc.id,...doc.data()});\r\n    //   });\r\n    //   setUserEvents(eventsData);\r\n    // }\r\n    \r\n    useEffect(()=>{\r\n      getDocs(collection(db,'Cursos'))\r\n      .then((response)=>{\r\n          let event =[]\r\n          response.forEach((doc)=>{\r\n            event.push(\r\n              {\r\n                id: doc.id,\r\n                data:doc.data()\r\n              }\r\n              );\r\n          });\r\n          return event;\r\n      }).then( doc =>{console.log(doc); setEventos(doc)})\r\n      .catch(err => console.log(err));\r\n      //getEvents();\r\n    },[])\r\n\r\n\r\n    //useeffect de data de examenes\r\n    useEffect(() => {\r\n      if(reduxUser){\r\n        const pruebas = [];\r\n        const cuenta = reduxUser.cuenta;\r\n        console.log(cuenta);\r\n        if (cuenta){\r\n          let index = 0;\r\n          let type = [];\r\n          cuenta.forEach(exam => {\r\n            pruebas.push(exam);\r\n            if (index === 0){\r\n              type.push('flex');\r\n            }else{\r\n              type.push('none');\r\n            }\r\n            index++;\r\n          });\r\n          setIndexContent(type);\r\n          setPruebas(pruebas);  \r\n        }\r\n        \r\n      }\r\n      \r\n    }, [reduxUser])\r\n\r\n    const bar = document.getElementById('bar');\r\n    if (bar) {\r\n      bar.style.display = 'block';\r\n    }\r\n\r\n    useEffect(() => {\r\n      setUser(reduxUser.user);\r\n      console.log(user);\r\n    }, [reduxUser.user])\r\n\r\n    useEffect(() => { \r\n      if(reduxUser.user){\r\n        setLoading(false);\r\n      }else{\r\n        setLoading(true);\r\n      }\r\n      console.log('se ejecuto useEffect');\r\n    }, [reduxUser])\r\n\r\n    useEffect(() => {\r\n      if(reduxUser.cuenta){\r\n        console.log(\"obteniendo preguntas de la cuenta\");\r\n        setExams(reduxUser.cuenta);\r\n        dispatch(getQuestion(auth.currentUser.uid));\r\n        /*\r\n        reduxUser.cuenta.map((exam) => {\r\n          console.log(reduxExam.exams);\r\n          console.log(exam.id);\r\n          dispatch(getQuestion(exam.idExamen,exam.plan, exam.id));\r\n\r\n        })*/\r\n\r\n      }\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, [reduxUser.cuenta])\r\n\r\n    useEffect(() => {\r\n      if(reduxExam.exams){\r\n        console.log(\"preguntas de exams\");\r\n        console.log(reduxExam.exams);\r\n      }\r\n    }, [reduxExam.exams])\r\n\r\n    const changeContent = (param) => {\r\n      let newArray = [];\r\n      indexContent.forEach((item, index) => {\r\n        if (index === param){\r\n          newArray.push('flex');\r\n        }else{\r\n          newArray.push('none');\r\n        }\r\n      })\r\n      setIndexContent(newArray);\r\n    }\r\n    \r\n\r\n    return(\r\n    <>\r\n      <div className='bg-primary fixed sm:fixed md:hidden mt-full flex flex-row w-full text-white w-full justify-between px-8 sm:px-3 md:px-4 rounded-b-lg'\r\n      style={{position:'fixed',bottom:'0px',zIndex:999999 }}\r\n      >\r\n        <p className={`flex flex-col items-center mt-2 py-2 pb-8 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg  ${windowActive === 'exams'?' bg-white text-primary':'text-white'}`} \r\n        onClick={() => setWindowActive('exams')}\r\n        \r\n        ><BiTask className='text-3xl'/><span className='text-xs'>Examenes</span></p>\r\n        <p className={`flex flex-col items-center mt-2 py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'events'?' bg-white text-primary':'text-white'}`}\r\n        onClick={() => setWindowActive('events')}\r\n        ><MdEventNote className='text-3xl'/><span className='text-xs'>Eventos</span></p>\r\n        <p className={`flex flex-col items-center mt-2 py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'history'?' bg-white text-primary':'text-white'}`}\r\n        onClick={() => setWindowActive('history')}\r\n        ><ImStatsDots className='text-3xl'/> <span className='text-xs'>Resultados</span> </p>\r\n        <p className={`flex flex-col items-center mt-2 py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'sources'?' bg-white text-primary':'text-white'}`}\r\n        onClick={() => setWindowActive('sources')}\r\n        ><MdSource className='text-3xl'/> <span className='text-xs'>Recursos</span> </p>\r\n        <p className={`flex flex-col items-center mt-2 py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'contact'?' bg-white text-primary':'text-white'}`}\r\n        onClick={() => setWindowActive('contact')}\r\n        ><BiPhoneCall className='text-3xl'/><span className='text-xs'>Soporte</span> </p>\r\n      </div>\r\n      \r\n      <div className=\"w-full text-white flex flex-col justify-center items-center border-b-16 border-accent\" style={{backgroundImage:`url(${book})`,backgroundSize:'cover',backgroundPosition:'bottom' }}>\r\n        <h1 className=\"text-3xl my-5  sm:text-xl md:text-3xl mx-0 sm:mx-4 md:mx-0 text-center \">{mensaje}</h1>\r\n      </div>\r\n\r\n      <div className='flex flex-row items-start justify-center w-full h-full px-28 sm:px-2 md:px-16'>\r\n        <div className='w-3/12 flex flex-col justify-center items-center pb-16 sm:hidden md:flex'>\r\n        {\r\n              user?\r\n                user.photo?\r\n                  <img className=\"mt-4 border-8 border-gray-200 w-3/4\" src={user.photo} alt=\"no photo\"/>\r\n                  :\r\n                  <img className=\"mt-4 border-8 border-gray-200 w-3/4\" src={userApriori} alt=\"no photo\"/>  \r\n              :\r\n              <img className=\"mt-4 border-8 border-gray-200 w-3/4\" src={userApriori} alt=\"no photo\"/>  \r\n            }\r\n            <h2 className='mt-8 text-3xl text-primary'>{user && user.name}</h2>\r\n            <h3>{user && user.lastName}</h3>\r\n            <p>{user && user.email}</p>\r\n            {/* <p>{auth.currentUser.uid && auth.currentUser.uid}</p> */}\r\n            <div className=\"flex flex-col justify-center items-center border border-accent mx-5 mt-5 rounded-t-xl \">\r\n              <div className=\"flex flex-col justify-center bg-accent rounded-t-xl w-full py-3\"><h2 className=\"text-center text-white\">Mensajes</h2></div>\r\n              <div className=\"flex flex-col justify-center items-center \">\r\n                {\r\n                  user?\r\n                    user.mensajes?\r\n                      user.mensajes.map((mensaje, index) => {\r\n                        if (index %2==0 ){\r\n                          return <p key={index} className=\"text-center bg-gray-300 w-full p-2\">{mensaje}</p>\r\n                        }else{\r\n                          return <p key={index} className=\"text-center bg-gray-100 w-full p-2\">{mensaje}</p>\r\n                        }\r\n                      })\r\n                    :\r\n                    <p>No tiene mensajes</p>\r\n                  :\r\n                  <p>No tiene mensajes</p>\r\n                }\r\n              </div>\r\n            </div>\r\n\r\n        </div>\r\n\r\n        <div className='w-9/12 h-80 flex flex-col justify-start items-start -mt-1 sm:mt-1 md:-mt-1 w-full'>\r\n          <div className='bg-accent flex flex-row w-full text-white w-full justify-between px-8 rounded-b-lg sm:hidden md:flex'>\r\n            <p className={`py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'exams'?' bg-white text-primary':'text-white'}`} \r\n            onClick={() => setWindowActive('exams')}\r\n            >Examenes</p>\r\n            <p className={`py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'events'?' bg-white text-primary':'text-white'}`}\r\n            onClick={() => setWindowActive('events')}\r\n            >Eventos</p>\r\n            <p className={`py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'history'?' bg-white text-primary':'text-white'}`}\r\n            onClick={() => setWindowActive('history')}\r\n            >Resultados</p>\r\n            <p className={`py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'sources'?' bg-white text-primary':'text-white'}`}\r\n            onClick={() => setWindowActive('sources')}\r\n            >Recursos</p>\r\n            <p className={`py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'contact'?' bg-white text-primary':'text-white'}`}\r\n            onClick={() => setWindowActive('contact')}\r\n            >Soporte</p>\r\n          </div>\r\n          \r\n          <div className={`w-full h-full pt-8 px-0 justify-center flex-wrap max-h-screen overflow-auto ${windowActive === 'exams'?'flex flex-row':'hidden'}`}>\r\n          {\r\n            loading?\r\n            <div className='w-full flex flex-col justify-center'>\r\n              <p className=\"text-2xl text-center text-primary\">\r\n              <Dots color={'gray'}/></p>\r\n              <h1  className='w-full text-center'>Cargando...</h1>\r\n            </div>\r\n              : exams.map((examen, index) => {\r\n                  return(\r\n                  <Fragment key={index}>\r\n                    <ExamenCard key={index} plan={examen.plan} idCuenta={examen.id} data={examen}/>\r\n                  </Fragment>)\r\n                }\r\n            )\r\n          }\r\n          </div>\r\n          <div className={`w-full h-full pt-8 px-0 justify-center flex-wrap max-h-screen overflow-auto ${windowActive === 'events'?'flex flex-row':'hidden'}`}>\r\n          {\r\n            eventos.map((evento, index) => {\r\n              return(\r\n              <Fragment key={index}>\r\n                <EventsCard key={index} data={evento}/>\r\n              </Fragment>)\r\n            }\r\n            )\r\n          }\r\n          </div>\r\n          <div className={`w-full h-full pt-8 px-0 justify-center flex-wrap max-h-screen overflow-auto ${windowActive === 'history'?'flex flex-row':'hidden'}`}>\r\n            <div className=\"flex flex-row justify-center items-center w-full flex-wrap\">\r\n              {\r\n                //estadisticas\r\n                pruebas?\r\n                pruebas.map((prueba, index) => {\r\n                  return(\r\n                    <Fragment key={index}>\r\n                      <div className={`w-1/4 text-center border-2 border-primary m-2 rounded p-2 cursor-pointer ${indexContent[index] !=='flex'?'text-primary bg-transparent':'text-white bg-primary'}`}\r\n                      onClick={()=>{changeContent(index)}}\r\n                      >\r\n                        <p className={`border-b-2 ${indexContent[index] ==='flex'?'border-white':'border-primary'}`}>{prueba?prueba.nombre:'no data'}</p>\r\n                        <p>{prueba?\r\n                        prueba.tipo==='PFinal'?\r\n                        'Prueba Final':\r\n                        'Prueba practica':\r\n                        'no data'}</p>\r\n                      </div>\r\n                    </Fragment>\r\n                    \r\n                  )\r\n                }) :\r\n                \r\n                <div className='w-full flex flex-col justify-center'>\r\n                  <p className=\"text-2xl text-center text-primary\">\r\n                    no hay pruebas\r\n                  </p>\r\n                  <h1  className='w-full text-center'>No hay pruebas</h1>\r\n                </div>\r\n\r\n              }\r\n            </div>\r\n            {\r\n              pruebas?\r\n              pruebas.map((prueba, index) => {\r\n                return(\r\n                  <Fragment key={index}>\r\n                    <div\r\n                    className='w-full flex flex-col justify-center items-center'\r\n                      style={{display:`${indexContent[index]}`}}\r\n                    >\r\n                      <p className='w-full border-primary border-t-2 text-black mb-2 mt-5 text-center'>\r\n                        Estadisticas de respuestas correctas e incorrectas del ultimo intento realizado.\r\n                      </p>\r\n                      {pruebas[index].notas?\r\n                      <Bar options={options} data={{\r\n                        labels : pruebas[index]?pruebas[index].notas[pruebas[index].notas.length-1].notas.map((materia, index)=>{return materia.materia}):[],\r\n                        datasets: [\r\n                          {\r\n                            label: 'Correctos',\r\n                            data: pruebas[index]?pruebas[index].notas[pruebas[index].notas.length-1].notas.map((materia, index)=>{return materia.correctas}):[],\r\n                            backgroundColor: 'rgba(53, 162, 235, 0.5)',\r\n                          },\r\n                          {\r\n                            label: 'Incorrectos',\r\n                            data:  pruebas[index]?pruebas[index].notas[pruebas[index].notas.length-1].notas.map((materia, index)=>{return materia.incorrectas}):[],\r\n                            backgroundColor: 'rgba(255, 99, 132, 0.5)',\r\n                          },\r\n                        ],\r\n                      }} />:<p className='text-primary'>No tiene notas en este examen</p>\r\n                      }\r\n                      <p className='w-full border-primary border-t-2 text-black mb-2 mt-5 text-center'>\r\n                        Estadisticas de notas de todos los intentos realizado.\r\n                      </p>\r\n                      {pruebas[index].notas?\r\n                        <Line data={{\r\n                          labels: pruebas[index]?pruebas[index].notas.map((materia, index)=>{return 'intento '+(index+1)}):[],\r\n                          datasets: [\r\n                            {\r\n                              label: \"Notas Generales\",\r\n                              data: pruebas[index]?pruebas[index].notas.map((materia, index)=>{return materia.calificacion}):[],\r\n                              fill: true,\r\n                              backgroundColor: \"#e8452909\",\r\n                              borderColor: \"#e84529\"\r\n                            },\r\n                          ]}} />\r\n                        :<p className='text-primary'>No tiene notas en este examen</p>\r\n                      }\r\n                    </div>\r\n                  </Fragment>\r\n                  \r\n                )\r\n              }) :\r\n              <p>No data</p>\r\n            }  \r\n          </div>\r\n          <div className={`w-full h-full pt-8 px-0 justify-center flex-wrap max-h-screen overflow-auto ${windowActive === 'sources'?'flex flex-row':'hidden'}`}>\r\n            <div className='flex flex-col items-start justify-center mt-4 mx-4 '>\r\n            <p className='text-center font-bold text-primary text-xl'>Tus recursos disponibles: </p>\r\n              <ul>\r\n                {user?\r\n                  user.recursos?\r\n                  user.recursos.map((recurso,index)=>{\r\n                    return(\r\n                      <li type='disc' className='ml-8' >\r\n                        <a href={recurso.url} target='_blank' rel=\"noopener noreferrer\" className='mx-1 text-start text-black'>{recurso.nombre}</a>\r\n                      </li>\r\n                    )\r\n                      })\r\n                    :\r\n                    <li>No cuenta con Recursos en este momento</li>\r\n                  :\r\n                  null\r\n                }\r\n              </ul>\r\n              \r\n            </div>\r\n          </div>\r\n          <div className={`w-full h-full pt-8 px-0 justify-center flex-wrap max-h-screen overflow-auto ${windowActive === 'contact'?'flex flex-row':'hidden'}`}>\r\n          <h1>Hola {user?user.name:null}, en que podemos ayudarte:</h1>\r\n                <div className=\"flex flex-row justify-center items-start mt-5 w-full\">\r\n                  <div className=\"flex flex-col justify-center items-center  w-full mr-8\">\r\n                    <div className='flex self-start justify-start items-center bg-gray-300 mt-2 w-full'>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaWhatsapp className='bg-green-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaEnvelope className='bg-blue-600 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <p className='px-3 text-center text-black'>Leonel de Sistemas</p>\r\n                    </div>\r\n                    <div className='flex self-start justify-start items-center bg-gray-300 mt-2 w-full'>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaWhatsapp className='bg-green-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaEnvelope className='bg-blue-600 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <p className='px-3 text-center text-black'>Abigail de administracion</p>\r\n                    </div>\r\n                    {/* <div className='flex self-start justify-start items-center bg-gray-300 mt-2 w-full'>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaWhatsapp className='bg-green-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaEnvelope className='bg-blue-600 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <p className='px-3 text-center text-black'>Valeria de Finanzas</p>\r\n                    </div> */}\r\n                    <div className='flex self-start justify-start items-center bg-gray-300 mt-2 w-full'>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaWhatsapp className='bg-green-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <a href='https://wa.me/59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaEnvelope className='bg-blue-600 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      <p className='px-3 text-center text-black'>Rimber de sistemas</p>\r\n                    </div>\r\n                  </div>\r\n                  <div className=\"flex flex-col justify-start items-end w-full sefl-start ml-4\">\r\n                    <div className='flex self-end justify-end items-center bg-green-300 mt-2 w-full'>\r\n                      <p className='px-3 text-center text-black'>Apriori Whatsapp</p>\r\n                      <a href='https://wa.me/+59161885865' target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaWhatsapp className='bg-green-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                    </div>\r\n                    <div className='flex self-end justify-end items-center bg-red-300 mt-2 w-full'>\r\n                      <p className='px-3 text-center text-black'>Apriori Email</p>\r\n                      <a className=\"text-primary\" href=\"mailto:apriori.bolivian@gmail.com\" >\r\n                       <FaEnvelope className='bg-red-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                      \r\n                    </div>\r\n                    <div className='flex self-end justify-end items-center bg-blue-300 mt-2 w-full'>\r\n                      <p className='px-3 text-center text-black'>Apriori Facebook</p>\r\n                      <a href=\"https://m.me/aprioribol\" target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaFacebookF className='bg-blue-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                    </div>\r\n                    <div className='flex self-end justify-end items-center bg-pink-300 mt-2 w-full'>\r\n                      <p className='px-3 text-center text-black'>Apriori Instagram</p>\r\n                      <a href=\"https://in.me/aprioribol\" target='_blank' rel=\"noopener noreferrer\" className='text-primary'>\r\n                        <FaInstagramSquare className='bg-pink-500 text-white p-2 ' size={40}/>\r\n                      </a>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n\r\n                <div className='flex flex-col items-center mt-8'>\r\n                <p className='my-1 text-center'>Tuviste algun incoveniente con la plataforma? </p>\r\n                <textarea  onChange={(e)=>{setMensajeContacto(e.target.value)}}  className='w-2/3 border-2 border-red-400 p-2 rounded my-3' placeholder='Escribe aqui tu mensaje'></textarea>\r\n                  <div className='flex justify-center' >\r\n                  <a href={`https://wa.me/+59175413873?text=${mensajeContacto}`} target='_blank' rel=\"noopener noreferrer\" className='my-2 bg-primary p-2 rounded text-white px-3'>Enviar a Soporte\r\n                      </a>\r\n                  </div>\r\n                  \r\n                </div>\r\n               \r\n                <div div=\"flex flex-col w-full justify-center bg-red-200\"> \r\n                  \r\n                </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <Footer contact='not'/>\r\n    \r\n    </>\r\n    );\r\n};\r\n","import React from 'react';\r\nimport Navbar from '../../componets/navBarMenu';\r\nimport { useSelector } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst Print = () => {\r\n\r\n    const user = useSelector((state) => state.user.user);\r\n    const examn = useSelector((state) => state.user.cuenta);\r\n    const Data = useSelector((state) => state.exam.exams);\r\n    const bar = document.getElementById('bar');\r\n    if (bar) {\r\n      bar.style.display = 'none';\r\n    }\r\n\r\n    return (\r\n      <>\r\n        <Navbar />\r\n\r\n        <div\r\n            className=\"flex w-full px-40 sm:px-5 lg:px-40 py-4 justify-center flex-col text-center\"\r\n        >\r\n        \r\n            <h1\r\n              className=\"text-3xl font-bold text-primary uppercase\"\r\n            >Prueba { examn[0].nombre}</h1>\r\n            <hr className=\"w-full mx-auto my-1\" />\r\n            <h3\r\n              className=\"text-xl text-gray-400\"\r\n            >\r\n              {user.name + ' ' + user.lastName}\r\n            </h3>\r\n            <p\r\n             className=\"text-sm text-gray-400\"\r\n            >\r\n              {\r\n                new Date().toLocaleDateString('es-ES', {\r\n                  year: 'numeric',\r\n                  month: 'long',\r\n                  day: 'numeric',\r\n                })\r\n              }\r\n            </p>\r\n\r\n            <div className=\"flex flex-col w-full justify-start justify-self-start text-left\">\r\n              {Data.map((item, index) => (<>\r\n                  <h2\r\n                    key={index}\r\n                    className=\"text-2xl font-bold bg-primary text-white p-3 rounded-xl mt-4 my-4\"\r\n                  >{item.materia}</h2>\r\n                  <div\r\n                    className=\"px-4\"\r\n                  >\r\n                    {item.preguntas.map((pregunta, index) => (\r\n                      <div key={index} className=\"flex flex-col w-full justify-start justify-self-start text-left mb-4\">\r\n                        <h3\r\n                          className=\"text-xl text-black border-b-2 border-black\"\r\n                        >\r\n                          <span className=\"text-base font-bold text-primary\"> {index+1}: </span>\r\n                          {pregunta.pregunta}</h3>\r\n                        <div className=\"flex flex-col w-full justify-start justify-self-start text-left\">\r\n                          {pregunta.opciones.map((respuesta, index) => (\r\n                            <p\r\n                              key={index}\r\n                              className={\r\n                                `${\r\n                                  respuesta === pregunta.opcionCorrecta?\r\n                                  respuesta === pregunta.marcado?\r\n                                    'text-green-500' : 'text-red-500'\r\n                                    : 'text-gray-500'\r\n                                } \r\n                                ${\r\n                                  respuesta === pregunta.opcionCorrecta&& 'text-green-500'\r\n                                } \r\n                                ${\r\n                                  respuesta === pregunta.marcado&& respuesta !== pregunta.opcionCorrecta && 'text-red-500'\r\n                                }\r\n\r\n\r\n                                `\r\n                              }\r\n                            >\r\n                              {\r\n                                respuesta && <>\r\n                                \r\n                                <span className=\"text-base font-bold text-primary\">■ </span>\r\n                                <span>{respuesta}</span>\r\n                                </>\r\n                              }\r\n                              \r\n                            </p>\r\n                          ))}\r\n                        </div>\r\n                        <p className=\"text-sm text-gray-400\">\r\n                          <span className=\"text-base font-bold text-primary\">Justificacion: </span>\r\n                          {pregunta.explicacionCorrecta}\r\n                        </p>\r\n                      </div>\r\n                      ))}\r\n                  </div>\r\n                </>\r\n              ))}\r\n            </div>\r\n\r\n            <p\r\n              className=\"text-sm text-gray-400\"\r\n            >\r\n              Para guardar como pdf despues de presionar el boton, en el apartode impresion, seleccionar la opcion \"guardar como pdf\" y listo.\r\n            </p>\r\n            <button\r\n              className=\"bg-primary hover:bg-blue-700 text-white font-bold py-2 px-4 rounded w-1/2 mx-auto my-4\"\r\n              onClick={() => {\r\n                window.print() \r\n                //redirect to home\r\n\r\n              }\r\n              }\r\n            >\r\n              guardar como pdf\r\n            </button>\r\n            <Link \r\n            className='font-bold text-primary hover:text-blue-700'\r\n            to=\"/profile\">\r\n              Ir a Perfil\r\n            </Link>\r\n        </div>\r\n\r\n\r\n      </>\r\n    );\r\n};\r\n\r\nexport default Print;","import React, {useState, useEffect}  from \"react\";\r\nimport {db} from '../../../config/firebase';\r\nimport dbRef from '../../../config/dbRef';\r\nimport { collection, getDocs,doc  } from \"firebase/firestore\";\r\n\r\n\r\nexport default function Panel(props) {\r\n    const {user, idUser} = props;\r\n    const [activeTab, setActiveTab] = useState(0);\r\n    const [afiliates, setAfiliates] = useState([]);\r\n    const [datos , setDatos] = useState({\r\n        cantidad:0,\r\n        cantidadRegistrados:0,\r\n        cantidadPagados:0,\r\n        cantidadCancelados:0,\r\n        saldo:0,\r\n        dineroRetirado:0,\r\n    });\r\n    const comision = 0.05;\r\n\r\n    const handleClick = (index) => {\r\n        setActiveTab(index);\r\n      };\r\n    useEffect(() => {\r\n        let cantidad = afiliates.length;\r\n        let cantidadRegistrados = 0;\r\n        let cantidadPagados = 0;\r\n        let cantidadCancelados = 0;\r\n        let saldo = 0;\r\n        let dineroRetirado = 0;\r\n\r\n        afiliates.forEach(afiliate => {\r\n            if (afiliate.state === \"revision\"){\r\n                cantidadRegistrados = cantidadRegistrados+1;\r\n            }\r\n            if (afiliate.state === \"pago\"){\r\n                cantidadPagados = cantidadPagados+1;\r\n                saldo = saldo+(afiliate.monto*comision);\r\n            }\r\n            if (afiliate.state === \"pay\"){\r\n                cantidadCancelados = cantidadCancelados+1;\r\n                dineroRetirado = dineroRetirado+(afiliate.monto*comision);\r\n            }\r\n            \r\n        });\r\n        setDatos({\r\n            cantidad,\r\n            cantidadRegistrados,\r\n            cantidadPagados,\r\n            cantidadCancelados,\r\n            saldo,\r\n            dineroRetirado,\r\n        });\r\n    }, [afiliates]);\r\n\r\n\r\n    \r\n    useEffect(() => {\r\n        const getAfiliates = async() => {\r\n            const cuenta = doc(db, dbRef.user, idUser);\r\n            const cuentaSnap = await getDocs(collection(cuenta, \"afiliates\"));\r\n\r\n            let cuentaData = [];\r\n            cuentaSnap.forEach(doc => {\r\n                cuentaData.push({id:doc.id,...doc.data()});\r\n            });\r\n            console.log(cuentaData);\r\n            setAfiliates(cuentaData);\r\n        }\r\n        getAfiliates();\r\n    }, [idUser]);\r\n\r\n\r\n    return (\r\n        <div className='mt-16 p-4 text-center w-full flex flex-col justify-start items-center bg-gray-100 min-h-90'>\r\n            <div className='w-full flex flex-row justify-between items-between p-4 w-90 bg-white shadow-md rounded'>\r\n                <div className=\"text-left\">\r\n                    <h2 className='text-2xl text-primary'>Panel de control de afiliados</h2>\r\n                    <p className='text-gray-500'>Bienvenido {user?.name} </p>\r\n                    <p className='text-gray-500'>cantidad: {datos.cantidad}</p>\r\n\r\n                </div>\r\n                <div>\r\n                    <h2 className='text-2xl text-primary'>Saldo : <span className=\"text-gray-500 font-normal\">Bs. {datos.saldo.toFixed(2)}</span></h2>\r\n                    <p className='text-gray-500'>Dinero retirado: Bs. {datos.dineroRetirado}</p>\r\n                </div>\r\n            </div>\r\n            <div className='w-full flex flex-col justify-between items-between p-4 w-90 bg-white shadow-md rounded mt-4'>\r\n                <div className=\"flex border-b border-gray-200\">\r\n                    <button\r\n                        className={`${activeTab === 0 ? \"bg-gray-100\" : \"\"} py-4 px-6 text-gray-800 font-semibold border-b-2`}\r\n                        onClick={() => handleClick(0)}\r\n                    >\r\n                        Registrados\r\n                        <span className=\"text-xs text-white font-normal mx-1 p-1 px-2 bg-gray-400 rounded-full\">{datos.cantidadRegistrados}</span>\r\n                    </button>\r\n                    <button\r\n                        className={`${activeTab === 1 ? \"bg-gray-100\" : \"\"} py-4 px-6 text-gray-800 font-semibold border-b-2`}\r\n                        onClick={() => handleClick(1)}\r\n                    >\r\n                        Pagados \r\n                        <span className=\"text-xs text-white font-normal mx-1 p-1 px-2 bg-gray-400 rounded-full\">{datos.cantidadPagados}</span>\r\n                    </button>\r\n                    <button\r\n                        className={`${activeTab === 2 ? \"bg-gray-100\" : \"\"} py-4 px-6 text-gray-800 font-semibold border-b-2`}\r\n                        onClick={() => handleClick(2)}\r\n                    >\r\n                        Cancelados\r\n                        <span className=\"text-xs text-white font-normal mx-1 p-1 px-2 bg-gray-400 rounded-full\">{datos.cantidadCancelados}</span>\r\n                    </button>\r\n                </div>\r\n\r\n                <div className=\"px-6\">\r\n                    {activeTab === 0 && \r\n                        <div className='w-full flex flex-col justify-start items-center'>\r\n                            <p className=\"text-gray-400 text-sm self-start my-2\">*Los usuarios de acontinuacion se suscribieron con su codigo de afiliado, pero aun no hicieron la cancelacion de la suscripción.</p>\r\n                             <div className=\"w-full overflow-x-auto\">\r\n                                <table className=\"w-full whitespace-no-wrap\">\r\n                                <thead>\r\n                                    <tr\r\n                                    className=\"text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b bg-gray-50\"\r\n                                    >\r\n                                    <th className=\"px-4 py-3\">Nombre completo</th>\r\n                                    <th className=\"px-4 py-3\">Monto</th>\r\n                                    <th className=\"px-4 py-3\">Fecha</th>\r\n                                    <th className=\"px-4 py-3\">Plan</th>\r\n                                    </tr>\r\n                                </thead>\r\n                                <tbody className=\"bg-white divide-y\">\r\n                                    {afiliates.map((item, index) => (\r\n                                        item.state === \"revision\" &&\r\n                                            <tr key={index} className=\"text-gray-700 text-left\">\r\n                                                <td className=\"px-4 py-3\">{item.name+\" \"+item.lastName}</td>\r\n                                                <td className=\"px-4 py-3\">{item.monto}</td>\r\n                                                <td className=\"px-4 py-3\">{item.date.toDate().toLocaleDateString()}</td>\r\n                                                <td className=\"px-4 py-3\">{item.plan}</td>\r\n                                            </tr>\r\n                                    ))}\r\n                                </tbody>\r\n                                </table>\r\n                            </div>\r\n                        </div>\r\n                    }\r\n                    {activeTab === 1 &&\r\n                        <div className='w-full flex flex-col justify-start items-center'>\r\n                            <p className=\"text-gray-400 text-sm self-start my-2\">*Los usuarios de acontinuacion pagaron su suscripción, pero aun no se ha retirado la comisión.\r\n                            </p>\r\n                            <div className=\"w-full overflow-x-auto\">\r\n                                <table className=\"w-full whitespace-no-wrap\">\r\n                                <thead>\r\n                                    <tr\r\n                                    className=\"text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b bg-green-100\"\r\n                                    >\r\n                                    <th className=\"px-4 py-3\">Nombre completo</th>\r\n                                    <th className=\"px-4 py-3\">Monto</th>\r\n                                    <th className=\"px-4 py-3\">Fecha</th>\r\n                                    <th className=\"px-4 py-3\">Plan</th>\r\n                                    <th className=\"px-4 py-3\">Comisión (5%) </th>\r\n                                    </tr>\r\n                                </thead>\r\n                                <tbody className=\"bg-white divide-y\">\r\n                                    {afiliates.map((item, index) => (\r\n                                        item.state === \"pago\" &&\r\n                                            <tr key={index} className=\"text-gray-700 text-left\">\r\n                                                <td className=\"px-4 py-3\">{item.name+\" \"+item.lastName}</td>\r\n                                                <td className=\"px-4 py-3\">{item.monto} Bs.</td>\r\n                                                <td className=\"px-4 py-3\">{item.date.toDate().toLocaleDateString()}</td>\r\n                                                <td className=\"px-4 py-3\">{item.plan}</td>\r\n                                                <td className=\"px-4 py-3\">{(item.monto*comision).toFixed(1)} Bs.</td>\r\n                                            </tr>\r\n                                    ))}\r\n                                </tbody>\r\n                                </table>\r\n                            </div>\r\n                        </div>\r\n                    }\r\n                    {activeTab === 2 &&\r\n                        <div className='w-full flex flex-col justify-start items-center'>\r\n                            <p className=\"text-gray-400 text-sm self-start my-2\">*Usted ya retiro la comisión de los usuarios de acontinuacion.\r\n                            </p>\r\n                            <div className=\"w-full overflow-x-auto\">\r\n                                <table className=\"w-full whitespace-no-wrap\">\r\n                                <thead>\r\n                                    <tr\r\n                                    className=\"text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b bg-red-100\"\r\n                                    >\r\n                                    <th className=\"px-4 py-3\">Nombre completo</th>\r\n                                    <th className=\"px-4 py-3\">Monto</th>\r\n                                    <th className=\"px-4 py-3\">Fecha</th>\r\n                                    <th className=\"px-4 py-3\">Plan</th>\r\n                                    <th className=\"px-4 py-3\">Comisión (5%)</th>\r\n                                    </tr>\r\n                                </thead>\r\n                                <tbody className=\"bg-white divide-y\">\r\n                                    {afiliates.map((item, index) => (\r\n                                        item.state === \"pay\" &&\r\n                                            <tr key={index} className=\"text-gray-700 text-left\">\r\n                                                <td className=\"px-4 py-3\">{item.name+\" \"+item.lastName}</td>\r\n                                                <td className=\"px-4 py-3\">{item.monto} Bs.</td>\r\n                                                <td className=\"px-4 py-3\">{item.date.toDate().toLocaleDateString()}</td>\r\n                                                <td className=\"px-4 py-3\">{item.plan}</td>\r\n                                                <td className=\"px-4 py-3\">{(item.monto*comision).toFixed(1)} Bs.</td>\r\n                                            </tr>\r\n                                    ))}\r\n                                </tbody>\r\n                                </table>\r\n                            </div>\r\n                        </div>\r\n                    }\r\n                </div>\r\n            </div>\r\n    \r\n        </div>\r\n    );\r\n}","import React from 'react'\r\nimport { FaSearch } from 'react-icons/fa';\r\n\r\nexport default function SearchComponent ({ search, searcher, placeholder, aligment = 'end' }) {\r\n  return (\r\n    <>\r\n      <form className={`flex w-full justify-${aligment}`}>\r\n        <div className=\"flex w-1/2 sm:w-3/4\">\r\n          <label htmlFor=\"location-search\" className=\"mb-2 text-sm font-medium sr-only\">Buscar....</label>\r\n          <div className=\"relative w-full\">\r\n            <input value={search} onChange={searcher} type=\"search\" id=\"location-search\" className=\"block p-2.5 w-full z-20 text-sm bg-third-color-2 rounded-3xl border border-primary-color focus:bg-white focus:ring-primary-color focus:border-primary-color\" placeholder={placeholder} required />\r\n            {/* <button type=\"submit\" className=\"absolute top-0 end-0 h-full p-2.5 text-lg font-medium text-white bg-primary-color rounded-e-3xl border border-primary-color hover:bg-primary-color focus:ring-1 focus:outline-none focus:ring-primary-color\">\r\n              <FaSearch />\r\n              <span className=\"sr-only\">Search</span>\r\n            </button> */}\r\n          </div>\r\n        </div>\r\n      </form>\r\n    </>\r\n  )\r\n}\r\n\r\n","import { doc, updateDoc } from 'firebase/firestore';\r\nimport React, { useEffect, useState } from 'react'\r\nimport { db } from '../../../../config/firebase';\r\nimport { getAllMaterias } from '../../../counts/utils';\r\n\r\nexport const ModalUpdateExam = ({ isOpen, closeModal, examen, idExamen, refresExams }) => {\r\n    const [formData, setFormData] = useState({\r\n        nombre: examen ? examen.data.nombre : '',\r\n        area: examen ? examen.data.area : '',\r\n        descripcion: examen ? examen.data.descripcion : '',\r\n        materias: examen ? examen.data.materias : [],\r\n        documentacion: examen ? examen.data.documentacion : [],\r\n        recursos: examen ? examen.data.recursos : [],\r\n        estado: examen ? examen.data.estado : '',\r\n        fecha: examen ? examen.data.fecha : '',\r\n        visible: examen ? examen.data.visible : false,\r\n    });\r\n\r\n    const [selectedMateria, setSelectedMateria] = useState('');\r\n    const [documentacionInput, setDocumentacionInput] = useState('');\r\n    const [recursoInput, setRecursoInput] = useState({ nombre: '', url: '' });\r\n    const [materias, SetMaterias] = useState([]);\r\n\r\n    const handleInputChange = (e) => {\r\n        const { name, value } = e.target;\r\n        setFormData({\r\n            ...formData,\r\n            [name]: value,\r\n        });\r\n    };\r\n\r\n    useEffect(() => {\r\n        const fetchData = async () => {\r\n            try {\r\n                const dataMaterias = await getAllMaterias();\r\n                const materias = dataMaterias.map(materia => ({\r\n                    id: materia.id,\r\n                    nombre: materia.nombre\r\n                }));\r\n                SetMaterias(materias)\r\n            } catch (error) {\r\n                console.error('Error fetching materias: ', error);\r\n            }\r\n        };\r\n\r\n        fetchData();\r\n    }, []);\r\n\r\n    const handleSelectMaterias = (e) => {\r\n        const selectedId = e.target.value;\r\n        const selectedMateria = materias.find(materia => materia.id === selectedId);\r\n        if (selectedMateria) {\r\n            const materiaConIdMayuscula = {\r\n                ...selectedMateria,\r\n                Id: selectedMateria.id,\r\n            };\r\n\r\n            if (!formData.materias.some(materia => materia.Id === materiaConIdMayuscula.Id)) {\r\n                setFormData({\r\n                    ...formData,\r\n                    materias: [...formData.materias, materiaConIdMayuscula],\r\n                });\r\n            } else {\r\n                alert('Materia ya agregada.');\r\n            }\r\n\r\n            setSelectedMateria('');\r\n        }\r\n    };\r\n\r\n    const agregarDocumentacion = () => {\r\n        if (documentacionInput) {\r\n            setFormData({\r\n                ...formData,\r\n                documentacion: [...formData.documentacion, documentacionInput],\r\n            });\r\n            setDocumentacionInput(''); // Limpiar el input\r\n        }\r\n    };\r\n\r\n    const agregarRecurso = () => {\r\n        if (recursoInput.nombre && recursoInput.url) {\r\n            setFormData({\r\n                ...formData,\r\n                recursos: [...formData.recursos, recursoInput],\r\n            });\r\n            setRecursoInput({ nombre: '', url: '' }); // Limpiar los inputs\r\n        }\r\n    };\r\n\r\n    const handleRecursoChange = (e) => {\r\n        const { name, value } = e.target;\r\n        setRecursoInput({\r\n            ...recursoInput,\r\n            [name]: value,\r\n        });\r\n    };\r\n\r\n    const handleSubmit = async (e) => {\r\n        e.preventDefault();\r\n\r\n        const examId = idExamen\r\n\r\n        try {\r\n\r\n            const selectedDate = new Date(formData.fecha);\r\n            const formattedDate = selectedDate.toLocaleString('en-US', {\r\n                month: 'numeric',\r\n                day: 'numeric',\r\n                year: 'numeric',\r\n                hour: 'numeric',\r\n                minute: 'numeric',\r\n                hour12: true,\r\n            });\r\n\r\n            const docRef = doc(db, 'Exam', examId);\r\n            await updateDoc(docRef, {\r\n                ...formData,\r\n                fecha: formattedDate\r\n\r\n            });\r\n            alert('Documento actualizado con éxito con ID: ' + examId);\r\n            refresExams();\r\n        } catch (error) {\r\n            alert(\"Error al actualizar los datos: \" + error);\r\n            console.log(error);\r\n        }\r\n        closeModal();\r\n    };\r\n\r\n    if (!isOpen) return null;\r\n\r\n    return (\r\n        <div className=\"fixed inset-0 bg-black bg-opacity-50 flex justify-center items-center z-50\">\r\n            <div className=\"bg-white p-6 rounded-lg w-11/12 max-w-full h-9/10 overflow-y-auto\">\r\n                <h2 className=\"text-xl font-bold mb-4\">\r\n                    {examen ? 'Editar Examen' : 'Agregar Examen'}\r\n                </h2>\r\n                <form onSubmit={handleSubmit} className=\"h-full\">\r\n                    {/* Campos Generales */}\r\n                    <div className=\"grid grid-cols-2 gap-4 mb-4\">\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Nombre</label>\r\n                            <input\r\n                                type=\"text\"\r\n                                name=\"nombre\"\r\n                                value={formData.nombre}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Introduce el nombre\"\r\n                            />\r\n                        </div>\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Área</label>\r\n                            <input\r\n                                type=\"text\"\r\n                                name=\"area\"\r\n                                value={formData.area}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Introduce el área\"\r\n                            />\r\n                        </div>\r\n                        <div className=\"col-span-2\">\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Descripción</label>\r\n                            <input\r\n                                type=\"text\"\r\n                                name=\"descripcion\"\r\n                                value={formData.descripcion}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Introduce la descripción\"\r\n                            />\r\n                        </div>\r\n                    </div>\r\n\r\n                    {/* Materias */}\r\n                    <div className=\"flex mb-4\">\r\n                        <div className=\"flex-1\">\r\n                            <h3 className=\"font-bold\">Materias</h3>\r\n                            <select\r\n                                value={selectedMateria}\r\n                                onChange={handleSelectMaterias}\r\n                                className=\"mb-2 border rounded w-full py-2 px-3\"\r\n                            >\r\n                                <option value=\"\">Selecciona una materia</option>\r\n                                {materias.map(materia => (\r\n                                    <option key={materia.id} value={materia.id}>\r\n                                        {materia.nombre}\r\n                                    </option>\r\n                                ))}\r\n                            </select>\r\n                        </div>\r\n                        <div className=\"ml-4\" style={{ width: '70%', maxHeight: '150px', overflowY: 'auto' }}>\r\n                            <table className=\"min-w-full border\">\r\n                                <thead>\r\n                                    <tr>\r\n                                        <th className=\"border px-2 py-1\">Materias Agregadas</th>\r\n                                    </tr>\r\n                                </thead>\r\n                                <tbody>\r\n                                    {formData.materias.map((materia, index) => (\r\n                                        <tr key={index}>\r\n                                            <td className=\"border px-2 py-1\">{materia.Id} - {materia.nombre}</td>\r\n                                            <td className=\"border px-2 py-1\">\r\n                                                <button\r\n                                                    type=\"button\"\r\n                                                    onClick={() => {\r\n                                                        const nuevasMaterias = formData.materias.filter((_, i) => i !== index);\r\n                                                        setFormData({ ...formData, materias: nuevasMaterias });\r\n                                                    }}\r\n                                                    className=\"text-red-500\"\r\n                                                >\r\n                                                    Eliminar\r\n                                                </button>\r\n                                            </td>\r\n                                        </tr>\r\n                                    ))}\r\n                                </tbody>\r\n                            </table>\r\n                        </div>\r\n                    </div>\r\n\r\n                    {/* Documentación */}\r\n                    <div className=\"mb-4 flex\">\r\n                        <div className=\"flex-1\">\r\n                            <h3 className=\"font-bold\">Documentación</h3>\r\n                            <input\r\n                                type=\"text\"\r\n                                value={documentacionInput}\r\n                                onChange={(e) => setDocumentacionInput(e.target.value)}\r\n                                className=\"border rounded w-full py-2 px-3 mb-2\"\r\n                                placeholder=\"Introduce un enlace de documentación\"\r\n                            />\r\n                            <button\r\n                                type=\"button\"\r\n                                onClick={agregarDocumentacion}\r\n                                className=\"text-blue-500 hover:underline mb-2\"\r\n                            >\r\n                                Agregar Documentación\r\n                            </button>\r\n\r\n                        </div>\r\n                        <div className=\"ml-4\" style={{ width: '70%', maxHeight: '150px', overflowY: 'auto' }}>\r\n                            <table className=\"min-w-full border\">\r\n                                <thead>\r\n                                    <tr>\r\n                                        <th className=\"border px-2 py-1\">Documentación Agregada</th>\r\n                                    </tr>\r\n                                </thead>\r\n                                <tbody>\r\n                                    {formData.documentacion.map((doc, index) => (\r\n                                        <tr key={index}>\r\n                                            <td className=\"border px-2 py-1\">{doc}</td>\r\n                                            <td className=\"border px-2 py-1\">\r\n                                                <button\r\n                                                    type=\"button\"\r\n                                                    onClick={() => {\r\n                                                        const nuevaDocumentacion = formData.documentacion.filter((_, i) => i !== index);\r\n                                                        setFormData({ ...formData, documentacion: nuevaDocumentacion });\r\n                                                    }}\r\n                                                    className=\"text-red-500\"\r\n                                                >\r\n                                                    Eliminar\r\n                                                </button>\r\n                                            </td>\r\n                                        </tr>\r\n                                    ))}\r\n                                </tbody>\r\n                            </table>\r\n                        </div>\r\n                    </div>\r\n\r\n                    {/* Recursos */}\r\n                    <div className=\"mb-4 flex\">\r\n                        <div className=\"flex-1\">\r\n                            <h3 className=\"font-bold\">Recursos</h3>\r\n                            <input\r\n                                type=\"text\"\r\n                                name=\"nombre\"\r\n                                value={recursoInput.nombre}\r\n                                onChange={handleRecursoChange}\r\n                                className=\"border rounded w-full py-2 px-3 mb-2\"\r\n                                placeholder=\"Nombre del recurso\"\r\n                            />\r\n                            <input\r\n                                type=\"text\"\r\n                                name=\"url\"\r\n                                value={recursoInput.url}\r\n                                onChange={handleRecursoChange}\r\n                                className=\"border rounded w-full py-2 px-3 mb-2\"\r\n                                placeholder=\"URL del recurso\"\r\n                            />\r\n                            <button\r\n                                type=\"button\"\r\n                                onClick={agregarRecurso}\r\n                                className=\"text-blue-500 hover:underline mb-2\"\r\n                            >\r\n                                Agregar Recurso\r\n                            </button>\r\n                        </div>\r\n                        <div className=\"ml-4\" style={{ width: '70%', maxHeight: '150px', overflowY: 'auto' }}>\r\n                            <table className=\"min-w-full border\">\r\n                                <thead>\r\n                                    <tr>\r\n                                        <th className=\"border px-2 py-1\">Nombre</th>\r\n                                        <th className=\"border px-2 py-1\">Url</th>\r\n                                        <th className=\"border px-2 py-1\"></th>\r\n                                    </tr>\r\n                                </thead>\r\n                                <tbody>\r\n                                    {formData.recursos.map((recurso, index) => (\r\n                                        <tr key={index}>\r\n                                            <td className=\"border px-2 py-1\">{recurso.nombre}</td>\r\n                                            <td className=\"border px-2 py-1\">{recurso.url}</td>\r\n                                            <td className=\"border px-2 py-1\">\r\n                                                <button\r\n                                                    type=\"button\"\r\n                                                    onClick={() => {\r\n                                                        const nuevosRecursos = formData.recursos.filter((_, i) => i !== index);\r\n                                                        setFormData({ ...formData, recursos: nuevosRecursos });\r\n                                                    }}\r\n                                                    className=\"text-red-500\"\r\n                                                >\r\n                                                    Eliminar\r\n                                                </button>\r\n                                            </td>\r\n                                        </tr>\r\n                                    ))}\r\n                                </tbody>\r\n                            </table>\r\n                        </div>\r\n                    </div>\r\n\r\n                    {/* Estado y Fecha */}\r\n                    <div className=\"grid grid-cols-2 gap-4 mb-4\">\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Estado</label>\r\n                            <input\r\n                                type=\"text\"\r\n                                name=\"estado\"\r\n                                value={formData.estado}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Introduce el estado\"\r\n                            />\r\n                        </div>\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Fecha</label>\r\n                            <input\r\n                                type=\"datetime-local\"\r\n                                name=\"fecha\"\r\n                                value={formData.fecha}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                            />\r\n                        </div>\r\n                    </div>\r\n\r\n                    {/* Checkbox para visible */}\r\n                    <div className=\"flex items-center mb-4\">\r\n                        <input\r\n                            type=\"checkbox\"\r\n                            name=\"visible\"\r\n                            checked={formData.visible}\r\n                            onChange={() => setFormData({ ...formData, visible: !formData.visible })}\r\n                            className=\"mr-2\"\r\n                        />\r\n                        <label className=\"text-gray-700 text-sm\">Visible</label>\r\n                    </div>\r\n\r\n                    <div className=\"flex justify-end mt-4\">\r\n                        <button\r\n                            type=\"button\"\r\n                            onClick={closeModal}\r\n                            className=\"bg-gray-500 text-white py-2 px-4 rounded mr-2\"\r\n                        >\r\n                            Cancelar\r\n                        </button>\r\n                        <button type=\"submit\" className=\"bg-blue-500 text-white py-2 px-4 rounded\">\r\n                            {examen ? 'Actualizar' : 'Crear'}\r\n                        </button>\r\n                    </div>\r\n                </form>\r\n            </div>\r\n        </div>\r\n    )\r\n}\r\n","import { doc, updateDoc } from 'firebase/firestore';\r\nimport React, { useEffect, useState } from 'react'\r\nimport { db } from '../../../../config/firebase';\r\nimport { _fetchUsers } from '../../../../redux/actions/user';\r\n\r\nexport const ModalSelectExam = ({ isOpen, closeModal, examen }) => {\r\n\r\n    const [numeroColaboradores, setNumeroColaboradores] = useState(5);\r\n    const [simulacrosTotales, setSimulacrosTotales] = useState(5);\r\n\r\n    const [users, setUsers] = useState([]);\r\n    \r\n    useEffect(() => {\r\n        const fetchUsers = async () => {\r\n            const { users } = await _fetchUsers();\r\n            setUsers(users);\r\n        };\r\n\r\n        fetchUsers();\r\n    }, []);\r\n\r\n    const handleSelectExam = async () => {\r\n        try {\r\n            const datosDocRef = doc(db, \"dataPage\", \"datos\");\r\n\r\n            await updateDoc(datosDocRef, {\r\n                examenCpmpleto: examen,\r\n                tituloBanner: examen.data.nombre,\r\n                fechaExamen: examen.data.fecha,\r\n                colaboradores: numeroColaboradores,\r\n                simulacrosTotales: simulacrosTotales,\r\n                clientesActuales: users.length\r\n            });\r\n\r\n            alert('El examen ha sido seleccionado exitosamente.');\r\n            \r\n        } catch (error) {\r\n            console.error(\"Error al actualizar el examen:\", error);\r\n            alert(\"Error al seleccionar el examen. Inténtalo de nuevo.\");\r\n        }\r\n        closeModal();\r\n    };\r\n\r\n    const handleInputChange = (e) => {\r\n        setNumeroColaboradores(e.target.value);\r\n    };\r\n\r\n    const handleInputSimulacrosChange = (e) => {\r\n        setSimulacrosTotales(e.target.value);\r\n    };\r\n\r\n    if (!isOpen) return null;\r\n    return (\r\n        <div className=\"fixed inset-0 bg-black bg-opacity-50 flex justify-center items-center z-50\">\r\n            <div className=\"bg-white p-6 rounded-lg max-w-full\">\r\n\r\n                <p className='font-semibold text-xl text-center'>¿Estás seguro de que quieres seleccionar el examen</p>\r\n                <p className='font-semibold text-xl text-center'>{examen.data.nombre}?</p>\r\n\r\n                <div className=\"mt-4\">\r\n                    <label className=\"block text-gray-700 text-sm font-bold mb-2\">Número de colaboradores:</label>\r\n                    <input\r\n                        type=\"number\"\r\n                        value={numeroColaboradores}\r\n                        onChange={handleInputChange}\r\n                        className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                    />\r\n                </div>\r\n\r\n                <div className=\"mt-4\">\r\n                    <label className=\"block text-gray-700 text-sm font-bold mb-2\">Número de simulacros totales:</label>\r\n                    <input\r\n                        type=\"number\"\r\n                        value={simulacrosTotales}\r\n                        onChange={handleInputSimulacrosChange}\r\n                        className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                    />\r\n                </div>\r\n\r\n                <div className=\"flex justify-end mt-4\">\r\n                    <button\r\n                        type='button'\r\n                        onClick={closeModal}\r\n                        className=\"bg-gray-500 text-white py-2 px-4 rounded mr-2\"\r\n                    >\r\n                        Cancelar\r\n                    </button>\r\n                    <button\r\n                        type=\"button\"\r\n                        className=\"bg-blue-500 text-white py-2 px-4 rounded\"\r\n                        onClick={handleSelectExam}  // Llama a la función para actualizar el campo examenCompleto\r\n                    >\r\n                        Sí\r\n                    </button>\r\n                </div>\r\n            </div>\r\n        </div >\r\n    )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { ModalUpdateExam } from '../update-modal/ModalUpdateExam';\r\nimport { ModalSelectExam } from '../select-modal/ModalSelectExam';\r\n\r\nexport const ExamCard = ({ id, fechaInicio, fechaFin, nombre, examen, refresExams }) => {\r\n\r\n    const [isModalOpen, setIsModalOpen] = useState(false);\r\n    const [isModalSelectOpen, setIsModalSelectOpen] = useState(false);\r\n\r\n    const openModal = () => setIsModalOpen(true);\r\n    const closeModal = () => setIsModalOpen(false);\r\n\r\n    const openModalSelect = () => setIsModalSelectOpen(true);\r\n    const closeModalSelect = () => setIsModalSelectOpen(false);\r\n\r\n    return (\r\n        <>\r\n            {/* Modal para actualizar examen */}\r\n            <ModalUpdateExam\r\n                isOpen={isModalOpen}\r\n                closeModal={closeModal}\r\n                examen={examen}\r\n                idExamen={id}\r\n                refresExams={refresExams}\r\n            />\r\n\r\n            {/* Modal para seleccionar examen */}\r\n            <ModalSelectExam\r\n                isOpen={isModalSelectOpen}\r\n                closeModal={closeModalSelect}\r\n                examen={examen}\r\n            />\r\n\r\n            <div className=\"bg-basic border-2 border-b-green-500 flex flex-col items-stretch rounded-lg\">\r\n                <div className=\"bg-accent py-2 w-full rounded-t-lg border-2 border-b-green-500\">\r\n                    <h3 className=\"text-center text-white font-bold  self-center px-8 py-2 underline decoration-solid\">{nombre}</h3>\r\n                </div>\r\n                <div className=\"flex flex-row justify-between p-2  sm:p-2 md:p-4\">\r\n                    <div className=\"w-full\">\r\n                        <p className=\"text-start text-black text-center font-semibold\">Id: <span className=\"text-gray-600 font-normal\">{id}</span></p>\r\n                        <p className=\"text-start text-black text-center font-semibold\">Del: <span className=\"text-gray-600 font-normal\">{fechaInicio}</span> - Al: <span className=\"text-gray-600 font-normal\">{fechaFin}</span></p>\r\n                    </div>\r\n                </div>\r\n\r\n                {/* Botones para abrir modales */}\r\n                <div className='flex w-full mt-4 justify-center'>\r\n                    <button className='bg-primary text-white p-2 rounded-full px-4 ml-4 cursor-pointer' onClick={openModal}>\r\n                        Editar\r\n                    </button>\r\n                    <button className='bg-primary text-white p-2 rounded-full px-4 ml-4 cursor-pointer' onClick={openModalSelect}>\r\n                        Seleccionar\r\n                    </button>\r\n                </div>\r\n            </div>\r\n        </>\r\n    )\r\n}\r\n\r\n","import { addDoc, collection } from 'firebase/firestore';\r\nimport React, { useEffect, useState } from 'react'\r\nimport { db } from '../../../../config/firebase';\r\nimport { getAllMaterias } from '../../../counts/utils';\r\n\r\nexport const ModalAddExam = ({ isOpen, closeModal, refresExams }) => {\r\n\r\n    const [formData, setFormData] = useState({\r\n        nombre: '',\r\n        area: '',\r\n        descripcion: '',\r\n        materias: [],\r\n        documentacion: [],\r\n        recursos: [],\r\n        estado: '',\r\n        fecha: '',\r\n        visible: false,\r\n    });\r\n\r\n    const [selectedMateria, setSelectedMateria] = useState('');\r\n    const [documentacionInput, setDocumentacionInput] = useState('');\r\n    const [materias, SetMaterias] = useState([]);\r\n    const [recursoInput, setRecursoInput] = useState({ nombre: '', url: '' });\r\n\r\n    const handleInputChange = (e) => {\r\n        const { name, value } = e.target;\r\n        setFormData({\r\n            ...formData,\r\n            [name]: value,\r\n        });\r\n    };\r\n\r\n    useEffect(() => {\r\n        const fetchData = async () => {\r\n            try {\r\n                const dataMaterias = await getAllMaterias();\r\n                const materias = dataMaterias.map(materia => ({\r\n                    id: materia.id,\r\n                    nombre: materia.nombre\r\n                }));\r\n                SetMaterias(materias)\r\n            } catch (error) {\r\n                console.error('Error fetching materias: ', error);\r\n            }\r\n        };\r\n\r\n        fetchData();\r\n        // refreshExam();\r\n    }, []);\r\n\r\n    const handleSelectMaterias = (e) => {\r\n        const selectedId = e.target.value;\r\n        const selectedMateria = materias.find(materia => materia.id === selectedId);\r\n        if (selectedMateria) {\r\n            const materiaConIdMayuscula = {\r\n                ...selectedMateria,\r\n                Id: selectedMateria.id,\r\n            };\r\n\r\n            if (!formData.materias.some(materia => materia.Id === materiaConIdMayuscula.Id)) {\r\n                setFormData({\r\n                    ...formData,\r\n                    materias: [...formData.materias, materiaConIdMayuscula],\r\n                });\r\n            } else {\r\n                alert('Materia ya agregada.');\r\n            }\r\n\r\n            setSelectedMateria('');\r\n        }\r\n    };\r\n\r\n    const agregarDocumentacion = () => {\r\n        if (documentacionInput) {\r\n            setFormData({\r\n                ...formData,\r\n                documentacion: [...formData.documentacion, documentacionInput],\r\n            });\r\n            setDocumentacionInput('');\r\n        }\r\n    };\r\n\r\n    const agregarRecurso = () => {\r\n        if (recursoInput.nombre && recursoInput.url) {\r\n            setFormData({\r\n                ...formData,\r\n                recursos: [...formData.recursos, recursoInput],\r\n            });\r\n            setRecursoInput({ nombre: '', url: '' });\r\n        }\r\n    };\r\n\r\n    const handleRecursoChange = (e) => {\r\n        const { name, value } = e.target;\r\n        setRecursoInput({\r\n            ...recursoInput,\r\n            [name]: value,\r\n        });\r\n    };\r\n\r\n    const handleSubmit = async (e) => {\r\n        e.preventDefault();\r\n        try {\r\n            const docRef = await addDoc(collection(db, 'Exam'), {\r\n                ...formData,\r\n            })\r\n\r\n            alert('Documentacion agregada con ID: ' + docRef.id);\r\n            refresExams();\r\n\r\n        } catch (error) {\r\n            alert(\"Error al guardar los datos :\" + error);\r\n            console.log(error);\r\n        }\r\n        closeModal();\r\n    };\r\n\r\n    if (!isOpen) return null;\r\n\r\n    return (\r\n        <div className=\"fixed inset-0 bg-black bg-opacity-50 flex justify-center items-center z-50\">\r\n            <div className=\"bg-white p-6 rounded-lg w-11/12 max-w-full h-9/10 \">\r\n                <p className=\"text-xl font-bold mb-4\">Agregar Examen</p>\r\n                <form onSubmit={handleSubmit} className='h-9/10 overflow-y-auto'>\r\n                    {/* Campos Generales */}\r\n                    <div className=\"grid grid-cols-2 gap-4 mb-4\">\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Nombre</label>\r\n                            <input\r\n                                type=\"text\"\r\n                                name=\"nombre\"\r\n                                value={formData.nombre}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Introduce el nombre\"\r\n                            />\r\n                        </div>\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Área</label>\r\n                            <input\r\n                                type=\"text\"\r\n                                name=\"area\"\r\n                                value={formData.area}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Introduce el área\"\r\n                            />\r\n                        </div>\r\n                        <div className=\"col-span-2\">\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Descripción</label>\r\n                            <input\r\n                                type=\"text\"\r\n                                name=\"descripcion\"\r\n                                value={formData.descripcion}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Introduce la descripción\"\r\n                            />\r\n                        </div>\r\n                    </div>\r\n\r\n                    {/* Materias */}\r\n                    <div className=\"flex mb-4\">\r\n                        <div className=\"flex-1\">\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Materias</label>\r\n                            <select\r\n                                value={selectedMateria}\r\n                                onChange={handleSelectMaterias}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                            >\r\n                                <option value=\"\">Seleccionar materia</option>\r\n                                {materias.map((materia) => (\r\n                                    <option key={materia.id} value={materia.id}>\r\n                                        {materia.nombre}\r\n                                    </option>\r\n                                ))}\r\n                            </select>\r\n                        </div>\r\n\r\n                        {/* Tabla de materias agregadas */}\r\n                        <div className=\"ml-4\" style={{ width: '70%', maxHeight: '150px', overflowY: 'auto' }}>\r\n                            <table className=\"min-w-full border\">\r\n                                <thead>\r\n                                    <tr>\r\n                                        <th className=\"border px-2 py-1\">Materias agregadas</th>\r\n                                    </tr>\r\n                                </thead>\r\n                                <tbody>\r\n                                    {formData.materias.map((materia, index) => (\r\n                                        <tr key={index}>\r\n                                            <td className=\"border px-2 py-1\">{materia.id} - {materia.nombre}</td>\r\n                                            {/* <td className=\"border px-2 py-1\"></td> */}\r\n                                            <td className=\"border px-2 py-1\">\r\n                                                <button\r\n                                                    type=\"button\"\r\n                                                    onClick={() => {\r\n                                                        const nuevasMaterias = formData.materias.filter((_, i) => i !== index);\r\n                                                        setFormData({ ...formData, materias: nuevasMaterias });\r\n                                                    }}\r\n                                                    className=\"text-red-500\"\r\n                                                >\r\n                                                    Eliminar\r\n                                                </button>\r\n                                            </td>\r\n                                        </tr>\r\n                                    ))}\r\n                                </tbody>\r\n                            </table>\r\n                        </div>\r\n                    </div>\r\n\r\n                    {/* Documentación (array) */}\r\n                    <div className=\"flex mb-4\">\r\n                        <div className=\"flex-1\">\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Documentación</label>\r\n                            <input\r\n                                type=\"text\"\r\n                                value={documentacionInput}\r\n                                onChange={(e) => setDocumentacionInput(e.target.value)}\r\n                                className=\"shadow appearance-none border rounded w-full mb-2 py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Agregar documentación\"\r\n                            />\r\n                            <button\r\n                                type=\"button\"\r\n                                className=\"text-blue-500 hover:underline mb-2\"\r\n                                onClick={agregarDocumentacion}\r\n                            >\r\n                                Agregar documento\r\n                            </button>\r\n                        </div>\r\n\r\n                        {/* Tabla de documentación agregada */}\r\n                        <div className=\"ml-4\" style={{ width: '70%', maxHeight: '150px', overflowY: 'auto' }}>\r\n                            <table className=\"min-w-full border\">\r\n                                <thead>\r\n                                    <tr>\r\n                                        <th className=\"border px-2 py-1\">Documentación</th>\r\n                                    </tr>\r\n                                </thead>\r\n                                <tbody>\r\n                                    {formData.documentacion.map((doc, index) => (\r\n                                        <tr key={index}>\r\n                                            <td className=\"border px-2 py-1\">{doc}</td>\r\n                                            <td className=\"border px-2 py-1\">\r\n                                                <button\r\n                                                    type=\"button\"\r\n                                                    onClick={() => {\r\n                                                        const nuevaDocumentacion = formData.documentacion.filter((_, i) => i !== index);\r\n                                                        setFormData({ ...formData, documentacion: nuevaDocumentacion });\r\n                                                    }}\r\n                                                    className=\"text-red-500\"\r\n                                                >\r\n                                                    Eliminar\r\n                                                </button>\r\n                                            </td>\r\n                                        </tr>\r\n                                    ))}\r\n                                </tbody>\r\n                            </table>\r\n                        </div>\r\n                    </div>\r\n\r\n                    {/* Recursos (array) */}\r\n                    <div className=\"flex mb-4\">\r\n                        <div className=\"flex-1\">\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Recursos</label>\r\n                            <div className=\"mb-2\">\r\n                                <label className=\"block text-gray-700 text-sm font-bold mb-1\">Nombre</label>\r\n                                <input\r\n                                    type=\"text\"\r\n                                    name=\"nombre\"\r\n                                    value={recursoInput.nombre}\r\n                                    onChange={handleRecursoChange}\r\n                                    className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                    placeholder=\"Nombre del recurso\"\r\n                                />\r\n                            </div>\r\n                            <div className=\"mb-2\">\r\n                                <label className=\"block text-gray-700 text-sm font-bold mb-1\">URL</label>\r\n                                <input\r\n                                    type=\"text\"\r\n                                    name=\"url\"\r\n                                    value={recursoInput.url}\r\n                                    onChange={handleRecursoChange}\r\n                                    className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                    placeholder=\"URL del recurso\"\r\n                                />\r\n                            </div>\r\n                            <button\r\n                                type=\"button\"\r\n                                className=\"text-blue-500 hover:underline\"\r\n                                onClick={agregarRecurso}\r\n                            >\r\n                                Agregar recurso\r\n                            </button>\r\n                        </div>\r\n\r\n                        {/* Tabla de recursos agregados */}\r\n                        <div className=\"ml-4\" style={{ width: '70%', maxHeight: '150px', overflowY: 'auto' }}>\r\n                            <table className=\"min-w-full border\">\r\n                                <thead>\r\n                                    <tr>\r\n                                        <th className=\"border px-2 py-1\">Nombre</th>\r\n                                        <th className=\"border px-2 py-1\">URL</th>\r\n                                    </tr>\r\n                                </thead>\r\n                                <tbody>\r\n                                    {formData.recursos.map((recurso, index) => (\r\n                                        <tr key={index}>\r\n                                            <td className=\"border px-2 py-1\">{recurso.nombre}</td>\r\n                                            <td className=\"border px-2 py-1\">{recurso.url}</td>\r\n                                            <td className=\"border px-2 py-1\">\r\n                                                <button\r\n                                                    type=\"button\"\r\n                                                    onClick={() => {\r\n                                                        const nuevosRecursos = formData.recursos.filter((_, i) => i !== index);\r\n                                                        setFormData({ ...formData, recursos: nuevosRecursos });\r\n                                                    }}\r\n                                                    className=\"text-red-500\"\r\n                                                >\r\n                                                    Eliminar\r\n                                                </button>\r\n                                            </td>\r\n                                        </tr>\r\n                                    ))}\r\n                                </tbody>\r\n                            </table>\r\n                        </div>\r\n                    </div>\r\n\r\n                    {/* Estado y Fecha */}\r\n                    <div className=\"grid grid-cols-2 gap-4 mb-4\">\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Estado</label>\r\n                            <input\r\n                                type=\"text\"\r\n                                name=\"estado\"\r\n                                value={formData.estado}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Introduce el estado\"\r\n                            />\r\n                        </div>\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Fecha</label>\r\n                            <input\r\n                                type=\"date\"\r\n                                name=\"fecha\"\r\n                                value={formData.fecha}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                            />\r\n                        </div>\r\n                    </div>\r\n\r\n                    {/* Checkbox para visible */}\r\n                    <div className=\"flex items-center mb-4\">\r\n                        <input\r\n                            type=\"checkbox\"\r\n                            name=\"visible\"\r\n                            checked={formData.visible}\r\n                            onChange={() => setFormData({ ...formData, visible: !formData.visible })}\r\n                            className=\"mr-2\"\r\n                        />\r\n                        <label className=\"text-gray-700 text-sm\">Visible</label>\r\n                    </div>\r\n\r\n                    <div className=\"flex justify-end\">\r\n                        <button\r\n                            type=\"button\"\r\n                            className=\"mr-2 bg-gray-400 text-white py-2 px-4 rounded\"\r\n                            onClick={closeModal}\r\n                        >\r\n                            Cancelar\r\n                        </button>\r\n                        <button\r\n                            type=\"submit\"\r\n                            className=\"bg-blue-500 text-white py-2 px-4 rounded hover:bg-blue-600\"\r\n                        >\r\n                            Guardar\r\n                        </button>\r\n                    </div>\r\n                </form>\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n","import { doc, updateDoc } from 'firebase/firestore';\r\nimport React, { useEffect, useState } from 'react'\r\nimport { db, storage } from '../../../../config/firebase';\r\nimport { getDownloadURL, ref, uploadBytes } from 'firebase/storage';\r\n\r\nexport const ModalUpdateGalery = ({ image, isOpen, closeModal, refresImages }) => {\r\n\r\n    const [title, setTitle] = useState('');\r\n    const [file, setFile] = useState(null);\r\n\r\n    useEffect(() => {\r\n        if (image) {\r\n            setTitle(image.data.titulo);\r\n            setFile(image.data.url);\r\n        }\r\n    }, [image]);\r\n\r\n    const handleFileChange = (e) => {\r\n        setFile(e.target.files[0]);\r\n    };\r\n\r\n    const handleSubmit = async (e) => {\r\n        e.preventDefault();\r\n        const imageId = image.id;\r\n    \r\n        // Valida que se haya ingresado un título o seleccionado una imagen\r\n        if (!title && !file) {\r\n            alert(\"Por favor ingresa un título o selecciona una fotografía.\");\r\n            return;\r\n        }\r\n    \r\n        try {\r\n            // Inicializa un objeto para almacenar los campos que se actualizarán\r\n            const updates = {};\r\n    \r\n            // Agrega el título a los campos a actualizar si fue modificado\r\n            if (title && title !== image.titulo) {\r\n                updates.titulo = title;\r\n            }\r\n    \r\n            // Si se selecciona una nueva foto, súbela a Storage y agrega la URL a los campos a actualizar\r\n            if (file && file.name) {\r\n                const photoRef = ref(storage, `galeria/${file.name}-${Date.now()}`);\r\n                await uploadBytes(photoRef, file);\r\n                const photoURL = await getDownloadURL(photoRef);\r\n                updates.url = photoURL;\r\n            }\r\n    \r\n            // Verifica si hay algo que actualizar antes de llamar a Firestore\r\n            if (Object.keys(updates).length > 0) {\r\n                const docRef = doc(db, 'galeria', imageId);\r\n                await updateDoc(docRef, updates);\r\n                alert(\"Datos de la fotografía actualizados correctamente.\");\r\n            } else {\r\n                alert(\"No se detectaron cambios para actualizar.\");\r\n            }\r\n    \r\n            closeModal();\r\n    \r\n            // Reinicia el formulario\r\n            setTitle('');\r\n            setFile(null);\r\n            refresImages();\r\n        } catch (error) {\r\n            console.error(\"Error al actualizar la fotografía:\", error);\r\n            alert(\"Error al actualizar la fotografía.\");\r\n        }\r\n    };\r\n    \r\n\r\n    if (!isOpen) return null;\r\n\r\n    return (\r\n        <div className=\"fixed inset-0 bg-black bg-opacity-50 flex justify-center items-center z-50\">\r\n            <div className=\"bg-white p-6 rounded-lg w-2/4 max-w-full h-9/10\">\r\n                <p className=\"text-xl font-bold mb-4\">Editar Fotografía</p>\r\n\r\n                <form onSubmit={handleSubmit} className=\"h-9/10 overflow-y-auto\">\r\n                    {/* Campo para el Título */}\r\n                    <div className=\"mb-4\">\r\n                        <label htmlFor=\"title\" className=\"block text-gray-700 font-semibold mb-2\">Título de la Fotografía</label>\r\n                        <input\r\n                            type=\"text\"\r\n                            id=\"title\"\r\n                            name=\"title\"\r\n                            value={title}                          // Valor inicial del título\r\n                            onChange={(e) => setTitle(e.target.value)}\r\n                            className=\"w-full px-3 py-2 border rounded-lg focus:outline-none focus:border-blue-500\"\r\n                            placeholder=\"Escribe un título\"\r\n                            required\r\n                        />\r\n                    </div>\r\n\r\n                    {/* Campo para la Fotografía */}\r\n                    <div className=\"mb-4\">\r\n                        <label htmlFor=\"photo\" className=\"block text-gray-700 font-semibold mb-2\">Selecciona una Fotografía</label>\r\n                        <input\r\n                            type=\"file\"\r\n                            id=\"photo\"\r\n                            name=\"photo\"\r\n                            onChange={handleFileChange}\r\n                            className=\"w-full px-3 py-2 border rounded-lg focus:outline-none focus:border-blue-500\"\r\n                            accept=\"image/*\"\r\n                        />\r\n                        {file && (\r\n                            <img\r\n                                src={typeof file === 'string' ? file : URL.createObjectURL(file)}\r\n                                alt=\"Preview\"\r\n                                className=\"mt-4 w-full h-64 object-cover\"\r\n                            />\r\n                        )}\r\n                    </div>\r\n\r\n                    {/* Botones de Cancelar y Guardar */}\r\n                    <div className=\"flex justify-end\">\r\n                        <button\r\n                            type=\"button\"\r\n                            className=\"mr-2 bg-gray-400 text-white py-2 px-4 rounded\"\r\n                            onClick={closeModal}\r\n                        >\r\n                            Cancelar\r\n                        </button>\r\n                        <button\r\n                            type=\"submit\"\r\n                            className=\"bg-blue-500 text-white py-2 px-4 rounded hover:bg-blue-600\"\r\n                        >\r\n                            Guardar\r\n                        </button>\r\n                    </div>\r\n                </form>\r\n            </div>\r\n        </div>\r\n    )\r\n}","import React, { useState } from 'react'\r\nimport { ModalUpdateGalery } from '../update-galery-modal/ModalUpdateGalery';\r\nimport { deleteObject, ref } from 'firebase/storage';\r\nimport { db, storage } from '../../../../config/firebase';\r\nimport { deleteDoc, doc } from 'firebase/firestore';\r\n\r\nexport const Galery = ({ images, refresImages }) => {\r\n\r\n    const [isDeleteModalOpen, setDeleteModalOpen] = useState(false);\r\n    const [selectedImage, setSelectedImage] = useState(null);\r\n    const [isEditModalOpen, setEditModalOpen] = useState(false);\r\n\r\n    const openDeleteModal = (image) => {\r\n        setSelectedImage(image);\r\n        setDeleteModalOpen(true);\r\n    };\r\n\r\n    const openEditModal = (image) => {\r\n        setSelectedImage(image);\r\n        setEditModalOpen(true);\r\n    };\r\n\r\n    const closeEditModal = () => {\r\n        setEditModalOpen(false);\r\n        setSelectedImage(null);\r\n    };\r\n\r\n    const handleSave = (updatedImage) => {\r\n        //onUpdateImage(updatedImage); // Actualizar la imagen en la galería principal\r\n        closeEditModal();\r\n    };\r\n\r\n    const closeDeleteModal = () => {\r\n        setDeleteModalOpen(false);\r\n        setSelectedImage(null);\r\n    };\r\n\r\n    const handleDelete = async() => {\r\n        try {\r\n            // Referencia de la imagen en Firebase Storage\r\n            const imageRef = ref(storage, selectedImage.data.url);\r\n            \r\n            // Eliminar la imagen de Firebase Storage\r\n            await deleteObject(imageRef);\r\n            \r\n            // Eliminar el documento de Firestore\r\n            const docRef = doc(db, 'galeria', selectedImage.id);\r\n            await deleteDoc(docRef);\r\n    \r\n            alert(\"Imagen eliminada correctamente.\");\r\n            closeDeleteModal();\r\n            refresImages();\r\n        } catch (error) {\r\n            console.error(\"Error al eliminar la imagen:\", error);\r\n            alert(\"Error al eliminar la imagen.\");\r\n        }\r\n        closeDeleteModal();\r\n    };\r\n\r\n\r\n    return (\r\n        <>\r\n            <div className=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4 p-4\">\r\n                {images.map((img, index) => (\r\n                    <div key={index} className=\"flex flex-col items-center bg-white rounded-lg shadow-md overflow-hidden\">\r\n                        <img src={img.data.url} alt={img.data.alt} className=\"w-full h-48 object-cover\" />\r\n                        <p className=\"text-lg font-semibold text-center py-2\">{img.data.titulo}</p>\r\n                        <div className=\"flex w-full mt-4 justify-center\">\r\n                            <button\r\n                                className=\"bg-primary text-white p-2 rounded-full px-4 ml-4 cursor-pointer\"\r\n                                onClick={() => openEditModal(img)}\r\n                            >\r\n                                Editar\r\n                            </button>\r\n                            <button\r\n                                className=\"bg-primary text-white p-2 rounded-full px-4 ml-4 cursor-pointer\"\r\n                                onClick={() => openDeleteModal(img)}\r\n                            >\r\n                                Eliminar\r\n                            </button>\r\n                        </div>\r\n                    </div>\r\n                ))}\r\n            </div>\r\n\r\n            {isDeleteModalOpen && (\r\n                <div className=\"fixed inset-0 bg-black bg-opacity-50 flex justify-center items-center z-50\">\r\n                    <div className=\"bg-white p-6 rounded-lg w-11/12 max-w-sm text-center\">\r\n                        <h2 className=\"text-xl font-bold mb-4\">¿Está seguro que quiere eliminar esta imagen?</h2>\r\n                        <div className=\"flex justify-center mt-4\">\r\n                            <button\r\n                                onClick={handleDelete}\r\n                                className=\"bg-red-500 text-white py-2 px-4 rounded mr-2 hover:bg-red-600\"\r\n                            >\r\n                                Sí\r\n                            </button>\r\n                            <button\r\n                                onClick={closeDeleteModal}\r\n                                className=\"bg-gray-400 text-white py-2 px-4 rounded hover:bg-gray-500\"\r\n                            >\r\n                                No\r\n                            </button>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            )}\r\n\r\n            <ModalUpdateGalery\r\n                image={selectedImage}\r\n                isOpen={isEditModalOpen}\r\n                closeModal={closeEditModal}\r\n                onSave={handleSave}\r\n                refresImages={refresImages}\r\n            />\r\n        </>\r\n    )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { db, storage } from '../../../../config/firebase';\r\nimport { getDownloadURL, ref, uploadBytes } from 'firebase/storage';\r\nimport { addDoc, collection } from 'firebase/firestore';\r\n\r\nexport const ModalAddGalery = ({ isOpen, closeModal, refresImages }) => {\r\n    const [title, setTitle] = useState('');\r\n    const [photo, setPhoto] = useState(null);\r\n    const [isUploading, setIsUploading] = useState(false);\r\n\r\n    if (!isOpen) return null;\r\n\r\n    const handlePhotoChange = (e) => {\r\n        setPhoto(e.target.files[0]);\r\n    };\r\n\r\n    const handleSubmit = async (e) => {\r\n        e.preventDefault();\r\n\r\n        if (!photo) {\r\n            alert(\"Por favor selecciona una fotografía.\");\r\n            return;\r\n        }\r\n\r\n        setIsUploading(true);\r\n\r\n        try {\r\n            // Subir la imagen a Firebase Storage\r\n            const photoRef = ref(storage, `galeria/${photo.name}`);\r\n            await uploadBytes(photoRef, photo);\r\n\r\n            // Obtener la URL de la imagen cargada\r\n            const photoURL = await getDownloadURL(photoRef);\r\n\r\n            // Guardar el título y la URL de la imagen en Firestore\r\n            await addDoc(collection(db, 'galeria'), {\r\n                titulo: title,\r\n                url: photoURL\r\n            });\r\n\r\n            alert(\"Fotografía agregada correctamente.\");\r\n            closeModal();\r\n\r\n            // Reinicia el formulario\r\n            setTitle('');\r\n            setPhoto(null);\r\n            refresImages();\r\n        } catch (error) {\r\n            console.error(\"Error al guardar la fotografía:\", error);\r\n            alert(\"Error al guardar la fotografía.\");\r\n        } finally {\r\n            setIsUploading(false);\r\n        }\r\n    };\r\n\r\n    return (\r\n        <div className=\"fixed inset-0 bg-black bg-opacity-50 flex justify-center items-center z-50\">\r\n            <div className=\"bg-white p-6 rounded-lg w-2/4 max-w-full h-2/4 \">\r\n                <p className=\"text-xl font-bold mb-4\">Agregar Fotografía</p>\r\n                <form className=\"h-9/10 overflow-y-auto\" onSubmit={handleSubmit}>\r\n                    {/* Campo para el Título */}\r\n                    <div className=\"mb-4\">\r\n                        <label htmlFor=\"title\" className=\"block text-gray-700 font-semibold mb-2\">Título de la Fotografía</label>\r\n                        <input\r\n                            type=\"text\"\r\n                            id=\"title\"\r\n                            name=\"title\"\r\n                            className=\"w-full px-3 py-2 border rounded-lg focus:outline-none focus:border-blue-500\"\r\n                            placeholder=\"Escribe un título\"\r\n                            required\r\n                            value={title}\r\n                            onChange={(e) => setTitle(e.target.value)}\r\n                        />\r\n                    </div>\r\n\r\n                    {/* Campo para la Fotografía */}\r\n                    <div className=\"mb-4\">\r\n                        <label htmlFor=\"photo\" className=\"block text-gray-700 font-semibold mb-2\">Selecciona una Fotografía</label>\r\n                        <input\r\n                            type=\"file\"\r\n                            id=\"photo\"\r\n                            name=\"photo\"\r\n                            className=\"w-full px-3 py-2 border rounded-lg focus:outline-none focus:border-blue-500\"\r\n                            accept=\"image/*\"\r\n                            onChange={handlePhotoChange}\r\n                            required\r\n                        />\r\n                    </div>\r\n\r\n                    {/* Botones de Cancelar y Guardar */}\r\n                    <div className=\"flex justify-end\">\r\n                        <button\r\n                            type=\"button\"\r\n                            className=\"mr-2 bg-gray-400 text-white py-2 px-4 rounded\"\r\n                            onClick={closeModal}\r\n                        >\r\n                            Cancelar\r\n                        </button>\r\n                        <button\r\n                            type=\"submit\"\r\n                            className=\"bg-blue-500 text-white py-2 px-4 rounded hover:bg-blue-600\"\r\n                            disabled={isUploading}\r\n                        >\r\n                            {isUploading ? \"Guardando...\" : \"Guardar\"}\r\n                        </button>\r\n                    </div>\r\n                </form>\r\n            </div>\r\n        </div>\r\n    );\r\n};","import React from 'react'\r\n\r\nexport const BenefitItem = ({ benefit }) => {\r\n  return (\r\n    <li className=\"flex items-center justify-between text-sm\">\r\n      <span>{benefit.descripcion}</span>\r\n      {benefit.disponible === 1 ? (\r\n        <p>Si</p>\r\n      ) : (\r\n        <p className='px-3'>No</p>\r\n      )}\r\n    </li>\r\n  )\r\n}\r\n","import { doc, updateDoc } from 'firebase/firestore';\r\nimport React, { useState } from 'react'\r\nimport { db } from '../../../../config/firebase';\r\n\r\nexport const ModalUpdatePlan = ({ isOpen, closeModal, plan, idPlan, refresPlans }) => {\r\n\r\n    const [formData, setFormData] = useState({\r\n        nombre: plan.nombre,\r\n        precio: plan.precio,\r\n        suscripcion: plan.suscripcion,\r\n        descripcion: plan.descripcion,\r\n        beneficios: {\r\n            calificacionInmediata: { descripcion: plan.calificacionInmediata?.descripcion || \"\", disponible: plan.calificacionInmediata?.disponible ?? 0 },\r\n            examenCronometrado: { descripcion: plan.examenCronometrado?.descripcion || \"\", disponible: plan.examenCronometrado?.disponible ?? 0 },\r\n            graficosComparativos: { descripcion: plan.graficosComparativos?.descripcion || \"\", disponible: plan.graficosComparativos?.disponible ?? 0 },\r\n            modificarFechaExamenFinal: { descripcion: plan.modificarFechaExamenFinal?.descripcion || \"\", disponible: plan.modificarFechaExamenFinal?.disponible ?? 0 },\r\n            modificarMateriasExamen: { descripcion: plan.modificarMateriasExamen?.descripcion || \"\", disponible: plan.modificarMateriasExamen?.disponible ?? 0 },\r\n            revision: { descripcion: plan.revision?.descripcion || \"\", disponible: plan.revision?.disponible ?? 0 }\r\n        },\r\n\r\n        pruebasPracticas: {\r\n            cantidadPreguntas: plan.pruebasPracticas.cantidadPreguntas,\r\n            cantidadPruebas: plan.pruebasPracticas.cantidadPruebas,\r\n        },\r\n        pruebasFinales: {\r\n            cantidadPreguntas: plan.pruebasFinales.cantidadPreguntas,\r\n            cantidadPruebas: plan.pruebasFinales.cantidadPruebas,\r\n        },\r\n\r\n        totalPreguntas: plan.totalPreguntas,\r\n    });\r\n\r\n    const handleInputChange = (e) => {\r\n        const { name, value } = e.target;\r\n        setFormData({\r\n            ...formData,\r\n            [name]: value,\r\n        });\r\n    };\r\n\r\n    const handleSubmit = async (e) => {\r\n        e.preventDefault();\r\n\r\n        const planId = idPlan\r\n\r\n        try {\r\n\r\n            const beneficiosActualizados = Object.keys(formData.beneficios).reduce((acc, key) => {\r\n                acc[key] = {\r\n                    descripcion: formData.beneficios[key].descripcion || plan.beneficios[key].descripcion,\r\n                    disponible: formData.beneficios[key].disponible,\r\n                };\r\n                return acc;\r\n            }, {});    \r\n\r\n            const docRef = doc(db, 'planes', planId);\r\n            await updateDoc(docRef, {\r\n                ...formData,\r\n                beneficios: beneficiosActualizados\r\n\r\n            });\r\n            alert('Plan: ' + planId + ' actualizado.');\r\n            refresPlans();\r\n        } catch (error) {\r\n            alert(\"Error al actualizar los datos: \" + error);\r\n            console.log(error);\r\n        }\r\n        closeModal();\r\n    };\r\n\r\n    if (!isOpen) return null;\r\n    return (\r\n        <div className=\"fixed inset-0 bg-black bg-opacity-50 flex justify-center items-center z-50\">\r\n            <div className=\"bg-white p-6 rounded-lg w-11/12 max-w-full h-9/10 overflow-y-auto\">\r\n                <h2 className=\"text-xl font-bold mb-4\">\r\n                    {plan ? 'Editar Plan' : 'Agregar Plan'}\r\n                </h2>\r\n                <form onSubmit={handleSubmit} className=\"h-full\">\r\n                    <div className=\"grid grid-cols-2 gap-4 mb-4\">\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Nombre del Plan</label>\r\n                            <input\r\n                                type=\"text\"\r\n                                name=\"nombre\"\r\n                                value={formData.nombre}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Introduce el nombre del plan\"\r\n                            />\r\n                        </div>\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Precio</label>\r\n                            <input\r\n                                type=\"number\"\r\n                                name=\"precio\"\r\n                                value={formData.precio}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Introduce el precio\"\r\n                            />\r\n                        </div>\r\n                        <div className=\"col-span-2\">\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Suscripción</label>\r\n                            <input\r\n                                type=\"text\"\r\n                                name=\"suscripcion\"\r\n                                value={formData.suscripcion}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Introduce la suscripción\"\r\n                            />\r\n                        </div>\r\n                    </div>\r\n\r\n                    {/* Beneficios */}\r\n                    <h3 className=\"font-bold mb-2\">Beneficios</h3>\r\n                    <div className=\"grid grid-cols-2 gap-4 mb-4\">\r\n                    {[\r\n                        { name: 'calificacionInmediata', label: 'Calificación Inmediata' },\r\n                        { name: 'examenCronometrado', label: 'Examen Cronometrado' },\r\n                        { name: 'graficosComparativos', label: 'Gráficos Comparativos' },\r\n                        { name: 'modificarFechaExamenFinal', label: 'Modificar Fecha Examen Final' },\r\n                        { name: 'modificarMateriasExamen', label: 'Modificar Materias Examen' },\r\n                        { name: 'revision', label: 'Revisión' },\r\n                    ].map((beneficio) => (\r\n                        <div key={beneficio.name} className=\"flex items-center\">\r\n                            <label className=\"text-gray-700 text-sm mr-2\">{beneficio.label}</label>\r\n                            <select\r\n                                value={formData.beneficios[beneficio.name]?.disponible || 0}\r\n                                onChange={(e) =>\r\n                                    setFormData((prevFormData) => ({\r\n                                        ...prevFormData,\r\n                                        beneficios: {\r\n                                            ...prevFormData.beneficios,\r\n                                            [beneficio.name]: {\r\n                                                ...prevFormData.beneficios[beneficio.name],\r\n                                                disponible: parseInt(e.target.value)\r\n                                            }\r\n                                        }\r\n                                    }))\r\n                                }\r\n                                className=\"border rounded px-2 py-1 text-sm\"\r\n                            >\r\n                                <option value={0}>No Disponible</option>\r\n                                <option value={1}>Disponible</option>\r\n                                <option value={2}>Parcialmente Disponible</option>\r\n                            </select>\r\n                        </div>\r\n                    ))}\r\n                </div>\r\n\r\n                    {/* Pruebas */}\r\n                    <h3 className=\"font-bold mb-2\">Pruebas</h3>\r\n                    <div className=\"grid grid-cols-2 gap-4 mb-4\">\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Pruebas Prácticas</label>\r\n                            <input\r\n                                type=\"number\"\r\n                                name=\"pruebasPracticas.cantidadPreguntas\"\r\n                                value={formData.pruebasPracticas.cantidadPreguntas}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Cantidad de preguntas\"\r\n                            />\r\n                        </div>\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Cantidad Pruebas Prácticas</label>\r\n                            <input\r\n                                type=\"number\"\r\n                                name=\"pruebasPracticas.cantidadPruebas\"\r\n                                value={formData.pruebasPracticas.cantidadPruebas}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Cantidad de pruebas\"\r\n                            />\r\n                        </div>\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Pruebas Finales</label>\r\n                            <input\r\n                                type=\"number\"\r\n                                name=\"pruebasFinales.cantidadPreguntas\"\r\n                                value={formData.pruebasFinales.cantidadPreguntas}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Cantidad de preguntas\"\r\n                            />\r\n                        </div>\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Cantidad Pruebas Finales</label>\r\n                            <input\r\n                                type=\"number\"\r\n                                name=\"pruebasFinales.cantidadPruebas\"\r\n                                value={formData.pruebasFinales.cantidadPruebas}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Cantidad de pruebas\"\r\n                            />\r\n                        </div>\r\n                    </div>\r\n\r\n                    {/* Total de Preguntas */}\r\n                    <div className=\"grid grid-cols-2 gap-4 mb-4\">\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Total de Preguntas</label>\r\n                            <input\r\n                                type=\"number\"\r\n                                name=\"totalPreguntas\"\r\n                                value={formData.totalPreguntas}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Total de preguntas\"\r\n                            />\r\n                        </div>\r\n                        <div>\r\n                            <label className=\"block text-gray-700 text-sm font-bold mb-2\">Descripción</label>\r\n                            <input\r\n                                type=\"text\"\r\n                                name=\"descripcion\"\r\n                                value={formData.descripcion}\r\n                                onChange={handleInputChange}\r\n                                className=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\r\n                                placeholder=\"Introduce una descripción\"\r\n                            />\r\n                        </div>\r\n                    </div>\r\n\r\n                    {/* Botones */}\r\n                    <div className=\"flex justify-end mt-4\">\r\n                        <button\r\n                            type=\"button\"\r\n                            onClick={closeModal}\r\n                            className=\"bg-gray-500 text-white py-2 px-4 rounded mr-2\"\r\n                        >\r\n                            Cancelar\r\n                        </button>\r\n                        <button type=\"submit\" className=\"bg-blue-500 text-white py-2 px-4 rounded\">\r\n                            {plan ? 'Actualizar' : 'Crear'}\r\n                        </button>\r\n                    </div>\r\n                </form>\r\n            </div>\r\n        </div>\r\n\r\n    )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { BenefitItem } from '../benefit-item/BenefitItem';\r\nimport { BiPencil } from 'react-icons/bi';\r\nimport { ModalUpdatePlan } from '../../update-plans-modal/ModalUpdatePlan';\r\n\r\nexport const PrecingCard = ({ plan, refresPlans }) => {\r\n  const [isModalOpen, setIsModalOpen] = useState(false);\r\n  const openModal = () => setIsModalOpen(true);\r\n  const closeModal = () => setIsModalOpen(false);\r\n \r\n  return (\r\n    <>\r\n      <ModalUpdatePlan\r\n        isOpen={isModalOpen}\r\n        closeModal={closeModal}\r\n        plan={plan.data}\r\n        idPlan={plan.id}\r\n        refresPlans={refresPlans}\r\n      />\r\n      <div className=\"flex flex-col justify-between bg-white rounded-lg shadow-lg overflow-hidden w-full max-w-sm\">\r\n        <div className=\"bg-red-600 p-4 text-white\">\r\n          <h2 className=\"text-xl font-bold\">{plan.data.nombre}</h2>\r\n          <p className=\"text-3xl font-bold mt-2\">Bs. {plan.data.precio}</p>\r\n        </div>\r\n        <div className=\"p-4 text-gray-700 text-sm\">\r\n          <p className=\"mb-4\">{plan.data.descripcion}</p>\r\n          <p className=\"mb-2\"><strong>Suscripción:</strong> {plan.data.suscripcion}</p>\r\n          <ul className=\"mb-4 space-y-1\">\r\n            <li>Pruebas Prácticas: {plan.data.pruebasPracticas.cantidadPruebas} prueba/s - {plan.data.pruebasPracticas.cantidadPreguntas} preguntas</li>\r\n            <li>Pruebas Finales: {plan.data.pruebasFinales.cantidadPruebas} prueba/s - {plan.data.pruebasFinales.cantidadPreguntas} preguntas</li>\r\n            <li>Total de Preguntas: {plan.data.totalPreguntas}</li>\r\n          </ul>\r\n          <p className=\"font-bold mb-2\">Beneficios:</p>\r\n          <ul className=\"space-y-1\">\r\n            {Object.values(plan.data.beneficios).sort((a, b) => a.descripcion.localeCompare(b.descripcion))\r\n            .map((benefit, index) => (\r\n              <BenefitItem key={index} benefit={benefit} />\r\n            ))}\r\n          </ul>\r\n        </div>\r\n        <div className=\"p-4 bg-gray-700\">\r\n          <button className=\"w-full bg-red-600 text-white py-2 px-4 rounded hover:bg-red-700 transition duration-300 flex items-center justify-center\" onClick={openModal}>\r\n            <BiPencil />\r\n            Editar\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </>\r\n  );\r\n};\r\n\r\n","export default __webpack_public_path__ + \"static/media/teacher.f766d64e.webp\";","import React, { useEffect, useState } from 'react';\r\nimport { db } from '../../config/firebase';\r\nimport dbRef from '../../config/dbRef';\r\nimport { collection, query, where, getDocs } from 'firebase/firestore';\r\nimport { Link } from \"react-router-dom\";\r\nimport image from '../../assets/images/teacher.webp'\r\nimport Footer from '../components/footer';\r\nimport {FiClock} from \"react-icons/fi\";\r\nimport {FiClipboard} from \"react-icons/fi\";\r\nimport {AiOutlineFileText} from \"react-icons/ai\";\r\nimport {CgCheck} from \"react-icons/cg\";\r\nimport {BiX} from \"react-icons/bi\";\r\nimport {IoMdRadioButtonOff, IoMdRadioButtonOn, IoMdCheckmark} from \"react-icons/io\";\r\n\r\nconst Teacher = () => {\r\n\r\n    const [data, setData] = useState([]);\r\n\r\n    useEffect(() => {\r\n      const fetchData = async () => {\r\n          try {\r\n              const q = query(\r\n                  collection(db, dbRef.exam),\r\n                  where(\"area\", \"==\", \"teacher\") // Filtro con where\r\n              );\r\n              // agregar un id a cada pregunta\r\n              const response = await getDocs(q);\r\n              const dataTeacher = response.docs.map(doc => {\r\n                // agregar un id a cada pregunta\r\n                return { ...doc.data(), id: doc.id };\r\n              }\r\n            ); // Transformación de datos\r\n              setData(dataTeacher); // Establece el estado con los datos filtrados\r\n              console.log(dataTeacher);\r\n          } catch (error) {\r\n              console.error(\"Error fetching data:\", error);\r\n          }\r\n      };\r\n      fetchData();\r\n  }, []);\r\n\r\n    return (\r\n        <>\r\n          <div className=\"flex items-center justify-center flex-row  bg-gray-700 px-20 sm:px-4 md:px-32 py-24 sm:py-24 md:py-8 lg:py-0 lg:px-32\">\r\n            <div className='w-1/2 sm:w-full lg:w-1/2'>\r\n                <h1 className=\"text-primary text-4xl sm:text-center md:text-left lg:text-left\" >\r\n                    Apriori te prepara para la Escuela Superior de Formación de Maestros.</h1>\r\n                <p className=\"font-medium text-2xl leading-10 my-5 w-3/4 text-white sm:text-base md:text-xl lg:text-2xl text-left sm:text-center lg:text-left sm:w-full lg:w-3/4\">\r\n                    Ahora, los futuros maestros pueden contar con AprioriBo para prepararse para el examen de ingreso a las ESFM. \r\n                </p>\r\n                <p className=\"font-medium text-2xl leading-10 my-5 w-3/4 text-white sm:text-base md:text-xl lg:text-2xl text-left sm:text-center lg:text-left sm:w-full lg:w-3/4\">\r\n                ¡Únete a nuestra comunidad de aprendizaje y comienza a alcanzar tus metas!\r\n                </p>\r\n                <a href=\"#plans\" className=\"bg-primary text-white  px-4 py-2  mx-auto rounded-md mt-4 inline-block hover:bg-primary-dark hover:text-white\">Comienza Ahora</a>\r\n            </div>\r\n            <img src={image } alt=\"Teacher\" className=\"w-1/2 h-full object-contain mt-24 sm:w-0 lg:w-1/2\" />\r\n          </div>\r\n          <div className=\"p-32 items-center bg-fondo sm:p-5 md:p-8 lg:p-32\">\r\n              <h2 className=\"text-3xl font-semibold text-center text-white\">Simulacros</h2>\r\n              <div className=\"flex justify-center items-center m-16 flex-wrap sm:m-4 lg:m-8\">\r\n                  {data.map((item, index) => (\r\n                      <Card key={index} data={item} />\r\n                  ))}\r\n              </div>\r\n          </div>\r\n          <p className=\"text-center text-white bg-primary py-4 font-700 text-2xl\">Tu futuro como maestro comienza aquí </p>\r\n          <div id='plans' className=\"bg-basic p-72 sm:p-2 lg:p-16 md:p-8 flex lg:flex-row flex-row sm:flex-col justify-center items-center\">\r\n              \r\n            <div className=\"bg-basic rounded flex flex-col  justify-center items-center w-3/5 sm:w-full lg:w-3/4 p-24 sm:p-4 sm:py-16 lg:p-8\">\r\n              <h2 className=\"text-3xl font-semibold text-center text-gray-700\">\r\n                <span className=\"text-primary\">¿</span> \r\n                Por qué suscribirme a  \r\n                <span className=\"text-primary\"> AprioriBo?</span> \r\n              </h2>\r\n              <p className=\"font-medium text-2xl leading-10 my-5 w-3/4 text-gray-700 sm:text-base md:text-xl lg:text-2xl text-left sm:text-center lg:text-left sm:w-full lg:w-3/4\">\r\n              Apriori es la plataforma donde podrás simular tu examen real. Familiarízate con las pruebas. Gestiona mejor tu tiempo y reduce el estrés. \r\n              <span className=\"text-primary ml-2\">\r\n                 ¡Suscríbete ahora y comienza a prepararte!\r\n              </span>\r\n              </p>\r\n            </div>\r\n            <div className=\"w-2/5 sm:w-full lg:w-2/5\">\r\n              <div className=\"bg-gray-100 rounded-xl m-24 sm:m-8  flex flex-col justify-center items-center border-2 border-primary \">\r\n                <div className=\"rounded-xl w-5/6 flex flex-col justify-center items-center border-2 border-primary bg-primary text-white font-700 text-2xl px-4 py-2 -mt-10\">\t\r\n                  Suscripción\r\n                  <p className=\"text-3xl font-bold\">Bs. <span>50</span></p>\r\n                </div>\r\n                <div className=\"flex flex-col justify-start items-start mx-4 mt-4 mb-8\">\r\n                  <p className=\"font-bold text-primary text-left text-lg sm:text-base md:text-lg flex items-start mr-2\"><FiClipboard className=\"mr-2 text-primary\"/>Total de Intentos: 10</p>\r\n                  <p className=\"font-regular text-left text-md sm:text-base md:text-lg  ml-3\">Más de 40 preguntas en cada examen</p>\r\n                  <p className=\"font-bold text-primary text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-4\"><AiOutlineFileText className=\"mr-2 text-primary\"/>Total de Preguntas: </p>\r\n                  <p className=\"font-regular text-left text-lg sm:text-base md:text-lg ml-3\">Más de 500 preguntas</p>\r\n                  <p className=\"font-bold text-primary text-center text-xl flex items-center mr-2 mt-4 mx-4\">Beneficios:</p>\r\n                  <ol  className=\"mx-4\">\r\n                    <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n                      <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Examen cronometrado. </p>\r\n                    </li>\r\n                    <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n                      <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Calificacion inmediata. </p>\r\n                    </li>\r\n                    <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n                      <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Revisión.</p>\r\n                    </li>\r\n                    <li className=\"font-regular text-left text-lg flex items-start mr-2\">\r\n                      <p className={`font-regular text-left text-lg sm:text-base md:text-lg flex items-start mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Gráficos comparativos.</p>\r\n                    </li>\r\n                    <li className=\"font-regular text-left text-lg flex items-center mr-2\">\r\n                      <p className={`font-regular text-lwft text-lg sm:text-base md:text-lg flex items-left mr-2 mt-1 ${!true?'text-gray-400':'text-black'}`}>{true?<CgCheck size={32} className=\"text-red-500\"/>:<BiX/>} Y mucho mas.</p>\r\n                    </li>\r\n                  </ol>\r\n                    <Link className=\"bg-primary text-white px-4 py-2 rounded-md mt-4 inline-block hover:bg-primary-dark hover:text-white self-center\" to=\"/simple-pay\">Suscribirme</Link>\r\n                </div>\r\n                \r\n              </div>\r\n            </div>\r\n            </div>\r\n            \r\n          <Footer />\r\n        </>\r\n    );\r\n};\r\n\r\nexport default Teacher;\r\n\r\nconst Card = ({ data }) => {\r\n  return (\r\n    <div className=\"sm:w-1/2 p-1 md:w-1/3 lg:w-1/5\">\r\n      <div className=\"bg-white shadow-lg rounded-lg p-4 text-center\">\r\n      <h2 className=\"text-xl font-semibold mb-4 sm:text-sm lg:text-lg\">{data.nombre}</h2>\r\n      <p className=\"text-gray-600 sm:text-sm\">{data.descripcion}</p>\r\n      <h3 className=\"text-lg font-semibold text-primary sm:text-sm sm:hidden block lg:block lg:text-lg\">Materias</h3>\r\n      {\r\n        data?.materias?.map((materia, index) => (\r\n          <p key={index} className={`sm:text-sm sm:hidden block lg:block ${ index%2 == 0 ? 'text-gray-500' : 'text-gray-800' }`}>{materia.nombre}</p>\r\n        ))\r\n      }\r\n      <div>\r\n      <Link className=\"\r\n        bg-primary\r\n        text-white\r\n        px-4\r\n        py-2\r\n        rounded-md\r\n        mt-4\r\n        inline-block\r\n        hover:bg-primary-dark\r\n        hover:text-white\r\n      \" to={{\r\n          pathname: `/Details`,\r\n          data: data,\r\n          type: 'teacher'\r\n        }}>Ver Detalles</Link>\r\n      </div>\r\n      </div>\r\n    </div>\r\n  );\r\n}","import React,{useEffect, useState} from \"react\";\r\nimport Footer from \"../components/footer\";\r\nimport { useSelector} from 'react-redux';\r\nimport Modal from \"../components/Modal\";\r\n//importar firebase storage\r\nimport { storage } from \"../../config/firebase\";\r\nimport {getDownloadURL, ref as referencia, uploadBytesResumable} from \"@firebase/storage\";\r\nimport { auth } from \"../../config/firebase\";\r\n//import imgQr from './../../assets/images/qr.jpg'\r\nimport { db } from \"../../config/firebase\";\r\nimport dbRef from \"../../config/dbRef\";\r\n//import { collection} from \"firebase/firestore\";\r\nimport { doc, updateDoc } from \"firebase/firestore\";// addDoc\r\nimport { Link } from \"react-router-dom\";\r\nimport {BsWhatsapp, BsFillImageFill} from \"react-icons/bs\";\r\nimport {Dots} from \"../components/onload\"\r\nimport imgQr from './../../assets/images/qr.png'\r\nimport {IoMdRadioButtonOff, IoMdRadioButtonOn, IoMdCheckmark} from \"react-icons/io\";\r\n\r\nconst RadioButton = (props) => {\r\n  const [active , setActive] = useState(props.active);\r\n  useEffect(() => {\r\n    setActive(props.active);\r\n  }, [props.active]);\r\n  return (\r\n    <div className=\"flex flex-row justify-center items-center cursor-pointer\" onClick={\r\n      ()=>{\r\n        setActive(!active);\r\n        props.onClick();\r\n      }\r\n    }>\r\n\r\n      {\r\n        active ? <IoMdRadioButtonOn color={props.color}/> : <IoMdRadioButtonOff color={props.color}/>\r\n      }\r\n      \r\n      <p className=\"text-sm\">{props.label}</p>\r\n    </div>\r\n    \r\n  );\r\n}\r\n\r\n\r\nconst Payment = (props) => {\r\n  \r\n  const [data,setData]= useState([]);\r\n  const [id, setId] = useState('');\r\n  const [visible, setVisible] = useState(false);\r\n  const [tigo, setTigo] = useState(true);\r\n  const [deposito, setDeposito] = useState(false);\r\n  const [transferencia, setTransferencia] = useState(false);\r\n  const [qr, setQr] = useState(false);\r\n  const [child, setChild] = useState('');\r\n\r\n  const [plan, setPlan] = useState('0');\r\n  const [banco, setBanco] = useState('bnb');\r\n  const [titulo, setTitulo] = useState('Titulo');\r\n  const [telefono, setTelefono] = useState('Telefono');\r\n  const [monto, setMonto] = useState(0);\r\n  const [imagen, setImagen] = useState('');\r\n  const [progreso , setProgreso] = useState(0);\r\n  const [url, setUrl] = useState('');\r\n  const [load, setLoad] = useState(1);//0 false -1 true -2 loading\r\n  const [text, setText] = useState('ninguna imagen');\r\n\r\n  const [textAdvertencia, setTextAdvertencia] = useState('Inntroducir un numero de telefono valido');\r\n\r\n  const [metodo, setMetodo] = useState('vacio');\r\n\r\n  // const storage \r\n  \r\n  const user = useSelector(state => state.user);\r\n  const changeRadioButton = (index) => {\r\n    switch (index) {\r\n      case 1:\r\n        setTigo(true);\r\n        setDeposito(false);\r\n        setTransferencia(false);\r\n        setQr(false);\r\n        break;\r\n      case 2:\r\n        setTigo(false);\r\n        setDeposito(true);\r\n        setTransferencia(false);\r\n        setQr(false);\r\n        break;\r\n      case 3:\r\n        setTigo(false);\r\n        setDeposito(false);\r\n        setTransferencia(true);\r\n        setQr(false);\r\n        break;\r\n      case 4:\r\n        setTigo(false);\r\n        setDeposito(false);\r\n        setTransferencia(false);\r\n        setQr(true);\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n  }\r\n\r\n  const subirImagen = (img) => {\r\n      if(metodo !== 'vacio'){\r\n      if(imagen !== ''){\r\n      setLoad(2);\r\n      //fecha actual\r\n      const date = new Date();\r\n      const storeRef = referencia(storage,`comprobante/+${date}+${img.name}`);\r\n      const UploadTask = uploadBytesResumable(storeRef, img);\r\n      UploadTask.on('state_changed', (snapshot) => {\r\n          const progress = Math.round((snapshot.bytesTransferred / snapshot.totalBytes) * 100);\r\n          setProgreso(progress);\r\n        },\r\n        (error) => {\r\n            console.log(error);\r\n        },\r\n        () => {\r\n          getDownloadURL(UploadTask.snapshot.ref).then((downloadURL) => {\r\n              setText(\"Imagen subida correctamente\");\r\n              return downloadURL;\r\n          }).then((url)=>{\r\n            updateDocumento(data.id,url);\r\n            // console.log('llego')\r\n          }).then(()=>{\r\n            setVisible(true);\r\n            setTitulo('Comprobante subido correctamente');\r\n            setLoad(3);\r\n              setText(\"El comprobante se ha subido correctamente\");\r\n          });\r\n        }\r\n      );}else{\r\n        setText(\"Seleccione una imagen\");\r\n      }\r\n    }else{\r\n      setText(\"Seleccione un metodo de pago\");\r\n    }\r\n  }\r\n\r\n  const sendWhatsapp = () => {\r\n    if (telefono.length > 7 && telefono.length < 9) {\r\n      let mensaje= `${\r\n        banco === 'bnb'? `*CUENTA DE DEPOSITO: Nombre del Titular :* Leonel Avendaño Villarroel *Numero de cuenta :* 4500837492 *Carnet de Identidad :* 10377499 *Banco :* Banco Nacional de Bolivia (BNB) *Monto :* ${monto}`:\r\n        banco === 'bisa'? `*CUENTA DE DEPOSITO: Nombre del Titular :* Abigail Mamani *Numero de cuenta :*  495340-401-5 *Carnet de Identidad :* 13427301 pt *Banco :* Banco Bisa *Monto :* ${monto}`:\r\n        banco === 'union'? `*CUENTA DE DEPOSITO: Nombre del Titular :* Leonel Avendaño Villarroel *Numero de cuenta :*  10000042944682 - Caja de ahorro M/N *Carnet de Identidad : *10377499 *Banco :* Banco Unión *Monto :* ${monto}`:\r\n        `*CUENTA DE DEPOSITO: Nombre del Titular :* Rocely Valeria Cruz *Numero de cuenta :*  703-2-1-03486-9 *Carnet de Identidad :* 10330317 *Banco :* Banco Prodem *Monto :* ${monto}`\r\n\r\n\r\n      }`;\r\n      const url = `https://api.whatsapp.com/send?phone=591${telefono}&text=${mensaje}`;\r\n      window.open(url, '_blank');\r\n    }else{\r\n      alert(\"Introducir un numero de telefono valido\");\r\n    }\r\n  }\r\n\r\n  const updateDocumento = async (paramId,paramUrl) => {\r\n    //const messageRef = doc(db, \"rooms\", \"roomA\", \"messages\", \"message1\");\r\n    const authUser = auth.currentUser.uid;\r\n    const cuenta = doc(db, dbRef.user, authUser,'cuenta',paramId);\r\n    const newExam = {\r\n      urlRecibo: paramUrl,\r\n      metodo: metodo,\r\n      banco: banco,\r\n      rebizado: false,\r\n      plan: plan,\r\n    }\r\n    await updateDoc(cuenta, newExam);\r\n    // await updateDoc(cuenta, paramId, newExam);\r\n    setText(\"Comprobante enviado\");\r\n\r\n  };\r\n\r\n    return (\r\n      <>\r\n        <Modal visible={visible} title={titulo} onClose={()=>{setVisible(false);setProgreso(0)}}>\r\n          {\r\n            <>\r\n              <h2 className=\"text-center text-primary text-3xl\">Apriori</h2>\r\n              <p className=\"text-center text-gray-900 my-4\">\r\n              El comprobante se ha subido correctamente, nuestro equipo se encargará de validarlo y será notificado.  \r\n              </p>\r\n              <div className=\"flex flex-row justify-center\">\r\n                <p className=\"text-primary text-center cursor-pointer border-2 border-primary rounded text-center p-2 mx-4\" onClick={()=>setVisible(false)}>Cerrar</p>\r\n                <button className=\"bg-green-500 text-white p-2 rounded text-sm self-end flex flex-row items-center px-2 border-2 border-green-500\" onClick={()=>{\r\n                  const url = `https://api.whatsapp.com/send?phone=59161885865&text=Quiero reportar el pago de mi plan ${data.plan}, para el examen de ${data.nombre} .`;\r\n                  window.open(url, '_blank');\r\n                  }}>\r\n                  <BsWhatsapp className=\"mr-2\"/>\r\n                  Contactar con Apriori\r\n                </button>\r\n              </div>\r\n            </>\r\n          }\r\n        </Modal>\r\n        <div className=\"pt-24 flex flex-col justify-center items-center bg-secundary w-full text-white pb-6 text-4xl\" style={{backgroundColor:'#303030'}}>\r\n          <div><h1>Completar de Pago</h1></div>\r\n          <div><p className=\"text-white text-xl\">{data.nombre}</p></div>\r\n        </div>\r\n        <div className=\"flex flex-row justify-center items-start p-0 my-16\">\r\n          {/**drag and drop of image*/} \r\n          <div className=\"flex flex-col  justify-center items-center\">\r\n          <p>Seleccionar comprobante de pago.</p>\r\n          <div className=\"flex flex-row justify-center items-center border-4 border-gray-500 rounded-md mt-4 max-w-lg\">\r\n            \r\n          <input \r\n            id=\"fileImage\"\r\n            type=\"file\"\r\n            accept=\"image/*\"\r\n            onChange={(e)=>{setImagen(e.target.files[0]);setText(\"Imagen seleccionada\")}}\r\n            style={{display:'none',width:0,height:0}}\r\n          />\r\n          {\r\n            \r\n            <label className=\"cursor-pointer\" htmlFor=\"fileImage\">\r\n              {\r\n                imagen ?\r\n                  <img src={URL.createObjectURL(imagen)} alt=\"imagen\"/>\r\n                :\r\n                  <BsFillImageFill style={{fontSize:250 }} className=\"m-4\"/>\r\n              }\r\n            </label>\r\n          }\r\n          \r\n          </div>\r\n          <div className=\"w-full bg-gray-200 h-2 mb-6 mt-4\">\r\n            <div className=\"bg-primary h-2\"  style={{width:`${progreso}%`}}></div>\r\n          </div>\r\n          <p className=\"text-sm text-center\">{text}</p>\r\n          {\r\n            imagen ?\r\n              <label className=\"cursor-pointer bg-primary text-white p-2 px-3 rounded mt-4\" htmlFor=\"fileImage\">\r\n                Cambiar Imagen\r\n              </label>\r\n            :\r\n            null\r\n          }\r\n           \r\n          </div>\r\n          <div className=\"rounded-md z-10 pl-16\">\r\n          <div className=\"w-full p-8 flex flex-col justify-start items-start rounded-b-md\">\r\n          \r\n            <h3 className=\"text-primary text-xl font-bold\">Metodo de pago :</h3>\r\n            <p className=\"text-sm text-left mb-3\">Seleccione el método por el que realizó el pago.</p>\r\n            <div className=\"flex flex-col justify-center items-center\">\r\n              {/**panel de seleccion de 4 opciones */}\r\n              <div className=\"w-full flex flex-col justify-start items-start mt-2 px-6\">\r\n                <RadioButton color={'green'} active={metodo==='tigoMoney'?true:false} label = 'Tigo Money' onClick={()=> setMetodo('tigoMoney')} />\r\n                {\r\n                  metodo === 'tigoMoney' &&\r\n                  <div className=\"flex flex-col justify-center items-start border-accent border-2 rounded p-4 my-4\">\r\n                    <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Numero de Telefono : </span> 75795725</p>\r\n                    <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">nombre del titular : </span> Rimber Romario Uyuquipa Mamani</p>\r\n                  </div>\r\n                }\r\n                <RadioButton color={'green'} active={metodo==='transferencia'?true:false} label = 'Transferencia' onClick={()=> setMetodo('transferencia')}/>\r\n                  {\r\n                    metodo === 'transferencia' &&\r\n                    <div className=\"flex flex-col justify-center items-start border-accent border-2 rounded p-4 my-4\">\r\n                      <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Nombre del Titular : </span>AVENDAÑO VILLARROEL LEONEL</p>\r\n                      <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Numero de cuenta : </span> 4500837492</p>\r\n                      <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Carnet de Identidad : </span> 10377499</p>\r\n                      <p className=\"text-sm text-gray-700\"><span className=\"text-primary\">Banco : </span>Banco Nacional de Bolivia  (BNB)</p>\r\n                    </div>\r\n                  }\r\n                <RadioButton color={'green'} active={metodo==='qr'?true:false} label = 'Codigo QR' onClick={()=> setMetodo('qr')}/>\r\n                {\r\n                  metodo === 'qr' &&\r\n                  <div className=\"flex flex-col justify-center items-center border-accent border-2 rounded p-4 my-4 w-1/2\" style={{padding:0}}>\r\n                    <img src={imgQr} alt=\"qr\" className=\"w-3/4\"/>\r\n                    <p className=\"text-sm text-gray-700 text-center\">Escane la imagen de arriba y suba el comprobante de tranferecia con el monto del plan seleccionado.</p>\r\n                  </div>\r\n                }\r\n\r\n              </div>\r\n              {\r\n                load === 1 ?\r\n                <button\r\n                  className=\"bg-primary p-2 px-8 rounded text-white mt-4 text-base\"\r\n                  onClick={()=>{subirImagen(imagen)}}\r\n                >\r\n                  Continuar\r\n                </button>:\r\n                load === 2 ?\r\n                <button className=\"bg-gray-400 p-2 px-8 rounded text-white mt-4 text-base p-4\">\r\n                  <Dots color='white'/>\r\n                </button>\r\n                :\r\n                load === 3 ?\r\n                <button className=\"bg-gray-400 p-2 px-8 rounded text-white mt-4 text-base p-4\">\r\n                  Comprobante Registrado\r\n                </button>\r\n                :\r\n                null\r\n              }\r\n              <Link className=\"bg-primary p-2 px-8 rounded text-white mt-4 text-base\" to={\"/profile\" }>Volver a Perfil</Link >\r\n            </div>  \r\n          </div>\r\n          </div>\r\n        </div>\r\n        <Footer/>\r\n      </>\r\n    );\r\n}\r\n\r\nexport default Payment;\r\n","import Home from './home';\r\nimport Login from  './login';\r\nimport Privada from './privada';\r\nimport Signup from './signup';\r\nimport Team from './team/index';\r\nimport Service from './service';\r\nimport Contact from './contact';\r\nimport Pricing from './pricing';\r\nimport Profile from './profile';\r\nimport NotFound from './notFound';\r\nimport Examen from './Examen';\r\nimport ExamTest from './ExamTest';\r\nimport Details from './details';\r\nimport Convocatoria from './convocatoria';\r\nimport Plans from './plans';\r\nimport Suggestions from './suggestions';\r\nimport Management from './management';\r\nimport Events from './events';\r\nimport RegisterToEvent from './registerToEvent';\r\nimport Live from './live';\r\nimport Counts from './counts';\r\nimport Payment from './Payment';\r\nimport Driver from './driver';\r\nimport UserProfile from './userProfile';\r\nimport Licencias from './licencias';\r\nimport Print from './print';\r\nimport AdminAfiliate from './afiliateAdmi';\r\nimport Copia from './Examen/copia';\r\nimport Admin from './admin';\r\nimport Teacher from './teacher';\r\nimport SimplePay from './SimplePay';\r\n\r\nconst exports = {\r\n    Home,\r\n    Login,\r\n    Privada,\r\n    Signup,\r\n    Team,\r\n    Service,\r\n    Contact,\r\n    Pricing,\r\n    Profile,\r\n    NotFound,\r\n    Examen,\r\n    Details,\r\n    Convocatoria,\r\n    Plans,\r\n    Suggestions,\r\n    ExamTest,\r\n    Management,\r\n    Events,\r\n    RegisterToEvent,\r\n    Live,\r\n    Counts,\r\n    Payment,\r\n    Driver,\r\n    UserProfile,\r\n    Licencias,\r\n    Print,\r\n    AdminAfiliate,\r\n    Copia,\r\n    Admin,\r\n    Teacher,\r\n    SimplePay\r\n}\r\n\r\nexport default exports;\r\n","import React, { useState, useEffect } from 'react';\r\nimport Banner from '../components/banner';\r\nimport Simulacrum from '../components/simulacrum';\r\nimport ContecParallax from '../components/parallax';\r\nimport Comments from '../components/comments';\r\nimport NextQuestion from '../components/nextQuestion';\r\nimport Footer from '../components/footer';\r\nimport Company from '../components/company';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { getDataPage } from '../../redux/actions/dataPage';\r\nimport { _fetchUsers } from '../../redux/actions/user';\r\nimport { getAllMaterias } from '../counts/utils';\r\n\r\n\r\nexport default function Home() {\r\n\r\n  const data = useSelector(state => state.dataPage);\r\n\r\n  const [examen, setExamen] = useState('Examen Proximo...');\r\n  const [titulo, setTitulo] = useState('Escuela de Jueces');\r\n  const [idEvento, setIdEvento] = useState('');\r\n  const [tipo, setTipo] = useState();\r\n  const [hora, setHora] = useState('3/30/2022 9:30 AM')\r\n  const [datos, setDatos] = useState([]);\r\n  const [clients, setClients] = useState([]);\r\n  const [preguntas, setPreguntas] = useState(0)\r\n\r\n\r\n  const dispatch = useDispatch();\r\n\r\n  const bar = document.getElementById('bar');\r\n  if (bar) {\r\n    bar.style.display = 'block';\r\n  }\r\n\r\n  useEffect(() => {\r\n    const fetchUsers = async () => {\r\n      const { users } = await _fetchUsers();\r\n      setClients(users);\r\n    };\r\n\r\n    fetchUsers();\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    dispatch(getDataPage());\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if (data.dataPage.length > 0) {\r\n      setExamen(\"Próximo Examen:\");\r\n      setDatos(data.dataPage[0]);\r\n      setTitulo(data.dataPage[0].tituloBanner);\r\n      setIdEvento(data.dataPage[0].idEvento);\r\n      setTipo(data.dataPage[0].tipo);\r\n      setHora(data.dataPage[0].fechaExamen);\r\n\r\n    }\r\n  }, [data]);\r\n\r\n  useEffect(() => {\r\n    const fetchData = async () => {\r\n      try {\r\n        const dataMaterias = await getAllMaterias();\r\n        const totalPreguntas = dataMaterias.reduce((total, materia) => {\r\n          return total + (materia.cantidadPreguntas || 0);\r\n        }, 0);\r\n        setPreguntas(totalPreguntas)\r\n      } catch (error) {\r\n        console.error('Error fetching materias: ', error);\r\n      }\r\n    };\r\n\r\n    fetchData();\r\n  }, []);\r\n\r\n\r\n  return (\r\n    <>\r\n      <Banner examen={examen} titulo={titulo} hora={hora} data={datos.examenCpmpleto} idEvento={idEvento} tipo={tipo} />\r\n      <Simulacrum datos={datos} clients={clients.length} totalPreguntas={preguntas} />\r\n      <ContecParallax />\r\n      <Comments tema={'claro'} />\r\n      <NextQuestion />\r\n      <Company />\r\n      <Footer mensaje={true} />\r\n    </>\r\n  );\r\n};","import React ,{useEffect,useState} from 'react';\r\nimport {Link ,Redirect } from \"react-router-dom\";\r\nimport { useDispatch, useSelector  } from 'react-redux';\r\nimport { startGoogleAuth, startLogOut } from '../../redux/actions/auth';\r\nimport Form from './Form';\r\nimport {auth} from '../../config/firebase';\r\n\r\nimport { FaApple, FaFacebookF, FaGoogle } from \"react-icons/fa\";\r\n\r\nexport default function Login(){\r\n\r\n    const reduxAuth = useSelector(state => state.auth);\r\n\r\n    const [isUser, setIsUser] = useState(false);\r\n    const dispatch = useDispatch();\r\n    \r\n    const handleGoogleAuth = () =>{\r\n        dispatch(startGoogleAuth());\r\n    }\r\n\r\n    const logOut = () =>{\r\n        dispatch(startLogOut());\r\n    }\r\n\r\n    useEffect(()=>{\r\n        if(reduxAuth.errorRegister){\r\n          console.log('error al crear la cuenta: ')\r\n          console.log(reduxAuth.errorRegister);\r\n        }\r\n        \r\n    \r\n        if(reduxAuth.isAuthenticated){\r\n          console.log('usuario creado');\r\n          if(auth.currentUser){\r\n            const userID = auth.currentUser.uid;\r\n           \r\n          } else {\r\n            console.log('no hay usuario loggueado');\r\n          } \r\n          \r\n        }\r\n\r\n        if(reduxAuth){\r\n          console.log('estado de redux');\r\n          console.log(reduxAuth);\r\n\r\n          setIsUser(true);\r\n        }\r\n      // eslint-disable-next-line react-hooks/exhaustive-deps\r\n      },[reduxAuth]);\r\n\r\n    return(\r\n    <>\r\n        <div className=\" flex justify-center h-screen -mt-14 z-0 \" >\r\n            <div className=\"flex flex-row justify-center  items-center sm:flex-col md:flex-row \">\r\n                <div>\r\n                    <Form/>{/*\r\n                    <p>o desea {' '}\r\n                    <span onClick={logOut} className=\"text-primary text-center cursor-pointer hover:underline\">\r\n                    cerrar sesión.\r\n                        </span></p>*/}\r\n                </div>\r\n                <p className=\"mx-5\" >o</p>\r\n                <div className = \" flex flex-col mt-3 justify-end \">\r\n                    <p className=\"text-sm\" >No tienes una cuenta? Registrarse con:</p>\r\n                    {/*\r\n                    <button onClick={()=>console.log(\"Facebook\")} className=\"flex flex-row justify-between items-center  my-3 text-sm shadow-md text-white bg-blue-500 hover:bg-blue-700\">\r\n                    <FaFacebookF  size={45} className=\"bg-blue-600 p-2\"/><p className=\"pr-3\">inicie sesión con Facebook</p>\r\n                    </button>\r\n                    <button onClick={handleGoogleAuth} className=\"flex flex-row justify-between items-center text-sm mb-1  shadow-md text-white bg-red-500 hover:bg-red-700\">\r\n                    <FaGoogle size={45} className=\"bg-red-600 p-2\"/><p className=\"pr-3\">inicie sesión con Gmail</p>\r\n                    </button>\r\n                    */}\r\n                    \r\n                    <button className=\"py-2 px-4 border-2 border-primary font-semibold rounded-lg shadow-md text-white bg-primary hover:bg-transparent hover:text-primary mt-3\"><Link  to=\"/signup\">crear cuenta</Link></button>\r\n                    {/* <button onClick={()=>console.log('Apple')} className=\"flex  justify-center mb-1 py-2 px-4 font-semibold rounded-lg shadow-md text-white bg-green-500 hover:bg-green-700\">\r\n                    <FaApple/> Apple\r\n                    </button> */}\r\n                </div>            \r\n            </div>\r\n        </div>\r\n    </>\r\n    );\r\n};","import React from 'react';\r\n\r\nexport default function Privada(){\r\n    return(\r\n    <>\r\n        <div className=\"bg-green-50\">\r\n            <p>estas en una pantalla privada</p>\r\n        </div>\r\n                <div className=\"bg-green-50\">\r\n            <p>estas en una pantalla privada</p>\r\n        </div>\r\n        <div className=\"bg-green-50\">\r\n            <p>estas en una pantalla privada</p>\r\n        </div>\r\n        <div className=\"bg-green-50\">\r\n            <p>estas en una pantalla privada</p>\r\n        </div>\r\n        <div className=\"bg-green-50\">\r\n            <p>estas en una pantalla privada</p>\r\n        </div>\r\n                <div className=\"bg-green-50\">\r\n            <p>estas en una pantalla privada</p>\r\n        </div>\r\n        <div className=\"bg-green-50\">\r\n            <p>estas en una pantalla privada</p>\r\n        </div>\r\n        <div className=\"bg-green-50\">\r\n            <p>estas en una pantalla privada</p>\r\n        </div>\r\n        <div className=\"bg-green-50\">\r\n            <p>estas en una pantalla privada</p>\r\n        </div>\r\n    </>\r\n    );\r\n};","import React ,{ Fragment, useState, useEffect, useRef }from 'react';\r\nimport 'react-phone-number-input/style.css';\r\nimport PhoneInput, {/* formatPhoneNumber, formatPhoneNumberIntl,*/ isValidPhoneNumber } from 'react-phone-number-input'\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport {Link} from 'react-router-dom';\r\nimport {Redirect} from 'react-router-dom';\r\nimport {useForm} from 'react-hook-form';\r\nimport {db} from '../../config/firebase';\r\nimport dbRef from '../../config/dbRef';\r\nimport { collection, query, where, getDocs  } from \"firebase/firestore\";\r\n//import {auth} from '../../config/firebase';\r\n\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { registerEmailPassSignUp, startClearError, startClearSuccess } from '../../redux/actions/auth';\r\n//import { getUser } from '../../redux/actions/user';\r\n//import { startGoogleAuth, startLogOut } from '../../redux/actions/auth';\r\nimport Modal from '../components/Modal';\r\nimport { set } from 'react-ga';\r\n\r\nexport default function Signup() {\r\n\r\n  const { register, handleSubmit, formState: { errors } } = useForm();\r\n\r\n  const dispatch = useDispatch();\r\n\r\n  const reduxAuth = useSelector(state => state.auth);\r\n  const cart = useSelector(state => state.cart);\r\n\r\n  const [phone , setPhone] = useState();\r\n  const [isAuthenticated, setIsAuthenticated] = useState(false);\r\n  const [errorPhone, setErrorPhone] = useState(false);\r\n  const [password, setPassword] = useState();\r\n  const [errorPassword, setErrorPassword] = useState('');\r\n  const [errorPassword2, setErrorPassword2] = useState('');\r\n  const [startDate, setStartDate] = useState(new Date());\r\n  const [modal, setModal] = useState(false);\r\n  const [errorModal, setErrorModal] = useState(false);\r\n  const [successModal, setSuccessModal] = useState(false);\r\n  const [userData, setUserData] = useState({});\r\n  const [ciudad , setCiudad] = useState();\r\n\r\n  const [primerPanel, setPrimerPanel] = useState(true);\r\n  const [segundoPanel, setSegundoPanel] = useState(false);\r\n\r\n  const [buttonDisabled, setButtonDisabled] = useState(false);\r\n  const [code, setCode] = useState(true);\r\n  let codeError = useRef(null);\r\n  //const [extencion,setExtencion] = useState();\r\n  //const [errorExtencion,setErrorExtencion] = useState(false);\r\n\r\n  const closeErrorModal = () => {\r\n    setErrorModal(false);\r\n    dispatch(startClearError());\r\n  }\r\n\r\n  const closeSuccessModal = () => {\r\n    setSuccessModal(false);\r\n    dispatch(startClearSuccess());\r\n    setIsAuthenticated(true);\r\n  }\r\n\r\n  const submit = () =>{\r\n    //buscar al usuario en la base de datos con el codigo de referencia\r\n    \r\n    dispatch(registerEmailPassSignUp(userData));\r\n  }\r\n\r\n  const chancePanel = () =>{\r\n\r\n    setPrimerPanel(!primerPanel);\r\n    setSegundoPanel(!segundoPanel);\r\n  }\r\n//datos del usuario celular ciudad y pais \r\n  const onSubmit = (data, e) => {\r\n    if(phone){\r\n      if(isValidPhoneNumber(phone)){\r\n        data.phone = phone;\r\n        setErrorPhone(false);\r\n      } else{\r\n        setErrorPhone(true);\r\n        return\r\n      }\r\n    }else {\r\n      setErrorPhone(true);\r\n      return\r\n    }\r\n    if(code===false){\r\n      return\r\n    }\r\n\r\n    let day=startDate.getDate();\r\n    let month=startDate.getMonth()+1;\r\n    const year=startDate.getFullYear();\r\n    if(day<10){\r\n      day=`0${day}`;\r\n    }\r\n    if(month<10){\r\n      month=`0${month}`;\r\n    }\r\n\r\n    data.birthday = `${day}/${month}/${year}`;\r\n    //validacion de la extencion de carnet\r\n    /*\r\n    if(extencion){\r\n      if(extencion!=='0'){\r\n        data.dniE = extencion;\r\n        setErrorExtencion(false);\r\n      } else{\r\n        setErrorExtencion(true);\r\n        return\r\n      }\r\n    }else {\r\n      setErrorExtencion(true);\r\n      return\r\n    }*/\r\n    // dispatch(startSignUp(data));\r\n    if(data.password.length<8){\r\n      setErrorPassword('la contraseña debe tener al menos 8 caracteres');\r\n      return\r\n    }\r\n    if(data.password !== data.password2){\r\n      setErrorPassword2('Las contraseñas no coinciden');\r\n      return\r\n    }\r\n    setErrorPassword('');\r\n    setErrorPassword2('');\r\n    console.log(data);    \r\n    setUserData(data);\r\n    setModal(true);\r\n  };\r\n  const verifyCode =async (e) => {\r\n    \r\n    if(e.length===4){\r\n      codeError.current.innerText   = 'comprobando código....';\r\n      const querySnapshot = await getDocs(\r\n        query(collection(db, dbRef.user),where(\"code\", \"==\", e))\r\n      );\r\n      if(querySnapshot.size>0){\r\n        codeError.current.classList.remove('text-red-500');\r\n        codeError.current.classList.add('text-green-500');\r\n        codeError.current.innerText   = `Código correcto, Codigo de : ${querySnapshot.docs[0].data().name}`;\r\n        setCode(true);\r\n      }else{\r\n        codeError.current.classList.remove('text-green-500');\r\n        codeError.current.classList.add('text-red-500');\r\n        codeError.current.innerText   = 'Código incorrecto, verifique el código o borre el campo';\r\n        setCode(false);\r\n\r\n      }\r\n     \r\n    }else{\r\n      codeError.current.innerText   = 'El código debe tener 4 caracteres';\r\n      setCode(false);\r\n\r\n    }\r\n\r\n    if(e.length===0){\r\n      codeError.current.classList.remove('text-green-500');\r\n      codeError.current.classList.remove('text-red-500');\r\n      codeError.current.classList.add('text-gray-500');\r\n      codeError.current.innerText   = '* Este campo no es obligatorio';\r\n      setCode(true);\r\n    }\r\n    \r\n  }\r\n\r\n  const setPhones = (e)=> {\r\n    setPhone(e);\r\n  }\r\n  const validPass = (e,p)=>{\r\n    //console.log(e.target.value,p);\r\n    if(p==='p1'){\r\n      if(e.target.value.length>=8){\r\n        console.log('entro: ',e.target.value.length);\r\n        setErrorPassword('');\r\n        setPassword(e.target.value);\r\n      }\r\n      else{\r\n        setErrorPassword('La contraseña debe tener al menos 8 caracteres');\r\n      }\r\n    }\r\n    else{\r\n      if(e.target.value===password){\r\n        setErrorPassword2('');\r\n      }\r\n      else{\r\n        setErrorPassword2('Las contraseñas no coinciden');\r\n      }\r\n    }\r\n\r\n  }\r\n\r\n  useEffect(()=>{\r\n    if(reduxAuth.errorRegister){\r\n      console.log('error al crear la cuenta: ')\r\n      console.log(reduxAuth.errorRegister);\r\n      setModal(false);\r\n      setErrorModal(true);\r\n    }\r\n    setButtonDisabled(reduxAuth.loadingRegister);\r\n\r\n    if(reduxAuth.success){\r\n      setModal(false);\r\n      setSuccessModal(true);\r\n    }\r\n\r\n    if(reduxAuth){\r\n      console.log('estado de redux');\r\n      console.log(reduxAuth);\r\n    }\r\n  // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  },[reduxAuth]);\r\n  \r\n  return (\r\n    <Fragment>\r\n      {isAuthenticated?\r\n        cart.cart.id?\r\n        <Redirect to=\"/convocatoria\" />\r\n        :\r\n        <Redirect to=\"/profile\" />\r\n        :null}\r\n      <div className=\"w-full flex flex-col justify-center items-center h-5/6 mt-16\">\r\n      <form onSubmit={handleSubmit(onSubmit)} className=\"w-1/3 sm:w-full md:w-1/3 mx-0 sm:mx-4 md:mx-0 border-white rounded mt-8\">\r\n          <div className='bg-white rounded shadow-2xl bg-gray-100'>\r\n          <h1 className=\" text-red-500 text-center pt-5 text-2xl\">Crear cuenta{cart.cart.id?'':''}</h1> \r\n          <div className=' flex flex-col items-center p-5 w-full rounded ease-in duration-300' style={{display:`${primerPanel?'flex':'none'}`,transition:'1s'}}>\r\n            <input\r\n                name=\"name\"\r\n                placeholder=\"Nombre\"\r\n                className=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 focus:border-red-500 w-full\"\r\n                {...register(\"name\",{required:true})}\r\n            />\r\n            <p className=\"text-xs text-red-500\">{errors.name?.type === 'required' && \"*Debe introducir nombre\"}</p>\r\n            <input\r\n                name=\"lastName\"\r\n                placeholder=\"Apellido\"\r\n                className=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 focus:border-red-500 w-full\"\r\n                {...register(\"lastName\",{required:true})}\r\n            />  \r\n            <p className=\"text-xs text-red-500\">{errors.lastName?.type === 'required' && \"*Debe introducir su nombre completo\"}</p>\r\n\r\n            \r\n            {/* <input\r\n              name=\"country\"\r\n              placeholder=\"Pais\"\r\n              className=\"bg-green-50 m-1 \"\r\n              {...register(\"country\",{required:true})}\r\n            /> \r\n            <input\r\n                name=\"city\"\r\n                placeholder=\"Ciudad\"\r\n                className=\"bg-green-50 m-1 \"\r\n                {...register(\"city\",{required:true})}\r\n            />\r\n            fecha de nacimiento:*/}\r\n            <select \r\n              {...register(\"city\",{required:true})} \r\n              name='city'\r\n              className=\"p-3 my-1 bg-gray-200 w-full mt-3 rounded-lg\"\r\n              >\r\n                <option value=\"0\">Ciudad de residencia</option>\r\n                <option value=\"chuquisaca\">Chuquisaca</option>\r\n                <option value=\"laPaz\">La Paz</option>\r\n                <option value=\"cochabamba\">Cochabamba</option>\r\n                <option value=\"oruro\">Oruro</option>\r\n                <option value=\"potosi\">Potosi</option>\r\n                <option value=\"tarija\">Tarija</option>\r\n                <option value=\"pando\">Pando</option>\r\n                <option value=\"beni\">Beni</option>\r\n                <option value=\"santaCruz\">Santa Cruz</option>\r\n            </select>\r\n            {/*\r\n            <select\r\n              value={ciudad}\r\n              className=\"p-3 my-1 bg-gray-200 w-full mt-3 rounded-lg\"\r\n              onChange={e => setCiudad(e.target.value)}\r\n              name='ciudad' >\r\n                <option value=\"0\">Ciudad de residencia</option>\r\n                <option value=\"chuquisaca\">Chuquisaca</option>\r\n                <option value=\"laPaz\">La Paz</option>\r\n                <option value=\"cochabamba\">Cochabamba</option>\r\n                <option value=\"oruro\">Oruro</option>\r\n                <option value=\"potosi\">Potosi</option>\r\n                <option value=\"tarija\">Tarija</option>\r\n                <option value=\"sucre\">Sucre</option>\r\n                <option value=\"beni\">Beni</option>\r\n                <option value=\"santaCruz\">Santa Cruz</option>\r\n            </select>\r\n          */}\r\n            <p className='w-full mt-3'>Fecha de nacimiento:</p>\r\n            <DatePicker\r\n              dateFormat=\"dd/MM/yyyy\"\r\n              selected={startDate}\r\n              onChange={(date) => setStartDate(date)}\r\n              className=\"p-3 my-1 bg-gray-200 w-full\"\r\n            />\r\n            <div className=\"w-1/3 py-2 px-4 border-2 border-primary font-semibold rounded-lg shadow-md text-white bg-primary hover:bg-transparent hover:text-primary mt-3\"\r\n              onClick={()=>chancePanel()}>\r\n                  Siguiente\r\n\r\n              </div>\r\n              <p className=\"text-sm text-gray-1000\">Tus datos estan protegidos por nuestras</p><a className=\"text-sm text-blue-500\" href=\"https://www.google.com/\">Politicas de privacidad</a>\r\n          </div>\r\n          <div className=' flex flex-col justify-center p-5 w-full' style={{display:`${segundoPanel?'flex':'none'}`}} >\r\n\r\n            {/*<div className='flex flex-row justify-center '>\r\n\r\n            {/* <div className='flex flex-row justify-center '>\r\n\r\n              <input\r\n                name=\"DNI\"\r\n                placeholder=\"Carnet de identidad\"\r\n                className=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 focus:border-red-500 w-full\"\r\n                {...register(\"dni\",{required:true})}\r\n              />\r\n              <select \r\n                onChange={a=>setCiudad(a)} \r\n                name='DNIE' \r\n                className=\"p-3 my-1 bg-gray-200 w-1/4 mt-3 rounded-lg\" >\r\n                  <option value=\"0\">Exp.</option>\r\n                  <option value=\"CH\">CH</option>\r\n                  <option value=\"LP\">LP</option>\r\n                  <option value=\"CB\">CB</option>\r\n                  <option value=\"OR\">OR</option>\r\n                  <option value=\"PT\">PT</option>\r\n                  <option value=\"TJ\">TJ</option>\r\n                  <option value=\"SC\">SC</option>\r\n                  <option value=\"BE\">BE</option>\r\n                  <option value=\"PD\">PD</option>\r\n              </select>\r\n            </div>\r\n          */}\r\n          <PhoneInput\r\n          className=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 focus:border-red-500 w-full\"\r\n            placeholder=\"Numero de celular\"\r\n            onChange={setPhones}\r\n            defaultCountry=\"BO\"\r\n            value={phone}\r\n            error={phone ? (isValidPhoneNumber(phone) ? undefined : 'Invalid phone number') : 'Phone number required'}\r\n          />\r\n            <p className=\"text-xs text-red-500\">{\r\n              phone === undefined ||phone === ''?'':phone && isValidPhoneNumber(phone) ? '' : '*Numero invalido'}\r\n            </p>\r\n            \r\n          <input\r\n              name=\"email\"\r\n              placeholder=\"Correo Electronico\"\r\n              className=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 focus:border-red-500\"\r\n              type=\"email\"\r\n              {...register(\"email\",{required:true})}\r\n          /><p className=\"text-xs text-red-500\"> {errors.email?.type === 'required' && \"*Debe introducir correo Electronico\"}</p>\r\n          <input\r\n              name=\"password\"\r\n              type=\"password\"\r\n              placeholder=\"Contraseña\"\r\n              onChangeCapture={(e)=>validPass(e,'p1')}\r\n              className=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 focus:border-red-500\"\r\n              {...register(\"password\", {required:true})}\r\n          />\r\n          {errorPassword && <p className=\"bg-red-600\">{errorPassword}</p>}\r\n          <input\r\n              name=\"password2\"\r\n              type=\"password\"\r\n              placeholder=\"Repetir Contraseña\"\r\n              className=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 focus:border-red-500 w-full\"\r\n              onChangeCapture={(e)=>validPass(e,'p2')}\r\n              {...register(\"password2\", {required:true})}\r\n          />\r\n           {errorPassword2 && <p className=\"bg-red-600\">{errorPassword2}</p>}\r\n           <p className=\"text-xs text-red-500\">{errors.password?.type === 'required' && \"Contraseña necesaria\"}</p>\r\n           <input\r\n              name=\"code\"\r\n              placeholder=\"Codigo de afiliado\"\r\n              maxLength={4}\r\n              onChangeCapture={(e)=>verifyCode(e.target.value)}\r\n              className=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 focus:border-red-500 w-full\"\r\n              {...register(\"code\")}\r\n          />\r\n          <p className=\"text-xs text-gray-500\" ref={codeError}>*Este campo no es necesarioa</p>\r\n\r\n\r\n           <div className='flex flex-row justify-center '>\r\n            <div className=\"min-w-1/2 py-2 px-4 border-2 border-primary font-semibold rounded-lg shadow-md text-primary bg-transparent hover:bg-primary hover:text-white mt-3\"\r\n                onClick={()=>chancePanel()}>\r\n                    Atras\r\n            </div>\r\n            <button className=\"min-w-1/2 ml-3 py-2 px-4 border-2 border-primary font-semibold rounded-lg shadow-md text-white bg-primary hover:bg-transparent hover:text-primary mt-3\"\r\n              onClick={handleSubmit(onSubmit)}\r\n            >\r\n                Registrar\r\n            </button>\r\n           </div>\r\n           <div\r\n            className=\"flex flex-col text-center justify-center mt-3\"\r\n           >\r\n           <p className=\"text-sm text-gray-1000 w-full°\">Tus datos estan protegidos por nuestras</p><a className=\"text-sm text-blue-500\" href=\"https://www.google.com/\">Politicas de privacidad</a>\r\n           </div>\r\n          </div>\r\n          \r\n          \r\n          \r\n          \r\n          \r\n          {/* <p> {errorPhone? \"Debe introducir un numero valido\":''}</p>\r\n          {//<p> {//errors.dni?.type === 'required' && \"Debe introducir un numero valido\"}</p>\r\n          //<p> {//errorExtencion? \"Debe introducir una extencion valida\":''}</p>\r\n          }\r\n\r\n          <p>{errors.password?.type === 'required' && \"Contraseña necesaria\"}</p>\r\n          <p>{errors.password2?.type === 'required' && \"Contraseña necesaria\"}</p>\r\n          <p>{errors.country?.type === 'required' && \"Pais requerido\"}</p>\r\n          <p>{errors.city?.type === 'required' && \"Ciudad requerido\"}</p> */}\r\n          </div>\r\n      </form>\r\n      <Modal \r\n      visible={modal}\r\n      title=\"Verifica tus datos\"\r\n      onClose={()=>setModal(false)}\r\n      >\r\n        <div className=\"mt-2\">\r\n          <p className=\"text-base text-red-500 font-bold\">\r\n            Nombre: <span className=\"text-gray-700 font-normal\"> {userData.name}</span>\r\n          </p>\r\n          <p className=\"text-base text-red-500 font-bold\">\r\n\r\n            Apellido: <span className=\"text-gray-700 font-normal\"> {userData.lastName}</span>\r\n          </p>\r\n          <p className=\"text-base text-red-500 font-bold\">\r\n            Ciudad: <span className=\"text-gray-700 fontnormalr\"> {userData.ciudad}</span> \r\n          </p>\r\n          <p className=\"text-base text-red-500 font-bold\">\r\n            Fecha de nacimiento: <span className=\"text-gray-700 font-normal\"> {userData.birthday}</span>\r\n          </p>\r\n          <p className=\"text-base text-red-500 font-bold\">\r\n            Numero de celular: <span className=\"text-gray-700 font-normal\"> {userData.phone}</span>\r\n          </p>\r\n          <p className=\"text-base text-red-500 font-bold\">\r\n            Correo Electronico: <span className=\"text-gray-700 font-normal\"> {userData.email}</span> \r\n          </p>\r\n          {\r\n            userData.code && \r\n            <p className=\"text-base text-red-500 font-bold\">\r\n              Codigo de afiliado: <span className=\"text-gray-700 font-normal\"> {userData.code}</span>\r\n            </p>\r\n          }\r\n        </div>\r\n        <div className=\"mt-4 flex justify-center\">\r\n        <button\r\n          type=\"button\"\r\n          className=\"inline-flex justify-center px-4 mx-2 py-2 text-sm font-medium text-red-100 bg-red-500 border border-transparent rounded-md hover:bg-red-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-red-500\"\r\n          onClick={()=>setModal(false)}\r\n          \r\n        >\r\n          Cancelar\r\n        </button>\r\n        <button\r\n          type=\"button\"\r\n          className=\"inline-flex justify-center mx-2 px-4 py-2 text-sm font-medium text-green-1000 bg-green-400 border border-transparent rounded-md hover:bg-green-500 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-blue-500\"\r\n          onClick={()=>submit()}\r\n          disabled={buttonDisabled}\r\n        >\r\n          {!buttonDisabled && <span className=\"ml-2\">Continuar</span>}\r\n          {buttonDisabled && <span className=\"ml-2\">Cargando...</span>}\r\n        </button>\r\n\r\n        </div>\r\n      </Modal>\r\n      <Modal\r\n      visible={errorModal}\r\n      title=\"Ocurrio un error\"\r\n      onClose={()=>closeErrorModal()}\r\n      >\r\n        <div className=\"mt-2\">\r\n          <p className=\"text-sm text-gray-1000\">\r\n            Error al registrar, intentelo nuevamente\r\n          </p>\r\n        </div>\r\n        <div className=\"mt-4\">\r\n        <button\r\n          type=\"button\"\r\n          className=\"inline-flex justify-center px-4 py-2 text-sm font-medium text-red-100 bg-red-500 border border-transparent rounded-md hover:bg-red-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-red-500\"\r\n          onClick={()=>closeErrorModal()}\r\n        >\r\n          Aceptar\r\n        </button>\r\n        </div>\r\n      </Modal>\r\n      <Modal\r\n      visible={successModal}\r\n      title=\"Registro exitoso\"\r\n      onClose={()=>closeSuccessModal()}\r\n      >\r\n        <div className=\"mt-2\">\r\n          <p className=\"text-sm text-gray-1000\">\r\n            Datos registrados correctamente\r\n          </p>\r\n        </div>\r\n        <div className=\"mt-4\">\r\n        <button\r\n          type=\"button\"\r\n          className=\"inline-flex justify-center px-4 py-2 text-sm font-medium text-green-1000 bg-green-400 border border-transparent rounded-md hover:bg-green-500 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-blue-500\"\r\n          onClick={()=>closeSuccessModal()}\r\n        >\r\n          Aceptar\r\n        </button>\r\n        </div>\r\n      </Modal>        \r\n      \r\n      </div>\r\n  </Fragment>\r\n    );\r\n}\r\n","import React from 'react';\r\n\r\nexport default function NotFound() {\r\n    return (\r\n        <div className=\"not-found\">\r\n        <h1>404</h1>\r\n        <h2>Page not found</h2>\r\n        <h1>404</h1>\r\n        <h2>Page not found</h2>\r\n        <h1>404</h1>\r\n        <h2>Page not found</h2>\r\n        <h1>404</h1>\r\n        <h2>Page not found</h2>\r\n        <h1>404</h1>\r\n        <h2>Page not found</h2>\r\n        </div>\r\n    );\r\n    }","import React ,{useState,useEffect,useRef} from 'react';\r\nimport Pregunta from './components/pregunta';\r\nimport Materia from './components/materia';\r\nimport Pestania from './components/pestania';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {auth} from '../../config/firebase';\r\nimport {evaluarExamen} from './../../utils/exam';\r\nimport {loadExam, saveNotas, getQuestion, clearExam, loadToExams} from './../../redux/actions/exam';\r\nimport {updateIntentos} from './../../redux/actions/user';\r\nimport { ref } from 'firebase/storage';\r\nimport Modal from '../components/Modal';\r\nimport {Redirect} from 'react-router-dom';\r\nimport {loadExams} from '../../utils/exam';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst Pestanias = (props) => {\r\n\r\n  \r\n  return(\r\n    <button className=\"bg-fondo m-1 mx-2 p-2 border-2 text-white  -md border-withe  hover:border-primary hover:text-primary active:bg-blue-600 focus:bg-primary focus:border-primary focus:text-fondo\">\r\n  {props.name}\r\n</button>\r\n  )\r\n}\r\n\r\nexport default function Examen(props){\r\n  const dispatch = useDispatch();\r\n\r\n  const minutos = useRef(null);\r\n  const segundos = useRef(null);\r\n\r\n  const {idExamen} = useParams();\r\n  const [idCuenta, setIdCuenta] = useState();\r\n\r\n  const reduxExam = useSelector(state => state.exam);\r\n  const user = useSelector(state => state.user);\r\n\r\n  \r\n  const [nombre, setNombre] = useState('');\r\n\r\n  const [cuenta, setCuenta] = useState(user.cuenta);\r\n  const [varContent,setVarContent] = useState([]);\r\n  const [examData,setExamData] = useState();\r\n  const [revision,setRevision] = useState(false);\r\n  const [visible,setVisible] = useState(false);\r\n  const [notas,setNotas] = useState();\r\n  const [tipo ,setTipo] = useState('');\r\n\r\n  const [redirect, setRedirect] = useState(false);\r\n\r\n  const [actualizarIntentos, setActualizarIntentos] = useState(false);\r\n  const [intentoActualizado, setIntentoActualizado] = useState(false);\r\n\r\n  const [loading, setLoading] = useState(true);\r\n\r\n  const cargarExamen = async () => {\r\n    const dd = await loadExams(idExamen, auth.currentUser.uid);\r\n    const idCta = dd[0].idCuenta;\r\n    console.log('idCta:::::::::::::::::::::::::::::::::::',idCta);\r\n    setIdCuenta(idCta);\r\n    dispatch(loadToExams(dd));\r\n    setLoading(false);\r\n  }\r\n\r\n  const rev = ()=>{\r\n    setRevision(true);\r\n  }\r\n//efecto para cargar las preguntas a exams\r\n  useEffect(()=>{\r\n    if(auth?.currentUser?.uid && idExamen){\r\n      cargarExamen();\r\n    }\r\n  },[ auth?.currentUser?.uid, idExamen])\r\n//ventana de confirmacion para cerrar ventana\r\n  useEffect(()=>{\r\n    window.onbeforeunload = function(e) {\r\n      e.preventDefault();\r\n      return '¿Esta seguro que desea salir?';\r\n    };\r\n  },[])\r\n\r\n  useEffect(()=>{\r\n    window.back = ()=>{\r\n      alert('No se puede regresar');\r\n    };\r\n  },[])\r\n\r\n  const finalizarRevision = ()=>{\r\n    let confirm = window.confirm(revision?\"¿Esta seguro de finalizar la revisión?\":\"¿Esta seguro de finalizar el Examen?\");\r\n    if(confirm){\r\n      //dispatch(getQuestion(auth.currentUser.uid));\r\n      setVisible(true);\r\n      rev();\r\n      if(revision){\r\n        setRedirect(true);\r\n      }\r\n    }\r\n    \r\n  }\r\n\r\n  useEffect(()=>{\r\n    if(examData){\r\n      const minut = evaluarExamen(examData)\r\n      console.log(minutos.current.innerText);\r\n      console.log(segundos.current);\r\n      minutos.current.innerText = `${minut.correctas + minut.incorrectas}`;\r\n      segundos.current.innerText = '0';\r\n    }\r\n  },[minutos,segundos,examData])\r\n\r\n  useEffect(() => {\r\n    if(!idCuenta) {\r\n      return;\r\n    }\r\n    if (!user?.cuenta){\r\n      return;\r\n    }\r\n    console.log(idCuenta);\r\n    console.log(user.cuenta);\r\n    setCuenta(user.cuenta);\r\n    user.cuenta.map(cuenta => {\r\n      if(cuenta.id === idCuenta){\r\n        setNombre(cuenta.nombre);\r\n        setTipo(cuenta.tipo);\r\n      }\r\n      else\r\n      {\r\n        console.log('no existe'+cuenta.idCuenta+'- '+idCuenta);\r\n      }\r\n    })\r\n    // console.log(user.cuenta)\r\n  } ,[user, idCuenta])\r\n\r\n  //hacer un cuenta regresiva\r\n  useEffect(() => {\r\n    let interval = setInterval(() => {\r\n      if(minutos?.current?.innerText === '0' && segundos.current.innerText === '0'){\r\n        clearInterval(interval);\r\n        setVisible(true);\r\n        rev();\r\n      }\r\n      else{\r\n        \r\n        if(segundos?.current?.innerText === '0'){\r\n          segundos.current.innerText = '59';\r\n          if(parseInt(minutos.current.innerText) - 1>10){\r\n            minutos.current.innerText = '0'+parseInt(minutos.current.innerText) - 1;\r\n          }else{\r\n            minutos.current.innerText = parseInt(minutos.current.innerText) - 1;\r\n          }\r\n        }\r\n        else{\r\n          if(segundos?.current?.innerText){\r\n            segundos.current.innerText = parseInt(segundos.current.innerText) - 1;\r\n          }\r\n        }\r\n      }\r\n    }, 1000);\r\n    return () => clearInterval(interval);\r\n  },[minutos,segundos]);\r\n\r\n  useEffect(() => {\r\n    if(revision === true){\r\n      dispatch(saveNotas(evaluarExamen(examData),cuenta));\r\n      setNotas(evaluarExamen(examData));\r\n    }\r\n  },[dispatch,revision]);\r\n\r\n  useEffect(()=>{\r\n    if(examData){\r\n      for (let index = 0; index < examData.length; index++) {\r\n        varContent[index] = 'none';\r\n      }\r\n      varContent[0] = 'flex';\r\n    }\r\n  },[examData]);\r\n\r\n  const bar = document.getElementById('bar');\r\n  if (bar) {\r\n    bar.style.display = 'none';\r\n  }\r\n\r\n  let contador = -1;\r\n\r\n  function changeContent(id ){\r\n    var auxVector =[];\r\n    for (let i = 0; i < varContent.length; i++) {\r\n      auxVector[i] = 'none';\r\n    }\r\n    auxVector[id] = 'flex';\r\n\r\n    setVarContent(auxVector);\r\n  }\r\n\r\n\r\n  useEffect(()=>{\r\n    if(!idCuenta){\r\n      return;\r\n    }\r\n\r\n    if(!loading){\r\n      if (reduxExam.exam) {\r\n        if(reduxExam.exam[0].idCuenta===idCuenta){\r\n          setExamData(reduxExam.exam);\r\n        } else{\r\n          const copia = reduxExam.exams.filter(e=>e.idCuenta === `${idCuenta}`);\r\n          console.log(\"cantoda de de la copia: \",copia.length);\r\n          if(copia.length>0){\r\n            setActualizarIntentos(true);\r\n          }\r\n          dispatch(loadExam(copia));\r\n        }\r\n      } else {\r\n        const copia = reduxExam.exams.filter(e=>e.idCuenta === `${idCuenta}`);\r\n        console.log(\"cantoda de de la copia: \",copia.length);\r\n        if(copia.length>0){\r\n          setActualizarIntentos(true);\r\n        }\r\n        dispatch(loadExam(copia));\r\n        console.log(copia,\"copia\");\r\n      }\r\n    }\r\n    \r\n\r\n  },[reduxExam, idCuenta, loading]);\r\n\r\n  useEffect(()=>{\r\n    window.addEventListener(\"beforeunload\", (e)=>{\r\n      e.preventDefault();\r\n      e.returnValue = \"hola\";\r\n    });\r\n\r\n    return ()=>{\r\n      window.removeEventListener(\"beforeunload\", (e)=>{\r\n        e.preventDefault();\r\n        e.returnValue = \"hola\";\r\n      });\r\n    }\r\n  });\r\n\r\n  useEffect(()=>{\r\n    if(actualizarIntentos){\r\n      if(intentoActualizado){\r\n        return;\r\n      } else{\r\n        setIntentoActualizado(true);\r\n        dispatch(updateIntentos(idCuenta, idExamen));\r\n        console.log(\"actualizando intentos una sola vez\");\r\n      }\r\n      \r\n    }\r\n  },[actualizarIntentos]);\r\n\r\n    return(\r\n    <>\r\n    {redirect?<Redirect to=\"/suggestions\" />:null}\r\n      {\r\n        loading?<h1>cargando</h1> :(\r\n          <>\r\n          <Modal visible={visible} title={'Tiempo Agotado'} onClose={()=>{setVisible(false);}}>\r\n        <div className=\"flex flex-col items-center justify-center\">\r\n          <p className=\"text-center text-2xl\">Se te termino el tiempo </p>\r\n          <p className=\"text-center text-2xl\">notas</p>\r\n          {notas?(\r\n            <>\r\n              <p className=\"text-center text-2xl\">Correctas:{notas.correctas}</p>\r\n              <p className=\"text-center text-2xl\">Incorrectas:{notas.incorrectas}</p>\r\n              <p className=\"text-center text-2xl\">Nota Final</p>\r\n              <p className={`text-center text-4xl ${notas.calificacion<=49?\"text-red-500\":notas.calificacion<=70?\"text-yellow-500\":\"text-green-500\"}`}>\r\n                {notas.calificacion.toFixed(2)}/100\r\n                </p>\r\n            </>):\r\n          null}\r\n          <button className=\" mt-4 bg-primary rounded m-1 mx-2 p-2 border-2 text-white  -md border-withe hover:bg-fondo hover:border-fondo active:bg-blue-600 focus:bg-primary focus:border-primary focus:text-fondo\" onClick={()=>{setVisible(false);}}> \r\n            Ir a revisión\r\n          </button>\r\n        </div>\r\n      </Modal>\r\n      <div className='flex flex-col justify-center items-between bg-black w-full py-5 text-white absolute'>\r\n        <div className='flex flex-row justify-around items-center'>\r\n          <div></div>\r\n          <div className='text-white text-2xl'>\r\n            <h3>{tipo === 'PPrac'?'Prueba Práctica': 'Prueba Final' }</h3></div>\r\n            {\r\n              revision&&\r\n              <Link to='/print'\r\n                className='bg-primary p-2 rounded'\r\n              >\r\n                Imprimir Prueba\r\n              </Link>\r\n            }\r\n          <button className='bg-primary p-2 rounded' onClick={()=>finalizarRevision()}>{revision?'Finalizar revisión': 'Finalizar Examen'}</button>\r\n        </div>\r\n      </div>\r\n      <div className='flex flex-row w-1/2 h-1/2 w-full bg-gray-200'>\r\n        <div className='bg-fondo w-1/4 flex flex-col justify-start items-center py-12'>\r\n          <h1 className='text-primary w-2/3 text-center text-xl mt-12'>{nombre}</h1>\r\n\r\n          <h3\r\n            className='text-white w-2/3 text-center text-xl mt-8'\r\n          >Tiempo restante:</h3>\r\n          <div className='flex flex-row justify-center justify-center mt-2'>\r\n            <div className='flex flex-col justify-start items-start' >\r\n              <p ref={minutos} className='text-white text-center text-6xl'>60 :</p>\r\n              <p className='text-primary text-start'>minutos</p>\r\n            </div>\r\n            <p className='text-white self-start text-6xl'>:</p>\r\n            <div className='flex flex-col justify-center items-center' >\r\n              <p ref={segundos} className='text-white text-center text-6xl'>12</p>\r\n              <p className='text-primary text-center'>segundos</p>\r\n            </div>\r\n          </div>\r\n          <div className='mb-8 mt-8 items-self-start text-center flex flex-col w-full'>\r\n            {//inicio de pestania\r\n            examData?\r\n              examData.map((item,index)=>{\r\n                return(\r\n                  <Pestania \r\n                    key={index}\r\n                    nombre={item.materia}  \r\n                    id={index} \r\n                    onPress={()=>{changeContent(index)}}\r\n                    active={varContent[index]==='flex'?true:false}\r\n                  />\r\n                )\r\n              }):null\r\n              \r\n            }\r\n          </div>\r\n        </div>\r\n        {/**inicio de  materias   activo flex desactivado nones*/}\r\n            {\r\n              examData?\r\n              examData.map((item,index)=>{\r\n                console.log(varContent[contador]);\r\n                contador++;\r\n\r\n                return(\r\n                  <Materia \r\n                    key={index}\r\n                    display={`${varContent[contador]}`} \r\n                    data={item}\r\n                    revision={revision}\r\n                    siguenteMateria = {()=>{changeContent(index+1)}}\r\n                    anteriorMateria = {()=>{changeContent(index-1)}}\r\n                    cantidadMateria = {examData.length}\r\n                    index = {index}\r\n                  />\r\n                  \r\n                );\r\n              }):null\r\n            }\r\n        {/**fin de  materias  */}\r\n      </div>\r\n          </>\r\n        )\r\n      }\r\n      \r\n    </>\r\n    );\r\n};","import React, { useEffect, useState } from \"react\";\r\nimport {useForm} from 'react-hook-form';\r\nimport { useDispatch } from \"react-redux\";\r\nimport { clearExam } from \"../../redux/actions/exam\";\r\nimport {Redirect} from 'react-router-dom';\r\nimport {setSuggestion} from \"../../utils/suggestions\";\r\n\r\n//nombre telefono correo descripcion de sugerencia\r\nexport default function Suggestions() {\r\n  const dispatch = useDispatch();\r\n  const { reset ,register, handleSubmit, formState: { errors } } = useForm();\r\n  const [isLoading, setIsLoading] = useState(false);\r\n  const [redirect, setRedirect] = useState(false);  \r\n\r\n  const bar = document.getElementById('bar');\r\n    if (bar) {\r\n      bar.style.display = 'block';\r\n    }\r\n\r\n  const onSubmit = async (data, e) => {\r\n      try {\r\n          setIsLoading(true);\r\n          const id = await setSuggestion(data);\r\n          console.log(id);\r\n          setIsLoading(false);\r\n          reset();\r\n          alert('Sugerencia enviada');\r\n          setTimeout(() => {\r\n            setRedirect(true);\r\n          }, 3000);\r\n          \r\n      } catch (error) {\r\n          console.log(error);\r\n          setIsLoading(false);\r\n      }\r\n  };\r\n\r\n  useEffect(()=>{\r\n    dispatch(clearExam());\r\n  },[]);\r\n  \r\n  return (\r\n      <>\r\n        {redirect?<Redirect to=\"/\" />:null}\r\n        <div className=\"pt-24 px-4 flex items-center flex-col\">\r\n          <center><h1 className=\"text-primary text-3xl\">Sugerencias</h1></center>\r\n          <form onSubmit={handleSubmit(onSubmit)} className=\"flex flex-col justify-center w-1/2\">\r\n            <input\r\n              name=\"name\"\r\n              placeholder=\"Nombre\"\r\n              type=\"text\"\r\n              className=\"my-3 p-2 border-2 focus:border-0 focus:border-red-0 focus:border-red-300\"\r\n              {...register(\"name\", {required:true})}        \r\n            />\r\n            {errors.name?.type === 'required' && \"Debe ingresar su nombre\"}\r\n            <input\r\n              name=\"lastname\"\r\n              placeholder=\"Apellido\"\r\n              type=\"text\"\r\n              className=\"my-3 p-2 border-2 focus:border-0 focus:border-red-0 focus:border-red-300\"\r\n              {...register(\"lastname\", {required:true})}        \r\n            />\r\n            {errors.lastname?.type === 'required' && \"Debe ingresar su apellido\"}\r\n            <input\r\n              name=\"email\"\r\n              placeholder=\"Correo electrónico\"\r\n              type=\"email\"\r\n              className=\"my-3 p-2 border-2 focus:border-0 focus:border-red-0 focus:border-red-300\"\r\n              {...register(\"email\")}        \r\n            />\r\n            <input\r\n              name=\"phone\"\r\n              placeholder=\"Numero de telefono\"\r\n              type=\"number\"\r\n              className=\"my-3 p-2 border-2 focus:border-0 focus:border-red-0 focus:border-red-300\"\r\n              {...register(\"phone\")}        \r\n            />\r\n            <textarea \r\n              name=\"description\" \r\n              placeholder=\"Descripcion de sugerencia\"\r\n              className=\"my-3 p-2 border-2 focus:border-0 focus:border-red-0 focus:border-red-300\"\r\n              rows=\"4\" \r\n              cols=\"20\"\r\n              {...register(\"description\", {required:true})}\r\n            />\r\n            {errors.description?.type === 'required' && \"Debe ingresar la descripcion de su sugerencia\"}\r\n            {!isLoading?<button className=\"py-2 px-4 border-2 border-primary font-semibold rounded-lg shadow-md text-white bg-primary hover:bg-transparent hover:text-primary\">\r\n                      Enviar sugerencia\r\n                  </button>:\r\n                  <button className=\"py-2 px-4 border-2 border-primary font-semibold rounded-lg shadow-md text-white bg-primary\" disabled>\r\n                    <center>\r\n                      <div className='flex'>\r\n                        <div className=\"mr-1\">cargando</div>\r\n                        <div className={`h-2.5 w-2.5 bg-current rounded-full mr-1 animate-bounce`}></div>\r\n                        <div className={`h-2.5 w-2.5 bg-current rounded-full mr-1 animate-bounce200`}></div>\r\n                        <div className={`h-2.5 w-2.5 bg-current rounded-full mr-1 animate-bounce400`}></div>\r\n                      </div>\r\n                    </center>\r\n                  </button>\r\n                  }\r\n          </form>\r\n        </div>\r\n      </>\r\n    );\r\n}\r\n","import { db } from '../../src/config/firebase';\r\nimport dbRef from '../config/dbRef';\r\nimport {shuffleArray} from './arrays';\r\n//import { useDispatch, useSelector } from 'react-redux';\r\nimport { doc, addDoc, collection} from \"firebase/firestore\";\r\n\r\nexport const setSuggestion =  (data) =>\r\nnew Promise(async (resolve, reject) => {\r\n    try{\r\n        const {name, lastname, email, phone, description} = data;\r\n        const docRef = await addDoc(collection(db, dbRef.suggestios), {\r\n            name: name,\r\n            lastname: lastname,\r\n            email: email,\r\n            phone: phone,\r\n            description: description\r\n        });\r\n        resolve(docRef.id);\r\n    } catch (error) {\r\n        reject(error);\r\n    }\r\n});","import React ,{useState,useEffect,useRef} from 'react';\r\nimport Pregunta from './components/pregunta';\r\nimport Materia from './components/materia';\r\nimport Pestania from './components/pestania';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {auth} from '../../config/firebase';\r\nimport {evaluarExamen} from './../../utils/exam';\r\nimport {loadExam,loarExamTest, saveNotas, getQuestion, clearExam} from './../../redux/actions/exam';\r\nimport {updateIntentos} from './../../redux/actions/user';\r\nimport { ref } from 'firebase/storage';\r\nimport Modal from '../components/Modal';\r\nimport {Redirect} from 'react-router-dom';\r\nimport {getExamTest, privateToken} from './getExam';\r\n\r\n\r\nconst Pestanias = (props) => {\r\n\r\n  \r\n  return(\r\n    <button className=\"bg-fondo m-1 mx-2 p-2 border-2 text-white  -md border-withe  hover:border-primary hover:text-primary active:bg-blue-600 focus:bg-primary focus:border-primary focus:text-fondo\">\r\n  {props.name}\r\n</button>\r\n  )\r\n}\r\n\r\nexport default function Examen(props){\r\n  const minutos = useRef(null);\r\n  const segundos = useRef(null);\r\n  const {idMaterias} = useParams();\r\n  const reduxExam = useSelector(state => state.exam);\r\n  const test = useSelector(state => state.test.test);\r\n  const dispatch = useDispatch();\r\n  const [nombre, setNombre] = useState('');\r\n  const [varContent,setVarContent] = useState([]);\r\n  const [examData,setExamData] = useState();\r\n  const [revision,setRevision] = useState(false);\r\n  const [visible,setVisible] = useState(false);\r\n  const [notas,setNotas] = useState({});\r\n  const [isLoad,setIsLoad] = useState(false);\r\n  const [redirect, setRedirect] = useState(false);\r\n\r\n  const [notasRevision ,setNotasRevision] = useState ([]);\r\n\r\n  const [screenWidth,setScreenWidth] = useState(window.innerWidth);\r\n  const [materiaActive,setMateriaActive] = useState('');\r\n\r\n  const [pestaniasActivas,setPestaniasActivas] = useState(false);\r\n\r\n  const rev = ()=>{\r\n    setRevision(true);\r\n  }\r\n\r\n\r\n//ventana de confirmacion para cerrar ventana\r\n  useEffect(()=>{\r\n    window.onbeforeunload = function(e) {\r\n      e.preventDefault();\r\n      return '¿Esta seguro que desea salir?';\r\n    };\r\n  },[])\r\n\r\n  useEffect(()=>{\r\n    window.back = ()=>{\r\n      alert('No se puede regresar');\r\n    };\r\n  },[])\r\n\r\n  const finalizarRevision = ()=>{\r\n    let confirm = window.confirm(revision?\"¿Esta seguro de finalizar la revisión?\":\"¿Esta seguro de finalizar el Examen?\");\r\n    if(confirm){\r\n      // dispatch(getQuestion(auth.currentUser.uid));\r\n      let correcta = 0;\r\n      let incorrecta = 0;\r\n      test.map((item) => {\r\n        if(item.correcto)\r\n          correcta++;\r\n        else\r\n          incorrecta++;\r\n      });\r\n      //ponderacion a 100 puntos\r\n      //redondear a 2 decimales\r\n      // let nota = Math.round((correcta*100/test.length)*100)/100;\r\n      setNotas({\r\n        nota : Math.round((correcta*100/test.length)*100)/100,\r\n        correctas : correcta,\r\n        incorrectas : incorrecta,\r\n      });\r\n      setVisible(true);\r\n      rev();\r\n      if(revision){\r\n        setRedirect(true);\r\n      }\r\n    }\r\n    \r\n  }\r\n\r\n  useEffect(()=>{\r\n    if(examData){\r\n      const minut = evaluarExamen(examData)\r\n      console.log(minutos.current.innerText);\r\n      console.log(segundos.current);\r\n      minutos.current.innerText = `${minut.correctas + minut.incorrectas}`;\r\n      segundos.current.innerText = '0';\r\n    }\r\n  },[minutos,segundos,examData])\r\n\r\n\r\n  //hacer un cuenta regresiva\r\n  useEffect(() => {\r\n    let interval = setInterval(() => {\r\n      if(minutos?.current?.innerText === '0' && segundos.current.innerText === '0'){\r\n        clearInterval(interval);\r\n        setVisible(true);\r\n        rev();\r\n      }\r\n      else{\r\n        \r\n        if(segundos?.current?.innerText === '0'){\r\n          segundos.current.innerText = '59';\r\n          if(parseInt(minutos.current.innerText) - 1>10){\r\n            minutos.current.innerText = '0'+parseInt(minutos.current.innerText) - 1;\r\n          }else{\r\n            minutos.current.innerText = parseInt(minutos.current.innerText) - 1;\r\n          }\r\n        }\r\n        else{\r\n          if(segundos?.current?.innerText){\r\n            segundos.current.innerText = parseInt(segundos.current.innerText) - 1;\r\n          }\r\n        }\r\n      }\r\n    }, 1000);\r\n    return () => clearInterval(interval);\r\n  },[minutos,segundos]);\r\n\r\n  const cargarNotas = (preguntaCorrecta, opcionSeleccionda, pocision )=>{\r\n    if(opcionSeleccionda === preguntaCorrecta)\r\n      pocision = 1;\r\n    else\r\n      pocision = 0;\r\n  }\r\n\r\n  useEffect(()=>{\r\n    if(examData){\r\n      for (let index = 0; index < examData.length; index++) {\r\n        varContent[index] = 'none';\r\n        \r\n      }\r\n      varContent[0] = 'flex';\r\n    }\r\n  },[examData]);\r\n\r\n  const bar = document.getElementById('bar');\r\n  if (bar) {\r\n    bar.style.display = 'none';\r\n  }\r\n\r\n  let contador = -1;\r\n\r\n  function changeContent(id , materia){\r\n    var auxVector =[];\r\n    for (let i = 0; i < varContent.length; i++) {\r\n      auxVector[i] = 'none';\r\n    }\r\n    auxVector[id] = 'flex';\r\n    setPestaniasActivas(!pestaniasActivas);\r\n    setVarContent(auxVector);\r\n    setMateriaActive(materia);\r\n\r\n  }\r\n  const loadExamTest = async() => {\r\n    try{\r\n      const data = await getExamTest(idMaterias);\r\n      setIsLoad(true);\r\n      setExamData(data);\r\n      dispatch(loarExamTest(data));\r\n      setMateriaActive(data[0].materia);\r\n    }catch(error){\r\n      setIsLoad(false);\r\n      console.log(error);\r\n    }\r\n  }\r\n\r\n\r\n  useEffect(()=>{\r\n    if (reduxExam.examTest) {\r\n      if(reduxExam.examTest[0].idCuenta===\"_test_acc\"){\r\n        setExamData(reduxExam.examTest);\r\n      } else{\r\n        //const copia = reduxExam.exams.filter(e=>e.idCuenta === `_test_acc`);\r\n        loadExamTest()\r\n        //console.log(\"cantoda de de la copia: \",copia.length);\r\n        //dispatch(loarExamTest(copia));\r\n      }\r\n    } else {\r\n      loadExamTest()\r\n      //const copia = reduxExam.exams.filter(e=>e.idCuenta === `_test_acc`);\r\n      //console.log(\"cantoda de de la copia: \",copia.length);\r\n      //dispatch(loarExamTest(copia));\r\n    }\r\n\r\n  },[reduxExam.examTest]);\r\n\r\n\r\n    return(\r\n     <>{isLoad?\r\n    \r\n    <>\r\n    {redirect?<Redirect to=\"/Pricing\" />:null}\r\n      <Modal visible={visible} title={'Tiempo Agotado'} onClose={()=>{setVisible(false);}}>\r\n        <div className=\"flex flex-col items-center justify-center\">\r\n        {notas?(\r\n            <>\r\n              <p className=\"text-center text-green-500 text-xl\">Correctas:{notas.correctas}</p>\r\n              <p className=\"text-center text-red-500 text-xl\">Incorrectas:{notas.incorrectas}</p>\r\n              <p className=\"text-center text-2xl\">Nota Final</p>\r\n              <p className={`text-center text-2xl ${notas.nota<=49?\"text-red-500\":notas.nota<=70?\"text-yellow-500\":\"text-green-500\"}`}>\r\n                {notas.nota}/100\r\n                </p>\r\n            </>):\r\n          null} \r\n          <p className=\"text-center text-xl my-2\">\r\n            Para ver los estadisticas de esta prueba Contáctanos ahora.\r\n          </p>\r\n          <div className=\"flex justify-center\">\r\n          <a href=\"https://api.whatsapp.com/send?phone=59161885865&text=Hola%20acabo%20de%20rendir%20un%20examen%20de%20prueba.%20Quiero%20mas%20información\" \r\n          className=\"bg-fondo hover:bg-green-700 text-white font-bold py-2 px-4 rounded-full\">\r\n            Contactanos\r\n          </a>\r\n          <button className=\"bg-primary rounded-full ml-2 text-white  py-2 px-4 hover:bg-fondo hover:border-fondo active:bg-blue-600 focus:bg-primary focus:border-primary focus:text-fondo\" onClick={()=>{setVisible(false);}}> \r\n            Ir a revisión\r\n          </button>\r\n          </div>\r\n        \r\n          \r\n        </div>\r\n      </Modal>\r\n      <div className='flex flex-col justify-center items-between bg-black w-full py-5 text-white absolute'>\r\n        <div className='flex flex-row justify-around items-center'>\r\n          \r\n         {\r\n           screenWidth < 768 ?\r\n           <div className='flex flex-row justify-center justify-center mt-0'>\r\n            <div className='flex flex-col justify-start items-start' >\r\n              <p ref={minutos} className='text-white text-center text-3xl'>60 :</p>\r\n              <p className='text-primary text-start'>minutos</p>\r\n            </div>\r\n            <p className='text-white self-start text-3xl'>:</p>\r\n            <div className='flex flex-col justify-center items-center' >\r\n              <p ref={segundos} className='text-white text-center text-3xl'>12</p>\r\n              <p className='text-primary text-center'>segundos</p>\r\n            </div>\r\n          </div>:\r\n          'Este es un examen unicamente de prueba, Suerte'\r\n         }\r\n\r\n          <button className='bg-primary p-2 rounded' onClick={()=>finalizarRevision()}>{revision?'Finalizar revisión': 'Finalizar Examen'}</button>\r\n        </div>\r\n        {\r\n          screenWidth < 768 ?\r\n          <div className='flex flex-col justify-around items-center'>\r\n          <p\r\n            onClick={()=>setPestaniasActivas(!pestaniasActivas)}\r\n            className='cursor-pointer text-lg font-normal bg-gray-100 p-2 rounded px-6 mt-4 text-fondo mx-2 text-center'\r\n          >{materiaActive} </p>\r\n          <div className={`bg-blue-300 w-11/12 transition duration-100 ease-in-out transform mt-3 ${pestaniasActivas?'scale-100 h-auto':'scale-0 h-0'}`}>\r\n            {\r\n              examData?\r\n                  examData.map((item,index)=>{\r\n                    return(\r\n                      <Pestania \r\n                        key={index}\r\n                        nombre={item.materia}  \r\n                        id={index} \r\n                        onPress={()=>{changeContent(index,item.materia)}}\r\n                        active={varContent[index]==='flex'?true:false}\r\n                      />\r\n                    )\r\n                  }):null\r\n              \r\n            }\r\n          </div>\r\n        </div>:null\r\n        }\r\n        \r\n      </div>\r\n      <div className='flex flex-row w-1/2 h-1/2 w-full'>\r\n        <div className='bg-fondo w-1/4 flex flex-col justify-start items-center py-12 sm:hidden md:flex mt-16' >\r\n          {\r\n            screenWidth > 768 ?\r\n            <div className='flex flex-row justify-center justify-center mt-12'>\r\n              <div className='flex flex-col justify-start items-start' >\r\n                <p ref={minutos} className='text-white text-center text-6xl'>60 :</p>\r\n                <p className='text-primary text-start'>minutos</p>\r\n              </div>\r\n              <p className='text-white self-start text-6xl'>:</p>\r\n              <div className='flex flex-col justify-center items-center' >\r\n                <p ref={segundos} className='text-white text-center text-6xl'>12</p>\r\n                <p className='text-primary text-center'>segundos</p>\r\n              </div>\r\n            </div>\r\n            :null\r\n          }\r\n          {\r\n            screenWidth > 768 ?\r\n            <div className='mt-6 items-self-start text-center flex flex-col w-full'>\r\n            {//inicio de pestania\r\n            examData?\r\n              examData.map((item,index)=>{\r\n                return(\r\n                  <Pestania \r\n                    key={index}\r\n                    nombre={item.materia}  \r\n                    id={index} \r\n                    onPress={()=>{changeContent(index,item.materia)}}\r\n                    active={varContent[index]==='flex'?true:false}\r\n                  />\r\n                )\r\n              }):null\r\n              \r\n            }\r\n          </div>:null\r\n          }\r\n          \r\n        </div>\r\n            {\r\n              examData?\r\n              examData.map((item,index)=>{\r\n                console.log(varContent[contador]);\r\n                contador++;\r\n\r\n                return(\r\n                  <Materia \r\n                    key={index}\r\n                    display={`${varContent[contador]}`} \r\n                    data={item}\r\n                    notas= {notasRevision}\r\n                    onPress={()=>{cargarNotas()}}\r\n                    revision={revision}\r\n                    espacio = {notasRevision[index]}\r\n                  />\r\n                  \r\n                );\r\n              }):null\r\n            }\r\n        {/**fin de  materias  */}\r\n      </div>\r\n    </>:<>\r\n        <text>Cargando...</text>\r\n    </>\r\n}\r\n    </>\r\n    );\r\n};","// collection Cursos\r\n//idcurso:cpTO2Hbr2kB6n6q1g1eq\r\n\r\n//AL INGRESAR CORREO VERIFICAR SI EXISTE EN _USERS  \r\n// Y VERIFICAR CORREO EN EL EVENTO\r\n\r\n//datos\r\n// nombre ,correo, \r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Link, useParams } from 'react-router-dom';\r\nimport Header from \"../components/headerPage\";\r\nimport { FaFacebook, FaInstagram  } from \"react-icons/fa\";\r\nimport {IoIosGlobe} from \"react-icons/io\";\r\n// import \r\n\r\nimport  Comments  from \"../components/comments\";\r\nimport Footer from \"../components/footer\";\r\nimport Title from \"../components/title\";\r\nimport image from \"../../assets/images/team.png\";\r\nimport redes from \"../../assets/images/redes.png\";\r\nimport banner from \"../../assets/images/banner.png\";\r\nimport banner2 from \"./primer.png\";\r\n\r\n\r\n//crear componente funcinal\r\nexport default function Team() {\r\n    let { idEvent } = useParams();\r\n    const [eventId, setEventId] = useState(\"\");\r\n\r\n    useEffect(() => {\r\n        //ruta:localhost:3000/events/cpTO2Hbr2kB6n6q1g1eq\r\n        //obtener el idEvent con useParamos \r\n        setEventId(idEvent);\r\n    }, [idEvent]);\r\n    return (\r\n        <>\r\n        <Header titulo={\"El divorcio en el siglo XXI\"} nombre={\"10 de junio a horas 19:00 \"} mensaje={\"El divorcio en el siglo XXI\"} image={image} />\r\n        <div className=\"bg-white w-full py-20 px-32 sm:py-5 sm:px-5  md:py-20 md:px-12\">\r\n            <div className=\"flex flex-row justify-around sm:flex-col md:flex-row\">\r\n                <div className=\"w-1/2 pr-32 sm:w-full md:w-1/2 md:pr-8 sm:pr-3 pl-3\">\r\n                    <h2 className=\"my-5 font-bold text-3xl pr-10 text-center text-primary\">\r\n                    EL DIVORCIO EN EL SIGLO XXI\r\n                    </h2>\r\n                    <p className=\"text-justify\">\r\n                    Este es un evento presencial para la ciudad de Sucre y virtual para el resto de Bolivia, dirigido a:\r\n                    </p>\r\n                    <ul className=\" ml-12\">\r\n                        <li type=\"square\" className=\"text-justify\">\r\n                          Abogados en el ejercicio libre de la profesión.\r\n                        </li>\r\n                        <li type=\"square\" className=\"text-justify\">\r\n                          Especialistas en derecho de familia.   \r\n                        </li>\r\n                        <li type=\"square\" className=\"text-justify\">\r\n                          Funcionarios de salas de Familia de los Tribunales de Justicia de los diferentes departamentos.\r\n                        </li>\r\n                        <li type=\"square\" className=\"text-justify\">\r\n                          Población en general interesada en el tema.\r\n                        </li>\r\n                    </ul>\r\n                    <p className=\"text-justify\"><br/>\r\n                    Se realizará en instalaciones de CAINCO calle España #67 (ciudad de Sucre)<br/><br/>\r\n                    <b className=\"text-primary\">El pago de su inscripción cubre:</b>\r\n                    </p>\r\n                    <ul className=\" ml-12\">\r\n                        <li type=\"square\" className=\"text-justify\">\r\n                          Acceso al evento.\r\n                        </li>\r\n                        <li type=\"square\" className=\"text-justify\">\r\n                          Refrigerio (modalidad presencial).\r\n                        </li>\r\n                        <li type=\"square\" className=\"text-justify\">\r\n                          Envió de certificados por Courier (modalidad virtual).\r\n                        </li>\r\n                        <li type=\"square\" className=\"text-justify\">\r\n                          Material.\r\n                        </li>\r\n                    </ul>\r\n                    <p className=\"text-justify\">\r\n                    <br/>\r\n                   El Certificado del evento estará firmado por el expositor, representante legal Apriori, Fundación Actívate, Federación de Empresarios Privados de Chuquisaca, Universidad San Francisco Xavier de Chuquisaca, Gobierno Autónomo Municipal de Sucre.\r\n                    </p>\r\n                    <p className=\"text-justify\">\r\n                    <br/>\r\n                    <b className=\"text-primary\">Nota.-</b>\r\n                    Al finalizar el evento, el participante tendrá un lapso de 24 horas para realizar una prueba de conocimientos sobre el tema desarrollado.\r\n                    </p>\r\n                    \r\n                    {/* <p className=\"text-justify\">\r\n                    Se realizará en instalaciones de CAINCO calle España #67 (ciudad de Sucre) \r\n                    </p>\r\n                    <p className=\"text-justify\">\r\n                    El pago de su inscripción cubre:\r\n                    </p>\r\n                    <p className=\"text-justify\">\r\n                    • Acceso al evento.\r\n                    </p>\r\n                    <p className=\"text-justify\">\r\n                    • Refrigerio (modalidad presencial).\r\n                    </p>\r\n                    <p className=\"text-justify\">\r\n                    •  Envió de certificados por Courier (modalidad virtual).\r\n                    </p>\r\n                    <p className=\"text-justify\">\r\n                    • Material.\r\n                    </p>\r\n                    <p className=\"text-justify\">\r\n                    • Certificado (Firmado por el expositor, representante legal Apriori, Fundación Actívate, Federación de Empresarios Privados de Chuquisaca, Universidad San Francisco Xavier de Chuquisaca, Gobierno Autónomo Municipal de Sucre).\r\n                    </p> */}\r\n\r\n                    {/* <Link >as</Link> */}\r\n                    <br/>\r\n                    <Link to={\"/register-to-event/\"+eventId} className=\"bg-primary text-white py-2 px-4 rounded-full mt-5\">Inscribirse</Link>\r\n                </div>\r\n                <div className=\"bg-cover bg-center w-1/4 h-98 bg-no-repeat sm:w-full md:w-1/2 mt-0 md:mt-0 sm:mt-8 sm:bg-contain md:bg-contain sm:h-80 md:h-98\" style={{backgroundImage:`url(${banner2})`}}/>\r\n            </div>\r\n            {/* <div  className=\"flex flex-row justify-between mt-14\" >\r\n                <div>\r\n                    <h1 className=\"text-2xl\"><span  className=\"text-4xl text-primary mb-8\">01.</span> mision</h1>\r\n                    <p className=\"mt-3\">la mision de apriori es la mision de apriori cumpliendo la mision que todos tenemos\" osea aqui la mision\"</p>\r\n                </div>\r\n                <div>\r\n                    <h1 className=\"text-2xl\"><span className=\"text-4xl text-primary mb-8\">02.</span> vision</h1>\r\n                    <p className=\"mt-3\">la mision de apriori es la mision de apriori cumpliendo la mision que todos tenemos\" osea aqui la mision\"</p>\r\n                </div>\r\n                <div>\r\n                    <h1 className=\"text-2xl\"><span className=\"text-4xl text-primary mb-8\">03.</span> enfoque</h1>\r\n                    <p className=\"mt-3\">la mision de apriori es la mision de apriori cumpliendo la mision que todos tenemos\" osea aqui la mision\"</p>\r\n                </div>\r\n            </div> */}\r\n        </div>{/*\r\n        <div className=\"flex flex-row justify-around w-full p-8\" style={{backgroundImage:`url(${redes})`,backgroundPosition:'bottom'}}>\r\n            <div className=\"flex flex-col items-center\">\r\n                <FaFacebook className=\"text-3xl text-primary\"/>\r\n                <h1 className=\"text-5xl mt-2 text-white\">248</h1>\r\n                <p className=\"text-white\">Facebook</p>\r\n            </div>\r\n            <div className=\"flex flex-col items-center\">\r\n                <FaInstagram className=\"text-3xl text-primary\"/>\r\n                <h1 className=\"text-5xl mt-2 text-white\">33</h1>\r\n                <p className=\"text-white\">Instagram</p>\r\n            </div>\r\n            <div className=\"flex flex-col items-center text-primary\">\r\n                <IoIosGlobe className=\"text-3xl text-primary\"/>\r\n                <h1 className=\"text-5xl mt-2 text-white\">157</h1>\r\n                <p className=\"text-white\">Visitas Web</p>\r\n            </div>\r\n        </div>*/}\r\n        <Title titulo=\"EL DIVORCIO EN EL SIGLO XXI\" mensaje=\"\"/>\r\n        \r\n        <Footer/>\r\n        \r\n        </>\r\n    );\r\n}\r\n","// collection Cursos\r\n//idcurso:cpTO2Hbr2kB6n6q1g1eq\r\n\r\n//AL INGRESAR CORREO VERIFICAR SI EXISTE EN _USERS  \r\n// Y VERIFICAR CORREO EN EL EVENTO\r\n\r\n//datos\r\n// nombre ,correo, \r\n\r\nimport React ,{ Fragment, useState, useEffect, useRef }from 'react';\r\nimport 'react-phone-number-input/style.css';\r\nimport Barcode from 'react-barcode';\r\nimport domtoimage from 'dom-to-image';\r\nimport { saveAs } from 'file-saver'\r\n\r\nimport PhoneInput, {/* formatPhoneNumber, formatPhoneNumberIntl,*/ isValidPhoneNumber } from 'react-phone-number-input'\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport {Link} from 'react-router-dom';\r\nimport {Redirect, useParams} from 'react-router-dom';\r\nimport {useForm} from 'react-hook-form';\r\n\r\n//import {auth} from '../../config/firebase';\r\n\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { registerEmailPassSignUp, startClearError, startClearSuccess } from '../../redux/actions/auth';\r\n//import { getUser } from '../../redux/actions/user';\r\n//import { startGoogleAuth, startLogOut } from '../../redux/actions/auth';\r\nimport Modal from '../components/Modal';\r\nimport Panel from './components/Panel';\r\nimport {getInscritoByEmail, userExist, generateBarCode, registerData} from './services/events';\r\n\r\nexport default function Signup() {\r\n\r\n  const { register, handleSubmit, formState: { errors }, getValues } = useForm();\r\n\r\n  const dispatch = useDispatch();\r\n\tconst { idEvent } = useParams();\r\n\tconst imgContainer = useRef(null);\r\n\r\n  const reduxAuth = useSelector(state => state.auth);\r\n  const cart = useSelector(state => state.cart);\r\n\r\n\tconst [eventId, setEventId] = useState(\"\");\r\n  const [phone , setPhone] = useState();\r\n  const [isAuthenticated, setIsAuthenticated] = useState(false);\r\n  const [errorPhone, setErrorPhone] = useState(false);\r\n  const [password, setPassword] = useState();\r\n  const [errorPassword, setErrorPassword] = useState('');\r\n  const [errorPassword2, setErrorPassword2] = useState('');\r\n  const [startDate, setStartDate] = useState(new Date());\r\n  const [modal, setModal] = useState(false);\r\n  const [errorModal, setErrorModal] = useState(false);\r\n  const [successModal, setSuccessModal] = useState(false);\r\n  const [userData, setUserData] = useState({});\r\n  const [ciudad , setCiudad] = useState();\r\n\r\n  const [panel, setPanel] = useState(1);\r\n\tconst [errorPanel1, setErrorPanel1] = useState(false);\r\n\tconst [panel1Message, setPanel1Message] = useState('');\r\n\tconst [errorPanel2, setErrorPanel2] = useState(false);\r\n\tconst [panel2Message, setPanel2Message] = useState('');\r\n\r\n\r\n\tconst [isNewUser, setIsNewUser ] = useState(true);\r\n\tconst [userId, setUserId] = useState('');\r\n\tconst [modalidad, setModalidad] = useState('');\t\r\n\tconst [barCode, setBarCode] = useState('');\r\n\r\n  const [ whatsappModal, setWhatsappModal] = useState(false);\r\n  const [telefono, setTelefono] = useState();\r\n\r\n  const [buttonDisabled, setButtonDisabled] = useState(false);\r\n\tconst [succesRedirect, setSuccesRedirect] = useState(false);\r\n  //const [extencion,setExtencion] = useState();\r\n  //const [errorExtencion,setErrorExtencion] = useState(false);\r\n\tconst exportToPng = (dom) =>{\r\n\t\tdomtoimage\r\n\t\t\t.toPng(dom)\r\n\t\t\t.then(function (dataUrl) {\r\n\t\t\t\tsaveAs(dataUrl, 'apriori-bar-code.png')\r\n\t\t\t\t\r\n\t\t\t})\r\n\t\t\t.catch(function (error) {\r\n\t\t\t\tconsole.error(\"oops, something went wrong!\", error);\r\n\t\t\t});\r\n\t}\r\n\r\n  const closeErrorModal = () => {\r\n    setErrorModal(false);\r\n    dispatch(startClearError());\r\n  }\r\n\r\n  const closeSuccessModal = () => {\r\n    setSuccessModal(false);\r\n    dispatch(startClearSuccess());\r\n    setIsAuthenticated(true);\r\n  }\r\n\r\n  const submit = async () =>{\r\n\t\ttry{\r\n\t\t\tconsole.log(userData)\r\n\t\t\tsetButtonDisabled(true)\r\n\t\t\tconst result = await registerData(userData)\r\n\t\t\tif(result === 'ok'){\r\n\t\t\t\tsetSuccessModal(true);\r\n\t\t\t\tsetButtonDisabled(false);\r\n\t\t\t}\r\n\t\t} catch(error){\r\n\t\t\tconsole.log(error)\r\n\t\t\tsetErrorModal(true);\r\n\t\t\tsetButtonDisabled(false)\r\n\t\t}\r\n    // dispatch(registerEmailPassSignUp(userData));\r\n  }\r\n\r\n//datos del usuario celular ciudad y pais \r\n  const onSubmit = (data, e) => {\r\n\t\tconsole.log(\"aquiiiiiiiiiiiiiiiiiiiii s\");\r\n    if(phone){\r\n      if(isValidPhoneNumber(phone)){\r\n        data.phone = phone;\r\n        setErrorPhone(false);\r\n      } else{\r\n\t\t\t\tsetErrorPhone(true);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tsetErrorPhone(false);\r\n\t\t\t\t}, 1000);\r\n        return\r\n      }\r\n    }else {\r\n      setErrorPhone(true);\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tsetErrorPhone(false);\r\n\t\t\t}, 1000);\r\n      return\r\n    }\r\n    let day=startDate.getDate();\r\n    let month=startDate.getMonth()+1;\r\n    const year=startDate.getFullYear();\r\n    if(day<10){\r\n      day=`0${day}`;\r\n    }\r\n    if(month<10){\r\n      month=`0${month}`;\r\n    }\r\n\r\n    data.birthday = `${day}/${month}/${year}`;\r\n\t\tif (isNewUser){\r\n\t\t\tif(data.password.length<8){\r\n\t\t\t\tsetErrorPassword('la contraseña debe tener al menos 8 caracteres');\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tif(data.password !== data.password2){\r\n\t\t\t\tsetErrorPassword2('Las contraseñas no coinciden');\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(!data.preferencia){\r\n\t\t\tdata.preferencia='Ninguno';\r\n\t\t}\r\n\t\tdata.codigoBarras=barCode;\r\n\t\tdata.eventId=eventId;\r\n\t\tdata.isNewUser=isNewUser;\r\n\t\tdata.modalidad=modalidad;\r\n\t\tdata.userId=userId;\r\n    setErrorPassword('');\r\n    setErrorPassword2('');\r\n    console.log(data);    \r\n    setUserData(data);\r\n    setModal(true);\r\n  };\r\n\r\n  const setPhones = (e)=> {\r\n    setPhone(e);\r\n  }\r\n  const validPass = (e,p)=>{\r\n    //console.log(e.target.value,p);\r\n    if(p==='p1'){\r\n      if(e.target.value.length>=8){\r\n        console.log('entro: ',e.target.value.length);\r\n        setErrorPassword('');\r\n        setPassword(e.target.value);\r\n      }\r\n      else{\r\n        setErrorPassword('La contraseña debe tener al menos 8 caracteres');\r\n      }\r\n    }\r\n    else{\r\n      if(e.target.value===password){\r\n        setErrorPassword2('');\r\n      }\r\n      else{\r\n        setErrorPassword2('Las contraseñas no coinciden');\r\n      }\r\n    }\r\n\r\n  }\r\n\tconst nextButtonPanel1 = async () => {\r\n\t\tconst data = getValues();\r\n\t\tconsole.log(data,\"dataaaaaaaaaaaaaaaaaaaaaaaaaaaaa\")\r\n\t\t\r\n\t\tif(!data.email || !data.name || !data.lastName || data.grado === '0' || data.city==='0'){\r\n\t\t\tsetErrorPanel1(true);\r\n\t\t\tsetPanel1Message('Complete el formulario');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst emailVal=/^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i\r\n\t\tif (!emailVal.test(data.email)){\r\n\t\t\tsetErrorPanel1(true);\r\n\t\t\tsetPanel1Message('Ingrese un correo valido');\r\n\t\t\treturn\r\n\t\t }\r\n\t\tsetErrorPanel1(false);\r\n\t\tconst exist = await getInscritoByEmail(eventId,data.email)\r\n\t\tif(data.city==='chuquisaca'){\r\n\t\t\tsetModalidad('presencial')\r\n\t\t} else {\r\n\t\t\tsetModalidad('virtual')\r\n\t\t}\r\n\t\tif(exist === 'existe'){\r\n\t\t\tsetErrorPanel1(true);\r\n\t\t\tsetPanel1Message('El correo ya se encuentra inscrito al evento');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tsetPanel(panel+1);\r\n\r\n\t\tconst userDataId = await userExist(data.email);\r\n\t\tif(userDataId === 'no Existe'){\r\n\t\t\tsetIsNewUser(true);\r\n\t\t} else {\r\n\t\t\tsetIsNewUser(false);\r\n\t\t\tsetUserId(userDataId);\r\n\t\t}\r\n\t\t\r\n\t}\r\n\r\n\tconst getBarCode = async (ei) =>{\r\n\t\tconst code= await generateBarCode(ei);\r\n\t\tsetBarCode(code)\r\n\t}\r\n\t/*\r\n  useEffect(()=>{\r\n    if(reduxAuth.errorRegister){\r\n      console.log('error al crear la cuenta: ')\r\n      console.log(reduxAuth.errorRegister);\r\n      setModal(false);\r\n      setErrorModal(true);\r\n    }\r\n    setButtonDisabled(reduxAuth.loadingRegister);\r\n\r\n    if(reduxAuth.success){\r\n      setModal(false);\r\n      setSuccessModal(true);\r\n    }\r\n\r\n    if(reduxAuth){\r\n      console.log('estado de redux');\r\n      console.log(reduxAuth);\r\n    }\r\n  // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  },[reduxAuth]);\r\n*/\r\nconst sendWhatsapp = () => {\r\n  if (telefono.length > 7 && telefono.length < 9) {\r\n    const bnb ='*CUENTA DE DEPOSITO:*Banco :* Banco Nacional de Bolivia (BNB) *Nombre del Titular :* Leonel Avendaño Villarroel *Numero de cuenta :* 4500837492 *Carnet de Identidad :* 10377499 ______';\r\n    const bisa = \"*CUENTA DE DEPOSITO:*Banco :* Banco Bisa *Nombre del Titular :* Abigail Mamani *Numero de cuenta :*  495340-401-5 *Carnet de Identidad :* 13427301 pt ___\";\r\n    const union = \"*CUENTA DE DEPOSITO: *Banco :* Banco Unión *Nombre del Titular :* Leonel Avendaño Villarroel *Numero de cuenta :*  10000042944682 - Caja de ahorro M/N *Carnet de Identidad : *10377499  ___\";\r\n    const prodem = \"*CUENTA DE DEPOSITO:*Banco :* Banco Prodem *Nombre del Titular :* Rocely Valeria Cruz *Numero de cuenta :*  703-2-1-03486-9 *Carnet de Identidad :* 10330317 \";\r\n    let mensaje= bnb + bisa + union + prodem;\r\n    const url = `https://api.whatsapp.com/send?phone=591${telefono}&text=${mensaje}`;\r\n    window.open(url, '_blank');\r\n  }else{\r\n    alert(\"Introducir un numero de telefono valido\");\r\n  }\r\n}\r\n\tconst colseModalSuccess = () =>{\r\n\t\t\tsetSuccessModal(false);\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\twindow.location.replace(\"https://aprioribo.com\");\r\n\t\t\t} , 1000);\r\n\t\t\r\n\t}\r\n  useEffect(()=>{\r\n\t\tsetEventId(idEvent);\r\n\t},[idEvent]);\r\n\r\n\tuseEffect(()=>{\r\n\t\tif(eventId!==''){\r\n\t\t\tgetBarCode(eventId);\r\n\t\t}\r\n\t},[eventId]);\r\n\r\n  return (\r\n    <Fragment>\r\n\t\t\t{succesRedirect?<Redirect to={`/`} />:null}\r\n      <div className=\"w-full flex flex-col justify-center items-center h-5/6 mt-16 bg-white sm:bg-white md:bg-white \">\r\n      <form onSubmit={handleSubmit(onSubmit)} className=\"w-1/3 border-white rounded mt-8 sm:w-5/6 md:w-1/3\">\r\n        <div className='bg-white rounded shadow-2xl bg-gray-100 sm:bg-white md:bg-gray-100 sm:shadow-none md:shadow-2xl'>\r\n          <h1 className=\" text-red-500 text-center pt-5 text-2xl\">Registrarse al evento</h1> \r\n          <Panel \r\n            btnNext={()=>nextButtonPanel1()}\r\n            panelId={1}\r\n            panelSelect={panel}\r\n\t\t\t\t\t\terror={errorPanel1}\r\n\t\t\t\t\t\terrorMessage={panel1Message}\r\n          >\r\n\t\t\t\t\t\t<input\r\n                name=\"name\"\r\n                placeholder=\"Nombre\"\r\n                className=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 sm:focus:border-3 md:focus:border-t-3 focus:border-red-500 w-full\"\r\n                {...register(\"name\",{required:true})}\r\n            />\r\n\t\t\t\t\t\t<p className=\"text-xs text-red-500\">{errors.name?.type === 'required' && \"*Debe introducir nombre\"}</p>\r\n            <input\r\n                name=\"lastName\"\r\n                placeholder=\"Apellido\"\r\n                className=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 focus:border-red-500 w-full\"\r\n                {...register(\"lastName\",{required:true})}\r\n            />\r\n            <p className=\"text-xs text-red-500\">{errors.lastName?.type === 'required' && \"*Debe introducir su nombre completo\"}</p>\r\n\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\tname=\"email\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Correo Electronico\"\r\n\t\t\t\t\t\t\t\tclassName=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 focus:border-red-500\"\r\n\t\t\t\t\t\t\t\ttype=\"email\"\r\n\t\t\t\t\t\t\t\t{...register(\"email\",{required:true})}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<p className=\"text-xs text-red-500\"> {errors.email?.type === 'required' && \"*Debe introducir correo Electronico\"}</p>\r\n\t\t\t\t\t\t<select \r\n              {...register(\"grado\",{required:true})} \r\n              name='grado'\r\n              className=\"p-3 my-1 bg-gray-200 w-full mt-3 rounded-lg\"\r\n              >\r\n                <option value=\"0\">Grado</option>\r\n                <option value=\"Lic\">Lic.</option>\r\n                <option value=\"Msc\">Msc.</option>\r\n                <option value=\"PhD\">PhD.</option>\r\n                <option value=\"Ninguno\">Ninguno</option>\r\n            </select>\r\n\t\t\t\t\t\t<select \r\n              {...register(\"city\",{required:true})} \r\n              name='city'\r\n              className=\"p-3 my-1 bg-gray-200 w-full mt-3 rounded-lg\"\r\n              >\r\n                <option value=\"0\">Lugar de residencia</option>\r\n                <option value=\"chuquisaca\">Chuquisaca</option>\r\n                <option value=\"laPaz\">La Paz</option>\r\n                <option value=\"cochabamba\">Cochabamba</option>\r\n                <option value=\"oruro\">Oruro</option>\r\n                <option value=\"potosi\">Potosi</option>\r\n                <option value=\"tarija\">Tarija</option>\r\n                <option value=\"pando\">Pando</option>\r\n                <option value=\"beni\">Beni</option>\r\n                <option value=\"santaCruz\">Santa Cruz</option>\r\n            </select>\r\n\t\t\t\t\t\t\r\n          </Panel>\r\n          <Panel\r\n            btnPrev={()=>setPanel(panel-1)}\r\n            btnSubmit={()=>handleSubmit(onSubmit)}\r\n            panelId={2}\r\n            panelSelect={panel}\r\n\t\t\t\t\t\terror={errorPanel2}\r\n\t\t\t\t\t\terrorMessage={panel2Message}\r\n          >\r\n\t\t\t\t\t\t<p className=\"text-x text-green-500\"> Modalidad: {modalidad}</p>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodalidad === 'presencial'?\r\n\t\t\t\t\t\t\t\t\t\t<select \r\n\t\t\t\t\t\t\t\t\t\t{...register(\"preferencia\",{required:true})} \r\n\t\t\t\t\t\t\t\t\t\tname='preferencia'\r\n\t\t\t\t\t\t\t\t\t\tclassName=\"p-3 my-1 bg-gray-200 w-full mt-3 rounded-lg\"\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<option value=\"Ninguno\">Refrigerio(indique si tiene alguna restricción alimenticia)</option>\r\n\t\t\t\t\t\t\t\t\t\t\t<option value=\"Sin gluten\">Sin gluten</option>\r\n\t\t\t\t\t\t\t\t\t\t\t<option value=\"vegano\">vegano</option>\r\n\t\t\t\t\t\t\t\t\t\t\t<option value=\"Ninguno\">Ninguno</option>\r\n\t\t\t\t\t\t\t\t\t</select>\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\t\tname=\"direccion\"\r\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Direccion para envio\"\r\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 focus:border-red-500\"\r\n\t\t\t\t\t\t\t\t\t\t\t{...register(\"direccion\",{required:true})}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t<p className=\"text-x text-green-500\">Direccion para envio de certificados (ser especifico para el envio por courrier)</p>\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisNewUser ?\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\tname=\"password\"\r\n\t\t\t\t\t\t\t\t\t\ttype=\"password\"\r\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"Contraseña\"\r\n\t\t\t\t\t\t\t\t\t\tonChangeCapture={(e)=>validPass(e,'p1')}\r\n\t\t\t\t\t\t\t\t\t\tclassName=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 focus:border-red-500\"\r\n\t\t\t\t\t\t\t\t\t\t{...register(\"password\", {required:true})}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t{errorPassword && <p className=\"bg-red-600\">{errorPassword}</p>}\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\tname=\"password2\"\r\n\t\t\t\t\t\t\t\t\t\ttype=\"password\"\r\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"Repetir Contraseña\"\r\n\t\t\t\t\t\t\t\t\t\tclassName=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 focus:border-red-500 w-full\"\r\n\t\t\t\t\t\t\t\t\t\tonChangeCapture={(e)=>validPass(e,'p2')}\r\n\t\t\t\t\t\t\t\t\t\t{...register(\"password2\", {required:true})}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t{errorPassword2 && <p className=\"bg-red-600\">{errorPassword2}</p>}\r\n\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\tnull\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisNewUser ?\r\n\t\t\t\t\t\t\t<p className=\"text-xs text-green-500\"> Crea un nueva contraseña para acceder a la transmisión</p>:null\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<PhoneInput\r\n\t\t\t\t\t\t\tclassName=\"bg-gray-100 border-t-3 m-1 border-b-2 p-3 pb-0 focus:border-0 focus:border-t-3 focus:border-red-500 w-full\"\r\n\t\t\t\t\t\t\tplaceholder=\"Numero de celular\"\r\n\t\t\t\t\t\t\tonChange={setPhones}\r\n\t\t\t\t\t\t\tdefaultCountry=\"BO\"\r\n\t\t\t\t\t\t\tvalue={phone}\r\n\t\t\t\t\t\t\terror={phone ? (isValidPhoneNumber(phone) ? undefined : 'Invalid phone number') : 'Phone number required'}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<p className=\"text-xs text-red-500\">{\r\n\t\t\t\t\t\t\tphone === undefined ||phone === ''?'':phone && isValidPhoneNumber(phone) ? '' : '*Numero invalido'}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t<p className=\"text-xs text-red-500\">\r\n\t\t\t\t\t\t\t{ \r\n\t\t\t\t\t\t\t\terrorPhone?'ingrese un numero de celular valido':''\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</p>\r\n\r\n\t\t\t\t\t\t\r\n          </Panel>\r\n        </div>\r\n      </form>\r\n      <Modal\r\n      visible={modal}\r\n      title=\"Verifica tus datos\"\r\n      onClose={()=>setModal(false)}\r\n      >\r\n        <div className=\"mt-2\">\r\n          <p className=\"text-sm text-gray-1000\">\r\n            Nombre: {userData.name}\r\n          </p>\r\n          <p className=\"text-sm text-gray-1000\">\r\n\r\n            Apellido: {userData.lastName}\r\n          </p>\r\n          <p className=\"text-sm text-gray-1000\">\r\n            Lugar de residencia: {userData.city}\r\n          </p>\r\n\t\t\t\t\t{/*\r\n          <p className=\"text-sm text-gray-1000\">\r\n            Fecha de nacimiento: {userData.birthday}\r\n\t\t\t\t\t\t</p>*/}\r\n          <p className=\"text-sm text-gray-1000\">\r\n            Numero de celular: {userData.phone}\r\n          </p>\r\n          <p className=\"text-sm text-gray-1000\">\r\n            Correo Electronico: {userData.email}\r\n          </p>\r\n        </div>\r\n        <div className=\"mt-4\">\r\n        <button\r\n          type=\"button\"\r\n          className=\"inline-flex justify-center px-4 py-2 text-sm font-medium text-red-100 bg-red-500 border border-transparent rounded-md hover:bg-red-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-red-500\"\r\n          onClick={()=>setModal(false)}\r\n          \r\n        >\r\n          Cancelar\r\n        </button>\r\n        <button\r\n          type=\"button\"\r\n          className=\"inline-flex justify-center px-4 py-2 text-sm font-medium text-green-1000 bg-green-400 border border-transparent rounded-md hover:bg-green-500 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-blue-500\"\r\n          onClick={()=>submit()}\r\n          disabled={buttonDisabled}\r\n        >\r\n          {!buttonDisabled && <span className=\"ml-2\">Continuar</span>}\r\n          {buttonDisabled && <span className=\"ml-2\">Cargando...</span>}\r\n        </button>\r\n\r\n        </div>\r\n      </Modal>\r\n      <Modal\r\n      visible={errorModal}\r\n      title=\"Ocurrio un error\"\r\n      onClose={()=>setErrorModal(false)}\r\n      >\r\n        <div className=\"mt-2\">\r\n          <p className=\"text-sm text-gray-1000\">\r\n            Error al registrar, intentelo nuevamente\r\n          </p>\r\n        </div>\r\n        <div className=\"mt-4\">\r\n        <button\r\n          type=\"button\"\r\n          className=\"inline-flex justify-center px-4 py-2 text-sm font-medium text-red-100 bg-red-500 border border-transparent rounded-md hover:bg-red-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-red-500\"\r\n          onClick={()=>setErrorModal(false)}\t\r\n        >\r\n          Aceptar\r\n        </button>\r\n        </div>\r\n      </Modal>\r\n      <Modal\r\n      visible={whatsappModal}\r\n      title=\"eviar datos de la cuenta al whatsapp\"\r\n      onClose={()=>setWhatsappModal(false)}\r\n      >\r\n        <p className=\"text-sm\">Numero de celular:</p>\r\n        <div className=\"flex flex-row justify-center items-center\">\r\n          <p className=\"text-base\">+591 </p>\r\n          <input value={telefono} onChange={(e)=>setTelefono(e.target.value)} className=\"border-b-2 border-b-gray-400 w-full p-2\" type=\"text\" placeholder=\"75413879\"/>\r\n          <div className=\"flex flex-row justify-end items-center self-end\">\r\n            <button onClick={()=>{setWhatsappModal(false)}} className=\"hover:bg-red-700 hover:text-white text-primary mt-4 font-bold py-1 px-4 rounded border-2 border-primary mr-2\">Cerrar</button>\r\n            <button onClick={()=>sendWhatsapp() } className={`bg-green-500 cursor-pointer mt-4 text-white p-2 rounded text-sm self-end`}>Enviar a Whatsapp</button>\r\n          </div>\r\n        </div>\r\n      </Modal>\r\n\r\n      <Modal\r\n      visible={successModal}\r\n      title=\"Registro exitoso\"\r\n      onClose={()=>console.log(\"close\")}\r\n      >\r\n        <div className=\"mt-2 max-h-96 overflow-auto\">\r\n          <p className=\"text-sm text-primary text-center mt-4\">\r\n            <b>Datos registrados correctamente</b>\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t<p className=\"text-sm text-gray-1000 mt-2\">\r\n\t\t\t\t\t\tPara validad su inscripción debe realizar el pago de:\r\n\t\t\t\t\t\t</p>\r\n            <ul className='ml-6'>\r\n              <li type=\"square\" className=\"text-sm text-black\">\r\n                Público en general: Bs. 150.\r\n              </li>\r\n              <li type='square' className=\"text-sm text-black\">\r\n                Clientes antiguos: Bs. 135.\r\n              </li>\r\n              <li type='square' className=\"text-sm text-black\">\r\n                Colaboradores: Bs. 130.\r\n              </li>\r\n\r\n            </ul>\r\n\t\t\t\t\t\t<p className=\"text-sm text-gray-1000 mt-4\"><b>El pago de su inscripción cubre:</b></p>\r\n\t\t\t\t\t\t<ul className='ml-6'>\r\n              <li type='square' className=\"text-sm text-black\">Acceso al evento.</li>\r\n              <li type='square' className=\"text-sm text-black\">Refrigerio (modalidad presencial).</li>\r\n              <li type='square' className=\"text-sm text-black\">Envió de certificados por courier (modalidad virtual).</li>\r\n              <li type='square' className=\"text-sm text-black\">Material.</li>\r\n            </ul>\r\n            <p className=\"text-sm text-justify\">\r\n            <br/>\r\n            El Certificado del evento estará firmado por el expositor, representante legal Apriori, Fundación Actívate, Federación de Empresarios Privados de Chuquisaca, Universidad San Francisco Xavier de Chuquisaca, Gobierno Autónomo Municipal de Sucre.\r\n            </p>\r\n            <p className=\"text-sm text-justify\">\r\n            <br/>\r\n            <b className=\"text-sm text-primary\">Nota.-</b>\r\n            Al finalizar el evento, el participante tendrá un lapso de 24 horas para realizar una prueba de conocimientos sobre el tema desarrollado.\r\n            </p>\r\n            <button \r\n\t\t\t\t\t\t\tclassName=\"min-w-1/2 ml-3 py-2 px-4 my-4 border-2 border-green-500 font-semibold rounded-lg shadow-md text-white bg-green-500 hover:bg-transparent hover:text-primary mt-3\" \r\n\t\t\t\t\t\t\tonClick={()=>setWhatsappModal(true)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tEnviar datos de cuenta a mi whatsapp\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t<p className=\"text-sm text-red-500 \">\r\n              <b className='text-center'>Descargue el código de barras o tome una foto a la imagen para marcar su asistencia (deberá enseñar este código para ingresar al evento presencial)</b>\r\n            </p>\r\n\r\n\t\t\t\t\t\t<div id='barcode' ref={imgContainer}>\r\n\t\t\t\t\t\t\t<Barcode value={barCode} />\t\t\t\t\t\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<button \r\n\t\t\t\t\t\t\tclassName=\"min-w-1/2 ml-3 py-2 px-4 border-2 border-green-500 font-semibold rounded-lg shadow-md text-white bg-green-500 hover:bg-transparent hover:text-primary mt-3\" \r\n\t\t\t\t\t\t\tonClick={()=>exportToPng(imgContainer.current)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tDescargar codigo de barras\r\n\t\t\t\t\t\t</button>\r\n        </div>\r\n        <div className=\"mt-4\">\r\n        <button\r\n          type=\"button\"\r\n          className=\"inline-flex justify-center px-4 py-2 text-sm font-medium font-bold text-white bg-primary border border-transparent rounded-md hover:bg-green-500 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-blue-500\"\r\n          onClick={()=>colseModalSuccess()}\r\n        >\r\n          Aceptar\r\n        </button>\r\n        </div>\r\n      </Modal>        \r\n      \r\n      </div>\r\n  </Fragment>\r\n    );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { addTest,remplaceTest } from \"../../redux/actions/test\";\r\n\r\n\r\nexport default function Licencias(){\r\n    \r\n    const test = useSelector(state => state.test.test);\r\n    const dispatch = useDispatch();\r\n\r\n    const handleAddTest = (id, opcionMarcada) => {\r\n      test.map((item) => {\r\n          if(item.id === id){\r\n              item.opcionSeleccionada = opcionMarcada;\r\n          }\r\n      });\r\n      dispatch(remplaceTest(test));\r\n    }\r\n    \r\n    return (\r\n        <div className=\"m-24\">\r\n            <h1>Licencias</h1>\r\n        </div>\r\n    );\r\n};\r\n","import React,{useEffect, useState, useRef} from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport { useSelector } from 'react-redux';\r\nimport {auth } from '../../config/firebase';\r\nimport Modal from '../components/Modal';\r\nimport {db} from '../../config/firebase';\r\nimport dbRef from '../../config/dbRef';\r\n\r\nimport Panel from './components/panel';\r\n\r\nimport { collection, query, where, getDocs,updateDoc,doc  } from \"firebase/firestore\";\r\n\r\nexport default function AdminAfiliate() {\r\n  const reduxUser = useSelector(state => state.user);\r\n  \r\n  const [user, setUser] = useState(null);\r\n  const [modal, setModal] = useState(false);\r\n  const [code, setCode] = useState(false);\r\n  const [codeValue, setCodeValue] = useState('');\r\n\r\n  const codeState = useRef(null);\r\n  const buttonRef = useRef(null);\r\n  //const [user, setUser] = useState(null);\r\n  useEffect(() => {\r\n    console.log(reduxUser.user);\r\n    setUser(reduxUser.user);\r\n  }, [reduxUser])\r\n\r\n  const handleRegister = async() => {\r\n    try{\r\n      if(code){\r\n        buttonRef.current.innerText = 'Registrando....';\r\n        buttonRef.current.disabled = true;\r\n        const docRef = doc(db, dbRef.user, auth.currentUser.uid);\r\n        await updateDoc(docRef, {\r\n          code:codeValue,\r\n          isAfiliate:true,\r\n        });\r\n        buttonRef.current.innerText = 'Registrar';\r\n        buttonRef.current.disabled = false;\r\n        setModal(false);\r\n        alert('Felicidades, ahora eres un afiliado de Apriori');\r\n      }\r\n    }catch(err){\r\n      console.log(err);\r\n    }\r\n    \r\n  }\r\n\r\n  const verifyCode = async(code) => {\r\n    if(code.length === 4){\r\n      //setCode(true);\r\n      codeState.current.innerText   = 'comprobando código....';\r\n      const querySnapshot = await getDocs(\r\n        query(collection(db, dbRef.user),where(\"code\", \"==\", code))\r\n      );    \r\n      if(querySnapshot.size>0){\r\n        codeState.current.classList.remove('text-green-500');\r\n        codeState.current.classList.add('text-red-500');\r\n        codeState.current.innerText   = 'Código en uso, intente con otro';\r\n        setCode(false);\r\n      }else{\r\n        codeState.current.classList.remove('text-red-500');\r\n        codeState.current.classList.add('text-green-500');\r\n        codeState.current.innerText   = `Código Valido`;\r\n        setCode(true);\r\n        setCodeValue(code);\r\n      }\r\n    }else{\r\n      setCode(false);\r\n      codeState.current.innerText  = 'El codigo debe ser de 4 caracteres';\r\n\r\n    }\r\n  }\r\n\r\n  \r\n\r\n\r\n  return (\r\n    <>\r\n      <Modal \r\n        visible={modal}\r\n        title=\"Registro de Afiliado\"\r\n        onClose={()=>setModal(false)}\r\n      >\r\n        <div className=\"flex flex-col justify-center items-center mt-4\">\r\n          <p className=\"text-center\">Para poder ser afiliado, debe introducir un Codigo de 4 caracteres, preferiblemente numeros.\r\n          </p>\r\n          <p className='text-center text-sm text-gray-500'>\r\n          Este codigo sera el que debera compartir con sus colegas para que puedan suscribirse a Apriori y usted pueda recibir una retribucion por cada suscripcion.\r\n          </p>\r\n          <div className='w-full flex flex-col justify-center items-center mt-2'>\r\n              <label className='text-primary text-base'>Codigo de Afiliado: </label>\r\n              <input \r\n                type=\"text\" \r\n                className='border-2 border-primary p-2 rounded-lg w-2/3 mt-4 text-center' \r\n                maxLength={4}\r\n                onChangeCapture={(e)=>{verifyCode(e.target.value)}}\r\n              />\r\n              <p className='text-center text-sm text-gray-500' ref={codeState}>*Este codigo debe ser de 4 caracteres</p>\r\n              <div className='flex flex-row justify-center items-center'>\r\n                <button className='border-primary border-2 text-primary p-2 rounded-full px-4 mt-4 mx-4' onClick={()=>setModal(false)}>Cancelar</button>\r\n                <button className='bg-primary text-white p-2 rounded-full px-4 mt-4' ref={buttonRef} onClick={()=>handleRegister()} >Registrar</button>\r\n              </div>\r\n          </div>\r\n        </div>\r\n      </Modal>\r\n      {\r\n        !user?.isAfiliate ?\r\n        <div className='mt-16 p-4 text-center w-full flex flex-col justify-center items-center'>\r\n          <h1 className='text-2xl text-primary my-4'>Hola {user?.name}</h1>\r\n          <p className='w-2/3'>\r\n            El plan de afiliados es una excelente oportunidad que Apriori te brinda para que puedas recibir una retribución por cada vez que recomiendes nuestro servicio a otras personas o colegas. Si alguno de los colegas a los que les hablaste de nosotros se suscribe a Apriori, recibirás un porcentaje de su suscripción. ¡Aprovecha esta oportunidad y comienza a ganar dinero recomendando Apriori!\r\n          </p>\r\n          <p className='w-2/3 mt-4 text-primary text-xl'>\r\n            ¿Quiere comenzar Ahora?\r\n          </p>\r\n          <div className='w-2/3 mt-4'>\r\n            <Link to='/profile' className='border-2 border-primary text-primary p-2 px-4 rounded-full'>No, volver a perfil</Link>\r\n            <button className='bg-primary text-white p-2 rounded-full px-4 ml-4'  onClick={()=>setModal(!modal)}>Si, quiero ser Afiliado</button>\r\n          </div>\r\n        </div>\r\n        :\r\n        <Panel user={user} idUser={auth.currentUser.uid}/>\r\n      }\r\n      \r\n\r\n\r\n    </>\r\n  )\r\n}\r\n","import React ,{useState,useEffect,useRef} from 'react';\r\nimport Pregunta from './components/pregunta';\r\nimport Materia from './components/materia';\r\nimport Pestania from './components/pestania';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {auth} from '../../config/firebase';\r\nimport {evaluarExamen} from './../../utils/exam';\r\nimport {loadExam, saveNotas, getQuestion, clearExam, loadToExams} from './../../redux/actions/exam';\r\nimport {updateIntentos} from './../../redux/actions/user';\r\nimport { ref } from 'firebase/storage';\r\nimport Modal from '../components/Modal';\r\nimport {Redirect} from 'react-router-dom';\r\nimport {loadExams} from '../../utils/exam';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst Pestanias = (props) => {\r\n\r\n  \r\n  return(\r\n    <button className=\"bg-fondo m-1 mx-2 p-2 border-2 text-white  -md border-withe  hover:border-primary hover:text-primary active:bg-blue-600 focus:bg-primary focus:border-primary focus:text-fondo\">\r\n  {props.name}\r\n</button>\r\n  )\r\n}\r\n\r\nexport default function Examen(props){\r\n  const dispatch = useDispatch();\r\n\r\n  const minutos = useRef(null);\r\n  const segundos = useRef(null);\r\n\r\n  const {idCuenta} = useParams();\r\n\r\n  const reduxExam = useSelector(state => state.exam);\r\n  const user = useSelector(state => state.user);\r\n\r\n  \r\n  const [nombre, setNombre] = useState('');\r\n\r\n  const [cuenta, setCuenta] = useState(user.cuenta);\r\n  const [varContent,setVarContent] = useState([]);\r\n  const [examData,setExamData] = useState();\r\n  const [revision,setRevision] = useState(false);\r\n  const [visible,setVisible] = useState(false);\r\n  const [notas,setNotas] = useState();\r\n  const [tipo ,setTipo] = useState('');\r\n\r\n  const [redirect, setRedirect] = useState(false);\r\n\r\n  const [actualizarIntentos, setActualizarIntentos] = useState(false);\r\n  const [intentoActualizado, setIntentoActualizado] = useState(false);\r\n\r\n  const [loading, setLoading] = useState(true);\r\n  \r\n  const cargarExamen = async () => {\r\n      const dd = await loadExams(idCuenta, auth.currentUser.uid);\r\n      dispatch(loadToExams(dd));\r\n      setLoading(false);\r\n  }\r\n\r\n  const rev = ()=>{\r\n    setRevision(true);\r\n  }\r\n//efecto para cargar las preguntas a exams\r\n  useEffect(()=>{\r\n    cargarExamen();\r\n  },[])\r\n//ventana de confirmacion para cerrar ventana\r\n  useEffect(()=>{\r\n    window.onbeforeunload = function(e) {\r\n      e.preventDefault();\r\n      return '¿Esta seguro que desea salir?';\r\n    };\r\n  },[])\r\n\r\n  useEffect(()=>{\r\n    window.back = ()=>{\r\n      alert('No se puede regresar');\r\n    };\r\n  },[])\r\n\r\n  const finalizarRevision = ()=>{\r\n    let confirm = window.confirm(revision?\"¿Esta seguro de finalizar la revisión?\":\"¿Esta seguro de finalizar el Examen?\");\r\n    if(confirm){\r\n      //dispatch(getQuestion(auth.currentUser.uid));\r\n      setVisible(true);\r\n      rev();\r\n      if(revision){\r\n        setRedirect(true);\r\n      }\r\n    }\r\n    \r\n  }\r\n\r\n  useEffect(()=>{\r\n    if(examData){\r\n      // const minut = evaluarExamen(examData)\r\n      // console.log(minutos.current.innerText);\r\n      // console.log(segundos.current);\r\n      //minutos.current.innerText = `${minut.correctas + minut.incorrectas}`;\r\n      minutos.current.innerText = '5';\r\n      segundos.current.innerText = '0';\r\n    }\r\n  },[minutos,segundos,examData])\r\n\r\n  useEffect(() => {\r\n    console.log(idCuenta);\r\n    console.log(user.cuenta);\r\n    setCuenta(user.cuenta);\r\n    user.cuenta.map(cuenta => {\r\n      if(cuenta.id === idCuenta){\r\n        setNombre(cuenta.nombre);\r\n        setTipo(cuenta.tipo);\r\n      }\r\n      else\r\n      {\r\n        console.log('no existe'+cuenta.idCuenta+'- '+idCuenta);\r\n      }\r\n    })\r\n    // console.log(user.cuenta)\r\n  } ,[user])\r\n  //hacer un cuenta regresiva\r\n  useEffect(() => {\r\n    let interval = setInterval(() => {\r\n      if(minutos?.current?.innerText === '0' && segundos.current.innerText === '0'){\r\n        clearInterval(interval);\r\n        setVisible(true);\r\n        rev();\r\n      }\r\n      else{\r\n        \r\n        if(segundos?.current?.innerText === '0'){\r\n          segundos.current.innerText = '59';\r\n          if(parseInt(minutos.current.innerText) - 1>10){\r\n            minutos.current.innerText = '0'+parseInt(minutos.current.innerText) - 1;\r\n          }else{\r\n            minutos.current.innerText = parseInt(minutos.current.innerText) - 1;\r\n          }\r\n        }\r\n        else{\r\n          if(segundos?.current?.innerText){\r\n            segundos.current.innerText = parseInt(segundos.current.innerText) - 1;\r\n          }\r\n        }\r\n      }\r\n    }, 1000);\r\n    return () => clearInterval(interval);\r\n  },[minutos,segundos]);\r\n\r\n  useEffect(() => {\r\n    if(revision === true){\r\n      dispatch(saveNotas(evaluarExamen(examData),cuenta));\r\n      setNotas(evaluarExamen(examData));\r\n    }\r\n  },[dispatch,revision]);\r\n\r\n  useEffect(()=>{\r\n    if(examData){\r\n      for (let index = 0; index < examData.length; index++) {\r\n        varContent[index] = 'none';\r\n      }\r\n      varContent[0] = 'flex';\r\n    }\r\n  },[examData]);\r\n\r\n  const bar = document.getElementById('bar');\r\n  if (bar) {\r\n    bar.style.display = 'none';\r\n  }\r\n\r\n  let contador = -1;\r\n\r\n  function changeContent(id ){\r\n    var auxVector =[];\r\n    for (let i = 0; i < varContent.length; i++) {\r\n      auxVector[i] = 'none';\r\n    }\r\n    auxVector[id] = 'flex';\r\n\r\n    setVarContent(auxVector);\r\n  }\r\n\r\n\r\n  useEffect(()=>{\r\n    if(!loading){\r\n      console.log(\"reduxExam: \",reduxExam.exams);\r\n      console.log(\"idcuenta: \",idCuenta);\r\n      if (reduxExam.exams) {\r\n        setExamData(reduxExam.exams);\r\n        setLoading(false);\r\n      //   if(reduxExam.exam[0].idCuenta===idCuenta){\r\n      //     setExamData(reduxExam.exam);\r\n      //   } else{\r\n      //     const copia = reduxExam.exams.filter(e=>e.idCuenta === `${idCuenta}`);\r\n      //     console.log(\"cantoda de de la copia: \",copia.length);\r\n      //     if(copia.length>0){\r\n      //       setActualizarIntentos(true);\r\n      //     }\r\n      //     dispatch(loadExam(copia));\r\n      //   }\r\n      // } else {\r\n      //   const copia = reduxExam.exams.filter(e=>e.idCuenta === `${idCuenta}`);\r\n      //   console.log(\"cantoda de de la copia: \",copia.length);\r\n      //   if(copia.length>0){\r\n      //     setActualizarIntentos(true);\r\n      //   }\r\n      //   dispatch(loadExam(copia));\r\n      //   console.log(copia,\"copia\");\r\n      }\r\n    }\r\n    \r\n\r\n  },[reduxExam, idCuenta, loading]);\r\n\r\n  useEffect(()=>{\r\n    window.addEventListener(\"beforeunload\", (e)=>{\r\n      e.preventDefault();\r\n      e.returnValue = \"hola\";\r\n    });\r\n\r\n    return ()=>{\r\n      window.removeEventListener(\"beforeunload\", (e)=>{\r\n        e.preventDefault();\r\n        e.returnValue = \"hola\";\r\n      });\r\n    }\r\n  });\r\n\r\n  useEffect(()=>{\r\n    if(actualizarIntentos){\r\n      if(intentoActualizado){\r\n        return;\r\n      } else{\r\n        setIntentoActualizado(true);\r\n        dispatch(updateIntentos(idCuenta));\r\n        console.log(\"actualizando intentos una sola vez\");\r\n      }\r\n      \r\n    }\r\n  },[actualizarIntentos]);\r\n\r\n    return(\r\n      <>\r\n      {redirect?<Redirect to=\"/suggestions\" />:null}\r\n        {\r\n          loading?<h1>cargando</h1> :(\r\n            <>\r\n            <Modal visible={visible} title={'Tiempo Agotado'} onClose={()=>{setVisible(false);}}>\r\n          <div className=\"flex flex-col items-center justify-center\">\r\n            <p className=\"text-center text-2xl\">Se te termino el tiempo </p>\r\n            <p className=\"text-center text-2xl\">notas</p>\r\n            {notas?(\r\n              <>\r\n                <p className=\"text-center text-2xl\">Correctas:{notas.correctas}</p>\r\n                <p className=\"text-center text-2xl\">Incorrectas:{notas.incorrectas}</p>\r\n                <p className=\"text-center text-2xl\">Nota Final</p>\r\n                <p className={`text-center text-4xl ${notas.calificacion<=49?\"text-red-500\":notas.calificacion<=70?\"text-yellow-500\":\"text-green-500\"}`}>\r\n                  {notas.calificacion.toFixed(2)}/100\r\n                  </p>\r\n              </>):\r\n            null}\r\n            <button className=\" mt-4 bg-primary rounded m-1 mx-2 p-2 border-2 text-white  -md border-withe hover:bg-fondo hover:border-fondo active:bg-blue-600 focus:bg-primary focus:border-primary focus:text-fondo\" onClick={()=>{setVisible(false);}}> \r\n              Ir a revisión\r\n            </button>\r\n          </div>\r\n        </Modal>\r\n        <div className='flex flex-col justify-center items-between bg-black w-full py-5 text-white absolute'>\r\n          <div className='flex flex-row justify-around items-center'>\r\n            <div></div>\r\n            <div className='text-white text-2xl'>\r\n              <h3>{tipo === 'PPrac'?'Prueba Práctica': 'Prueba Final' }</h3></div>\r\n              {\r\n                revision&&\r\n                <Link to='/print'\r\n                  className='bg-primary p-2 rounded'\r\n                >\r\n                  Imprimir Prueba\r\n                </Link>\r\n              }\r\n            <button className='bg-primary p-2 rounded' onClick={()=>finalizarRevision()}>{revision?'Finalizar revisión': 'Finalizar Examen'}</button>\r\n          </div>\r\n        </div>\r\n        <div className='flex flex-row w-1/2 h-1/2 w-full bg-gray-200'>\r\n          <div className='bg-fondo w-1/4 flex flex-col justify-start items-center py-12'>\r\n            <h1 className='text-primary w-2/3 text-center text-xl mt-12'>{nombre}</h1>\r\n  \r\n            <h3\r\n              className='text-white w-2/3 text-center text-xl mt-8'\r\n            >Tiempo restante:</h3>\r\n            <div className='flex flex-row justify-center justify-center mt-2'>\r\n              <div className='flex flex-col justify-start items-start' >\r\n                <p ref={minutos} className='text-white text-center text-6xl'>60 :</p>\r\n                <p className='text-primary text-start'>minutos</p>\r\n              </div>\r\n              <p className='text-white self-start text-6xl'>:</p>\r\n              <div className='flex flex-col justify-center items-center' >\r\n                <p ref={segundos} className='text-white text-center text-6xl'>12</p>\r\n                <p className='text-primary text-center'>segundos</p>\r\n              </div>\r\n            </div>\r\n            <div className='mb-8 mt-8 items-self-start text-center flex flex-col w-full'>\r\n              {//inicio de pestania\r\n              examData?\r\n                examData.map((item,index)=>{\r\n                  return(\r\n                    <Pestania \r\n                      key={index}\r\n                      nombre={item.materia}  \r\n                      id={index} \r\n                      onPress={()=>{changeContent(index)}}\r\n                      active={varContent[index]==='flex'?true:false}\r\n                    />\r\n                  )\r\n                }):null\r\n                \r\n              }\r\n            </div>\r\n          </div>\r\n          {/**inicio de  materias   activo flex desactivado none*/}\r\n              {\r\n                examData?\r\n                examData.map((item,index)=>{\r\n                  console.log(varContent[contador]);\r\n                  contador++;\r\n  \r\n                  return(\r\n                    <Materia \r\n                      key={index}\r\n                      display={`${varContent[contador]}`} \r\n                      data={item}\r\n                      revision={revision}\r\n                      siguenteMateria = {()=>{changeContent(index+1)}}\r\n                      anteriorMateria = {()=>{changeContent(index-1)}}\r\n                      cantidadMateria = {examData.length}\r\n                      index = {index}\r\n                    />\r\n                    \r\n                  );\r\n                }):null\r\n              }\r\n          {/**fin de  materias  */}\r\n        </div>\r\n            </>\r\n          )\r\n        }\r\n        \r\n      </>\r\n    );\r\n};","import React, { useEffect, useState } from \"react\";\r\nimport { collection, getDocs } from \"firebase/firestore\";\r\nimport { db } from \"../../config/firebase\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Dots } from \"../components/onload\";\r\nimport SearchComponent from \"./components/search/SearchComponent\";\r\nimport { ExamCard } from \"./components/cards/ExamCard\";\r\nimport dbRef from \"../../config/dbRef\";\r\nimport { getDataPage } from '../../redux/actions/dataPage';\r\nimport { ModalAddExam } from \"./components/add-modal/ModalAddExam\";\r\nimport { Galery } from \"./components/galery/Galery\";\r\nimport { ModalAddGalery } from \"./components/add-galery-modal/ModalAddGalery\";\r\nimport { PrecingCard } from \"./components/plans/precing-card/PrecingCard\";\r\n\r\n\r\nconst validUsername = \"admin\";\r\nconst validPassword = \"12345678\"; \r\n\r\nexport default function Admin() {\r\n  const reduxUser = useSelector(state => state.user);\r\n\r\n  // Modal add Exam\r\n  const [isModalOpen, setIsModalOpen] = useState(false);\r\n  const openModalExam = () => { setIsModalOpen(true) }\r\n  const closeModalExam = () => { setIsModalOpen(false) }\r\n\r\n  // Modal add Galery\r\n  const [isModalGaleryOpen, setIsModalGaleryOpen] = useState(false);\r\n  const openModalGalery = () => { setIsModalGaleryOpen(true) }\r\n  const closeModalGalery = () => { setIsModalGaleryOpen(false) }\r\n\r\n  const [windowActive, setWindowActive] = useState(\"exams\");\r\n  // const [user, setUser] = useState({});\r\n  const [loading, setLoading] = useState(true);\r\n  const [exams, setExams] = useState([]);\r\n  const [images, setImages] = useState([]);\r\n  const [planData, setPlanData] = useState([]);\r\n\r\n  // Menejo de autenticacion del usuario\r\n  const [isAuthenticated, setIsAuthenticated] = useState(false);\r\n  const [username, setUsername] = useState('');\r\n  const [password, setPassword] = useState('');\r\n  const [loginError, setLoginError] = useState('');\r\n\r\n  const handleLogin = () => {\r\n    if (username === validUsername && password === validPassword) {\r\n      setIsAuthenticated(true);\r\n      setLoginError('');\r\n    } else {\r\n      setLoginError('Credenciales incorrectas');\r\n    }\r\n  };\r\n\r\n  const bar = document.getElementById('bar');\r\n  if (bar) {\r\n    bar.style.display = 'block';\r\n  }\r\n\r\n  const fetchPlans = async () => {\r\n    getDocs(collection(db, dbRef.planes))\r\n      .then((response) => {\r\n        const allData = [];\r\n        response.forEach((doc) => {\r\n          allData.push({ id: doc.id, data: doc.data() });\r\n        });\r\n        setPlanData(allData);\r\n      })\r\n      .catch((error) => console.error(\"Error fetching documents:\", error));\r\n  }\r\n\r\n  useEffect(() => {\r\n    fetchPlans();\r\n  }, [])\r\n\r\n  const fetchImages = async () => {\r\n    getDocs(collection(db, dbRef.galeria))\r\n      .then((response) => {\r\n        const allData = [];\r\n        response.forEach((doc) => {\r\n          allData.push({ id: doc.id, data: doc.data() });\r\n        });\r\n        setImages(allData);\r\n      })\r\n      .catch((error) => console.error(\"Error fetching documents:\", error));\r\n};\r\n\r\n  useEffect(() => {\r\n    fetchImages();\r\n  }, [])\r\n\r\n  useEffect(() => {\r\n    if (reduxUser.user) {\r\n      setLoading(false);\r\n    } else {\r\n      setLoading(true);\r\n    }\r\n  }, [reduxUser])\r\n\r\n  const fetchExams = async () => {\r\n    getDocs(collection(db, dbRef.exam))\r\n      .then((response) => {\r\n        const allData = [];\r\n        response.forEach((doc) => {\r\n          allData.push({ id: doc.id, data: doc.data() });\r\n        });\r\n        setExams(allData);\r\n      })\r\n      .catch((error) => console.error(\"Error fetching documents:\", error));\r\n  }\r\n  useEffect(() => {\r\n    fetchExams();\r\n  }, []);\r\n\r\n  // busqueda\r\n  const [search, setSearch] = useState('')\r\n\r\n  const searcher = (e) => {\r\n    setSearch(e.target.value);\r\n  }\r\n\r\n  const result = (search.length === 0) ? exams : exams.filter((data) => data.data.nombre.toLowerCase().includes(search.toLocaleLowerCase()));\r\n\r\n  if (!isAuthenticated) {\r\n    return (\r\n      <div className=\"flex flex-col items-center justify-center h-screen bg-gray-200\">\r\n        <h2 className=\"text-2xl mb-4\">Iniciar sesión</h2>\r\n        <div className=\"flex flex-col items-center bg-white p-6 rounded-lg shadow-lg w-80\">\r\n          <input\r\n            type=\"text\"\r\n            placeholder=\"Usuario\"\r\n            value={username}\r\n            onChange={(e) => setUsername(e.target.value)}\r\n            className=\"mb-2 p-2 border border-gray-300 rounded w-full\"\r\n          />\r\n          <input\r\n            type=\"password\"\r\n            placeholder=\"Contraseña\"\r\n            value={password}\r\n            onChange={(e) => setPassword(e.target.value)}\r\n            className=\"mb-2 p-2 border border-gray-300 rounded w-full\"\r\n          />\r\n          <button\r\n            onClick={handleLogin}\r\n            className=\"px-4 py-2 bg-red-500 text-white rounded w-full\"\r\n          >\r\n            Ingresar\r\n          </button>\r\n          {loginError && <p className=\"text-red-500 mt-2\">{loginError}</p>}\r\n        </div>\r\n      </div>\r\n    );\r\n  }\r\n\r\n  // Si el usuario está autenticado, mostrar el contenido principal\r\n  return (\r\n    <>\r\n      <div className=\"w-full text-white flex flex-col justify-center items-center border-b-16 border-accent\">\r\n        <h1 className=\"text-3xl my-5 sm:text-xl md:text-3xl mx-0 sm:mx-4 md:mx-0 text-center\">Bienvenido</h1>\r\n      </div>\r\n      <div className=\"flex flex-row items-start justify-center w-full h-full px-28 sm:px-2 md:px-16\">\r\n        <div className=\"w-9/12 h-80 flex flex-col justify-start items-start -mt-1 sm:mt-1 md:-mt-1 w-full\">\r\n          <div className=\"bg-accent flex flex-row w-full text-white justify-start px-8 rounded-b-lg sm:hidden md:flex\">\r\n            <p\r\n              className={`py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'exams' ? ' bg-white text-primary' : 'text-white'}`}\r\n              onClick={() => setWindowActive('exams')}\r\n            >\r\n              Examenes\r\n            </p>\r\n            <p\r\n              className={`py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'galery' ? ' bg-white text-primary' : 'text-white'}`}\r\n              onClick={() => setWindowActive('galery')}\r\n            >\r\n              Galeria\r\n            </p>\r\n            <p\r\n              className={`py-2 px-3 sm:px-1 md:px-2 cursor-pointer hover:text-secundary rounded-t-xl text-lg sm:text-base md:text-lg ${windowActive === 'plans' ? ' bg-white text-primary' : 'text-white'}`}\r\n              onClick={() => setWindowActive('plans')}\r\n            >\r\n              Planes\r\n            </p>\r\n          </div>\r\n\r\n          <div className=\"flex flex-col w-full justify-center items-center py-4\">\r\n            <SearchComponent search={search} searcher={searcher} placeholder=\"Buscar por nombre\" aligment='center' />\r\n          </div>\r\n\r\n          {/* Examenes Section */}\r\n          <div className={`w-full h-full pt-8 px-0 justify-center flex-wrap max-h-screen overflow-auto ${windowActive === 'exams' ? 'flex flex-row' : 'hidden'}`}>\r\n            {\r\n              loading ? (\r\n                <div className=\"w-full flex flex-col justify-center\">\r\n                  <p className=\"text-2xl text-center text-primary\">\r\n                    <Dots color=\"gray\" />\r\n                  </p>\r\n                  <h1 className=\"w-full text-center\">Cargando...</h1>\r\n                </div>\r\n              ) : (\r\n                <div className=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-3 gap-4 w-full\">\r\n                  {result.map((examen, index) => (\r\n                    <ExamCard\r\n                      key={index}\r\n                      id={examen.id}\r\n                      fechaFin={examen.data.fecha}\r\n                      fechaInicio={examen.data.fecha}\r\n                      nombre={examen.data.nombre}\r\n                      examen={examen}\r\n                      refresExams={fetchExams}\r\n                    />\r\n                  ))}\r\n                </div>\r\n              )\r\n            }\r\n            {\r\n              result.length === 0 && !loading && (\r\n                <div className=\"w-full flex flex-col justify-center self-start\">\r\n                  <p className=\"text-xl text-center text-secundary\">En este momento usted no tiene examenes</p>\r\n                </div>\r\n              )\r\n            }\r\n            <div className=\"w-full flex flex-col justify-end self-start\">\r\n              <button\r\n                onClick={openModalExam}\r\n                className=\"m-4 text-center text-white base sm:base lg:base cursor-pointer hover:fondo py-2 rounded-full px-4 bg-primary flex flex-row items-center hover:bg-blue-600 self-center\"\r\n              >\r\n                Agregar Examen\r\n              </button>\r\n              <ModalAddExam isOpen={isModalOpen} closeModal={closeModalExam} refresExams={fetchExams} />\r\n            </div>\r\n          </div>\r\n\r\n          {/* Galeria Section */}\r\n          <div className={`w-full h-full pt-8 px-0 justify-center flex-wrap max-h-screen overflow-auto ${windowActive === 'galery' ? 'flex flex-row' : 'hidden'}`}>\r\n            <Galery images={images} refresImages={fetchImages} />\r\n            <div className=\"w-full flex flex-col justify-end self-start\">\r\n              <button\r\n                onClick={openModalGalery}\r\n                className=\"m-4 text-center text-white base sm:base lg:base cursor-pointer hover:fondo py-2 rounded-full px-4 bg-primary flex flex-row items-center hover:bg-blue-600 self-center\"\r\n              >\r\n                Agregar Fotografia\r\n              </button>\r\n              <ModalAddGalery isOpen={isModalGaleryOpen} closeModal={closeModalGalery} refresImages={fetchImages} />\r\n            </div>\r\n          </div>\r\n\r\n          {/* Planes Section */}\r\n          <div className={`w-full h-full pt-8 px-0 justify-center flex-wrap max-h-screen overflow-auto ${windowActive === 'plans' ? 'flex flex-row' : 'hidden'}`}>\r\n            <div className=\"grid grid-cols-3 gap-4 w-full sm:grid-cols-1 md:grid-cols-3 py-10 px-10 pt-10 bg-gray-700\">\r\n              {\r\n                planData.map((plan, index) => (\r\n                  <PrecingCard key={index} plan={plan} refresPlans={fetchPlans} />\r\n                ))\r\n              }\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </>\r\n  );\r\n}","import views from '../views';\r\nimport {HOME, LOGIN, SIGNUP, USERPROFILE, PRIVADA,TEAM,SERVICE,CONTACT,PRICING,PROFILE,EXAMEN,DETAILS,CONVOCATORIA,PLANS,SUGGESTIONS, EXAMTEST, MANAGEMENT,LIVE, COUNTS, PAYMENT, DRIVER, PRINT, COPIA, ADMIN } from './paths';\r\nimport {REGISTER_TO_EVENT, EVENTS, LICENCIAS, ADMINAFILIATE, TEACHER, SIMPLEPAY} from './paths';\r\n\r\nconst Home = {\r\n    component: views.Home,\r\n    path:HOME,\r\n    isPrivate: false,\r\n}\r\n\r\nconst Licencias = {\r\n    component: views.Licencias,\r\n    path:LICENCIAS,\r\n}\r\n/*\r\nconst NotFound_ = {\r\n    component: views.NotFound,\r\n    path:'*',\r\n    isPrivate: false,\r\n}\r\n*/\r\nconst Payment = {\r\n    component: views.Payment,\r\n    path:PAYMENT,\r\n    isPrivate: false,\r\n}\r\n\r\nconst UserProfile = {\r\n    component: views.UserProfile,\r\n    path:USERPROFILE,\r\n    isPrivate: false,\r\n}\r\n\r\nconst RegisterToEvent = {\r\n    component: views.RegisterToEvent,\r\n    path:REGISTER_TO_EVENT,\r\n    isPrivate: false,\r\n}\r\nconst Counts = {\r\n    component: views.Counts,\r\n    path:COUNTS,\r\n    isPrivate: false,\r\n}\r\n\r\nconst Events = {\r\n    component: views.Events,\r\n    path:EVENTS,\r\n    isPrivate: false,\r\n}\r\n\r\nconst Management = {\r\n    component: views.Management,\r\n    path:MANAGEMENT,\r\n    isPrivate: false,\r\n}\r\n\r\nconst Login = {\r\n    component: views.Login,\r\n    path:LOGIN,\r\n    isPrivate: false,\r\n}\r\n\r\nconst Privada = {\r\n    component: views.Privada,\r\n    path:PRIVADA,\r\n    isPrivate: true,\r\n}\r\nconst Signup = {\r\n    component: views.Signup,\r\n    path:SIGNUP,\r\n    isPrivate: false,\r\n}\r\nconst Team = {\r\n    component: views.Team,\r\n    path:TEAM,\r\n    isPrivate: false,\r\n}\r\nconst Service = {\r\n    component: views.Service,\r\n    path:SERVICE,\r\n    isPrivate: false,\r\n}\r\nconst Contact = {\r\n    component: views.Contact,\r\n    path:CONTACT,\r\n    isPrivate: false,\r\n}\r\n\r\nconst Pricing = {\r\n    component: views.Pricing,\r\n    path:PRICING,\r\n    isPrivate: false,\r\n}\r\nconst Profile = {\r\n    component: views.Profile,\r\n    path:PROFILE,\r\n    isPrivate: false,\r\n}\r\nconst Examen = {\r\n    component: views.Examen,\r\n    path:EXAMEN,\r\n    isPrivate: false,\r\n}\r\nconst ExamTest = {\r\n    component: views.ExamTest,\r\n    path:EXAMTEST,\r\n    isPrivate: false,\r\n}\r\nconst Details = {\r\n    component: views.Details,\r\n    path:DETAILS,\r\n    isPrivate: false,\r\n}\r\nconst Convocatoria = {\r\n    component: views.Convocatoria,\r\n    path:CONVOCATORIA,\r\n    isPrivate: false,\r\n}\r\nconst Plans = {\r\n    component: views.Plans,\r\n    path:PLANS,\r\n    isPrivate: false,\r\n}\r\nconst Suggestions = {\r\n    component: views.Suggestions,\r\n    path:SUGGESTIONS,\r\n    isPrivate: false,\r\n}\r\nconst Live = {\r\n    component: views.Live,\r\n    path:LIVE,\r\n    isPrivate: false,\r\n}\r\nconst Driver = {\r\n    component: views.Driver,\r\n    path:DRIVER,\r\n    isPrivate: false,\r\n}\r\n\r\nconst Print = {\r\n    component: views.Print,\r\n    path:PRINT,\r\n    isPrivate: false,\r\n}\r\n\r\nconst AdminAfiliate = {\r\n    component: views.AdminAfiliate,\r\n    path:ADMINAFILIATE,\r\n    isPrivate: false,\r\n}\r\n\r\nconst Copia = {\r\n    component : views.Copia,\r\n    path: COPIA,\r\n    isPrivate: false,\r\n}\r\n\r\nconst Admin = {\r\n    component : views.Admin,\r\n    path: ADMIN,\r\n    isPrivate: true,\r\n}\r\n\r\nconst Teacher = {\r\n    component : views.Teacher,\r\n    path: TEACHER,\r\n    isPrivate: false,\r\n}\r\n\r\nconst SimplePay = {\r\n    component : views.SimplePay,\r\n    path: SIMPLEPAY,\r\n    isPrivate: false,\r\n}\r\n\r\n// no poner datos despues de Home [Login,..... , Home ];\r\nconst exports = [\r\n    Driver,\r\n    Management,\r\n    Examen,\r\n    ExamTest,\r\n    Login,\r\n    Signup,\r\n    Privada,\r\n    Team,\r\n    Service,\r\n    Contact,\r\n    Pricing,\r\n    Profile,\r\n    Details,\r\n    Convocatoria,\r\n    Plans,\r\n    Suggestions,\r\n    RegisterToEvent,\r\n    Events,\r\n    Live,\r\n    Counts,\r\n    Payment,\r\n    Licencias,\r\n    UserProfile,\r\n    Print,\r\n    AdminAfiliate,\r\n    Copia,\r\n    Admin,\r\n    Teacher,\r\n    SimplePay,\r\n    Home\r\n]\r\n\r\nexport default exports;\r\n","export const HOME = '/';\r\nexport const LOGIN = '/login';\r\nexport const PRIVADA = '/privada';\r\nexport const REGISTER = '/register';\r\nexport const SIGNUP = '/signup';\r\nexport const SERVICE = '/service';\r\nexport const TEAM = '/team';\r\nexport const CONTACT = '/contact';\r\nexport const PRICING = '/pricing';\r\nexport const PROFILE = '/profile';\r\nexport const EXAMEN = '/examen/:idExamen';\r\nexport const DETAILS = '/details';\r\nexport const CONVOCATORIA = '/convocatoria';\r\nexport const PLANS = '/plans';\r\nexport const SUGGESTIONS = '/suggestions';\r\nexport const EXAMTEST = '/examtest/:idMaterias';\r\nexport const MANAGEMENT = '/management';\r\nexport const EVENTS = '/events/:idEvent';\r\nexport const REGISTER_TO_EVENT = '/register-to-event/:idEvent';\r\nexport const LIVE = '/live';\r\nexport const COUNTS = '/counts';\r\nexport const PAYMENT = '/payment';\r\nexport const DRIVER = '/driver';\r\nexport const USERPROFILE = '/user-profile';\r\nexport const LICENCIAS = '/licencias';\r\nexport const PRINT = '/print';\r\nexport const ADMINAFILIATE = '/adminAfiliate';\r\nexport const COPIA = '/copia/:idCuenta';\r\nexport const ADMIN = '/admin';\r\nexport const TEACHER = '/teacher';\r\nexport const SIMPLEPAY = '/simple-pay';","import React, { useEffect, useState } from 'react';\r\nimport { Route, Redirect } from 'react-router-dom';\r\n\r\nimport { onAuthStateChanged } from \"firebase/auth\";\r\nimport {auth} from '../config/firebase';\r\nimport { useDispatch,useSelector } from 'react-redux';\r\nimport { isLoggedIn } from '../redux/actions/auth';\r\nimport { getUser } from '../redux/actions/user';\r\n\r\n\r\nexport default function AppRoute({ component:Component, path, isPrivate, ...props }){\r\n    const reduxAuth = useSelector(state => state.auth);\r\n    const reduxUser = useSelector(state => state.user);\r\n\r\n    const dispatch = useDispatch();\r\n    const [isLoggedIn_, setIsLoggedIn_] = useState(false);\r\n    const [isLoading, setIsLoading] = useState(true);\r\n    const [load, setLoad] = useState(false);\r\n    \r\n    useEffect(() => {\r\n        onAuthStateChanged(auth, (user) => {\r\n        if (user) {\r\n            setIsLoggedIn_(true);\r\n            setLoad(true);\r\n          //  dispatch(isLoggedIn(true))\r\n        } else {\r\n            //dispatch(isLoggedIn(false))\r\n            setLoad(true);\r\n            setIsLoggedIn_(false)\r\n        }\r\n        });\r\n    });\r\n\r\n    useEffect(() => {\r\n        if(load){\r\n            if(isLoggedIn_){\r\n                dispatch(isLoggedIn(true))\r\n            }else{\r\n                dispatch(isLoggedIn(false))\r\n            }\r\n        }\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    } , [load]);\r\n\r\n    useEffect(() => {\r\n        if(isLoading !== reduxAuth.isAuthenticatedLoading){\r\n            setIsLoading(reduxAuth.isAuthenticatedLoading);\r\n        }\r\n\r\n        if(reduxAuth.isAuthenticated){\r\n            if(reduxUser.user === null){\r\n                if(auth.currentUser){\r\n                    const userID = auth.currentUser.uid;\r\n                    dispatch(getUser(userID));\r\n                } else {\r\n                    console.log('[AppRoute]:no hay usuario loggueado');\r\n                }\r\n            }\r\n        }\r\n\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, [reduxAuth]);\r\n\r\n    return(\r\n        <Route\r\n            exact={true}\r\n            path={path}\r\n            render={props => \r\n                isPrivate && !isLoggedIn_?(\r\n                    isLoading?\r\n                    <div className=\"bg-red-100\">\r\n                        cargando......\r\n                    </div>:\r\n                        <Redirect to=\"/login\" />\r\n                ):\r\n                (\r\n                    <Component {...props} />\r\n                )\r\n            }\r\n            {...props}\r\n        />\r\n    );\r\n}\r\n","import React, {useEffect} from 'react';\r\n\r\nimport {BrowserRouter as Router,Switch} from 'react-router-dom';\r\nimport Navbar from './componets/Navbar'\r\nimport routes from './routes/routes';\r\nimport AppRoute from './routes/AppRoute';\r\nimport ReactGA from 'react-ga';\r\nimport './App.css';\r\n\r\nfunction App(props) {\r\n  useEffect(() => {\r\n    console.log('alalitycs1');\r\n    ReactGA.initialize('UA-207003826-1');\r\n    ReactGA.pageview(window.location.pathname + window.location.search);\r\n    console.log('alalitycs2');\r\n  } , []);\r\n\r\n\r\n  return (\r\n    <>\r\n    <Router>\r\n     <Navbar />\r\n      <Switch>\r\n        {\r\n          routes.map(route =>(\r\n            <AppRoute\r\n              key={route.path}\r\n              path={route.path}\r\n              component={route.component}\r\n              isPrivate={route.isPrivate}\r\n              exact\r\n            />\r\n          ))\r\n        }\r\n      </Switch>\r\n    </Router>\r\n    </>\r\n    \r\n  );\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://cra.link/PWA\r\n\r\nconst isLocalhost = Boolean(\r\n  window.location.hostname === 'localhost' ||\r\n    // [::1] is the IPv6 localhost address.\r\n    window.location.hostname === '[::1]' ||\r\n    // 127.0.0.0/8 are considered localhost for IPv4.\r\n    window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n);\r\n\r\nexport function register(config) {\r\n  console.log('aqui esta el error')\r\n  alert('aqui esta el error')\r\n  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n    // The URL constructor is available in all browsers that support SW.\r\n    const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n    if (publicUrl.origin !== window.location.origin) {\r\n      // Our service worker won't work if PUBLIC_URL is on a different origin\r\n      // from what our page is served on. This might happen if a CDN is used to\r\n      // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n      return;\r\n    }\r\n\r\n    window.addEventListener('load', () => {\r\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n      if (isLocalhost) {\r\n        // This is running on localhost. Let's check if a service worker still exists or not.\r\n        checkValidServiceWorker(swUrl, config);\r\n\r\n        // Add some additional logging to localhost, pointing developers to the\r\n        // service worker/PWA documentation.\r\n        navigator.serviceWorker.ready.then(() => {\r\n          console.log(\r\n            'This web app is being served cache-first by a service ' +\r\n              'worker. To learn more, visit https://cra.link/PWA'\r\n          );\r\n        });\r\n      } else {\r\n        // Is not localhost. Just register service worker\r\n        registerValidSW(swUrl, config);\r\n      }\r\n    });\r\n  }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n  navigator.serviceWorker\r\n    .register(swUrl)\r\n    .then((registration) => {\r\n      registration.onupdatefound = () => {\r\n        const installingWorker = registration.installing;\r\n        if (installingWorker == null) {\r\n          return;\r\n        }\r\n        installingWorker.onstatechange = () => {\r\n          if (installingWorker.state === 'installed') {\r\n            if (navigator.serviceWorker.controller) {\r\n              // At this point, the updated precached content has been fetched,\r\n              // but the previous service worker will still serve the older\r\n              // content until all client tabs are closed.\r\n              console.log(\r\n                'New content is available and will be used when all ' +\r\n                  'tabs for this page are closed. See https://cra.link/PWA.'\r\n              );\r\n\r\n              // Execute callback\r\n              if (config && config.onUpdate) {\r\n                config.onUpdate(registration);\r\n              }\r\n            } else {\r\n              // At this point, everything has been precached.\r\n              // It's the perfect time to display a\r\n              // \"Content is cached for offline use.\" message.\r\n              console.log('Content is cached for offline use.');\r\n\r\n              // Execute callback\r\n              if (config && config.onSuccess) {\r\n                config.onSuccess(registration);\r\n              }\r\n            }\r\n          }\r\n        };\r\n      };\r\n    })\r\n    .catch((error) => {\r\n      console.error('Error during service worker registration:', error);\r\n    });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n  // Check if the service worker can be found. If it can't reload the page.\r\n  fetch(swUrl, {\r\n    headers: { 'Service-Worker': 'script' },\r\n  })\r\n    .then((response) => {\r\n      // Ensure service worker exists, and that we really are getting a JS file.\r\n      const contentType = response.headers.get('content-type');\r\n      if (\r\n        response.status === 404 ||\r\n        (contentType != null && contentType.indexOf('javascript') === -1)\r\n      ) {\r\n        // No service worker found. Probably a different app. Reload the page.\r\n        navigator.serviceWorker.ready.then((registration) => {\r\n          registration.unregister().then(() => {\r\n            window.location.reload();\r\n          });\r\n        });\r\n      } else {\r\n        // Service worker found. Proceed as normal.\r\n        registerValidSW(swUrl, config);\r\n      }\r\n    })\r\n    .catch(() => {\r\n      console.log('No internet connection found. App is running in offline mode.');\r\n    });\r\n}\r\n\r\nexport function unregister() {\r\n  if ('serviceWorker' in navigator) {\r\n    navigator.serviceWorker.ready\r\n      .then((registration) => {\r\n        registration.unregister();\r\n      })\r\n      .catch((error) => {\r\n        console.error(error.message);\r\n      });\r\n  }\r\n}\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 types from '../types/auth';\r\n\r\nconst initialState = {\r\n    user: [],\r\n    loading: false,\r\n    loadingRegister: false,\r\n    isAuthenticated: false,\r\n    isAuthenticatedLoading: true,\r\n    error: null,\r\n    errorRegister: null,\r\n    success: null,\r\n};\r\n\r\nexport const authReducer =  (state = initialState, action) => {\r\n    switch (action.type) {\r\n        case types.loguin:\r\n            return {\r\n                uid:action.payload.uid,\r\n                name: action.payload.displayName,\r\n            };\r\n\r\n        case types.IS_LOGGED_IN:\r\n            return {\r\n                ...state,\r\n                isAuthenticated: action.payload.isAuthenticated,\r\n                isAuthenticatedLoading: false,\r\n            };\r\n\r\n        case types.LOGIN_REQUEST:\r\n            return {\r\n                ...state,\r\n                loading: true,\r\n            };\r\n\r\n        case types.LOGIN_SUCCESS:\r\n            return {\r\n                ...state,\r\n                loading: false,\r\n                user:[action.payload],\r\n                isAuthenticated: true,\r\n            };\r\n\r\n        case types.LOGIN_FAILURE:\r\n            return {\r\n                ...state,\r\n                loading: false,\r\n                error: {error:action.payload},\r\n            };\r\n            \r\n        case types.REGISTER_REQUEST:\r\n            return {\r\n                ...state,\r\n                loadingRegister: true,\r\n            };\r\n        case types.REGISTER_SUCCESS:\r\n            return {\r\n                ...state,\r\n                loadingRegister: false,\r\n                user:[action.payload],\r\n                isAuthenticated: true,\r\n                error: null,\r\n                success: true,\r\n            };\r\n        case types.REGISTER_FAILURE:\r\n            return {\r\n                ...state,\r\n                loadingRegister: false,\r\n                errorRegister: {error:action.payload},\r\n            };\r\n\r\n        case types.CLEAR_ERROR:\r\n            return {\r\n                ...state,\r\n                error: null,\r\n                loadingRegister: false,\r\n                errorRegister: null,\r\n            };\r\n\r\n        case types.CLEAR_SUCCESS:\r\n            return {\r\n                ...state,\r\n                loadingRegister: false,\r\n                errorRegister: null,\r\n                success: null,\r\n            };\r\n\r\n        case types.logOut:\r\n            return {\r\n                ...state,\r\n                user:[],\r\n                isAuthenticated: false,\r\n            }\r\n            \r\n        default: \r\n            return state;\r\n    }\r\n}\r\n\r\n//export {authReducer}\r\n","import types from '../types/user';\r\n\r\nconst initialState = {\r\n    user: null,\r\n    cuenta: null,\r\n    loading: false,\r\n    error: null,\r\n};\r\n\r\nexport const userReducer =  (state = initialState, action) => {\r\n    switch (action.type) {\r\n        case types.GET_USER_REQUEST:\r\n            return {\r\n                ...state,\r\n                loading: true,\r\n                error: null,\r\n\r\n            };\r\n        case types.GET_USER_SUCCESS:\r\n            return {\r\n                ...state,\r\n                user: action.payload.user,\r\n                cuenta:action.payload.cuenta,\r\n                loading: false,\r\n                error: null,\r\n            };\r\n        case types.GET_USER_FAILURE:\r\n            return {\r\n                ...state,\r\n                loading: false,\r\n                error: action.payload,\r\n            };\r\n        case types.CLEAR_USER:\r\n            return {\r\n                ...state,\r\n                user: null,\r\n            };\r\n        default: \r\n            return state;\r\n    }\r\n}\r\n","import types from '../types/dataPage';\r\n\r\nconst initialState = {\r\n    dataPage: [],\r\n    loading: false,\r\n    error: null,\r\n};\r\n\r\nexport const dataPageReducer =  (state = initialState, action) => {\r\n    switch (action.type) {\r\n        case types.GET_DATA_REQUEST:\r\n            return {\r\n                ...state,\r\n                loading: true,\r\n                error: null,\r\n\r\n            };\r\n        case types.GET_DATA_SUCCESS:\r\n            return {\r\n                ...state,\r\n                dataPage: [action.payload],\r\n                loading: false,\r\n                error: null,\r\n            };\r\n        case types.GET_DATA_FAILURE:\r\n            return {\r\n                ...state,\r\n                loading: false,\r\n                error: action.payload,\r\n            };\r\n\r\n        default: \r\n            return state;\r\n    }\r\n}","import types from '../types/exam';\r\n\r\nconst initialState = {\r\n    exams: [],\r\n    exam: null,\r\n    examTest: null,\r\n    loading: false,\r\n    error: null,\r\n    notas:null\r\n};\r\n\r\nexport const examReducer =  (state = initialState, action) => {\r\n    switch (action.type) {\r\n        case types.GET_QUESTION_REQUEST:\r\n            return {\r\n                ...state,\r\n                loading: true,\r\n                error: null,\r\n\r\n            };\r\n        case types.GET_QUESTION_SUCCESS:\r\n            return {\r\n                ...state,\r\n                exams: action.payload,\r\n                loading: false,\r\n                error: null,\r\n            };\r\n        case types.GET_QUESTION_FAILURE:\r\n            return {\r\n                ...state,\r\n                loading: false,\r\n                error: action.payload,\r\n            };\r\n        case types.LOAD_EXAM_REQUEST:\r\n            return {\r\n                ...state,\r\n                loading: true,\r\n                error: null,\r\n            };\r\n        case types.LOAD_EXAM_SUCCESS:\r\n            return {\r\n                ...state,\r\n                exam: action.payload,\r\n                loading: false,\r\n                error: null,\r\n            };\r\n        case types.LOAD_EXAM_FAILURE:\r\n            return {\r\n                ...state,\r\n                loading: false,\r\n                error: action.payload,\r\n            };\r\n        case types.CLEAR_EXAM:\r\n            return {\r\n                ...state,\r\n                exam: null,\r\n                loading: false,\r\n                error: null,\r\n            };\r\n        \r\n        case types.MARCAR_PREGUNTA_REQUEST:\r\n            return {\r\n                ...state,\r\n                loading: true,\r\n                error: null,\r\n            };\r\n        case types.MARCAR_PREGUNTA_SUCCESS:\r\n            return {\r\n                ...state,\r\n                exam: action.payload,\r\n                loading: false,\r\n                error: null,\r\n            };\r\n        case types.MARCAR_PREGUNTA_FAILURE:\r\n            return {\r\n                ...state,\r\n                loading: false,\r\n                error: action.payload,\r\n            };\r\n        case types.MARCAR_PREGUNTA_TEST_REQUEST:\r\n                return {\r\n                    ...state,\r\n                    loading: true,\r\n                    error: null,\r\n                };\r\n        case types.MARCAR_PREGUNTA_TEST_SUCCESS:\r\n                return {\r\n                    ...state,\r\n                    examTest: action.payload,\r\n                    loading: false,\r\n                    error: null,\r\n                };\r\n        case types.MARCAR_PREGUNTA_TEST_FAILURE:\r\n                return {\r\n                    ...state,\r\n                    loading: false,\r\n                    error: action.payload,\r\n                };\r\n        case types.SAVE_NOTAS_REQUEST:\r\n            return {\r\n                ...state,\r\n                loading: true,\r\n                error: null,\r\n            };\r\n        case types.SAVE_NOTAS_SUCCESS:\r\n            return {\r\n                ...state,\r\n                notas: action.payload,\r\n                loading: false,\r\n                error: null,\r\n            };\r\n        case types.SAVE_NOTAS_FAILURE:\r\n            return {\r\n                ...state,\r\n                loading: false,\r\n                error: action.payload,\r\n            };\r\n        case types.LOAD_EXAM_TEST:\r\n            return {\r\n                ...state,\r\n                examTest: action.payload,\r\n                loading: false,\r\n            };\r\n        default : \r\n            return state;\r\n    }\r\n}","import types from '../types/cart';\r\n\r\nconst initialState = {\r\n    cart: {},\r\n    loading: false,\r\n    error: null,\r\n};\r\n\r\nexport const cartReducer =  (state = initialState, action) => {\r\n    switch (action.type) {\r\n        case types.ADD_CART_SUCCESS:\r\n            return {\r\n                cart: action.payload,\r\n                loading: true,\r\n                error: null,\r\n            };\r\n        default: \r\n            return state;\r\n    }\r\n}","import types from '../types/test';\r\n\r\nconst initialState = {\r\n    test: [],\r\n    error: 'a',\r\n};\r\n\r\nexport const testReducer =  (state = initialState, action) => {\r\n    switch (action.type) {\r\n        case types.ADD_TEST_FAILURE:\r\n            return {\r\n              ...state,\r\n              error: true,\r\n            };\r\n        case types.ADD_TEST_SUCCESS:\r\n            return {\r\n              ...state,\r\n              test: state.test.concat(action.payload),\r\n              error: false,\r\n            };\r\n        case types.REMPLACE_TEST_FAILURE:\r\n            return {\r\n              ...state,\r\n              error: true,\r\n            };\r\n        case types.REMPLACE_TEST_SUCCESS:\r\n            return {\r\n              ...state,\r\n              test: action.payload,\r\n              error: false,\r\n            };\r\n        default: \r\n            return{\r\n              ...state,\r\n              error: null,\r\n            } \r\n\r\n    }\r\n}","/* eslint-disable import/no-anonymous-default-export */\r\nimport { createStore, combineReducers, applyMiddleware, compose} from 'redux';\r\nimport thunk from 'redux-thunk';\r\n\r\nimport { authReducer } from '../reducers/auth';\r\nimport { userReducer } from '../reducers/user';\r\nimport { dataPageReducer } from '../reducers/dataPage';\r\nimport { examReducer } from '../reducers/exam';\r\nimport { cartReducer } from '../reducers/cart';\r\nimport { testReducer } from '../reducers/test';\r\n\r\nconst composeEnhancers = (typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) || compose;\r\nconst enhancer = composeEnhancers(applyMiddleware(thunk));\r\n\r\nconst reducers = combineReducers({\r\n    auth:authReducer,\r\n    user:userReducer,\r\n    exam:examReducer,\r\n    cart:cartReducer,\r\n    dataPage:dataPageReducer,\r\n    test:testReducer,\r\n});\r\n\r\nexport const store = createStore(reducers, enhancer);\r\n    \r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport {store} from './redux/store';\r\n\r\nReactDOM.render(\r\n  <Provider store={store}>\r\n   \r\n      <App />\r\n   \r\n  </Provider>\r\n  , document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://cra.link/PWA\r\nserviceWorkerRegistration.unregister();\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}