-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.eslintcache
1 lines (1 loc) · 59.8 KB
/
.eslintcache
1
[{"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\index.js":"1","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\App.js":"2","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\reportWebVitals.js":"3","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\login.component.js":"4","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\signup.component.js":"5","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\recover_password.component.js":"6","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\photo.component.js":"7","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\muro.component.js":"8","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\diario.component.js":"9","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\navbar.js":"10","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\sidebardata.js":"11","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\messagesender.js":"12","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\post.js":"13","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\formtodo.js":"14","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\tasklist.js":"15","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\badgeavatar.js":"16","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\perfil.component.js":"17","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\userlist.js":"18","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\people.component.js":"19","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\TaskDialog.js":"20","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\profiletable.js":"21","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\editprofile.js":"22","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\deletefriend.js":"23","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\comment.js":"24","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\chat.component.js":"25","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\chatBox.js":"26","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\friendsList.js":"27","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\sender.js":"28"},{"size":557,"mtime":1614608384579,"results":"29","hashOfConfig":"30"},{"size":1539,"mtime":1614356716401,"results":"31","hashOfConfig":"32"},{"size":375,"mtime":1614227694552,"results":"33","hashOfConfig":"32"},{"size":5196,"mtime":1614664553036,"results":"34","hashOfConfig":"32"},{"size":5310,"mtime":1614664593736,"results":"35","hashOfConfig":"32"},{"size":2104,"mtime":1614664591136,"results":"36","hashOfConfig":"32"},{"size":2500,"mtime":1614664588307,"results":"37","hashOfConfig":"32"},{"size":3918,"mtime":1614664560091,"results":"38","hashOfConfig":"32"},{"size":3255,"mtime":1614664543898,"results":"39","hashOfConfig":"32"},{"size":4834,"mtime":1614227694031,"results":"40","hashOfConfig":"32"},{"size":1208,"mtime":1614329247809,"results":"41","hashOfConfig":"32"},{"size":1723,"mtime":1614312326613,"results":"42","hashOfConfig":"32"},{"size":9513,"mtime":1614664608152,"results":"43","hashOfConfig":"32"},{"size":1044,"mtime":1614227694024,"results":"44","hashOfConfig":"32"},{"size":1207,"mtime":1614664614968,"results":"45","hashOfConfig":"32"},{"size":1940,"mtime":1614227694019,"results":"46","hashOfConfig":"32"},{"size":8548,"mtime":1614664575786,"results":"47","hashOfConfig":"32"},{"size":6881,"mtime":1614664860410,"results":"48","hashOfConfig":"32"},{"size":3328,"mtime":1614664566583,"results":"49","hashOfConfig":"32"},{"size":2923,"mtime":1614664612224,"results":"50","hashOfConfig":"32"},{"size":5010,"mtime":1614227694034,"results":"51","hashOfConfig":"32"},{"size":2661,"mtime":1614664602084,"results":"52","hashOfConfig":"32"},{"size":1545,"mtime":1614664598702,"results":"53","hashOfConfig":"32"},{"size":3337,"mtime":1614324231012,"results":"54","hashOfConfig":"32"},{"size":4323,"mtime":1614664536849,"results":"55","hashOfConfig":"32"},{"size":1905,"mtime":1614359295452,"results":"56","hashOfConfig":"32"},{"size":2870,"mtime":1614361864863,"results":"57","hashOfConfig":"32"},{"size":735,"mtime":1614329537607,"results":"58","hashOfConfig":"32"},{"filePath":"59","messages":"60","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"3z3s9",{"filePath":"61","messages":"62","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},"1bwqqmk",{"filePath":"64","messages":"65","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"66","messages":"67","errorCount":0,"warningCount":12,"fixableErrorCount":0,"fixableWarningCount":0,"source":"68","usedDeprecatedRules":"63"},{"filePath":"69","messages":"70","errorCount":0,"warningCount":12,"fixableErrorCount":0,"fixableWarningCount":0,"source":"71","usedDeprecatedRules":"63"},{"filePath":"72","messages":"73","errorCount":0,"warningCount":12,"fixableErrorCount":0,"fixableWarningCount":0,"source":"74","usedDeprecatedRules":"63"},{"filePath":"75","messages":"76","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"77","messages":"78","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"79","usedDeprecatedRules":"63"},{"filePath":"80","messages":"81","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"82","messages":"83","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"84","messages":"85","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"86","messages":"87","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"88","messages":"89","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"90","usedDeprecatedRules":"63"},{"filePath":"91","messages":"92","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"93","messages":"94","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"95","messages":"96","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"97","messages":"98","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"99","messages":"100","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"101","messages":"102","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"103","messages":"104","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"105","messages":"106","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"107","messages":"108","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"109","messages":"110","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"111","messages":"112","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"113","messages":"114","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"115","usedDeprecatedRules":"63"},{"filePath":"116","messages":"117","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"118","messages":"119","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"120","messages":"121","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\index.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\App.js",[],["122","123"],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\reportWebVitals.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\login.component.js",["124","125","126","127","128","129","130","131","132","133","134","135"],"import React, { Component } from \"react\";\r\nimport {Redirect} from \"react-router-dom\";\r\nimport { GoogleLogin } from 'react-google-login';\r\nconst validEmailRegex = RegExp(\r\n /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i\r\n );\r\n \r\nexport default class Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n const sessionStr = localStorage.getItem(\"session\")\r\n let loggedIn=true\r\n if(sessionStr == null)\r\n loggedIn = false\r\n\r\n this.state = {\r\n email: \"\",\r\n password: \"\",\r\n loggedIn,\r\n message:\"\",\r\n classStyle:\"\",\r\n errors:{email:\"\"}\r\n };\r\n\r\n }\r\n\r\n handleInputChange = event => {\r\n const target = event.target;\r\n const value = target.value;\r\n const name = target.name;\r\n\r\n let errors = this.state.errors;\r\n\r\n switch (name) {\r\n case 'email': \r\n errors.email = \r\n validEmailRegex.test(value)\r\n ? ''\r\n : 'Debe ingresar un correo electrónico válido.';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({\r\n errors,[name]: value\r\n });\r\n }\r\n \r\n handleSubmit = async event => {\r\n event.preventDefault();\r\n const user = {email:this.state.email, password:this.state.password};\r\n await fetch(\"https://red-social-fc.herokuapp.com/\",{\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify(user),\r\n withCredentials: \"include\"\r\n }).then(res => res.json())\r\n .then(data => {\r\n if(data.loggedIn){\r\n localStorage.setItem(\"session\", JSON.stringify(data))\r\n\r\n this.setState({ \r\n loggedIn:data.loggedIn\r\n })\r\n }else{\r\n this.setState({\r\n message:data.message,\r\n classStyle:data.classStyle\r\n })\r\n }\r\n })\r\n }\r\n \r\n signup(res) {\r\n const googleresponse = {\r\n name: res.profileObj.name,\r\n email: res.profileObj.email,\r\n token: res.googleId,\r\n imageUrl: res.profileObj.imageUrl,\r\n ProviderId: 'Google',\r\n friends:[]\r\n };\r\n fetch(\"https://red-social-fc.herokuapp.com/sign-up\",{\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify(googleresponse),\r\n withCredentials: \"include\"}).then(res => res.json())\r\n .then(data => {\r\n localStorage.setItem(\"session\", JSON.stringify(data))\r\n this.setState({ \r\n loggedIn:data.loggedIn\r\n })\r\n })\r\n };\r\n\r\n render() {\r\n if(this.state.loggedIn){\r\n return <Redirect to=\"/photo\"/>\r\n }\r\n const {errors} = this.state;\r\n const responseGoogle = (response) => {\r\n this.signup(response);\r\n }\r\n return (\r\n <div className=\"auth-wrapper\">\r\n <div className=\"auth-inner\">\r\n <form onSubmit={this.handleSubmit}>\r\n <h3>Iniciar Sesión</h3>\r\n <div className=\"email\">\r\n <input type=\"email\" name=\"email\" value={this.state.email} onChange={this.handleInputChange} className=\"form-control\" placeholder=\"Correo electrónico\" required/>\r\n {errors.email.length > 0 && \r\n <span className='error'>{errors.email}</span>}\r\n </div>\r\n <div className=\"password\">\r\n <input type=\"password\" name=\"password\" value={this.state.password} onChange={this.handleInputChange} className=\"form-control\" placeholder=\"Contraseña\" required/>\r\n </div>\r\n <button type=\"submit\" className=\"btn btn-primary btn-block\">Iniciar Sesión</button>\r\n <p className=\"forgot-password text-center\">\r\n <a href=\"/recover\">¿Olvidaste tu contraseña?</a>\r\n </p>\r\n <a type=\"button\" className=\"btn btn-light btn-block\" href=\"/sign-up\">Crear Cuenta Nueva</a>\r\n \r\n <hr></hr>\r\n\r\n <GoogleLogin\r\n clientId=\"500851683132-i0mk7s0dk3sp8ksh4boqndodb07b00di.apps.googleusercontent.com\"\r\n render={renderProps => (\r\n <button id=\"customBtn\" onClick={renderProps.onClick} disabled={renderProps.disabled}>\r\n <span className=\"icon\"></span>\r\n <span className=\"buttonText\">Iniciar Sesión con Google</span>\r\n </button>\r\n )}\r\n buttonText=\"Iniciar Sesión con Google\"\r\n onSuccess={responseGoogle}\r\n onFailure={responseGoogle}\r\n cookiePolicy={'single_host_origin'}\r\n />\r\n {this.state.loggedIn && <div name=\"success\" className={this.state.classStyle} role=\"alert\">\r\n {this.state.message}\r\n </div>}\r\n </form>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\signup.component.js",["136","137","138","139","140","141","142","143","144","145","146","147"],"import React, { Component } from \"react\";\r\nimport bcrypt from 'bcryptjs';\r\nconst validEmailRegex = RegExp(\r\n /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i\r\n );\r\n const validateForm = errors => {\r\n let valid = true;\r\n Object.values(errors).forEach(val => val.length > 0 && (valid = false));\r\n return valid;\r\n };\r\nexport default class SignUp extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n name: \"\",\r\n lastname: \"\",\r\n email:\"\",\r\n password:\"\",\r\n errors: {\r\n name: '',\r\n lastname:'',\r\n email: '',\r\n password: ''\r\n },\r\n message:\"\",\r\n classStyle:\"\"\r\n };\r\n }\r\n\r\n handleInputChange = event => {\r\n const target = event.target;\r\n const value = target.value;\r\n const name = target.name;\r\n\r\n let errors = this.state.errors;\r\n\r\n switch (name) {\r\n case 'name': \r\n errors.name = \r\n value.length < 1\r\n ? 'Porfavor ingrese sus nombres.'\r\n : '';\r\n break;\r\n case 'lastname': \r\n errors.lastname = \r\n value.length < 1\r\n ? 'Porfavor ingrese sus apellidos.'\r\n : '';\r\n break;\r\n case 'email': \r\n errors.email = \r\n validEmailRegex.test(value)\r\n ? ''\r\n : 'Por favor ingrese un correo electrónico válido.';\r\n break;\r\n case 'password': \r\n errors.password = \r\n value.length < 6\r\n ? 'La contraseña debe tener por lo menos 6 caracteres.'\r\n : '';\r\n break;\r\n default:\r\n break;\r\n }\r\n this.setState({\r\n errors,[name]: value\r\n });\r\n }\r\n\r\n handleSubmit = async event => {\r\n event.preventDefault();\r\n \r\n const hash = bcrypt.hashSync(this.state.password,12)\r\n const new_user = {name:this.state.name+\" \"+this.state.lastname, email:this.state.email, password:hash, labor:\"\", imageUrl:\"\",friends:[]};\r\n await fetch(\"https://red-social-fc.herokuapp.com/sign-up\",{\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify(new_user),\r\n withCredentials: \"include\"\r\n }).then(res => res.json())\r\n .then(data => {\r\n this.setState({\r\n name: \"\",\r\n lastname: \"\",\r\n email:\"\",\r\n password:\"\",\r\n })\r\n if(data){\r\n this.setState({ message:data.message,\r\n classStyle:data.classStyle})\r\n }\r\n })\r\n if(validateForm(this.state.errors) && this.state.classStyle!==\"alert alert-danger\"){\r\n this.props.history.push(\"/\")\r\n }\r\n }\r\n\r\n render() {\r\n const {errors} = this.state;\r\n return (\r\n <div className=\"auth-wrapper\">\r\n <div className=\"auth-inner\">\r\n <form onSubmit={this.handleSubmit}>\r\n <h3>Registrarte</h3>\r\n <div className=\"name\">\r\n <input type=\"text\" name=\"name\" value={this.state.name} onChange={this.handleInputChange} className=\"form-control\" placeholder=\"Nombres\" required/>\r\n {errors.name.length > 0 && \r\n <span className='error'>{errors.name}</span>}\r\n </div>\r\n <div className=\"lastname\">\r\n <input type=\"text\" name=\"lastname\" value={this.state.lastname} onChange={this.handleInputChange} className=\"form-control\" placeholder=\"Apellidos\" required/>\r\n {errors.lastname.length > 0 && \r\n <span className='error'>{errors.lastname}</span>}\r\n </div>\r\n <div className=\"email\">\r\n <input type=\"email\" name=\"email\" value={this.state.email} onChange={this.handleInputChange} className=\"form-control\" placeholder=\"Correo electrónico\" required/>\r\n {errors.email.length > 0 && \r\n <span className='error'>{errors.email}</span>}\r\n </div>\r\n <div className=\"password\">\r\n <input type=\"password\" name=\"password\" value={this.state.password} onChange={this.handleInputChange} minLength=\"6\" className=\"form-control\" placeholder=\"Ingrese una contraseña\" required/>\r\n {errors.password.length > 0 && \r\n <span className='error'>{errors.password}</span>}\r\n </div>\r\n <button type=\"submit\" className=\"btn btn-primary btn-block\">Registrarte</button>\r\n <p className=\"forgot-password text-right\">\r\n Ya estoy registrado <a href=\"/\">¿iniciar sesión?</a>\r\n </p>\r\n {validateForm(this.state.errors) && <div name=\"success\" className={this.state.classStyle} role=\"alert\">\r\n {this.state.message}\r\n </div>}\r\n </form>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\recover_password.component.js",["148","149","150","151","152","153","154","155","156","157","158","159"],"import React, { Component } from \"react\";\r\n\r\nconst validEmailRegex = RegExp(\r\n /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i\r\n);\r\n\r\nexport default class RecoverPassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n email: \"\",\r\n errors:{email:\"\"}\r\n };\r\n\r\n }\r\n\r\n handleInputChange = event => {\r\n const target = event.target;\r\n const value = target.value;\r\n const name = target.name;\r\n\r\n let errors = this.state.errors;\r\n\r\n switch (name) {\r\n case 'email': \r\n errors.email = \r\n validEmailRegex.test(value)\r\n ? ''\r\n : 'Debe ingresar un correo electrónico válido.';\r\n break;\r\n default:\r\n break;\r\n }\r\n this.setState({\r\n errors,\r\n [name]: value\r\n });\r\n }\r\n \r\n handleSubmit = async event => {\r\n event.preventDefault();\r\n const user = {email:this.state.email, password:this.state.password};\r\n await fetch(\"https://red-social-fc.herokuapp.com/recoverpassword\",{\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify(user)\r\n });\r\n }\r\n\r\n render() {\r\n const {errors} = this.state;\r\n return (\r\n <div className=\"auth-wrapper\">\r\n <div className=\"auth-inner\">\r\n <form onSubmit={this.handleSubmit}>\r\n <h3>Ingrese su correo electrónico para recuperar su contraseña</h3>\r\n \r\n <input type=\"email\" name=\"email\" value={this.state.email} onChange={this.handleInputChange} className=\"form-control\" placeholder=\"Correo electrónico\" required/>\r\n {errors.email.length > 0 && \r\n <span className='error'>{errors.email}</span>}\r\n <button type=\"submit\" className=\"btn btn-primary btn-block\">Enviar</button>\r\n <a type=\"button\" className=\"btn btn-light btn-block\" href=\"/\">Volver</a>\r\n </form>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\photo.component.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\muro.component.js",["160"],"import React, { Component } from \"react\";\r\nimport { Redirect } from \"react-router-dom/cjs/react-router-dom\";\r\nimport Navbar from \"../elements/navbar\";\r\nimport MessageSender from \"../elements/messagesender\";\r\nimport Post from \"../elements/post\";\r\nimport TimeAgo from 'javascript-time-ago'\r\nimport INSTRUCCIONES from '../static/instrucciones.jpeg'\r\nimport en from 'javascript-time-ago/locale/en'\r\nimport es from 'javascript-time-ago/locale/es'\r\nimport './muro.css'\r\nTimeAgo.addDefaultLocale(es)\r\nTimeAgo.addLocale(en)\r\n\r\n\r\nexport default class Muro extends Component{\r\n constructor(props){\r\n super(props)\r\n const sessionStr = localStorage.getItem(\"session\")\r\n const sessionJson = JSON.parse(sessionStr)\r\n let loggedIn\r\n if(sessionStr == null)\r\n loggedIn = false\r\n else\r\n loggedIn = sessionJson.loggedIn\r\n let disabled=false\r\n this.state = {\r\n loggedIn,\r\n posts:[],\r\n disabled\r\n }\r\n this.handleAddPost.bind()\r\n this.handleRemovePost.bind()\r\n }\r\n\r\n componentDidMount(){\r\n const sessionStr = localStorage.getItem(\"session\")\r\n if(sessionStr != null){\r\n const sessionJson = JSON.parse(sessionStr)\r\n const userId = sessionJson.user._id\r\n fetch('https://red-social-fc.herokuapp.com/inicio/posts/'+userId+'/')\r\n .then(response => response.json())\r\n .then(data => this.setState({posts:data.posts}),\r\n );\r\n if(sessionJson.user.feeling===\"molesto\"){\r\n this.setState({disabled:true})}else{this.setState({disabled:false})}\r\n }\r\n }\r\n\r\n handleAddPost = addPost => {\r\n fetch(\"https://red-social-fc.herokuapp.com/inicio/posts/\",{\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify(addPost),\r\n withCredentials: \"include\"\r\n }).then(res=>res.json()).then(data=>this.setState({\r\n posts:[data.post,...this.state.posts]\r\n }))\r\n \r\n };\r\n\r\n handleRemovePost= id =>{\r\n const sessionStr = localStorage.getItem(\"session\")\r\n const sessionJson = JSON.parse(sessionStr)\r\n const userId = sessionJson.user._id\r\n fetch('https://red-social-fc.herokuapp.com/inicio/posts/'+userId+'/'+id,{method:'DELETE'})\r\n const new_posts = this.state.posts.filter(post => post._id !== id)\r\n this.setState({posts:new_posts})\r\n }\r\n\r\n render(){\r\n if(!this.state.loggedIn){\r\n return <Redirect to = \"/\"/>\r\n }\r\n const postList = this.state.posts.map(post =><Post key={post._id}\r\n id = {post._id}\r\n userId = {post.userId}\r\n message={post.message}\r\n timestamp={post.timestamp}\r\n username={post.username}\r\n image={post.imageUrl}\r\n feeling={post.feeling}\r\n handleRemovePost={this.handleRemovePost}\r\n disabled={this.state.disabled}\r\n />)\r\n return(\r\n <div>\r\n <Navbar title=\"Inicio\"/>\r\n <div className=\"index\">\r\n <div className=\"newsfeed\">\r\n <MessageSender handleAddPost={this.handleAddPost}/>\r\n {postList}\r\n </div>\r\n <img src={INSTRUCCIONES} className=\"instructions\"/>\r\n </div>\r\n </div>\r\n )\r\n }\r\n}","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\diario.component.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\navbar.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\sidebardata.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\messagesender.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\post.js",["161","162","163"],"import React from \"react\";\r\nimport ThumbUpIcon from \"@material-ui/icons/ThumbUp\";\r\nimport ChatBubbleOutlineIcon from \"@material-ui/icons/ChatBubbleOutline\";\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport NearMeIcon from \"@material-ui/icons/NearMe\";\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { makeStyles,withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types'\r\nimport Tooltip from 'react-responsive-ui/commonjs/Tooltip'\r\nimport ReactTimeAgo from 'react-time-ago'\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport { Avatar } from '@material-ui/core';\r\nimport \"./post.css\";\r\nimport BadgeAvatar from \"./badgeavatar\";\r\nimport Comment from \"./comment\";\r\n\r\nconst useStyles = makeStyles({\r\n close: {\r\n marginInlineStart:\"auto\",\r\n padding:0,\r\n marginBottom:\"auto\"\r\n },\r\n timestamp: {\r\n fontSize: \"small\",\r\n color: \"gray\"\r\n },\r\n });\r\n\r\nconst TooltipContainer = ({ verboseDate, children, ...rest }) => (\r\n <Tooltip {...rest} content={verboseDate} placement=\"bottom\" >\r\n {children}\r\n </Tooltip>\r\n )\r\n \r\nTooltipContainer.propTypes = {\r\n // `verboseDate` is not generated on server side\r\n // (because tooltips are only shown on mouse over),\r\n // so it's not declared a \"required\" property.\r\n verboseDate: PropTypes.string,\r\n children: PropTypes.node.isRequired\r\n }\r\n\r\nconst CommentAvatar = withStyles({\r\n root: {\r\n height:\"35px\",\r\n width:\"35px\",\r\n marginRight:\"0\",\r\n marginTop:\"1%\"\r\n },\r\n })(Avatar);\r\n\r\nexport default function Post({id,userId,image, username, message,timestamp,handleRemovePost,feeling,disabled}) {\r\n const classes = useStyles();\r\n const sessionStr = localStorage.getItem(\"session\")\r\n const sessionJson = JSON.parse(sessionStr)\r\n const userIdStorage = sessionJson.user._id\r\n const usernameStorage = sessionJson.user.name\r\n const [userImageUrl,setUserImageUrl] = React.useState('');\r\n const [like,setLike] = React.useState();\r\n const [comment,setComment] = React.useState('')\r\n const [showcomments,setShowComments] = React.useState(false)\r\n const [comments, setComments] = React.useState([])\r\n const [countLikes,setCountLikes] = React.useState(0);\r\n const [countComments,setCountComments] = React.useState(0);\r\n timestamp = new Date(timestamp);\r\n const [open, setOpen] = React.useState(false); \r\n React.useEffect(() => {\r\n fetch(\"https://red-social-fc.herokuapp.com/perfil/\"+userId).then(res=>res.json()).then(data=>{setUserImageUrl(data.user.imageUrl)})\r\n fetch(`https://red-social-fc.herokuapp.com/inicio/posts/${id}/comments`).then(res=>res.json()).then(data=>{if(data.comments){setComments(data.comments)\r\n setCountComments(data.countComments)}})\r\n }, [])\r\n \r\n const handleLike = () => {\r\n if (like) {setLike(false)\r\n fetch(`https://red-social-fc.herokuapp.com/inicio/posts/${id}/likes/${userIdStorage}`,{method: \"DELETE\",withCredentials: \"include\"})\r\n .then(res=>res.json()).then(data=>{setCountLikes(data.countLikes) })\r\n }\r\n else{setLike(true)\r\n fetch(`https://red-social-fc.herokuapp.com/inicio/posts/${id}/likes`,{\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({\"userId\":userIdStorage,\"username\":usernameStorage}),\r\n withCredentials: \"include\"}).then(res=>res.json()).then(data=>{setCountLikes(data.countLikes)})\r\n }\r\n }\r\n\r\n React.useEffect(()=>{\r\n fetch(`https://red-social-fc.herokuapp.com/inicio/posts/${id}/likes`,{withCredentials: \"include\"}).then(res=>res.json())\r\n .then(data=>{setCountLikes(data.countLikes)\r\n if(data.peopleLiked.find(user=>user.userId===userIdStorage)){\r\n setLike(true)\r\n }else{setLike(false)}\r\n })\r\n },[like])\r\n\r\n const handleCommentSubmit = (e) => {\r\n e.preventDefault();\r\n fetch(`https://red-social-fc.herokuapp.com/inicio/posts/${id}/comments`,{\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n body: JSON.stringify({\"userId\":userId,\"username\":usernameStorage,\"message\":comment,\"timestamp\":new Date(),\"userImageUrl\":userImageUrl,\"feeling\":feeling}),\r\n withCredentials: \"include\"}).then(res=>res.json()).then(data=>{setComments([...comments,data.comment])\r\n setCountComments(data.countComments)})\r\n setComment(\"\") \r\n }\r\n\r\n const handleRemoveComment = commentId =>{\r\n fetch(`https://red-social-fc.herokuapp.com/inicio/posts/${id}/comments/${commentId}`,{method: \"DELETE\",withCredentials: \"include\"})\r\n .then(res=>res.json()).then(data=>{setCountComments(data.countComments) \r\n setComments(comments.filter(comment => comment._id !== commentId))})\r\n }\r\n \r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n \r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n const commentList = comments.map(comment => <Comment key={comment._id}\r\n id = {comment._id}\r\n userId = {comment.userId}\r\n username={comment.username}\r\n message={comment.message}\r\n timestamp={comment.timestamp}\r\n userImageUrl={comment.userImageUrl}\r\n feeling={comment.feeling}\r\n handleRemoveComment={handleRemoveComment}/>)\r\n return (\r\n <div className=\"post\">\r\n <div className=\"post__top\">\r\n <BadgeAvatar feeling={feeling} userImageUrl={userImageUrl} className=\"post__avatar\"/>\r\n <div className=\"post__topInfo\">\r\n <a href={`/perfil/${userId}`}>{username}</a>\r\n <div className={classes.tooltip}>\r\n <ReactTimeAgo className={classes.timestamp} date={timestamp} locale=\"es-PE\" wrapperComponent={TooltipContainer} tooltip={false}/>\r\n </div>\r\n </div>\r\n {userId===userIdStorage &&\r\n <>\r\n <IconButton aria-label=\"delete\" className={classes.close} onClick={handleClickOpen}>\r\n <CloseIcon />\r\n </IconButton>\r\n <Dialog disableEscapeKeyDown open={open} onClose={handleClose}>\r\n <DialogTitle>Eliminar publicación</DialogTitle>\r\n <DialogContent>\r\n ¿Está seguro(a) que desea eliminar esta publicación? Luego de eliminada, la publicación no podrá ser recuperada.\r\n </DialogContent>\r\n <DialogActions>\r\n <Button onClick={handleClose} color=\"primary\">\r\n CANCELAR\r\n </Button>\r\n <Button onClick={()=>handleRemovePost(id)} color=\"secondary\">\r\n ELIMINAR\r\n </Button>\r\n </DialogActions>\r\n </Dialog></>\r\n }\r\n </div>\r\n {message &&<div className=\"post__bottom\">\r\n <p>{message}</p>\r\n </div>}\r\n {image &&<div className=\"post__image\">\r\n <img src={image} alt=\"\"/>\r\n </div>}\r\n <div className=\"post__details\">{countLikes>0 &&\r\n <div className=\"post__likeInfo\">A {countLikes} personas les gusta esto.</div>}\r\n {countComments>0 &&\r\n <div className=\"post__commentInfo\">{countComments} comentarios</div>}\r\n </div>\r\n <div className=\"post__options\">\r\n <Button className=\"post__option\" onClick={handleLike} color={like?\"primary\":\"\"}>\r\n <ThumbUpIcon /> Me gusta\r\n </Button>\r\n \r\n <Button className=\"post__option\" onClick={()=>setShowComments(!showcomments)} disabled={disabled}>\r\n <ChatBubbleOutlineIcon/> Comentar\r\n </Button>\r\n {/*userId!==userIdStorage &&\r\n <Button className=\"post__option\">\r\n <NearMeIcon/> Compartir\r\n </Button>*/} \r\n </div>\r\n {showcomments &&\r\n <div className=\"comments\">\r\n {commentList}\r\n <div className=\"commentSender\">\r\n <CommentAvatar src={userImageUrl} className=\"post__avatar\"/>\r\n <form onSubmit={handleCommentSubmit}>\r\n <input \r\n value={comment} \r\n onChange={ (e) => setComment(e.target.value)} \r\n className=\"commentSender\" \r\n placeholder={\"Escribe un comentario...\"}\r\n />\r\n </form>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n );\r\n}","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\formtodo.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\tasklist.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\badgeavatar.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\perfil.component.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\userlist.js",["164"],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\people.component.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\TaskDialog.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\profiletable.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\editprofile.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\deletefriend.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\comment.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\components\\chat.component.js",["165","166","167","168","169"],"import React, {useEffect, useState } from 'react';\nimport { useHistory, useParams } from \"react-router-dom\";\nimport Navbar from \"../elements/navbar\";\nimport { makeStyles, Paper, Container } from '@material-ui/core';\nimport io from 'socket.io-client';\nimport Grid from '@material-ui/core/Grid';\nimport Divider from '@material-ui/core/Divider';\nimport FriendsList from '../elements/friendsList';\nimport ChatBox from '../elements/chatBox';\nimport Sender from '../elements/sender';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n '& > *': {\n margin: theme.spacing(2),\n },\n },\n Muicontainer: {\n display: 'flex',\n flexDirection: 'column',\n width: '83%',\n padding: '1rem',\n marginTop: '55px',\n marginLeft: '229px',\n [theme.breakpoints.down('md')]: {\n margin:'15% 0',\n width:'100%'\n },\n },\n MuiGridGridXs9:{\n [theme.breakpoints.down('md')]: {\n maxWidth:'68%'\n },\n },\n chatSection: {\n width: '100%',\n height: '85vh',\n },\n }));\n\nlet socket;\nconst Chat = () => {\n const [messages, setMessages] = useState(null);\n const [friends, setFriends] = useState(null);\n const [message, setMessage] = useState('');\n const classes = useStyles();\n const history = useHistory();\n const ENDPOINT = 'https://red-social-fc.herokuapp.com';\n const sessionStr = localStorage.getItem(\"session\")\n const sessionJson = JSON.parse(sessionStr)\n const userId = sessionJson.user._id\n const {roomId, friendId} = useParams();\n let loggedIn\n if(sessionStr == null)\n loggedIn = false\n else\n loggedIn = sessionJson.loggedIn\n\n const getMessages = async() => {\n fetch(`https://red-social-fc.herokuapp.com/messages/${roomId}/`,{method:'GET'}).then(res=>res.json())\n .then((data) => {\n setMessages(data.messages);\n })\n }\n\n const getFriends = async() => {\n console.log(userId);\n fetch(`https://red-social-fc.herokuapp.com/users/${userId}/friends/`,{method:'GET'}).then(res=>res.json())\n .then((data) => {\n //console.log(data);\n setFriends(data.users);\n })\n }\n\n useEffect(() => {\n if((roomId === undefined) && (friends !== null)){\n history.push(`/chat/${friends[0].room}/${friends[0]._id}`)\n }\n },[friends])\n\n useEffect(() => {\n getFriends();\n //console.log(friends);\n },[])\n\n useEffect(() => {\n getMessages();\n //console.log(messages);\n },[])\n\n useEffect(() => {\n socket = io.connect(ENDPOINT, {\n withCredentials: true,\n });\n setInterval(()=>{\n socket.volatile.emit('keep_alive');\n console.log('Keeping alive');\n },30000);\n socket.emit('join_room', { userId , roomId });\n console.log(socket);\n return () => {\n socket.emit('leave_room');\n socket.off();\n }\n }, [roomId])\n\n const sendMessage = (e) => {\n e.preventDefault();\n const data = {\n message: message,\n sender: userId,\n receiver: friendId,\n roomId: roomId,\n createdAt: new Date()\n }\n if(message){\n socket.emit('send_message', data);\n }\n setMessage(\"\");\n }\n\n useEffect(() => {\n socket.on('receive_message', (data) => {\n if(messages !== null){\n setMessages([...messages, data]);\n }\n })\n console.log(\"entra al useffect\");\n },[messages])\n\n useEffect(() => { \n getMessages();\n }, [roomId])\n\n return (\n !loggedIn ? history.push(\"/\") :\n <Container classes={{ root: classes.Muicontainer }}>\n <Navbar title=\"Chat\"/>\n\n <Grid container component={ Paper } className={ classes.chatSection }>\n <FriendsList friends={ friends } friendId={ friendId }/>\n <Grid item xs={9} classes={{root: classes.MuiGridGridXs9}}>\n {messages && (\n <ChatBox messages={ messages }/>\n )}\n <Divider />\n <Sender message={ message } setMessage={ setMessage } sendMessage={ sendMessage }/>\n </Grid>\n </Grid>\n\n </Container> \n );\n}\nexport default Chat;","C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\chatBox.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\friendsList.js",[],"C:\\Users\\ALEX CHUNG\\Desktop\\IHC\\Red Social Ayuda Emocional\\react-flask-app\\src\\elements\\sender.js",[],{"ruleId":"170","replacedBy":"171"},{"ruleId":"172","replacedBy":"173"},{"ruleId":"174","severity":1,"message":"175","line":5,"column":15,"nodeType":"176","messageId":"177","endLine":5,"endColumn":16,"suggestions":"178"},{"ruleId":"174","severity":1,"message":"179","line":5,"column":19,"nodeType":"176","messageId":"177","endLine":5,"endColumn":20,"suggestions":"180"},{"ruleId":"174","severity":1,"message":"181","line":5,"column":27,"nodeType":"176","messageId":"177","endLine":5,"endColumn":28,"suggestions":"182"},{"ruleId":"174","severity":1,"message":"175","line":5,"column":40,"nodeType":"176","messageId":"177","endLine":5,"endColumn":41,"suggestions":"183"},{"ruleId":"174","severity":1,"message":"179","line":5,"column":44,"nodeType":"176","messageId":"177","endLine":5,"endColumn":45,"suggestions":"184"},{"ruleId":"174","severity":1,"message":"181","line":5,"column":52,"nodeType":"176","messageId":"177","endLine":5,"endColumn":53,"suggestions":"185"},{"ruleId":"174","severity":1,"message":"181","line":5,"column":61,"nodeType":"176","messageId":"177","endLine":5,"endColumn":62,"suggestions":"186"},{"ruleId":"174","severity":1,"message":"181","line":5,"column":65,"nodeType":"176","messageId":"177","endLine":5,"endColumn":66,"suggestions":"187"},{"ruleId":"174","severity":1,"message":"179","line":5,"column":81,"nodeType":"176","messageId":"177","endLine":5,"endColumn":82,"suggestions":"188"},{"ruleId":"174","severity":1,"message":"181","line":5,"column":89,"nodeType":"176","messageId":"177","endLine":5,"endColumn":90,"suggestions":"189"},{"ruleId":"174","severity":1,"message":"179","line":5,"column":106,"nodeType":"176","messageId":"177","endLine":5,"endColumn":107,"suggestions":"190"},{"ruleId":"174","severity":1,"message":"181","line":5,"column":114,"nodeType":"176","messageId":"177","endLine":5,"endColumn":115,"suggestions":"191"},{"ruleId":"174","severity":1,"message":"175","line":4,"column":15,"nodeType":"176","messageId":"177","endLine":4,"endColumn":16,"suggestions":"192"},{"ruleId":"174","severity":1,"message":"179","line":4,"column":19,"nodeType":"176","messageId":"177","endLine":4,"endColumn":20,"suggestions":"193"},{"ruleId":"174","severity":1,"message":"181","line":4,"column":27,"nodeType":"176","messageId":"177","endLine":4,"endColumn":28,"suggestions":"194"},{"ruleId":"174","severity":1,"message":"175","line":4,"column":40,"nodeType":"176","messageId":"177","endLine":4,"endColumn":41,"suggestions":"195"},{"ruleId":"174","severity":1,"message":"179","line":4,"column":44,"nodeType":"176","messageId":"177","endLine":4,"endColumn":45,"suggestions":"196"},{"ruleId":"174","severity":1,"message":"181","line":4,"column":52,"nodeType":"176","messageId":"177","endLine":4,"endColumn":53,"suggestions":"197"},{"ruleId":"174","severity":1,"message":"181","line":4,"column":61,"nodeType":"176","messageId":"177","endLine":4,"endColumn":62,"suggestions":"198"},{"ruleId":"174","severity":1,"message":"181","line":4,"column":65,"nodeType":"176","messageId":"177","endLine":4,"endColumn":66,"suggestions":"199"},{"ruleId":"174","severity":1,"message":"179","line":4,"column":81,"nodeType":"176","messageId":"177","endLine":4,"endColumn":82,"suggestions":"200"},{"ruleId":"174","severity":1,"message":"181","line":4,"column":89,"nodeType":"176","messageId":"177","endLine":4,"endColumn":90,"suggestions":"201"},{"ruleId":"174","severity":1,"message":"179","line":4,"column":106,"nodeType":"176","messageId":"177","endLine":4,"endColumn":107,"suggestions":"202"},{"ruleId":"174","severity":1,"message":"181","line":4,"column":114,"nodeType":"176","messageId":"177","endLine":4,"endColumn":115,"suggestions":"203"},{"ruleId":"174","severity":1,"message":"175","line":4,"column":13,"nodeType":"176","messageId":"177","endLine":4,"endColumn":14,"suggestions":"204"},{"ruleId":"174","severity":1,"message":"179","line":4,"column":17,"nodeType":"176","messageId":"177","endLine":4,"endColumn":18,"suggestions":"205"},{"ruleId":"174","severity":1,"message":"181","line":4,"column":25,"nodeType":"176","messageId":"177","endLine":4,"endColumn":26,"suggestions":"206"},{"ruleId":"174","severity":1,"message":"175","line":4,"column":38,"nodeType":"176","messageId":"177","endLine":4,"endColumn":39,"suggestions":"207"},{"ruleId":"174","severity":1,"message":"179","line":4,"column":42,"nodeType":"176","messageId":"177","endLine":4,"endColumn":43,"suggestions":"208"},{"ruleId":"174","severity":1,"message":"181","line":4,"column":50,"nodeType":"176","messageId":"177","endLine":4,"endColumn":51,"suggestions":"209"},{"ruleId":"174","severity":1,"message":"181","line":4,"column":59,"nodeType":"176","messageId":"177","endLine":4,"endColumn":60,"suggestions":"210"},{"ruleId":"174","severity":1,"message":"181","line":4,"column":63,"nodeType":"176","messageId":"177","endLine":4,"endColumn":64,"suggestions":"211"},{"ruleId":"174","severity":1,"message":"179","line":4,"column":79,"nodeType":"176","messageId":"177","endLine":4,"endColumn":80,"suggestions":"212"},{"ruleId":"174","severity":1,"message":"181","line":4,"column":87,"nodeType":"176","messageId":"177","endLine":4,"endColumn":88,"suggestions":"213"},{"ruleId":"174","severity":1,"message":"179","line":4,"column":104,"nodeType":"176","messageId":"177","endLine":4,"endColumn":105,"suggestions":"214"},{"ruleId":"174","severity":1,"message":"181","line":4,"column":112,"nodeType":"176","messageId":"177","endLine":4,"endColumn":113,"suggestions":"215"},{"ruleId":"216","severity":1,"message":"217","line":95,"column":21,"nodeType":"218","endLine":95,"endColumn":72},{"ruleId":"219","severity":1,"message":"220","line":5,"column":8,"nodeType":"221","messageId":"222","endLine":5,"endColumn":18},{"ruleId":"223","severity":1,"message":"224","line":75,"column":8,"nodeType":"225","endLine":75,"endColumn":10,"suggestions":"226"},{"ruleId":"223","severity":1,"message":"227","line":100,"column":7,"nodeType":"225","endLine":100,"endColumn":13,"suggestions":"228"},{"ruleId":"223","severity":1,"message":"229","line":153,"column":6,"nodeType":"225","endLine":153,"endColumn":19,"suggestions":"230"},{"ruleId":"223","severity":1,"message":"231","line":81,"column":7,"nodeType":"225","endLine":81,"endColumn":16,"suggestions":"232"},{"ruleId":"223","severity":1,"message":"233","line":86,"column":7,"nodeType":"225","endLine":86,"endColumn":9,"suggestions":"234"},{"ruleId":"223","severity":1,"message":"235","line":91,"column":7,"nodeType":"225","endLine":91,"endColumn":9,"suggestions":"236"},{"ruleId":"223","severity":1,"message":"237","line":107,"column":8,"nodeType":"225","endLine":107,"endColumn":16,"suggestions":"238"},{"ruleId":"223","severity":1,"message":"235","line":135,"column":8,"nodeType":"225","endLine":135,"endColumn":16,"suggestions":"239"},"no-native-reassign",["240"],"no-negated-in-lhs",["241"],"no-useless-escape","Unnecessary escape character: \\[.","Literal","unnecessaryEscape",["242","243"],"Unnecessary escape character: \\..",["244","245"],"Unnecessary escape character: \\\".",["246","247"],["248","249"],["250","251"],["252","253"],["254","255"],["256","257"],["258","259"],["260","261"],["262","263"],["264","265"],["266","267"],["268","269"],["270","271"],["272","273"],["274","275"],["276","277"],["278","279"],["280","281"],["282","283"],["284","285"],["286","287"],["288","289"],["290","291"],["292","293"],["294","295"],["296","297"],["298","299"],["300","301"],["302","303"],["304","305"],["306","307"],["308","309"],["310","311"],["312","313"],"jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","JSXOpeningElement","no-unused-vars","'NearMeIcon' is defined but never used.","Identifier","unusedVar","react-hooks/exhaustive-deps","React Hook React.useEffect has missing dependencies: 'id' and 'userId'. Either include them or remove the dependency array.","ArrayExpression",["314"],"React Hook React.useEffect has missing dependencies: 'id' and 'userIdStorage'. Either include them or remove the dependency array.",["315"],"React Hook useEffect has a missing dependency: 'searchTerm'. Either include it or remove the dependency array.",["316"],"React Hook useEffect has missing dependencies: 'history' and 'roomId'. Either include them or remove the dependency array.",["317"],"React Hook useEffect has a missing dependency: 'getFriends'. Either include it or remove the dependency array.",["318"],"React Hook useEffect has a missing dependency: 'getMessages'. Either include it or remove the dependency array.",["319"],"React Hook useEffect has a missing dependency: 'userId'. Either include it or remove the dependency array.",["320"],["321"],"no-global-assign","no-unsafe-negation",{"messageId":"322","fix":"323","desc":"324"},{"messageId":"325","fix":"326","desc":"327"},{"messageId":"322","fix":"328","desc":"324"},{"messageId":"325","fix":"329","desc":"327"},{"messageId":"322","fix":"330","desc":"324"},{"messageId":"325","fix":"331","desc":"327"},{"messageId":"322","fix":"332","desc":"324"},{"messageId":"325","fix":"333","desc":"327"},{"messageId":"322","fix":"334","desc":"324"},{"messageId":"325","fix":"335","desc":"327"},{"messageId":"322","fix":"336","desc":"324"},{"messageId":"325","fix":"337","desc":"327"},{"messageId":"322","fix":"338","desc":"324"},{"messageId":"325","fix":"339","desc":"327"},{"messageId":"322","fix":"340","desc":"324"},{"messageId":"325","fix":"341","desc":"327"},{"messageId":"322","fix":"342","desc":"324"},{"messageId":"325","fix":"343","desc":"327"},{"messageId":"322","fix":"344","desc":"324"},{"messageId":"325","fix":"345","desc":"327"},{"messageId":"322","fix":"346","desc":"324"},{"messageId":"325","fix":"347","desc":"327"},{"messageId":"322","fix":"348","desc":"324"},{"messageId":"325","fix":"349","desc":"327"},{"messageId":"322","fix":"350","desc":"324"},{"messageId":"325","fix":"351","desc":"327"},{"messageId":"322","fix":"352","desc":"324"},{"messageId":"325","fix":"353","desc":"327"},{"messageId":"322","fix":"354","desc":"324"},{"messageId":"325","fix":"355","desc":"327"},{"messageId":"322","fix":"356","desc":"324"},{"messageId":"325","fix":"357","desc":"327"},{"messageId":"322","fix":"358","desc":"324"},{"messageId":"325","fix":"359","desc":"327"},{"messageId":"322","fix":"360","desc":"324"},{"messageId":"325","fix":"361","desc":"327"},{"messageId":"322","fix":"362","desc":"324"},{"messageId":"325","fix":"363","desc":"327"},{"messageId":"322","fix":"364","desc":"324"},{"messageId":"325","fix":"365","desc":"327"},{"messageId":"322","fix":"366","desc":"324"},{"messageId":"325","fix":"367","desc":"327"},{"messageId":"322","fix":"368","desc":"324"},{"messageId":"325","fix":"369","desc":"327"},{"messageId":"322","fix":"370","desc":"324"},{"messageId":"325","fix":"371","desc":"327"},{"messageId":"322","fix":"372","desc":"324"},{"messageId":"325","fix":"373","desc":"327"},{"messageId":"322","fix":"374","desc":"324"},{"messageId":"325","fix":"375","desc":"327"},{"messageId":"322","fix":"376","desc":"324"},{"messageId":"325","fix":"377","desc":"327"},{"messageId":"322","fix":"378","desc":"324"},{"messageId":"325","fix":"379","desc":"327"},{"messageId":"322","fix":"380","desc":"324"},{"messageId":"325","fix":"381","desc":"327"},{"messageId":"322","fix":"382","desc":"324"},{"messageId":"325","fix":"383","desc":"327"},{"messageId":"322","fix":"384","desc":"324"},{"messageId":"325","fix":"385","desc":"327"},{"messageId":"322","fix":"386","desc":"324"},{"messageId":"325","fix":"387","desc":"327"},{"messageId":"322","fix":"388","desc":"324"},{"messageId":"325","fix":"389","desc":"327"},{"messageId":"322","fix":"390","desc":"324"},{"messageId":"325","fix":"391","desc":"327"},{"messageId":"322","fix":"392","desc":"324"},{"messageId":"325","fix":"393","desc":"327"},{"messageId":"322","fix":"394","desc":"324"},{"messageId":"325","fix":"395","desc":"327"},{"messageId":"322","fix":"396","desc":"324"},{"messageId":"325","fix":"397","desc":"327"},{"desc":"398","fix":"399"},{"desc":"400","fix":"401"},{"desc":"402","fix":"403"},{"desc":"404","fix":"405"},{"desc":"406","fix":"407"},{"desc":"408","fix":"409"},{"desc":"410","fix":"411"},{"desc":"412","fix":"413"},"removeEscape",{"range":"414","text":"415"},"Remove the `\\`. This maintains the current functionality.","escapeBackslash",{"range":"416","text":"417"},"Replace the `\\` with `\\\\` to include the actual backslash character.",{"range":"418","text":"415"},{"range":"419","text":"417"},{"range":"420","text":"415"},{"range":"421","text":"417"},{"range":"422","text":"415"},{"range":"423","text":"417"},{"range":"424","text":"415"},{"range":"425","text":"417"},{"range":"426","text":"415"},{"range":"427","text":"417"},{"range":"428","text":"415"},{"range":"429","text":"417"},{"range":"430","text":"415"},{"range":"431","text":"417"},{"range":"432","text":"415"},{"range":"433","text":"417"},{"range":"434","text":"415"},{"range":"435","text":"417"},{"range":"436","text":"415"},{"range":"437","text":"417"},{"range":"438","text":"415"},{"range":"439","text":"417"},{"range":"440","text":"415"},{"range":"441","text":"417"},{"range":"442","text":"415"},{"range":"443","text":"417"},{"range":"444","text":"415"},{"range":"445","text":"417"},{"range":"446","text":"415"},{"range":"447","text":"417"},{"range":"448","text":"415"},{"range":"449","text":"417"},{"range":"450","text":"415"},{"range":"451","text":"417"},{"range":"452","text":"415"},{"range":"453","text":"417"},{"range":"454","text":"415"},{"range":"455","text":"417"},{"range":"456","text":"415"},{"range":"457","text":"417"},{"range":"458","text":"415"},{"range":"459","text":"417"},{"range":"460","text":"415"},{"range":"461","text":"417"},{"range":"462","text":"415"},{"range":"463","text":"417"},{"range":"464","text":"415"},{"range":"465","text":"417"},{"range":"466","text":"415"},{"range":"467","text":"417"},{"range":"468","text":"415"},{"range":"469","text":"417"},{"range":"470","text":"415"},{"range":"471","text":"417"},{"range":"472","text":"415"},{"range":"473","text":"417"},{"range":"474","text":"415"},{"range":"475","text":"417"},{"range":"476","text":"415"},{"range":"477","text":"417"},{"range":"478","text":"415"},{"range":"479","text":"417"},{"range":"480","text":"415"},{"range":"481","text":"417"},{"range":"482","text":"415"},{"range":"483","text":"417"},{"range":"484","text":"415"},{"range":"485","text":"417"},{"range":"486","text":"415"},{"range":"487","text":"417"},"Update the dependencies array to be: [id, userId]",{"range":"488","text":"489"},"Update the dependencies array to be: [id, like, userIdStorage]",{"range":"490","text":"491"},"Update the dependencies array to be: [props.users, searchTerm]",{"range":"492","text":"493"},"Update the dependencies array to be: [friends, history, roomId]",{"range":"494","text":"495"},"Update the dependencies array to be: [getFriends]",{"range":"496","text":"497"},"Update the dependencies array to be: [getMessages]",{"range":"498","text":"499"},"Update the dependencies array to be: [roomId, userId]",{"range":"500","text":"501"},"Update the dependencies array to be: [getMessages, roomId]",{"range":"502","text":"503"},[185,186],"",[185,185],"\\",[189,190],[189,189],[197,198],[197,197],[210,211],[210,210],[214,215],[214,214],[222,223],[222,222],[231,232],[231,231],[235,236],[235,235],[251,252],[251,251],[259,260],[259,259],[276,277],[276,276],[284,285],[284,284],[122,123],[122,122],[126,127],[126,126],[134,135],[134,134],[147,148],[147,147],[151,152],[151,151],[159,160],[159,159],[168,169],[168,168],[172,173],[172,172],[188,189],[188,188],[196,197],[196,196],[213,214],[213,213],[221,222],[221,221],[90,91],[90,90],[94,95],[94,94],[102,103],[102,102],[115,116],[115,115],[119,120],[119,119],[127,128],[127,127],[136,137],[136,136],[140,141],[140,140],[156,157],[156,156],[164,165],[164,164],[181,182],[181,181],[189,190],[189,189],[3135,3137],"[id, userId]",[4335,4341],"[id, like, userIdStorage]",[4331,4344],"[props.users, searchTerm]",[2395,2404],"[friends, history, roomId]",[2485,2487],"[getFriends]",[2570,2572],"[getMessages]",[3001,3009],"[roomId, userId]",[3652,3660],"[getMessages, roomId]"]