-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path.eslintcache~bf36db05ab77b1f83f670732e001c916dd6f54ec
1 lines (1 loc) · 105 KB
/
.eslintcache~bf36db05ab77b1f83f670732e001c916dd6f54ec
1
[{"D:\\Izily-React\\src\\index.js":"1","D:\\Izily-React\\src\\reportWebVitals.js":"2","D:\\Izily-React\\src\\firebase.js":"3","D:\\Izily-React\\src\\routes\\App.js":"4","D:\\Izily-React\\src\\components\\SignUp.js":"5","D:\\Izily-React\\src\\components\\Home.js":"6","D:\\Izily-React\\src\\containers\\Perfil.js":"7","D:\\Izily-React\\src\\components\\PrivateRoute.js":"8","D:\\Izily-React\\src\\containers\\Profesores.js":"9","D:\\Izily-React\\src\\components\\ForgotPassword.js":"10","D:\\Izily-React\\src\\containers\\MisCursos.js":"11","D:\\Izily-React\\src\\containers\\Inicio.js":"12","D:\\Izily-React\\src\\containers\\AcercaDeIzily.js":"13","D:\\Izily-React\\src\\containers\\Landing.js":"14","D:\\Izily-React\\src\\containers\\NotFound.jsx":"15","D:\\Izily-React\\src\\containers\\Layout.jsx":"16","D:\\Izily-React\\src\\components\\EditProfile.js":"17","D:\\Izily-React\\src\\components\\LogIn.js":"18","D:\\Izily-React\\src\\contexts\\AuthContext.js":"19","D:\\Izily-React\\src\\components\\CarouselLanding.js":"20","D:\\Izily-React\\src\\components\\ProfesorPerfil.js":"21","D:\\Izily-React\\src\\components\\Calificacion.js":"22","D:\\Izily-React\\src\\components\\Profesor.js":"23","D:\\Izily-React\\src\\components\\Comentario.js":"24","D:\\Izily-React\\src\\components\\Publicacion.js":"25","D:\\Izily-React\\src\\components\\CrearPublicacion.js":"26","D:\\Izily-React\\src\\components\\Navbar.js":"27","D:\\Izily-React\\src\\components\\CrearComentario.js":"28","D:\\Izily-React\\src\\components\\MenuNavbar.js":"29","D:\\Izily-React\\src\\containers\\ConvertirmeEnMentor.js":"30"},{"size":308,"mtime":1615755903735,"results":"31","hashOfConfig":"32"},{"size":375,"mtime":1613603442417,"results":"33","hashOfConfig":"32"},{"size":664,"mtime":1616426727672,"results":"34","hashOfConfig":"32"},{"size":2014,"mtime":1616692614872,"results":"35","hashOfConfig":"32"},{"size":4776,"mtime":1616700666908,"results":"36","hashOfConfig":"32"},{"size":759,"mtime":1616475004066,"results":"37","hashOfConfig":"32"},{"size":18927,"mtime":1616692888735,"results":"38","hashOfConfig":"32"},{"size":488,"mtime":1614201824088,"results":"39","hashOfConfig":"32"},{"size":11732,"mtime":1616548903972,"results":"40","hashOfConfig":"32"},{"size":3283,"mtime":1615755903710,"results":"41","hashOfConfig":"32"},{"size":4753,"mtime":1616626731677,"results":"42","hashOfConfig":"32"},{"size":9111,"mtime":1616538546110,"results":"43","hashOfConfig":"32"},{"size":764,"mtime":1616545799807,"results":"44","hashOfConfig":"32"},{"size":6219,"mtime":1616201910244,"results":"45","hashOfConfig":"32"},{"size":2211,"mtime":1615755903732,"results":"46","hashOfConfig":"32"},{"size":284,"mtime":1616012815618,"results":"47","hashOfConfig":"32"},{"size":10130,"mtime":1616700131422,"results":"48","hashOfConfig":"32"},{"size":4650,"mtime":1616700973313,"results":"49","hashOfConfig":"32"},{"size":2195,"mtime":1616629452308,"results":"50","hashOfConfig":"32"},{"size":5700,"mtime":1616196481253,"results":"51","hashOfConfig":"32"},{"size":6225,"mtime":1616629640371,"results":"52","hashOfConfig":"32"},{"size":7727,"mtime":1616626898240,"results":"53","hashOfConfig":"32"},{"size":6619,"mtime":1616629610917,"results":"54","hashOfConfig":"32"},{"size":3262,"mtime":1616626897997,"results":"55","hashOfConfig":"32"},{"size":5122,"mtime":1616626898000,"results":"56","hashOfConfig":"32"},{"size":3202,"mtime":1616626897999,"results":"57","hashOfConfig":"32"},{"size":8893,"mtime":1616627457886,"results":"58","hashOfConfig":"32"},{"size":3037,"mtime":1616626897998,"results":"59","hashOfConfig":"32"},{"size":5155,"mtime":1616701021230,"results":"60","hashOfConfig":"32"},{"size":9725,"mtime":1616710802427,"results":"61","hashOfConfig":"32"},{"filePath":"62","messages":"63","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},"9uen94",{"filePath":"65","messages":"66","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"67","messages":"68","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"69","messages":"70","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"71","usedDeprecatedRules":"64"},{"filePath":"72","messages":"73","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"74","messages":"75","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"76","usedDeprecatedRules":"64"},{"filePath":"77","messages":"78","errorCount":0,"warningCount":11,"fixableErrorCount":0,"fixableWarningCount":0,"source":"79","usedDeprecatedRules":"64"},{"filePath":"80","messages":"81","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"82","messages":"83","errorCount":0,"warningCount":9,"fixableErrorCount":0,"fixableWarningCount":0,"source":"84","usedDeprecatedRules":"64"},{"filePath":"85","messages":"86","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"87","messages":"88","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"89","usedDeprecatedRules":"64"},{"filePath":"90","messages":"91","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"92","usedDeprecatedRules":"64"},{"filePath":"93","messages":"94","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"95","usedDeprecatedRules":"64"},{"filePath":"96","messages":"97","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"98","usedDeprecatedRules":"64"},{"filePath":"99","messages":"100","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"101","usedDeprecatedRules":"64"},{"filePath":"102","messages":"103","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"104","messages":"105","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"106","usedDeprecatedRules":"64"},{"filePath":"107","messages":"108","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"109","messages":"110","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"111","messages":"112","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"113","messages":"114","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"115","messages":"116","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"117","messages":"118","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"119","messages":"120","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"121","messages":"122","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"123","messages":"124","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"125","messages":"126","errorCount":0,"warningCount":10,"fixableErrorCount":0,"fixableWarningCount":0,"source":"127","usedDeprecatedRules":"64"},{"filePath":"128","messages":"129","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},{"filePath":"130","messages":"131","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"132","usedDeprecatedRules":"64"},{"filePath":"133","messages":"134","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"D:\\Izily-React\\src\\index.js",[],["135","136"],"D:\\Izily-React\\src\\reportWebVitals.js",[],"D:\\Izily-React\\src\\firebase.js",[],"D:\\Izily-React\\src\\routes\\App.js",["137"],"import React from \"react\";\r\nimport { BrowserRouter, Switch, Route } from \"react-router-dom\";\r\nimport Home from \"../components/Home\";\r\nimport Perfil from \"../containers/Perfil\";\r\nimport NotFound from \"../containers/NotFound\";\r\nimport Layout from \"../containers/Layout\";\r\nimport SignUp from \"../components/SignUp\";\r\nimport LogIn from \"../components/LogIn\";\r\nimport PrivateRoute from \"../components/PrivateRoute\";\r\nimport EditProfile from \"../components/EditProfile\";\r\nimport ForgotPassword from \"../components/ForgotPassword\";\r\nimport { AuthProvider } from \"../contexts/AuthContext\";\r\nimport Inicio from \"../containers/Inicio\";\r\nimport Profesores from \"../containers/Profesores\";\r\nimport Landing from \"../containers/Landing\";\r\nimport AcercaDeIzily from \"../containers/AcercaDeIzily\";\r\nimport MisCursos from \"../containers/MisCursos\";\r\nimport ConvertirmeEnMentor from \"../containers/ConvertirmeEnMentor\";\r\n\r\n// probando rama login\r\n\r\nconst App = () => (\r\n <BrowserRouter>\r\n <AuthProvider>\r\n <Layout>\r\n <Switch>\r\n <Route exact path=\"/\" component={Landing} />\r\n <Route exact path=\"/signup\" component={SignUp} />\r\n <Route exact path=\"/login\" component={LogIn} />\r\n <Route exact path=\"/forgot-password\" component={ForgotPassword} />\r\n <PrivateRoute path=\"/editar-perfil\" component={EditProfile} />\r\n <PrivateRoute path=\"/mis-cursos\" component={MisCursos} />\r\n <PrivateRoute path=\"/convertirme-en-mentor\" component={ConvertirmeEnMentor} />\r\n <PrivateRoute\r\n exact\r\n path=\"/buscar-un-mentor\"\r\n component={Profesores}\r\n />\r\n <PrivateRoute exact path=\"/inicio\" component={Inicio} />\r\n <PrivateRoute path=\"/perfil/:profesorId\" component={Perfil} />\r\n <PrivateRoute exact path=\"/acerca-de-izily\" component={AcercaDeIzily} />\r\n <Route component={NotFound} />\r\n </Switch>\r\n </Layout>\r\n </AuthProvider>\r\n </BrowserRouter>\r\n);\r\nexport default App;\r\n","D:\\Izily-React\\src\\components\\SignUp.js",[],"D:\\Izily-React\\src\\components\\Home.js",["138"],"import \"./Home.css\";\r\nimport Profesores from \"../containers/Profesores\";\r\nimport React, { useState } from \"react\"\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useAuth } from '../contexts/AuthContext';\r\n\r\nfunction Home() {\r\n\r\n const [error, setError] = useState(\"\")\r\n const { logout } = useAuth()\r\n const history = useHistory()\r\n\r\n\r\n async function handleLogOut(){\r\n setError('')\r\n\r\n try {\r\n await logout()\r\n history.push('/login')\r\n } catch {\r\n setError('Ocurrió un error al salir de la cuenta')\r\n }\r\n\r\n }\r\n\r\n return (\r\n <>\r\n {error && <Alert variant=\"filled\" severity=\"error\">{error}</Alert>}\r\n <Profesores />\r\n </>\r\n );\r\n}\r\n\r\nexport default Home;\r\n","D:\\Izily-React\\src\\containers\\Perfil.js",["139","140","141","142","143","144","145","146","147","148","149"],"import React, { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport { makeStyles, useTheme, withStyles } from \"@material-ui/core/styles\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { db } from \"../firebase\";\r\nimport Profesor from \"../components/ProfesorPerfil\";\r\nimport { useAuth } from \"../contexts/AuthContext\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Chip from \"@material-ui/core/Chip\";\r\nimport PropTypes from \"prop-types\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport PeopleIcon from \"@material-ui/icons/People\";\r\nimport PlayArrowIcon from \"@material-ui/icons/PlayArrow\";\r\nimport LanguageIcon from \"@material-ui/icons/Language\";\r\nimport EventAvailableIcon from \"@material-ui/icons/EventAvailable\";\r\nimport Backdrop from \"@material-ui/core/Backdrop\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport Calificacion from \"../components/Calificacion\";\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Switch from '@material-ui/core/Switch';\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n backdrop: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n color: \"#fff\",\r\n },\r\n\r\n seccion1: {\r\n margin: 0,\r\n paddingTop: 10,\r\n display: \"flex\",\r\n alignContent: \"center\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\",\r\n },\r\n\r\n gridcontainer: {\r\n width: \"100%\",\r\n\r\n borderBottom: \"1px solid #C4C4C4\",\r\n },\r\n\r\n gridprofesor: {\r\n minWidth: \"377px\",\r\n },\r\n griddatos: {\r\n minWidth: \"390px\",\r\n justifyContent: \"center\",\r\n },\r\n\r\n titlePresentacion: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n marginTop: \"0px\",\r\n marginBottom: \"-5px\",\r\n width: \"377px\",\r\n },\r\n\r\n titlePresentacion_text: {\r\n margin: 0,\r\n marginLeft: \"2px\",\r\n // marginTop:\"0px\",\r\n fontSize: \"15px\",\r\n fontWeight: \"bold\",\r\n },\r\n\r\n paperPresentacion: {\r\n width: \"377px\",\r\n height: \"90px\",\r\n overflow: \"auto\",\r\n borderRadius: \"10px\",\r\n padding: \"3px 8px 8px 8px\",\r\n margin: \"15px 0px 10px 0px\",\r\n },\r\n\r\n etiquetasContainer: {\r\n display: \"flex\",\r\n alignContent: \"start\",\r\n flexWrap: \"wrap\",\r\n width: \"380px\",\r\n height: \"120px\",\r\n paddingBottom: \"0px\",\r\n overflow: \"auto\",\r\n marginLeft: \"-25px\",\r\n marginTop: \"-10px\",\r\n\r\n borderRadius: \"10px\",\r\n backgroundColor: \"rgba(0, 0, 0, 0.0)\",\r\n },\r\n\r\n TabPanel: {\r\n padding: \"0px\",\r\n backgroundColor: \"rgba(0, 0, 0, 0.0)\",\r\n },\r\n\r\n categories: {\r\n background: \"white\",\r\n color: \"black\",\r\n paddingBottom:\"0px\",\r\n },\r\n\r\n categoriesAppBar: {\r\n marginBottom: \"-10px\",\r\n },\r\n\r\n categorie3: {\r\n width: \"fullWidht\",\r\n },\r\n\r\n etiqueta0: {\r\n margin: \"4px\",\r\n background: \"#51B852\",\r\n color: \"white\",\r\n fontWeight: \"bold\",\r\n },\r\n\r\n etiqueta1: {\r\n margin: \"4px\",\r\n background: \"#3493C2\",\r\n color: \"white\",\r\n fontWeight: \"bold\",\r\n },\r\n\r\n etiqueta2: {\r\n margin: \"4px\",\r\n background: \"#8F55A0\",\r\n color: \"white\",\r\n fontWeight: \"bold\",\r\n },\r\n\r\n root: {\r\n //flexGrow: 1,\r\n width: \"377px\",\r\n backgroundColor: \"rgba(0, 0, 0, 0.0)\",\r\n },\r\n\r\n buttonPerfil: {\r\n background: \"white\",\r\n color: \"#3493C2\",\r\n border: \"1px solid #3493C2\",\r\n fontSize: \"11px\",\r\n height: \"25px\",\r\n fontWeight: \"bold\",\r\n \"&:hover\": {\r\n backgroundColor: \"#DAF1FC\",\r\n },\r\n },\r\n\r\n buttonConvertirmeProfesor:{\r\n background: \"white\",\r\n color: \"#3493C2\",\r\n marginTop:\"10px\",\r\n border: \"1px solid #3493C2\",\r\n fontSize: \"15px\",\r\n height: \"70px\",\r\n width:\"220px\",\r\n fontWeight: \"bold\",\r\n \"&:hover\": {\r\n backgroundColor: \"#DAF1FC\",\r\n },\r\n },\r\n\r\n buttonContainer: {\r\n display: \"flex\",\r\n justifyContent: \"space-evenly\",\r\n marginTop: \"-10px\",\r\n alignItems:\"center\",\r\n width: \"370px\",\r\n paddingLeft: \"5px\",\r\n },\r\n\r\n idioms: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n marginTop: \"10px\",\r\n },\r\n\r\n idiomsContainer: {\r\n width: \"380px\",\r\n },\r\n\r\n seccion2: {\r\n marginTop: \"40px\",\r\n display: \"flex\",\r\n alignContent: \"center\",\r\n alignItems: \"center\",\r\n flexDirection: \"column\",\r\n },\r\n\r\n}));\r\n\r\nfunction TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n <div\r\n role=\"tabpanel\"\r\n hidden={value !== index}\r\n id={`full-width-tabpanel-${index}`}\r\n aria-labelledby={`full-width-tab-${index}`}\r\n {...other}\r\n >\r\n {value === index && (\r\n <Box p={3}>\r\n <Typography>{children}</Typography>\r\n </Box>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nTabPanel.propTypes = {\r\n children: PropTypes.node,\r\n index: PropTypes.any.isRequired,\r\n value: PropTypes.any.isRequired,\r\n};\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `full-width-tab-${index}`,\r\n \"aria-controls\": `full-width-tabpanel-${index}`,\r\n };\r\n}\r\n\r\n//termina cosas de la tabla\r\n\r\nfunction Perfil() {\r\n\r\n const GreenSwitch = withStyles({\r\n switchBase: {\r\n \r\n color: \"grey\",\r\n '&$checked': {\r\n color: \"#99CC42\",\r\n },\r\n '&$checked + $track': {\r\n backgroundColor: \"#99CC42\",\r\n },\r\n },\r\n checked: {},\r\n track: {},\r\n })(Switch);\r\n\r\n\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const history = useHistory();\r\n const { usuarioActual } = useAuth();\r\n const [error, setError] = useState();\r\n const [value, setValue] = React.useState(0);\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue);\r\n };\r\n\r\n const { profesorId } = useParams();\r\n const [profesor, setProfesor] = useState(null);\r\n const [events, setEvents] = useState([]);\r\n \r\n const traerProfesor = async () => {\r\n const profesorInfo = db.collection(\"usuarios\").doc(profesorId);\r\n const doc = await profesorInfo.get();\r\n if (doc.exists) {\r\n setProfesor({ ...doc.data(), id: doc.id });\r\n }\r\n };\r\n\r\n const calendly = () => {\r\n window.Calendly.initPopupWidget({ url: `${profesor.calendly}` });\r\n return false;\r\n };\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n const handleToggle = () => {\r\n setOpen(!open);\r\n };\r\n\r\n useEffect(() => {\r\n traerProfesor();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const organizationid ='https://api.calendly.com/organizations/CFEFXIJXXUT225N7';\r\n const client = axios.create({\r\n baseURL: 'https://api.calendly.com',\r\n timeout: 3000,\r\n headers: {'Authorization': 'Bearer v6PBAXkfspGMWnC7_hTaRfiw5vvHRHZnX9eB51frgYY'}\r\n });\r\n client\r\n .get(`/scheduled_events?count=25&organization=${organizationid}&status=active`)\r\n .then(function (response) {\r\n const uris = response.data.collection.map((event)=>{\r\n return event.uri;\r\n });\r\n uris.map((uri)=>{\r\n client.get(`${uri}/invitees`).then((uriResponse)=>{\r\n })\r\n })\r\n setEvents(response.data.collection);\r\n\r\n })\r\n .catch(function (error) {\r\n })\r\n }, []);\r\n\r\n const [state, setState] = React.useState({\r\n checked: true,\r\n \r\n });\r\n\r\n const handleChangeSwitch = (event) => {\r\n setState({ ...state, [event.target.name]: event.target.checked });\r\n };\r\n\r\n async function convertToMentor(){\r\n setError()\r\n try {\r\n history.push(`/convertirme-en-mentor`)\r\n } catch {\r\n setError(\"Ocurrió un error al salir de la cuenta\");\r\n }\r\n }\r\n\r\n\r\n return (\r\n <>\r\n {profesor && (\r\n <div className={classes.seccion1}>\r\n <Grid\r\n container\r\n className={classes.gridcontainer}\r\n direction=\"row\"\r\n justify=\"center\"\r\n alignItems=\"flex-start\"\r\n alignContent=\"center\"\r\n spacing={4}\r\n >\r\n <Grid\r\n item\r\n xs={12}\r\n md={3}\r\n className={classes.gridprofesor}\r\n alignContent=\"center\"\r\n justify=\"center\"\r\n align=\"center\"\r\n >\r\n <Profesor profesor={profesor} />\r\n </Grid>\r\n\r\n <Grid\r\n item\r\n xs={12}\r\n md={3}\r\n //alignItems=\"start\"\r\n align=\"center\"\r\n alignContent=\"center\"\r\n justify=\"center\"\r\n className={classes.griddatos}\r\n >\r\n <div className={classes.titlePresentacion}>\r\n <p className={classes.titlePresentacion_text}>Acerca de mi:</p>\r\n \r\n {usuarioActual?.uid !== profesor.loginid ? (\r\n <>\r\n {profesor?.esProfesor === true && profesor?.disponible === true ? (\r\n <Button\r\n variant=\"contained\"\r\n size=\"small\"\r\n target=\"_blank\"\r\n // href={profesor.calendly}\r\n color=\"inherit\"\r\n className={classes.buttonPerfil}\r\n onClick={calendly}\r\n startIcon={<EventAvailableIcon />}\r\n disableElevation=\"true\"\r\n >\r\n Agendar Mentoría\r\n </Button>\r\n ) : (\r\n <p>\r\n\r\n </p>\r\n )}\r\n \r\n </>\r\n \r\n ) : (\r\n <Button\r\n variant=\"contained\"\r\n size=\"small\"\r\n target=\"_blank\"\r\n // href={profesor.calendly}\r\n color=\"inherit\"\r\n className={classes.buttonPerfil}\r\n // onClick={calendly}\r\n startIcon={<EventAvailableIcon />}\r\n disableElevation=\"true\"\r\n >\r\n Ver mi Calendly\r\n </Button>\r\n )}\r\n </div>\r\n\r\n <Paper\r\n className={classes.paperPresentacion}\r\n overflow=\"scroll\"\r\n align=\"start\"\r\n variant=\"outlined\"\r\n square\r\n children={profesor.presentacion}\r\n />\r\n\r\n {profesor?.esProfesor === true ? (\r\n\r\n <div className={classes.root}>\r\n <AppBar\r\n elevation={1}\r\n className={classes.categoriesAppBar}\r\n position=\"static\"\r\n >\r\n <Tabs\r\n className={classes.categories}\r\n variant=\"fullWidth\"\r\n value={value}\r\n onChange={handleChange}\r\n aria-label=\"full width tabs example\"\r\n >\r\n <Tab\r\n className={classes.categorie1}\r\n disableRipple=\"true\"\r\n label=\"Escolar\"\r\n {...a11yProps(0)}\r\n />\r\n <Tab\r\n className={classes.categorie2}\r\n disableRipple=\"true\"\r\n label=\"Preuniv.\"\r\n {...a11yProps(1)}\r\n />\r\n <Tab\r\n className={classes.categorie3}\r\n disableRipple=\"true\"\r\n label=\"Universitario\"\r\n {...a11yProps(2)}\r\n />\r\n </Tabs>\r\n </AppBar>\r\n <TabPanel className={classes.TabPanel} value={value} index={0}>\r\n <Paper\r\n className={classes.etiquetasContainer}\r\n overflow=\"scroll\"\r\n variant=\"outlined\"\r\n square\r\n children={profesor.cursos\r\n .filter((cursos) => cursos.numberNivel == \"0\")\r\n .map((cursos) => (\r\n <Chip\r\n className={classes.etiqueta0}\r\n label={cursos.nombre}\r\n />\r\n ))}\r\n />\r\n </TabPanel>\r\n <TabPanel className={classes.TabPanel} value={value} index={1}>\r\n <Paper\r\n className={classes.etiquetasContainer}\r\n overflow=\"scroll\"\r\n variant=\"outlined\"\r\n square\r\n children={profesor.cursos\r\n .filter((cursos) => cursos.numberNivel == \"1\")\r\n .map((cursos) => (\r\n <Chip\r\n className={classes.etiqueta1}\r\n label={cursos.nombre}\r\n />\r\n ))}\r\n />\r\n </TabPanel>\r\n <TabPanel className={classes.TabPanel} value={value} index={2}>\r\n <Paper\r\n className={classes.etiquetasContainer}\r\n overflow=\"scroll\"\r\n variant=\"outlined\"\r\n square\r\n children={profesor.cursos\r\n .filter((cursos) => cursos.numberNivel == \"2\")\r\n .map((cursos) => (\r\n <Chip\r\n className={classes.etiqueta2}\r\n label={cursos.nombre}\r\n />\r\n ))}\r\n />\r\n </TabPanel>\r\n </div>\r\n\r\n ):(\r\n <p>\r\n\r\n </p>\r\n )}\r\n \r\n\r\n <div className={classes.buttonContainer}>\r\n {usuarioActual?.uid === profesor.loginid ? (\r\n <div style={{display:\"flex\", width:\"100%\", alignItems:\"center\", justifyContent:\"space-evenly\", marginTop:\"0px\",}}>\r\n {\r\n profesor?.esProfesor === true ? (\r\n <>\r\n <FormControlLabel\r\n control={<GreenSwitch size=\"small\" checked={state.checked} onChange={handleChangeSwitch} name=\"checked\" />}\r\n label=\"Disponible\"\r\n />\r\n <Button\r\n disabled\r\n variant=\"contained\"\r\n color=\"inherit\"\r\n size=\"small\"\r\n className={classes.buttonPerfil}\r\n startIcon={<PlayArrowIcon />}\r\n disableElevation=\"true\"\r\n >\r\n Video\r\n </Button>\r\n </>\r\n \r\n ) : (\r\n <>\r\n <Button\r\n \r\n variant=\"contained\"\r\n color=\"inherit\"\r\n size=\"small\"\r\n onClick={convertToMentor}\r\n className={classes.buttonConvertirmeProfesor}\r\n startIcon={ <img style={{marginLeft:\"5px\", height:\"45px\", width:\"auto\"}} src=\"https://firebasestorage.googleapis.com/v0/b/izily-test.appspot.com/o/icons%2FConvertirmeEnProfesor.png?alt=media&token=a45096cb-1a3b-4134-811c-aaba4103528f\"/> }\r\n disableElevation=\"true\"\r\n >\r\n Convertirme en Mentor\r\n </Button>\r\n </>\r\n )\r\n }\r\n \r\n </div>\r\n \r\n ) : (\r\n <div style={{display:\"flex\", width:\"100%\", alignItems:\"center\", justifyContent:\"space-evenly\", marginTop:\"0px\",}}>\r\n {profesor.esProfesor === true ? (\r\n <>\r\n <Calificacion/>\r\n <Button\r\n disabled\r\n variant=\"contained\"\r\n color=\"inherit\"\r\n size=\"small\"\r\n className={classes.buttonPerfil}\r\n startIcon={<PlayArrowIcon />}\r\n disableElevation=\"true\"\r\n >\r\n Video\r\n </Button>\r\n <Button\r\n disabled\r\n variant=\"contained\"\r\n color=\"inherit\"\r\n size=\"small\"\r\n className={classes.buttonPerfil}\r\n startIcon={<PeopleIcon />}\r\n disableElevation=\"true\"\r\n >\r\n Contactar\r\n </Button>\r\n </>\r\n ) : (\r\n <Button\r\n disabled\r\n variant=\"contained\"\r\n color=\"inherit\"\r\n size=\"small\"\r\n className={classes.buttonPerfil}\r\n startIcon={<PeopleIcon />}\r\n disableElevation=\"true\"\r\n >\r\n Contactar\r\n </Button>\r\n )}\r\n \r\n </div>\r\n )} \r\n </div>\r\n\r\n {/* <div className={classes.idiomsContainer}>\r\n <Typography\r\n className={classes.idioms}\r\n variant=\"caption\"\r\n display=\"block\"\r\n >\r\n <LanguageIcon fontSize=\"small\" /> Español, Portugués.\r\n </Typography>\r\n </div> */}\r\n\r\n </Grid>\r\n </Grid>\r\n \r\n </div>\r\n )}\r\n {!profesor && (\r\n // <div>\r\n // <h1>Cargando...</h1>\r\n // </div>\r\n <Backdrop\r\n className={classes.backdrop}\r\n open={open}\r\n onClick={handleClose}\r\n >\r\n <CircularProgress color=\"inherit\" />\r\n </Backdrop>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default Perfil;\r\n","D:\\Izily-React\\src\\components\\PrivateRoute.js",[],"D:\\Izily-React\\src\\containers\\Profesores.js",["150","151","152","153","154","155","156","157","158"],"import React, { useEffect, useState } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport Profesor from \"../components/Profesor\";\r\nimport { db } from \"../firebase\";\r\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useAuth } from \"../contexts/AuthContext\";\r\nimport Drawer from \"@material-ui/core/Drawer\";\r\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\n\r\n\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport MuiAccordion from '@material-ui/core/Accordion';\r\nimport MuiAccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport MuiAccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\n\r\nconst drawerWidth = 240;\r\n\r\nconst Accordion = withStyles({\r\n root: {\r\n border: '1px solid rgba(0, 0, 0, .125)',\r\n boxShadow: 'none',\r\n '&:not(:last-child)': {\r\n borderBottom: 0,\r\n },\r\n '&:before': {\r\n display: 'none',\r\n },\r\n '&$expanded': {\r\n margin: 'auto',\r\n },\r\n },\r\n expanded: {},\r\n})(MuiAccordion);\r\n\r\nconst AccordionSummary = withStyles({\r\n root: {\r\n backgroundColor: 'rgba(0, 0, 0, .03)',\r\n borderBottom: '1px solid rgba(0, 0, 0, .125)',\r\n marginBottom: -1,\r\n minHeight: 56,\r\n '&$expanded': {\r\n minHeight: 56,\r\n },\r\n },\r\n content: {\r\n '&$expanded': {\r\n margin: '12px 0',\r\n },\r\n },\r\n expanded: {},\r\n})(MuiAccordionSummary);\r\n\r\nconst AccordionDetails = withStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n display:\"flex\",\r\n flexDirection:\"column\",\r\n padding: 0,\r\n },\r\n\r\n}))(MuiAccordionDetails);\r\n\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n drawer: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n drawerPaper: {\r\n width: drawerWidth,\r\n },\r\n drawerContainer: {\r\n marginTop: \"3rem\",\r\n //paddingTop:\"20px\",\r\n overflow: \"auto\",\r\n },\r\n // necessary for content to be below app bar\r\n\r\n root: {\r\n display: \"flex\",\r\n },\r\n\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(3),\r\n justifyContent: \"center\",\r\n },\r\n Buscar: {\r\n marginTop: \"10px\",\r\n marginBottom: \"10px\",\r\n marginLeft: \"10px\",\r\n width: \"200px\",\r\n },\r\n\r\n main: {\r\n background: \"white\",\r\n overflow: \"auto\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n flexGrow: 1,\r\n padding: \"15px, 0, 10px, 15px\",\r\n },\r\n gridContainer: {\r\n paddingTop: 15,\r\n },\r\n}));\r\n\r\nexport default function Profesores(callback, deps) {\r\n const classes = useStyles();\r\n const [error, setError] = useState(\"\");\r\n const [profesores, guardarProfesores] = useState([]);\r\n const [especialidades, guardarEspecialidades] = useState([]);\r\n const [etiquetas, guardarEtiquetas] = useState([0]);\r\n const [profesoresFiltrados, guardarProfesoresFiltrados] = useState([]);\r\n const { logout } = useAuth();\r\n const history = useHistory();\r\n\r\n const [expanded, setExpanded] = React.useState('panel');\r\n\r\n const handleChange = (panel) => (event, newExpanded) => {\r\n setExpanded(newExpanded ? panel : false);\r\n };\r\n\r\n\r\n async function handleLogOut() {\r\n setError(\"\");\r\n\r\n try {\r\n await logout();\r\n history.push(\"/login\");\r\n } catch {\r\n setError(\"Ocurrió un error al salir de la cuenta\");\r\n }\r\n }\r\n\r\n const traerProfesores = () => {\r\n const usuariosRef = db.collection(\"usuarios\");\r\n usuariosRef\r\n .where(\"esProfesor\", \"==\", true)\r\n .where(\"disponible\", \"==\", true)\r\n .get()\r\n .then((querySnapshot) => {\r\n const docs = [];\r\n querySnapshot.forEach((doc) => {\r\n docs.push({ ...doc.data(), id: doc.id });\r\n });\r\n guardarProfesores(docs);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n };\r\n\r\n const seleccionarEtiquetas = (EspecialidadId) => () => {\r\n const currentIndex = etiquetas.indexOf(EspecialidadId);\r\n const etiquetasSeleccionadas = [...etiquetas];\r\n if (currentIndex === -1) {\r\n etiquetasSeleccionadas.push(EspecialidadId);\r\n } else {\r\n etiquetasSeleccionadas.splice(currentIndex, 1);\r\n }\r\n guardarEtiquetas(etiquetasSeleccionadas);\r\n };\r\n\r\n const filtrarProfesores = (terminoDeBusqueda) => {\r\n let etiquetasSeleccionadas = [...etiquetas];\r\n etiquetasSeleccionadas = etiquetasSeleccionadas.splice(1, etiquetas.length);\r\n const nuevosProfesoresFiltrados = profesores.filter((profesor) => {\r\n // Verificar Nombre\r\n const nombreProfesor = profesor.nombre.toLowerCase();\r\n const tieneNombreValido = nombreProfesor.includes(terminoDeBusqueda);\r\n\r\n // Verificar Materia\r\n const idsDeCursos = profesor.cursos.map((curso) => curso.id);\r\n let tieneCursoValido = false;\r\n idsDeCursos.forEach((idCurso) => {\r\n tieneCursoValido =\r\n tieneCursoValido || etiquetasSeleccionadas.includes(idCurso);\r\n });\r\n\r\n if (etiquetasSeleccionadas.length > 0)\r\n return tieneNombreValido && tieneCursoValido;\r\n return tieneNombreValido;\r\n });\r\n guardarProfesoresFiltrados(nuevosProfesoresFiltrados);\r\n };\r\n const filtrarProfesoresInput = (e) => {\r\n const terminoDeBusqueda = e.currentTarget.value.toLowerCase();\r\n filtrarProfesores(terminoDeBusqueda);\r\n };\r\n\r\n useEffect(() => {\r\n traerProfesores();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const especialidadesRef = db.collection(\"especialidades\");\r\n const todasLasEspecialidades = [];\r\n especialidadesRef.get().then((querySnapshot) => {\r\n querySnapshot.forEach((doc) => {\r\n todasLasEspecialidades.push({ ...doc.data(), id: doc.id });\r\n });\r\n });\r\n guardarEspecialidades(todasLasEspecialidades);\r\n }, []);\r\n\r\n useEffect(() => {\r\n guardarProfesoresFiltrados(profesores);\r\n }, [profesores]);\r\n\r\n useEffect(() => {\r\n filtrarProfesores(\"\");\r\n }, [etiquetas]);\r\n\r\n return (\r\n <div className={classes.root}>\r\n <CssBaseline />\r\n\r\n <Drawer\r\n className={classes.drawer}\r\n variant=\"permanent\"\r\n classes={{\r\n paper: classes.drawerPaper,\r\n }}\r\n >\r\n <div className={classes.drawerContainer}>\r\n <FormControl\r\n size=\"small\"\r\n //className={clsx(classes.margin, classes.textField)}\r\n className={classes.Buscar}\r\n variant=\"outlined\"\r\n >\r\n <InputLabel htmlFor=\"outlined-adornment-password\">\r\n Buscar nombre:\r\n </InputLabel>\r\n <OutlinedInput\r\n id=\"outlined-adornment-password\"\r\n type=\"text\"\r\n onChange={filtrarProfesoresInput}\r\n labelWidth={120}\r\n />\r\n </FormControl>\r\n <Divider />\r\n\r\n <Accordion square expanded={expanded === 'panel1'} onChange={handleChange('panel1')}>\r\n <AccordionSummary style={{background:\"rgba(81, 184, 82, 0.2)\",}} aria-controls=\"panel1d-content\" id=\"panel1d-header\">\r\n <Typography style={{ color:\"rgba(81, 184, 82, 1)\", fontWeight:\"bold\",}}>Escolar</Typography>\r\n </AccordionSummary>\r\n <AccordionDetails>\r\n\r\n\r\n {especialidades\r\n .filter((especialidad) => especialidad.numberNivel == \"0\")\r\n .map((especialidad) => (\r\n <ListItem\r\n button\r\n key={especialidad.id}\r\n onClick={seleccionarEtiquetas(especialidad.id)}\r\n >\r\n <Checkbox\r\n edge=\"start\"\r\n checked={etiquetas.indexOf(especialidad.id) !== -1}\r\n style={{ color: \"rgba(81, 184, 82, 1)\" }}\r\n tabIndex={-1}\r\n disableRipple\r\n />\r\n <ListItemText primary={especialidad.nombre} />\r\n </ListItem>\r\n ))}\r\n \r\n \r\n\r\n </AccordionDetails>\r\n </Accordion>\r\n <Accordion square expanded={expanded === 'panel2'} onChange={handleChange('panel2')}>\r\n <AccordionSummary style={{background:\"rgba(52, 147, 194, 0.2)\",}} aria-controls=\"panel2d-content\" id=\"panel2d-header\">\r\n <Typography style={{ color:\"rgba(52, 147, 194, 1)\", fontWeight:\"bold\",}}>Preuniversitario</Typography>\r\n </AccordionSummary>\r\n <AccordionDetails>\r\n \r\n {especialidades\r\n .filter((especialidad) => especialidad.numberNivel == \"1\")\r\n .map((especialidad) => (\r\n <ListItem\r\n button\r\n key={especialidad.id}\r\n onClick={seleccionarEtiquetas(especialidad.id)}\r\n >\r\n <Checkbox\r\n edge=\"start\"\r\n checked={etiquetas.indexOf(especialidad.id) !== -1}\r\n style={{ color: \"rgba(52, 147, 194, 1)\" }}\r\n tabIndex={-1}\r\n disableRipple\r\n />\r\n <ListItemText primary={especialidad.nombre} />\r\n </ListItem>\r\n ))}\r\n\r\n </AccordionDetails>\r\n </Accordion>\r\n <Accordion square expanded={expanded === 'panel3'} onChange={handleChange('panel3')}>\r\n <AccordionSummary style={{background:\"rgba(143, 85, 160, 0.2)\",}} aria-controls=\"panel3d-content\" id=\"panel3d-header\">\r\n <Typography style={{ color:\"rgba(143, 85, 160, 1)\", fontWeight:\"bold\",}} >Universitario</Typography>\r\n </AccordionSummary>\r\n <AccordionDetails>\r\n \r\n {especialidades\r\n .filter((especialidad) => especialidad.numberNivel == \"2\")\r\n .map((especialidad) => (\r\n <ListItem\r\n button\r\n key={especialidad.id}\r\n onClick={seleccionarEtiquetas(especialidad.id)}\r\n >\r\n <Checkbox\r\n \r\n edge=\"start\"\r\n checked={etiquetas.indexOf(especialidad.id) !== -1}\r\n style={{ color: \"rgba(143, 85, 160, 1)\" }}\r\n tabIndex={-1}\r\n disableRipple\r\n />\r\n <ListItemText primary={especialidad.nombre} />\r\n </ListItem>\r\n ))\r\n \r\n }\r\n\r\n </AccordionDetails>\r\n </Accordion>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n {/* <List>\r\n {especialidades.map((especialidad, index) => (\r\n <ListItem\r\n button\r\n key={especialidad.id}\r\n onClick={seleccionarEtiquetas(especialidad.id)}\r\n >\r\n <Checkbox\r\n edge=\"start\"\r\n checked={etiquetas.indexOf(especialidad.id) !== -1}\r\n style={{ color: \"#3f51b5\" }}\r\n tabIndex={-1}\r\n disableRipple\r\n />\r\n <ListItemText primary={especialidad.nombre} />\r\n </ListItem>\r\n ))}\r\n </List> */}\r\n </div>\r\n </Drawer>\r\n <main className={classes.content}>\r\n <Grid container clasName={classes.gridContainer} spacing={3}>\r\n {profesoresFiltrados.map((profesor) => (\r\n <Grid item align=\"center\" xs={12} sm={12} md={6} lg={3}>\r\n <Profesor profesor={profesor} />\r\n </Grid>\r\n ))}\r\n </Grid>\r\n </main>\r\n </div>\r\n );\r\n}\r\n","D:\\Izily-React\\src\\components\\ForgotPassword.js",[],"D:\\Izily-React\\src\\containers\\MisCursos.js",["159","160","161"],"import React, { useEffect, useState, useCallback } from 'react';\r\nimport { useAuth } from \"../contexts/AuthContext\";\r\nimport { db } from \"../firebase\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Button from '@material-ui/core/Button';\r\nimport Paper from '@material-ui/core/Paper';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: 'auto',\r\n },\r\n paper: {\r\n width: 200,\r\n height: 230,\r\n overflow: 'auto',\r\n },\r\n button: {\r\n margin: theme.spacing(0.5, 0),\r\n },\r\n}));\r\n\r\nfunction not(a, b) {\r\n return a.filter((value) => b.indexOf(value) === -1);\r\n}\r\n\r\nfunction intersection(a, b) {\r\n return a.filter((value) => b.indexOf(value) !== -1);\r\n}\r\n\r\nexport default function MisCursos() {\r\n const classes = useStyles();\r\n const [checked, setChecked] = React.useState([]);\r\n const todosLosCursos = [\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\"];\r\n const misCursos = [\"c\",\"d\"];\r\n const misNoCursos = todosLosCursos.filter(elemento => !misCursos.includes(elemento));\r\n const [left, setLeft] = React.useState(misNoCursos);\r\n const [right, setRight] = React.useState(misCursos);\r\n\r\n const leftChecked = intersection(checked, left);\r\n const rightChecked = intersection(checked, right);\r\n\r\n const handleToggle = (value) => () => {\r\n const currentIndex = checked.indexOf(value);\r\n const newChecked = [...checked];\r\n\r\n if (currentIndex === -1) {\r\n newChecked.push(value);\r\n } else {\r\n newChecked.splice(currentIndex, 1);\r\n }\r\n\r\n setChecked(newChecked);\r\n };\r\n\r\n\r\n const handleCheckedRight = () => {\r\n setRight(right.concat(leftChecked));\r\n setLeft(not(left, leftChecked));\r\n setChecked(not(checked, leftChecked));\r\n };\r\n\r\n const handleCheckedLeft = () => {\r\n setLeft(left.concat(rightChecked));\r\n setRight(not(right, rightChecked));\r\n setChecked(not(checked, rightChecked));\r\n };\r\n\r\n\r\n const customList = (items) => (\r\n <Paper className={classes.paper}>\r\n <List dense component=\"div\" role=\"list\">\r\n {items.map((value) => {\r\n const labelId = `transfer-list-item-${value}-label`;\r\n\r\n return (\r\n <ListItem key={value} role=\"listitem\" button onClick={handleToggle(value)}>\r\n <ListItemIcon>\r\n <Checkbox\r\n checked={checked.indexOf(value) !== -1}\r\n tabIndex={-1}\r\n disableRipple\r\n inputProps={{ 'aria-labelledby': labelId }}\r\n />\r\n </ListItemIcon>\r\n <ListItemText id={labelId} primary={`List item ${value + 1}`} />\r\n </ListItem>\r\n );\r\n })}\r\n <ListItem />\r\n </List>\r\n </Paper>\r\n );\r\n\r\n const { usuarioActual } = useAuth();\r\n\r\n const [profesor, setProfesor] = useState(null);\r\n \r\n const traerPerfil = useCallback(()=>{\r\n if(usuarioActual){\r\n const idd = usuarioActual.uid;\r\n const usuariosRef = db.collection(\"usuarios\");\r\n usuariosRef\r\n .where(\"loginid\", \"==\", idd)\r\n .get()\r\n .then((querySnapshot) => {\r\n const docs = [];\r\n querySnapshot.forEach((doc) => {\r\n docs.push({ ...doc.data(), id: doc.id });\r\n });\r\n if (docs.length > 0) {\r\n setProfesor(docs[0]);\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n }, [setProfesor]);\r\n\r\n useEffect(() => {\r\n traerPerfil();\r\n }, []);\r\n\r\n return (\r\n <Grid container spacing={2} justify=\"center\" alignItems=\"center\" className={classes.root}>\r\n <p>\r\n \r\n </p>\r\n <Grid item>{customList(left)}</Grid>\r\n <Grid item>\r\n <Grid container direction=\"column\" alignItems=\"center\">\r\n <Button\r\n variant=\"outlined\"\r\n size=\"small\"\r\n className={classes.button}\r\n onClick={handleCheckedRight}\r\n disabled={leftChecked.length === 0}\r\n aria-label=\"move selected right\"\r\n >\r\n >\r\n </Button>\r\n <Button\r\n variant=\"outlined\"\r\n size=\"small\"\r\n className={classes.button}\r\n onClick={handleCheckedLeft}\r\n disabled={rightChecked.length === 0}\r\n aria-label=\"move selected left\"\r\n >\r\n <\r\n </Button>\r\n \r\n </Grid>\r\n </Grid>\r\n <Grid item>{customList(right)}</Grid>\r\n </Grid>\r\n );\r\n}\r\n","D:\\Izily-React\\src\\containers\\Inicio.js",["162","163","164","165"],"import React, { useEffect, useState } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Publicacion from \"../components/Publicacion\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useAuth } from '../contexts/AuthContext';\r\nimport { db } from \"../firebase\";\r\nimport CrearPublicacion from \"../components/CrearPublicacion\";\r\nimport Comentario from \"../components/Comentario\";\r\nimport Chip from \"@material-ui/core/Chip\";\r\n\r\n\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n botones: {\r\n margin: \"0px 5px\",\r\n color: \"#3493C2\",\r\n fontWeight: \"bold\",\r\n height: \"40px\",\r\n fontSize: \"12px\",\r\n },\r\n\r\n\r\n searchInput: {\r\n opacity: \"0.9\",\r\n padding: \"0px 5px\",\r\n margin: \"0px\",\r\n fontSize: \"11px\",\r\n width: \"200px\",\r\n },\r\n\r\n gridTotal: {\r\n paddingTop: \"10px\",\r\n display: \"flex\",\r\n alignContent: \"center\",\r\n flexDirection: \"row\",\r\n width: \"100%\",\r\n },\r\n gridArriba: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n\r\n flexDirection: \"row\",\r\n width: \"100%\",\r\n },\r\n\r\n publicacionesContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n minWidth: \"100%\",\r\n },\r\n gridMedio: {\r\n //minWidth:\"90px\",\r\n },\r\n root: {\r\n maxWidth: 550,\r\n minWidth:\"100%\",\r\n margin: \"10px 0px\",\r\n },\r\n media: {\r\n width:\"100%\",\r\n height: \"auto\",\r\n },\r\n expand: {\r\n transform: 'rotate(0deg)',\r\n marginLeft: 'auto',\r\n transition: theme.transitions.create('transform', {\r\n duration: theme.transitions.duration.shortest,\r\n }),\r\n },\r\n expandOpen: {\r\n transform: 'rotate(180deg)',\r\n },\r\n // avatar: {\r\n // backgroundColor: red[500],\r\n // },\r\n Content: {\r\n widht:\"100px\",\r\n color:\"black\",\r\n // display: \"flex\",\r\n // alignContent:\"start\",\r\n //flexWrap: \"wrap\",\r\n //hyphens: \"auto\",\r\n //wordBreak:\"break-all\",\r\n \r\n \r\n },\r\n\r\n etiqueta0: {\r\n //margin: \"15px\",\r\n background: \"#51B852\",\r\n color: \"white\",\r\n fontWeight: \"bold\",\r\n },\r\n\r\n etiqueta1: {\r\n //marginRight: \"15px\",\r\n background: \"#3493C2\",\r\n color: \"white\",\r\n fontWeight: \"bold\",\r\n },\r\n\r\n etiqueta2: {\r\n //margin: \"15px\",\r\n background: \"#8F55A0\",\r\n color: \"white\",\r\n fontWeight: \"bold\",\r\n },\r\n \r\n}));\r\n\r\nfunction Home() {\r\n const classes = useStyles();\r\n\r\n\r\n\r\n const { usuarioActual } = useAuth();\r\n\r\n \r\n\r\n \r\n const [profesor, setProfesor] = useState(null);\r\n \r\n \r\n const traerProfesor = () => {\r\n const idd = usuarioActual.uid;\r\n const usuariosRef = db.collection(\"usuarios\");\r\n usuariosRef\r\n .where(\"loginid\", \"==\", idd)\r\n .get()\r\n .then((querySnapshot) => {\r\n const docs = [];\r\n querySnapshot.forEach((doc) => {\r\n docs.push({ ...doc.data(), id: doc.id });\r\n });\r\n setProfesor(docs);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n };\r\n\r\n \r\n\r\n const [open, setOpen] = React.useState(false);\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n traerProfesor();\r\n }, []);\r\n\r\n return (\r\n <>\r\n <Grid align=\"center\" className={classes.gridTotal}>\r\n {/* <Grid xs></Grid>\r\n <Grid xs></Grid> */}\r\n <Grid xs></Grid>\r\n\r\n <Grid>\r\n <Grid className={classes.gridArriba}>\r\n <Grid>\r\n <TextField\r\n disabled\r\n className={classes.searchInput}\r\n variant=\"outlined\"\r\n item\r\n id=\"buscador\"\r\n placeholder=\"Buscar\"\r\n size=\"small\"\r\n InputProps={{\r\n startAdornment: (\r\n <InputAdornment position=\"start\">\r\n <SearchIcon fontSize=\"small\" />\r\n </InputAdornment>\r\n ),\r\n }}\r\n />\r\n </Grid>\r\n <Grid xs className={classes.gridMedio}></Grid>\r\n\r\n <Grid>\r\n <Button\r\n component={Link}\r\n to={\"/buscar-un-mentor\"}\r\n className={classes.botones}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n >\r\n Buscar un mentor\r\n </Button>\r\n </Grid>\r\n </Grid>\r\n <Grid align=\"start\" className={classes.publicacionesContainer}>\r\n \r\n {/* <Calificacion/> */}\r\n <CrearPublicacion/>\r\n\r\n\r\n <Publicacion\r\n letter=\"M\"\r\n color=\"Purple\"\r\n name=\"Margaly Flores\"\r\n imagen=\"https://firebasestorage.googleapis.com/v0/b/izily-test.appspot.com/o/publicacionImages%2Fproblema1.jpeg?alt=media&token=f4e69610-db14-4e2d-a5fa-b97bae16daec\"\r\n date=\"16 de marzo, 2021\"\r\n content=\"Alguien me ayuda con este problema porfavor?\"\r\n interesados={15}\r\n comentarios={1}\r\n tag={\r\n <Chip\r\n className={classes.etiqueta2}\r\n label=\"Circuitos Electrónicos 2\"\r\n />\r\n }\r\n children={\r\n <Comentario\r\n name=\"Vivian Quispe\"\r\n color=\"brown\"\r\n letter=\"V\"\r\n comentario=\"Recuerdo que el Ing. Medina resolvió ese problema en clases.\"\r\n />\r\n }\r\n />\r\n <Publicacion\r\n letter=\"J\"\r\n color=\"blue\"\r\n name=\"José Guerra\"\r\n date=\"9 de marzo, 2021\"\r\n content=\"¿Algún mentor especializado en Física para nivel escolar?\"\r\n interesados={4}\r\n comentarios={1}\r\n tag={\r\n <Chip\r\n className={classes.etiqueta0}\r\n label=\"Física\"\r\n />\r\n }\r\n children={\r\n <div>\r\n\r\n <Comentario\r\n name=\"Manuel Baella\"\r\n color=\"red\"\r\n letter=\"M\"\r\n comentario=\"Jesús Cama es bueno en esos temas, lo puedes encontrar en el buscador de mentores.\"\r\n />\r\n\r\n </div>\r\n }\r\n />\r\n <Publicacion\r\n letter=\"M\"\r\n color=\"red\"\r\n name=\"Manuel Baella\"\r\n date=\"11 de marzo, 2021\"\r\n content=\"Necesito referencias de que libros puedo usar para RadioPropagación en la UNI, porfa ayudenme este ciclo estará dificil :c\"\r\n interesados={7}\r\n comentarios={2}\r\n tag={\r\n <Chip\r\n className={classes.etiqueta2}\r\n label=\"RadioPropagación\"\r\n />\r\n }\r\n children={\r\n <div>\r\n \r\n <Comentario\r\n name=\"Jesus Cama\"\r\n color=\"grey\"\r\n letter=\"J\"\r\n comentario=\"Puedes buscar en los libros virtuales que subió el Centro Cultural Pedro Paulet a su drive.\"\r\n />\r\n <Comentario\r\n name=\"Margaly Flores\"\r\n color=\"purple\"\r\n letter=\"M\"\r\n comentario=\"Frente a la puerta 3 de la UNI puedes encontrar los más importantes para ese curso. Suerte!\"\r\n />\r\n\r\n </div>\r\n }\r\n />\r\n <Publicacion\r\n letter=\"J\"\r\n color=\"green\"\r\n name=\"Jhomar Astuyauri\"\r\n date=\"1 de marzo, 2021\"\r\n content=\"Me estoy preparando para postular a la Cayetano Heredia, ¿alguien tiene exámenes pasados porfa?\"\r\n interesados={16}\r\n comentarios={2}\r\n tag={\r\n <Chip\r\n className={classes.etiqueta1}\r\n label=\"Preuniversitario\"\r\n />\r\n }\r\n children={\r\n \r\n <div>\r\n <Comentario\r\n name=\"Margaly Flores\"\r\n color=\"purple\"\r\n letter=\"M\"\r\n comentario=\"Me parece que frente a la UNI venden exámenes para Cayetano también. Éxitos!\"\r\n />\r\n <Comentario\r\n name=\"Jhomar Astuyauri\"\r\n color=\"green\"\r\n letter=\"J\"\r\n comentario=\"Muchas gracias, si encontré :D\"\r\n />\r\n </div>\r\n\r\n }\r\n />\r\n </Grid>\r\n </Grid>\r\n <Grid xs></Grid>\r\n {/* <Grid xs></Grid>\r\n <Grid xs></Grid> */}\r\n </Grid>\r\n </>\r\n );\r\n}\r\nexport default Home;\r\n","D:\\Izily-React\\src\\containers\\AcercaDeIzily.js",["166"],"import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n boton: {\r\n margin: \"0px 5px\",\r\n color: \"#3493C2\",\r\n fontWeight: \"bold\",\r\n height: \"40px\",\r\n fontSize: \"12px\",\r\n },\r\n }));\r\nfunction AcercaDeIzily() {\r\n \r\n const classes = useStyles();\r\n return (\r\n <>\r\n <p>\r\n Acerca de Izily\r\n </p>\r\n\r\n <Button\r\n href=\"javascript:history.back()\"\r\n className={classes.boton}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n >\r\n Volver atrás\r\n </Button>\r\n </>\r\n );\r\n }\r\n export default AcercaDeIzily;\r\n ","D:\\Izily-React\\src\\containers\\Landing.js",["167","168"],"import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport backgroundgrid1 from \"../assets/images/backgroundgrid1.jpg\";\r\nimport logoprincipal from \"../assets/images/logoprincipal.webp\";\r\nimport mentores from \"../assets/images/mentores.png\";\r\nimport comunidad from \"../assets/images/comunidad.png\";\r\nimport videollamada from \"../assets/images/videollamada.png\";\r\nimport CarouselLanding from \"../components/CarouselLanding\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n Div1: {\r\n display:\"flex\",\r\n flexDirection:\"row\",\r\n justifyContent:\"space-between\",\r\n background:\"white\",\r\n // backgroundImage: `url(${backgroundgrid1})`,\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundPosition: \"right center\",\r\n backgroundSize: \"cover\",\r\n width: \"100%\",\r\n margin: \"0px\",\r\n padding: \"50px 0px 65px 0px\",\r\n borderBottom:\"1px solid #EBECEC\",\r\n },\r\n titulo: {\r\n paddingLeft: \"50px\",\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n fontSize: \"35px\",\r\n },\r\n tituloimageContainer:{\r\n margin:\"30px 60px\",\r\n display:\"flex\",\r\n justifyContent:\"center\",\r\n padding:\"40px\",\r\n alignItems:\"center\",\r\n backgroundImage: `url(${videollamada})`,\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundPosition: \"right center\",\r\n backgroundSize: \"contain\",\r\n width:\"600px\",\r\n height:\"400px\",\r\n },\r\n renglon: {\r\n display: \"flex\",\r\n margin: \"0px\",\r\n },\r\n tituloblanco: {\r\n color: \"black\",\r\n margin: \"5px 0px\",\r\n },\r\n tituloazul: {\r\n color: \"#3493C2\",\r\n margin: \"5px 0px\",\r\n },\r\n tituloblancomedio: {\r\n color: \"black\",\r\n margin: \"0px 0px 0px 0px\",\r\n },\r\n tituloazulmedio: {\r\n color: \"#3493C2\",\r\n margin: \"0px 25px 0px 0px\",\r\n },\r\n tituloazulbajo: {\r\n color: \"#3493C2\",\r\n margin: \"0px 0px 15px 0px\",\r\n },\r\n Div2: {\r\n background:\"white\",\r\n // backgroundImage: `url(${backgroundgrid2})`,\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundPosition: \"right bottom\",\r\n backgroundSize: \"cover\",\r\n padding: \"20px\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n },\r\n TituloGrid2: {\r\n fontSize: \"25px\",\r\n fontWeight: \"bold\",\r\n color: \"#3493C2\",\r\n margin: 10,\r\n },\r\n Grid2: {\r\n padding: \"20px\",\r\n justifyContent: \"center\",\r\n },\r\n Grid2Item: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-start\",\r\n padding: \"10px\",\r\n //borderTop:\"1px solid #EBECEC\",\r\n borderBottom:\"1px solid #EBECEC\",\r\n },\r\n textgrid2: {\r\n width: \"80%\",\r\n },\r\n Imagen1: {\r\n width: \"50%\",\r\n height: \"auto\",\r\n },\r\n imggrid2: {\r\n paddingTop:\"20px\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n height: \"200%\",\r\n },\r\n titulogrid2: {\r\n color: \"#3493C2\",\r\n fontSize: \"17px\",\r\n fontWeight: \"bold\",\r\n },\r\n subtitulogrid2: {},\r\n}));\r\n\r\nfunction Landing() {\r\n const classes = useStyles();\r\n return (\r\n <>\r\n <Grid container className={classes.Div1}>\r\n <Grid item className={classes.titulo}>\r\n <h1 className={classes.tituloblanco}>Aprende para</h1>\r\n <div className={classes.renglon}>\r\n <h1 className={classes.tituloazulmedio}>enseñar</h1>{\" \"}\r\n <h1 className={classes.tituloblancomedio}>y</h1>\r\n </div>\r\n <h1 className={classes.tituloblanco}>enseña para</h1>\r\n <h1 className={classes.tituloazulbajo}>aprender</h1>\r\n </Grid>\r\n <Grid item className={classes.tituloimageContainer}>\r\n </Grid>\r\n </Grid>\r\n <div className={classes.Div2}>\r\n <p className={classes.TituloGrid2}>¿Quiénes somos?</p>\r\n <Grid className={classes.Grid2} container>\r\n <Grid className={classes.Grid2Item} item xs={10} sm={6} md={4} lg={4}>\r\n <Grid className={classes.imggrid2}>\r\n <div align=\"center\">\r\n <img\r\n src={logoprincipal}\r\n className={classes.Imagen1}\r\n alt=\"Logo\"\r\n />\r\n </div>\r\n </Grid>\r\n <Grid className={classes.textgrid2}>\r\n <p className={classes.titulogrid2}>Red Social Educativa</p>\r\n <p className={classes.subtitulogrid2}>\r\n Orientada a ayudar tanto a escolares como a\r\n universitarios.\r\n </p>\r\n </Grid>\r\n </Grid>\r\n\r\n <Grid className={classes.Grid2Item} item xs={10} sm={6} md={4} lg={4}>\r\n <Grid className={classes.imggrid2}>\r\n <div align=\"center\">\r\n <img\r\n src={comunidad}\r\n className={classes.Imagen1}\r\n alt=\"Comunidades\"\r\n />\r\n </div>\r\n </Grid>\r\n <Grid className={classes.textgrid2}>\r\n <p className={classes.titulogrid2}>Comunidad</p>\r\n <p className={classes.subtitulogrid2}>\r\n Donde puedes compartir tu experiencia y conocimiento.\r\n </p>\r\n </Grid>\r\n </Grid>\r\n\r\n <Grid className={classes.Grid2Item} item xs={10} sm={6} md={4} lg={4}>\r\n <Grid className={classes.imggrid2}>\r\n <div align=\"center\">\r\n <img\r\n src={mentores}\r\n className={classes.Imagen1}\r\n alt=\"Mentores\"\r\n />\r\n </div>\r\n </Grid>\r\n <Grid className={classes.textgrid2}>\r\n <p className={classes.titulogrid2}>Mentores</p>\r\n <p className={classes.subtitulogrid2}>\r\n Con experiencia dispuestos a ayudarte a resolver todas tus dudas.\r\n </p>\r\n </Grid>\r\n </Grid>\r\n </Grid>\r\n </div>\r\n <Grid style={{display:\"flex\", padding:\"10px 0px 50px 0px\", background:\"white\"}}>\r\n <CarouselLanding/>\r\n {/* <Carousel2/> */}\r\n </Grid>\r\n \r\n </>\r\n );\r\n}\r\n\r\nexport default Landing;\r\n","D:\\Izily-React\\src\\containers\\NotFound.jsx",["169"],"import React from \"react\";\r\nimport notfound from \"../assets/images/NotFound.png\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: 20,\r\n display: \"flex\",\r\n justifyItems: \"center\",\r\n\r\n //paddingTop:\"50px\",\r\n //backgroundColor:\"red\",\r\n },\r\n gridcontainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n },\r\n gridimagen1: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignContent: \"center\",\r\n alignItems: \"center\",\r\n },\r\n imagen1: {\r\n width: \"50%\",\r\n height: \"auto\",\r\n //margin:\"40px\"\r\n },\r\n botones: {\r\n margin: \"0px 5px\",\r\n color: \"#3493C2\",\r\n fontWeight: \"bold\",\r\n height: \"40px\",\r\n fontSize: \"12px\",\r\n },\r\n gridtexto: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"start\",\r\n justifyContent: \"center\",\r\n },\r\n h1: {\r\n color: \"#3493C2\",\r\n justify: \"center\",\r\n },\r\n}));\r\n\r\nexport default function NotFound() {\r\n const classes = useStyles();\r\n\r\n return (\r\n <div className={classes.root}>\r\n <Grid container align=\"\" className={classes.gridcontainer}>\r\n <Grid sm></Grid>\r\n <Grid sm></Grid>\r\n\r\n <Grid item xs={12} sm={4} md={4} lg={4} className={classes.gridimagen1}>\r\n <img src={notfound} className={classes.imagen1} alt=\"NotFound\" />\r\n </Grid>\r\n\r\n <Grid item xs={12} sm={5} md={5} lg={5} className={classes.gridtexto}>\r\n <h1 className={classes.h1}>¡Uy, problemas en el paraiso!</h1>\r\n <h2>No hemos podido encontrar la página que buscabas :(</h2>\r\n <h3>\r\n Incluso en Izily, estos casos son muy raros, tanto como que tu Crush\r\n te haga caso.\r\n </h3>\r\n <h3>Mejor sigue estudiando :D</h3>\r\n <Button\r\n href=\"javascript:history.back()\"\r\n className={classes.botones}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n >\r\n Volver atrás\r\n </Button>\r\n </Grid>\r\n <Grid sm></Grid>\r\n <Grid sm></Grid>\r\n </Grid>\r\n </div>\r\n );\r\n}\r\n","D:\\Izily-React\\src\\containers\\Layout.jsx",[],"D:\\Izily-React\\src\\components\\EditProfile.js",["170","171"],"////////////////////////////////// SignUp = Registro //////////////////////////////////\r\nimport React, { useRef, useState, useEffect, useCallback } from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport { useAuth } from \"../contexts/AuthContext\";\r\nimport { db } from \"../firebase\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n marginTop: theme.spacing(2),\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n },\r\n form: {\r\n // width: \"100%\", // Fix IE 11 issue.\r\n marginTop: theme.spacing(3),\r\n display:\"flex\",\r\n flexDirection:\"column\",\r\n alignItems:\"center\",\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2),\r\n width:\"300px\",\r\n color: \"#3493C2\",\r\n fontWeight: \"bold\",\r\n },\r\n subContainer :{\r\n display:\"flex\",\r\n flexDirection:\"row\",\r\n margin:0,\r\n justifyContent:\"center\",\r\n },\r\n subSubContainer:{\r\n display:\"flex\",\r\n flexDirection:\"column\",\r\n justifyContent:\"center\",\r\n },\r\n Input:{\r\n width:\"400px\",\r\n margin:\"10px 0px\",\r\n },\r\n cancelar:{\r\n margin:\"0px 0px 20px 0px\",\r\n fontSize:\"15px\",\r\n \"&:hover\":{\r\n textDecoration:\"underline\",\r\n cursor:\"pointer\",\r\n },\r\n },\r\n}));\r\n\r\nexport default function EditProfile() {\r\n const classes = useStyles();\r\n const emailRef = useRef();\r\n const contraseñaRef = useRef();\r\n const confirmContraseñaRef = useRef();\r\n const nombreRef = useRef();\r\n const aboutMeRef = useRef();\r\n const descriptionRef = useRef();\r\n const calendlyRef = useRef();\r\n\r\n const { usuarioActual, updatePassword, updateEmail } = useAuth();\r\n const [error, guardarError] = useState();\r\n const [carga, guardarCarga] = useState(false);\r\n const [profesor, setProfesor] = useState(null);\r\n const history = useHistory();\r\n\r\n const traerPerfil = useCallback(() => {\r\n if (usuarioActual) {\r\n const idd = usuarioActual.uid;\r\n const usuariosRef = db.collection(\"usuarios\");\r\n usuariosRef\r\n .where(\"loginid\", \"==\", idd)\r\n .get()\r\n .then((querySnapshot) => {\r\n const docs = [];\r\n querySnapshot.forEach((doc) => {\r\n docs.push({ ...doc.data(), id: doc.id });\r\n });\r\n if (docs.length > 0) {\r\n setProfesor(docs[0]);\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n }, [setProfesor]);\r\n\r\n function updateName(name) {\r\n db.collection(\"usuarios\").doc(`${profesor.id}`).update({\r\n nombre: name\r\n });\r\n }\r\n\r\n function updateAboutMe(presentation) {\r\n db.collection(\"usuarios\").doc(`${profesor.id}`).update({\r\n presentacion: presentation\r\n });\r\n }\r\n\r\n function updateDescription(description) {\r\n db.collection(\"usuarios\").doc(`${profesor.id}`).update({\r\n descripcion: description\r\n });\r\n }\r\n\r\n function updateCalendly(calendly) {\r\n db.collection(\"usuarios\").doc(`${profesor.id}`).update({\r\n calendly: calendly\r\n });\r\n }\r\n\r\n function handleSubmit(e) {\r\n e.preventDefault();\r\n\r\n if (contraseñaRef.current.value !== confirmContraseñaRef.current.value) {\r\n return guardarError(\"Las contraseñas no coinciden\");\r\n }\r\n\r\n const promises = [];\r\n guardarCarga(true);\r\n guardarError(\"\");\r\n\r\n if (emailRef.current.value !== usuarioActual.email) {\r\n promises.push(updateEmail(emailRef.current.value));\r\n }\r\n if (contraseñaRef.current.value) {\r\n promises.push(updatePassword(contraseñaRef.current.value));\r\n }\r\n if (nombreRef.current.value !== profesor.nombre) {\r\n promises.push(updateName(nombreRef.current.value));\r\n }\r\n if (aboutMeRef.current.value !== profesor.presentacion) {\r\n promises.push(updateAboutMe(aboutMeRef.current.value));\r\n }\r\n if (descriptionRef.current.value !== profesor.descripcion) {\r\n promises.push(updateDescription(descriptionRef.current.value));\r\n }\r\n if (calendlyRef.current.value !== profesor.calendly) {\r\n promises.push(updateCalendly(calendlyRef.current.value));\r\n }\r\n\r\n Promise.all(promises)\r\n .then(() => {\r\n history.push(\"/inicio\");\r\n })\r\n .catch(() => {\r\n guardarError(\"Ocurrió un error al actualizar la cuenta\");\r\n })\r\n .finally(() => {\r\n guardarCarga(false);\r\n window.location.reload();\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n traerPerfil();\r\n }, []);\r\n\r\n async function goInicio(){\r\n guardarError()\r\n try {\r\n history.push(`/inicio`)\r\n } catch {\r\n guardarError(\"Ocurrió un error al salir de la cuenta\");\r\n }\r\n }\r\n\r\n return (\r\n <Container className={classes.container}>\r\n <CssBaseline />\r\n <div className={classes.paper}>\r\n <Typography component=\"h1\" variant=\"h5\">\r\n Editar perfil\r\n </Typography>\r\n {error && (\r\n <Alert variant=\"filled\" severity=\"error\">\r\n {error}\r\n </Alert>\r\n )}\r\n <Divider/>\r\n <form onSubmit={handleSubmit} className={classes.form} noValidate>\r\n <Grid style={{marginTop:\"-20px\", width:\"90%\"}}>\r\n <Divider/>\r\n </Grid>\r\n <Grid container className={classes.subContainer} spacing={2}>\r\n <Grid item className={classes.subSubContainer}>\r\n {/* <Grid > */}\r\n <TextField\r\n variant=\"outlined\"\r\n required\r\n defaultValue={usuarioActual.email}\r\n className={classes.Input}\r\n id=\"email\"\r\n inputRef={emailRef}\r\n label=\"Correo Electrónico\"\r\n name=\"email\"\r\n autoComplete=\"email\"\r\n />\r\n {/* </Grid> */}\r\n {/* <Grid > */}\r\n <TextField\r\n variant=\"outlined\"\r\n className={classes.Input}\r\n name=\"password\"\r\n label=\"Contraseña\"\r\n defaultValue={null}\r\n inputRef={contraseñaRef}\r\n placeholder=\"Dejar en blanco para mantener la contaseña\"\r\n type=\"password\"\r\n id=\"password\"\r\n //autoComplete=\"current-password\"\r\n />\r\n {/* </Grid> */}\r\n {/* <Grid > */}\r\n <TextField\r\n variant=\"outlined\"\r\n className={classes.Input}\r\n name=\"confirm-password\"\r\n label=\"Confirmar contraseña\"\r\n inputRef={confirmContraseñaRef}\r\n placeholder=\"Dejar en blanco para mantener la contaseña\"\r\n type=\"password\"\r\n id=\"confirm-password\"\r\n autoComplete=\"confirm-password\"\r\n />\r\n {/* </Grid> */}\r\n {profesor && (\r\n // <Grid >\r\n <TextField\r\n variant=\"outlined\"\r\n className={classes.Input}\r\n name=\"name\"\r\n label=\"Nombre y Apellido\"\r\n defaultValue={profesor.nombre}\r\n inputRef={nombreRef}\r\n id=\"rename\"\r\n autoComplete=\"current-name\"\r\n />\r\n // </Grid>\r\n )}\r\n </Grid>\r\n <Grid item className={classes.subSubContainer}>\r\n {profesor && (\r\n // <Grid >\r\n <TextField\r\n variant=\"outlined\"\r\n className={classes.Input}\r\n name=\"description\"\r\n label=\"Descripción\"\r\n defaultValue={profesor.descripcion}\r\n inputRef={descriptionRef}\r\n id=\"description\"\r\n autoComplete=\"current-description\"\r\n multiline\r\n />\r\n // </Grid>\r\n )}\r\n {profesor && (\r\n // <Grid >\r\n <TextField\r\n variant=\"outlined\"\r\n className={classes.Input}\r\n name=\"aboutMe\"\r\n label=\"Acerca de mí\"\r\n defaultValue={profesor.presentacion}\r\n inputRef={aboutMeRef}\r\n id=\"aboutMe\"\r\n autoComplete=\"current-aboutMe\"\r\n multiline\r\n />\r\n // </Grid>\r\n )}\r\n {profesor && (\r\n // <Grid >\r\n <TextField\r\n variant=\"outlined\"\r\n className={classes.Input}\r\n name=\"calendly\"\r\n label=\"Link de Calendly\"\r\n defaultValue={profesor.calendly}\r\n inputRef={calendlyRef}\r\n id=\"calendly\"\r\n autoComplete=\"current-calendly\"\r\n multiline\r\n />\r\n // </Grid>\r\n )}\r\n </Grid>\r\n\r\n \r\n </Grid>\r\n\r\n <Button\r\n type=\"submit\"\r\n variant=\"outlined\"\r\n className={classes.submit}\r\n disabled={carga}\r\n >\r\n Actualizar\r\n </Button>\r\n <Grid container justify=\"flex-end\" style={{width:\"100%\"}}>\r\n <p className={classes.cancelar} variante=\"link\" onClick={goInicio}>Cancelar</p>\r\n {/* <Link to=\"/inicio\" variant=\"body2\">\r\n Cancelar\r\n </Link> */}\r\n \r\n </Grid>\r\n\r\n \r\n </form>\r\n </div>\r\n </Container>\r\n );\r\n}\r\n","D:\\Izily-React\\src\\components\\LogIn.js",[],"D:\\Izily-React\\src\\contexts\\AuthContext.js",[],"D:\\Izily-React\\src\\components\\CarouselLanding.js",[],"D:\\Izily-React\\src\\components\\ProfesorPerfil.js",[],"D:\\Izily-React\\src\\components\\Calificacion.js",[],"D:\\Izily-React\\src\\components\\Profesor.js",[],"D:\\Izily-React\\src\\components\\Comentario.js",[],"D:\\Izily-React\\src\\components\\Publicacion.js",[],"D:\\Izily-React\\src\\components\\CrearPublicacion.js",[],"D:\\Izily-React\\src\\components\\Navbar.js",["172","173","174","175","176","177","178","179","180","181"],"import React, { useEffect, useState, useCallback } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport useScrollTrigger from \"@material-ui/core/useScrollTrigger\";\r\nimport logo from \"../assets/images/logoprincipal.webp\";\r\nimport { makeStyles, Grid, Button, IconButton, Badge } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport MessageIcon from \"@material-ui/icons/Message\";\r\nimport NotificationsIcon from \"@material-ui/icons/Notifications\";\r\nimport MenuNavbar from \"./MenuNavbar\";\r\nimport PersonIcon from \"@material-ui/icons/Person\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useAuth } from \"../contexts/AuthContext\";\r\nimport { db } from \"../firebase\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n backgroundColor: \"#FFFFFF\",\r\n boxShadow: \"0px 0px 4px 0 rgba(0, 0, 0, 0.2)\",\r\n zIndex: theme.zIndex.drawer + 1,\r\n },\r\n\r\n gridPadre: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n },\r\n\r\n gridHijo: {\r\n height: \"50px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n\r\n searchInput: {\r\n opacity: \"0.9\",\r\n padding: \"0px 5px\",\r\n margin: \"0px 40px\",\r\n fontSize: \"11px\",\r\n },\r\n\r\n logo: {\r\n width: 64,\r\n height: 40,\r\n marginLeft: 15,\r\n },\r\n buttonLogo: {\r\n \"&:hover\": {\r\n backgroundColor: \"rgba(255, 255, 255, 0)\",\r\n },\r\n },\r\n\r\n botones: {\r\n margin: \"0px 5px\",\r\n color: \"#3493C2\",\r\n fontWeight: \"bold\",\r\n height: \"30px\",\r\n fontSize: \"11px\",\r\n },\r\n\r\n menu: {\r\n padding: \"0px\",\r\n },\r\n\r\n icon: {\r\n padding: \"10px\",\r\n },\r\n\r\n nombrecontainer: {\r\n display: \"flex\",\r\n justifyContent: \"flex-start\",\r\n alignItems: \"center\",\r\n maxWidth: \"160px\",\r\n whiteSpace: \"nowrap\",\r\n textOverflow: \"ellipsis\",\r\n overflow: \"hidden\",\r\n color: \"black\",\r\n paddingLeft: \"10px\",\r\n },\r\n\r\n rootAvatar: {\r\n marginRight: \"10px\",\r\n width: \"33px\",\r\n height: \"33px\",\r\n display: \"flex\",\r\n \"& > *\": {\r\n margin: theme.spacing(1),\r\n },\r\n \"&:hover\": { cursor: \"pointer\" },\r\n },\r\n nombre: {\r\n margin: \"0px\",\r\n padding: \"0px\",\r\n \"&:hover\": { cursor: \"pointer\" },\r\n },\r\n}));\r\n\r\nconst StyledMenu = withStyles({\r\n paper: {\r\n border: \"1px solid #d3d4d5\",\r\n marginLeft: \"-40px\",\r\n },\r\n})((props) => (\r\n <Menu\r\n elevation={0}\r\n getContentAnchorEl={null}\r\n anchorOrigin={{\r\n vertical: \"bottom\",\r\n horizontal: \"center\",\r\n }}\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"center\",\r\n }}\r\n {...props}\r\n />\r\n));\r\n\r\nconst StyledMenuItem = withStyles((theme) => ({\r\n root: {\r\n \"&:focus\": {\r\n backgroundColor: theme.palette.primary.main,\r\n \"& .MuiListItemIcon-root, & .MuiListItemText-primary\": {\r\n color: theme.palette.common.white,\r\n },\r\n },\r\n },\r\n}))(MenuItem);\r\n\r\nfunction ElevationScroll(props) {\r\n const { children, window } = props;\r\n const trigger = useScrollTrigger({\r\n disableHysteresis: true,\r\n threshold: 0,\r\n target: window ? window() : undefined,\r\n });\r\n\r\n return React.cloneElement(children, {\r\n elevation: trigger ? 4 : 0,\r\n });\r\n}\r\n\r\nElevationScroll.propTypes = {\r\n children: PropTypes.element.isRequired,\r\n window: PropTypes.func,\r\n};\r\n\r\nexport default function ElevateAppBar(props) {\r\n const classes = useStyles();\r\n const [error, setError] = useState(\"\");\r\n const history = useHistory();\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const { usuarioActual } = useAuth();\r\n\r\n const [profesor, setProfesor] = useState(null);\r\n\r\n const traerPerfil = useCallback(() => {\r\n if (usuarioActual) {\r\n const idd = usuarioActual.uid;\r\n const usuariosRef = db.collection(\"usuarios\");\r\n usuariosRef\r\n .where(\"loginid\", \"==\", idd)\r\n .get()\r\n .then((querySnapshot) => {\r\n const docs = [];\r\n querySnapshot.forEach((doc) => {\r\n docs.push({ ...doc.data(), id: doc.id });\r\n });\r\n if (docs.length > 0) {\r\n setProfesor(docs[0]);\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n }, [setProfesor]);\r\n\r\n useEffect(() => {\r\n traerPerfil();\r\n }, []);\r\n\r\n async function goProfile() {\r\n setError(\"\");\r\n try {\r\n history.push(`/perfil/${profesor.id}`);\r\n window.location.reload();\r\n } catch {\r\n setError(\"Ocurrió un error al salir de la cuenta\");\r\n }\r\n }\r\n async function goInicio() {\r\n setError(\"\");\r\n try {\r\n history.push(`/inicio`);\r\n } catch {\r\n setError(\"Ocurrió un error al salir de la cuenta\");\r\n }\r\n }\r\n\r\n return usuarioActual ? (\r\n <React.Fragment>\r\n <ElevationScroll {...props}>\r\n <AppBar className={classes.root}>\r\n {/* <Toolbar> */}\r\n <Grid className={classes.gridPadre} container alignItems=\"center\">\r\n <Grid className={classes.gridHijo} item>\r\n <Button\r\n component={Link}\r\n to={\"/\"}\r\n className={classes.buttonLogo}\r\n disableRipple=\"true\"\r\n disableFocusRipple=\"true\"\r\n >\r\n <img src={logo} className={classes.logo} />\r\n </Button>\r\n </Grid>\r\n\r\n {/* <Grid className={classes.gridHijo} item xs></Grid> */}\r\n\r\n <Grid className={classes.gridHijo} item>\r\n <Button\r\n variante=\"link\"\r\n onClick={goInicio}\r\n className={classes.botones}\r\n variant=\"outlined\"\r\n >\r\n Inicio\r\n </Button>\r\n\r\n <IconButton disabled className={classes.icon}>\r\n <Badge badgeContent={4}>\r\n <MessageIcon fontSize=\"small\" />\r\n </Badge>\r\n </IconButton>\r\n <IconButton disabled className={classes.icon}>\r\n <Badge badgeContent={4}>\r\n <NotificationsIcon fontSize=\"small\" />\r\n </Badge>\r\n </IconButton>\r\n <IconButton disabled className={classes.icon}>\r\n {/*<Link to=\"/perfil\">*/}\r\n <Badge badgeContent={4}>\r\n <PersonIcon fontSize=\"small\" />\r\n </Badge>\r\n {/*<Link />*/}\r\n </IconButton>\r\n\r\n {profesor && (\r\n \r\n <Grid className={classes.nombrecontainer} xs>\r\n\r\n <Avatar variante=\"link\" onClick={goProfile} className={classes.rootAvatar} alt={profesor.nombre} src={profesor.imageURL} />\r\n <div className={classes.nombre}\r\n variante=\"link\" onClick={goProfile}\r\n >\r\n {profesor.nombre}\r\n </div>\r\n </Grid>\r\n \r\n )}\r\n <MenuNavbar perfil={profesor?.id} esProfesor={profesor?.esProfesor}/> \r\n </Grid>\r\n </Grid>\r\n {/* </Toolbar> */}\r\n </AppBar>\r\n </ElevationScroll>\r\n </React.Fragment>\r\n ) : (\r\n <React.Fragment>\r\n <ElevationScroll {...props}>\r\n <AppBar className={classes.root}>\r\n {/* <Toolbar> */}\r\n <Grid className={classes.gridPadre} container alignItems=\"center\">\r\n <Grid className={classes.gridHijo} item>\r\n <Button\r\n component={Link}\r\n to={\"/\"}\r\n className={classes.buttonLogo}\r\n disableRipple=\"true\"\r\n disableFocusRipple=\"true\"\r\n >\r\n <img src={logo} className={classes.logo} />\r\n </Button>\r\n </Grid>\r\n\r\n <Grid className={classes.gridHijo} item xs></Grid>\r\n\r\n <Grid className={classes.gridHijo} item>\r\n <Button\r\n component={Link}\r\n to={\"/login\"}\r\n className={classes.botones}\r\n variant=\"outlined\"\r\n >\r\n Ingresar\r\n </Button>\r\n <Button\r\n component={Link}\r\n to={\"/signup\"}\r\n className={classes.botones}\r\n variant=\"outlined\"\r\n >\r\n Regístrate\r\n </Button>\r\n </Grid>\r\n </Grid>\r\n {/* </Toolbar> */}\r\n </AppBar>\r\n </ElevationScroll>\r\n </React.Fragment>\r\n );\r\n}\r\n","D:\\Izily-React\\src\\components\\CrearComentario.js",[],"D:\\Izily-React\\src\\components\\MenuNavbar.js",["182","183"],"import React from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport SettingsIcon from '@material-ui/icons/Settings';\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\r\nimport ExitToAppTwoToneIcon from '@material-ui/icons/ExitToAppTwoTone';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useAuth } from '../contexts/AuthContext';\r\nimport {useState } from \"react\";\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport MenuBookIcon from '@material-ui/icons/MenuBook';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n item: {\r\n \"&:onClick\": {\r\n backgroundColor: \"black\",\r\n },\r\n },\r\n}));\r\n\r\nconst StyledMenu = withStyles({\r\n paper: {\r\n border: \"1px solid #d3d4d5\",\r\n marginLeft: \"-10px\",\r\n },\r\n})((props) => (\r\n <Menu\r\n elevation={0}\r\n getContentAnchorEl={null}\r\n anchorOrigin={{\r\n vertical: \"bottom\",\r\n horizontal: \"center\",\r\n }}\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"center\",\r\n }}\r\n {...props}\r\n />\r\n));\r\n\r\nconst StyledMenuItem = withStyles((theme) => ({\r\n root: {\r\n \"&:focus\": {\r\n backgroundColor: \"\",\r\n \"& .MuiListItemIcon-root, & .MuiListItemText-primary\": {\r\n color: \"\",\r\n },\r\n },\r\n },\r\n}))(MenuItem);\r\n\r\nexport default function CustomizedMenu(props) {\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const [error, setError] = useState(\"\");\r\n const { usuarioActual, logout } = useAuth();\r\n const history = useHistory();\r\n const classes = useStyles();\r\n\r\n async function handleLogOut() {\r\n setError(\"\");\r\n\r\n try {\r\n handleClose();\r\n await logout();\r\n history.push(\"/login\");\r\n window.location.reload();\r\n } catch {\r\n setError(\"Ocurrió un error al salir de la cuenta\");\r\n }\r\n }\r\n\r\n async function editProfile() {\r\n setError(\"\");\r\n\r\n try {\r\n handleClose()\r\n history.push('/editar-perfil')\r\n } catch {\r\n setError('Ocurrió un error al salir de la cuenta')\r\n }\r\n\r\n }\r\n\r\n async function misCursos(){\r\n setError('')\r\n\r\n try {\r\n handleClose()\r\n history.push('/mis-cursos')\r\n } catch {\r\n setError(\"Ocurrió un error al salir de la cuenta\");\r\n }\r\n }\r\n\r\n async function goProfile() {\r\n setError(\"\");\r\n\r\n try {\r\n handleClose();\r\n history.push(`/perfil/${props.perfil}`);\r\n window.location.reload();\r\n } catch {\r\n setError(\"Ocurrió un error al salir de la cuenta\");\r\n }\r\n }\r\n\r\n async function acercaDeIzily() {\r\n setError(\"\");\r\n\r\n try {\r\n handleClose();\r\n history.push(`/acerca-de-izily`);\r\n } catch {\r\n setError(\"Ocurrió un error al salir de la cuenta\");\r\n }\r\n }\r\n\r\n return (\r\n <div>\r\n <IconButton\r\n padding=\"0px\"\r\n aria-controls=\"customized-menu\"\r\n aria-haspopup=\"true\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n onClick={handleClick}\r\n >\r\n <KeyboardArrowDownIcon fontSize=\"medium\" />\r\n </IconButton>\r\n <StyledMenu\r\n id=\"customized-menu\"\r\n anchorEl={anchorEl}\r\n keepMounted\r\n open={Boolean(anchorEl)}\r\n onClose={handleClose}\r\n >\r\n <StyledMenuItem\r\n variante=\"link\"\r\n onClick={goProfile}\r\n className={classes.item}\r\n >\r\n <ListItemIcon>\r\n <PersonIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n <ListItemText primary=\"Perfil\" />\r\n </StyledMenuItem>\r\n <StyledMenuItem variant=\"link\" onClick={editProfile}>\r\n <ListItemIcon>\r\n <SettingsIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n <ListItemText primary=\"Editar Perfil\" />\r\n </StyledMenuItem>\r\n {props.esProfesor === true ? (\r\n <StyledMenuItem variant=\"link\" onClick={misCursos}>\r\n <ListItemIcon>\r\n <MenuBookIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n <ListItemText primary=\"Mis Cursos\" />\r\n </StyledMenuItem>\r\n ) : (\r\n <>\r\n </>\r\n )}\r\n <StyledMenuItem variant=\"link\" onClick={handleLogOut}>\r\n <ListItemIcon>\r\n <ExitToAppTwoToneIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n <ListItemText primary=\"Cerrar Sesión\" />\r\n </StyledMenuItem>\r\n <Divider />\r\n <StyledMenuItem variant=\"link\" onClick={acercaDeIzily}>\r\n <ListItemIcon>\r\n <InfoIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n <ListItemText primary=\"Acerca de Izily\" />\r\n </StyledMenuItem>\r\n </StyledMenu>\r\n </div>\r\n );\r\n}\r\n","D:\\Izily-React\\src\\containers\\ConvertirmeEnMentor.js",["184"],{"ruleId":"185","replacedBy":"186"},{"ruleId":"187","replacedBy":"188"},{"ruleId":"189","severity":1,"message":"190","line":3,"column":8,"nodeType":"191","messageId":"192","endLine":3,"endColumn":12},{"ruleId":"189","severity":1,"message":"193","line":15,"column":18,"nodeType":"191","messageId":"192","endLine":15,"endColumn":30},{"ruleId":"189","severity":1,"message":"194","line":20,"column":8,"nodeType":"191","messageId":"192","endLine":20,"endColumn":20},{"ruleId":"189","severity":1,"message":"195","line":254,"column":9,"nodeType":"191","messageId":"192","endLine":254,"endColumn":14},{"ruleId":"189","severity":1,"message":"196","line":257,"column":10,"nodeType":"191","messageId":"192","endLine":257,"endColumn":15},{"ruleId":"189","severity":1,"message":"197","line":266,"column":10,"nodeType":"191","messageId":"192","endLine":266,"endColumn":16},{"ruleId":"189","severity":1,"message":"198","line":285,"column":9,"nodeType":"191","messageId":"192","endLine":285,"endColumn":21},{"ruleId":"199","severity":1,"message":"200","line":291,"column":6,"nodeType":"201","endLine":291,"endColumn":8,"suggestions":"202"},{"ruleId":"203","severity":1,"message":"204","line":306,"column":23,"nodeType":"205","messageId":"206","endLine":306,"endColumn":25},{"ruleId":"207","severity":1,"message":"208","line":466,"column":64,"nodeType":"209","messageId":"210","endLine":466,"endColumn":66},{"ruleId":"207","severity":1,"message":"208","line":482,"column":64,"nodeType":"209","messageId":"210","endLine":482,"endColumn":66},{"ruleId":"207","severity":1,"message":"208","line":498,"column":64,"nodeType":"209","messageId":"210","endLine":498,"endColumn":66},{"ruleId":"211","severity":1,"message":"212","line":548,"column":41,"nodeType":"213","endLine":548,"endColumn":265},{"ruleId":"189","severity":1,"message":"214","line":4,"column":8,"nodeType":"191","messageId":"192","endLine":4,"endColumn":12},{"ruleId":"189","severity":1,"message":"215","line":13,"column":8,"nodeType":"191","messageId":"192","endLine":13,"endColumn":14},{"ruleId":"216","severity":1,"message":"217","line":71,"column":5,"nodeType":"218","messageId":"210","endLine":71,"endColumn":12},{"ruleId":"189","severity":1,"message":"196","line":124,"column":10,"nodeType":"191","messageId":"192","endLine":124,"endColumn":15},{"ruleId":"189","severity":1,"message":"193","line":139,"column":18,"nodeType":"191","messageId":"192","endLine":139,"endColumn":30},{"ruleId":"199","severity":1,"message":"219","line":227,"column":6,"nodeType":"201","endLine":227,"endColumn":17,"suggestions":"220"},{"ruleId":"207","severity":1,"message":"208","line":267,"column":62,"nodeType":"209","messageId":"210","endLine":267,"endColumn":64},{"ruleId":"207","severity":1,"message":"208","line":296,"column":62,"nodeType":"209","messageId":"210","endLine":296,"endColumn":64},{"ruleId":"207","severity":1,"message":"208","line":323,"column":62,"nodeType":"209","messageId":"210","endLine":323,"endColumn":64},{"ruleId":"189","severity":1,"message":"221","line":102,"column":10,"nodeType":"191","messageId":"192","endLine":102,"endColumn":18},{"ruleId":"199","severity":1,"message":"222","line":124,"column":6,"nodeType":"201","endLine":124,"endColumn":19,"suggestions":"223"},{"ruleId":"199","severity":1,"message":"224","line":128,"column":6,"nodeType":"201","endLine":128,"endColumn":8,"suggestions":"225"},{"ruleId":"189","severity":1,"message":"221","line":129,"column":10,"nodeType":"191","messageId":"192","endLine":129,"endColumn":18},{"ruleId":"189","severity":1,"message":"226","line":152,"column":10,"nodeType":"191","messageId":"192","endLine":152,"endColumn":14},{"ruleId":"189","severity":1,"message":"227","line":153,"column":9,"nodeType":"191","messageId":"192","endLine":153,"endColumn":20},{"ruleId":"199","severity":1,"message":"200","line":159,"column":6,"nodeType":"201","endLine":159,"endColumn":8,"suggestions":"228"},{"ruleId":"229","severity":1,"message":"230","line":24,"column":18,"nodeType":"231","messageId":"232","endLine":24,"endColumn":45},{"ruleId":"189","severity":1,"message":"233","line":4,"column":8,"nodeType":"191","messageId":"192","endLine":4,"endColumn":23},{"ruleId":"189","severity":1,"message":"234","line":10,"column":8,"nodeType":"191","messageId":"192","endLine":10,"endColumn":15},{"ruleId":"229","severity":1,"message":"230","line":72,"column":18,"nodeType":"231","messageId":"232","endLine":72,"endColumn":45},{"ruleId":"199","severity":1,"message":"222","line":97,"column":6,"nodeType":"201","endLine":97,"endColumn":19,"suggestions":"235"},{"ruleId":"199","severity":1,"message":"224","line":168,"column":6,"nodeType":"201","endLine":168,"endColumn":8,"suggestions":"236"},{"ruleId":"189","severity":1,"message":"237","line":102,"column":7,"nodeType":"191","messageId":"192","endLine":102,"endColumn":17},{"ruleId":"189","severity":1,"message":"238","line":123,"column":7,"nodeType":"191","messageId":"192","endLine":123,"endColumn":21},{"ruleId":"189","severity":1,"message":"196","line":154,"column":10,"nodeType":"191","messageId":"192","endLine":154,"endColumn":15},{"ruleId":"189","severity":1,"message":"239","line":156,"column":10,"nodeType":"191","messageId":"192","endLine":156,"endColumn":18},{"ruleId":"189","severity":1,"message":"240","line":158,"column":9,"nodeType":"191","messageId":"192","endLine":158,"endColumn":20},{"ruleId":"189","severity":1,"message":"227","line":162,"column":9,"nodeType":"191","messageId":"192","endLine":162,"endColumn":20},{"ruleId":"199","severity":1,"message":"222","line":190,"column":6,"nodeType":"201","endLine":190,"endColumn":19,"suggestions":"241"},{"ruleId":"199","severity":1,"message":"224","line":194,"column":6,"nodeType":"201","endLine":194,"endColumn":8,"suggestions":"242"},{"ruleId":"211","severity":1,"message":"212","line":228,"column":17,"nodeType":"213","endLine":228,"endColumn":60},{"ruleId":"211","severity":1,"message":"212","line":296,"column":17,"nodeType":"213","endLine":296,"endColumn":60},{"ruleId":"189","severity":1,"message":"196","line":70,"column":10,"nodeType":"191","messageId":"192","endLine":70,"endColumn":15},{"ruleId":"189","severity":1,"message":"243","line":71,"column":11,"nodeType":"191","messageId":"192","endLine":71,"endColumn":24},{"ruleId":"229","severity":1,"message":"230","line":290,"column":14,"nodeType":"231","messageId":"232","endLine":290,"endColumn":41},"no-native-reassign",["244"],"no-negated-in-lhs",["245"],"no-unused-vars","'Home' is defined but never used.","Identifier","unusedVar","'handleLogOut' is defined but never used.","'LanguageIcon' is defined but never used.","'theme' is assigned a value but never used.","'error' is assigned a value but never used.","'events' is assigned a value but never used.","'handleToggle' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'traerProfesor'. Either include it or remove the dependency array.","ArrayExpression",["246"],"array-callback-return","Array.prototype.map() expects a return value from arrow function.","ArrowFunctionExpression","expectedInside","eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","JSXOpeningElement","'List' is defined but never used.","'Button' is defined but never used.","no-dupe-keys","Duplicate key 'padding'.","ObjectExpression","React Hook useEffect has a missing dependency: 'filtrarProfesores'. Either include it or remove the dependency array.",["247"],"'profesor' is assigned a value but never used.","React Hook useCallback has a missing dependency: 'usuarioActual'. Either include it or remove the dependency array.",["248"],"React Hook useEffect has a missing dependency: 'traerPerfil'. Either include it or remove the dependency array.",["249"],"'open' is assigned a value but never used.","'handleClose' is assigned a value but never used.",["250"],"no-script-url","Script URL is a form of eval.","Literal","unexpectedScriptURL","'backgroundgrid1' is defined but never used.","'Divider' is defined but never used.",["251"],["252"],"'StyledMenu' is assigned a value but never used.","'StyledMenuItem' is assigned a value but never used.","'anchorEl' is assigned a value but never used.","'handleClick' is assigned a value but never used.",["253"],["254"],"'usuarioActual' is assigned a value but never used.","no-global-assign","no-unsafe-negation",{"desc":"255","fix":"256"},{"desc":"257","fix":"258"},{"desc":"259","fix":"260"},{"desc":"261","fix":"262"},{"desc":"255","fix":"263"},{"desc":"259","fix":"264"},{"desc":"261","fix":"265"},{"desc":"259","fix":"266"},{"desc":"261","fix":"267"},"Update the dependencies array to be: [traerProfesor]",{"range":"268","text":"269"},"Update the dependencies array to be: [etiquetas, filtrarProfesores]",{"range":"270","text":"271"},"Update the dependencies array to be: [usuarioActual]",{"range":"272","text":"273"},"Update the dependencies array to be: [traerPerfil]",{"range":"274","text":"275"},{"range":"276","text":"269"},{"range":"277","text":"273"},{"range":"278","text":"275"},{"range":"279","text":"273"},{"range":"280","text":"275"},[6588,6590],"[traerProfesor]",[6322,6333],"[etiquetas, filtrarProfesores]",[3689,3702],"[usuarioActual]",[3754,3756],"[traerPerfil]",[3379,3381],[2843,2856],[4840,4842],[4558,4571],[4623,4625]]