From 1a71df8b1f18153c530d21f979e923d1f338cd61 Mon Sep 17 00:00:00 2001 From: Lucas Schoenfelder <les17@inf.ufpr.br> Date: Tue, 9 Feb 2021 10:45:05 -0300 Subject: [PATCH] fix updateCover --- src/Components/EditarColecaoForm.js | 4 +- .../UserPageTabs/PanelEditarPerfil.js | 145 ++++++++++-------- 2 files changed, 82 insertions(+), 67 deletions(-) diff --git a/src/Components/EditarColecaoForm.js b/src/Components/EditarColecaoForm.js index 4e127b9a..9191ee7d 100644 --- a/src/Components/EditarColecaoForm.js +++ b/src/Components/EditarColecaoForm.js @@ -43,10 +43,10 @@ export default function EditarColecaoForm (props) { const [value, setValue] = useState(-1); /*values are set according to backend complaint id*/ - const [options] = useState([ + const [options] = [ {value : "pública", text :'Pública (Sua coleção estará disponível para todos)'}, {value : "privada", text : 'Privada (Somente você poderá visualizar esta coleção)'} - ]) + ] const handleChange = (event) => { setValue(event.target.value); diff --git a/src/Components/TabPanels/UserPageTabs/PanelEditarPerfil.js b/src/Components/TabPanels/UserPageTabs/PanelEditarPerfil.js index a2a082d0..ce61ebca 100644 --- a/src/Components/TabPanels/UserPageTabs/PanelEditarPerfil.js +++ b/src/Components/TabPanels/UserPageTabs/PanelEditarPerfil.js @@ -27,11 +27,11 @@ import Tooltip from '@material-ui/core/Tooltip'; import FormInput from "../../FormInput.js" import ValidateUserInput from '../../HelperFunctions/FormValidationFunction.js' import {apiDomain} from '../../../env.js' - +import ModalAlterarCover from '../../ModalAlterarCover/ModalAlterarCover.js' export default function TabPanelEditarPerfil (props) { // eslint-disable-next-line - const {state, dispatch} = useContext(Store) + const {state} = useContext(Store) const [hoverAlterarFoto, handleAlterarFoto] = React.useState(false) const [formNome, setNome] = useState({ @@ -48,9 +48,16 @@ export default function TabPanelEditarPerfil (props) { handleAlterarFoto(!hoverAlterarFoto) } + const [tempCover, setTempCover] = useState('') + + const [open, toggleOpen] = useState(false) + const controlModal = () => {toggleOpen(!open)} + const updateCover = (selectorFiles) => { - console.log(selectorFiles) - console.log(selectorFiles[0].name) + const objectURL = URL.createObjectURL(selectorFiles[0]) + console.log(objectURL) + setTempCover(objectURL) + controlModal() } const handleChange = (e, type) => { @@ -98,69 +105,77 @@ export default function TabPanelEditarPerfil (props) { } return ( - <div className="card-config"> - <h1 style={{fontWeight:"300"}}>Editar Perfil </h1> - <div className='content-div'> - <div style={{padding:"0", display:"flex", flexDirection:"column"}}> - <HeaderContainer> - <div style={{position:"relative", height:"100%"}}> - <img src={`${apiDomain}` + state.currentUser.cover} alt="user cover avatar" style={{width:"100%", height:"100%", objectFit:"cover"}}/> - <input accept="image/*" style = {{display:"none"}} id="icon-button-file" type="file" onChange={(e) => updateCover(e.target.files)}/> - <label htmlFor="icon-button-file"> - <Tooltip title={<span style={{fontSize:"14px", overflow:"hidden", transition:"all .5s ease"}}>ALTERAR CAPA</span>} placement="left"> - <IconButton style={{position:"absolute",right:"0",top:"0",color:"#fff"}}color="primary" aria-label="upload picture" component="span"> - <PhotoCamera /> - </IconButton> - </Tooltip> - </label> - </div> - <ProfileAvatarDiv onMouseEnter={handleHoverAlterarFoto} onMouseLeave={handleHoverAlterarFoto}> - <img src={`${apiDomain}` + state.currentUser.avatar} alt = "user avatar" style={{border:"0", verticalAlign:"middle"}}/> - <ChangeAvatarDiv style={ {display : hoverAlterarFoto ? 'flex' : 'none'}}> - <span>Alterar Foto</span> - </ChangeAvatarDiv> - </ProfileAvatarDiv> - </HeaderContainer> - <br/> - <br/> - <br/> - <br/> - </div> + <React.Fragment> + <ModalAlterarCover + open = {open} + handleClose={controlModal} + cover={tempCover} + id={state.currentUser.id} + /> + <div className="card-config"> + <h1 style={{fontWeight:"300"}}>Editar Perfil </h1> + <div className='content-div'> + <div style={{padding:"0", display:"flex", flexDirection:"column"}}> + <HeaderContainer> + <div style={{position:"relative", height:"100%"}}> + <img src={`${apiDomain}` + state.currentUser.cover} alt="user cover avatar" style={{width:"100%", height:"100%", objectFit:"cover"}}/> + <input accept="image/*" style = {{display:"none"}} id="icon-button-file" type="file" onChange={(e) => updateCover(e.target.files)}/> + <label htmlFor="icon-button-file"> + <Tooltip title={<span style={{fontSize:"14px", overflow:"hidden", transition:"all .5s ease"}}>ALTERAR CAPA</span>} placement="left"> + <IconButton style={{position:"absolute",right:"0",top:"0",color:"#fff"}}color="primary" aria-label="upload picture" component="span"> + <PhotoCamera /> + </IconButton> + </Tooltip> + </label> + </div> + <ProfileAvatarDiv onMouseEnter={handleHoverAlterarFoto} onMouseLeave={handleHoverAlterarFoto}> + <img src={`${apiDomain}` + state.currentUser.avatar} alt = "user avatar" style={{border:"0", verticalAlign:"middle"}}/> + <ChangeAvatarDiv style={ {display : hoverAlterarFoto ? 'flex' : 'none'}}> + <span>Alterar Foto</span> + </ChangeAvatarDiv> + </ProfileAvatarDiv> + </HeaderContainer> + <br/> + <br/> + <br/> + <br/> + </div> - <div style={{paddingTop:"90px"}}> - <div style={{display:"flex", flexDirection:"row"}}> - <form onSubmit={e => handleSubmit(e)}> - <FormInput - inputType={"text"} - name={"Nome Completo"} - value={formNome.value} - placeholder={"Nome Completo"} - handleChange={e => handleChange(e, 'username')} - required={true} - error={formNome.key} - /> - <FormInput - inputType={"text"} - name={"Sobre Mim"} - value={formAboutMe.value} - multi = {true} - rows="3" - rowsMax = "3" - error={formAboutMe.key} - placeholder={"Sobre Mim"} - handleChange={e => handleChange(e, 'aboutMe')} - required={false} - help = {formAboutMe.value.length + '/160'} - /> - </form> + <div style={{paddingTop:"90px"}}> + <div style={{display:"flex", flexDirection:"row"}}> + <form onSubmit={e => handleSubmit(e)}> + <FormInput + inputType={"text"} + name={"Nome Completo"} + value={formNome.value} + placeholder={"Nome Completo"} + handleChange={e => handleChange(e, 'username')} + required={true} + error={formNome.key} + /> + <FormInput + inputType={"text"} + name={"Sobre Mim"} + value={formAboutMe.value} + multi = {true} + rows="3" + rowsMax = "3" + error={formAboutMe.key} + placeholder={"Sobre Mim"} + handleChange={e => handleChange(e, 'aboutMe')} + required={false} + help = {formAboutMe.value.length + '/160'} + /> + </form> + </div> + <ButtonsDiv> + <Link to="perfil" ><ButtonCancelar ><span>CANCELAR</span></ButtonCancelar></Link> + <ButtonConfirmar onClick={e => handleSubmit(e)}><span>SALVAR ALTERAÇÕES</span></ButtonConfirmar> + </ButtonsDiv> </div> - <ButtonsDiv> - <Link to="perfil" ><ButtonCancelar ><span>CANCELAR</span></ButtonCancelar></Link> - <ButtonConfirmar onClick={e => handleSubmit(e)}><span>SALVAR ALTERAÇÕES</span></ButtonConfirmar> - </ButtonsDiv> - </div> - </div > - </div> + </div > + </div> + </React.Fragment> ) } -- GitLab