diff --git a/src/Components/ColCardOwnerOptions.js b/src/Components/ColCardOwnerOptions.js index 279ffa96b70221a6d28b2d34bdcf8082fdadd2b7..a075780622f76c453592afb7d07b84de6ccd3df3 100644 --- a/src/Components/ColCardOwnerOptions.js +++ b/src/Components/ColCardOwnerOptions.js @@ -42,7 +42,6 @@ export default function ColCardOwnerOptions (props) { } const [modalExcluirOpen, toggleModalExcluir] = useState(false) - const openModalExcluir = () => {toggleModalExcluir(true)} const [modalEditarOpen, toggleModalEditar] = useState(false) @@ -50,7 +49,7 @@ export default function ColCardOwnerOptions (props) { return ( <> <ModalExcluirColecao id={props.id} - open={modalExcluirOpen} handleClose={() => {toggleModalExcluir(false)}} + open={modalExcluirOpen} handleClose={() => {toggleModalExcluir(false)}} removeColl={props.removeColl} /> <ModalEditarColecao id={props.id} open={modalEditarOpen} handleClose={() => {toggleModalEditar(false)}} @@ -78,7 +77,7 @@ export default function ColCardOwnerOptions (props) { <ListItemIcon><CreateIcon /></ListItemIcon>Editar </StyledMenuItem> - <StyledMenuItem onClick={openModalExcluir}> + <StyledMenuItem onClick={() => {toggleModalExcluir(true)}} > <ListItemIcon><DeleteForeverIcon /></ListItemIcon>Excluir </StyledMenuItem> diff --git a/src/Components/CollectionCardFunction.js b/src/Components/CollectionCardFunction.js index 85f59e03ce1471a18330239ee2480e0ef1b41d99..6f7322e7261536655d78098ad28b3639e87af2a5 100644 --- a/src/Components/CollectionCardFunction.js +++ b/src/Components/CollectionCardFunction.js @@ -272,6 +272,7 @@ export default function CollectionCardFunction(props) { id={props.id} changeColName={changeColName} changeColPrivacy={changeColPrivacy} + removeColl={props.removeColl} /> </Grid> </Grid> diff --git a/src/Components/HelperFunctions/getAxiosConfig.js b/src/Components/HelperFunctions/getAxiosConfig.js index aa645cc9c86714f5cbbdf3439cbad7ab6f190db6..6d1608bc91648d8b83374f9c4949a9ada3401cdd 100644 --- a/src/Components/HelperFunctions/getAxiosConfig.js +++ b/src/Components/HelperFunctions/getAxiosConfig.js @@ -100,17 +100,9 @@ export async function getRequest (url, onSuccess, onError) { headers : fetchHeaders() }) if (response.ok) { - /*if (response.headers.has('access-token')) { - updateHeaders(response.headers) - }*/ if (response.headers.has('access-token')) { updateAccessToken(response.headers.get('access-token')) } - /*if (response.headers.has('client')) { - let auth_headers = JSON.parse(sessionStorage.getItem('@portalmec/auth_headers')) - auth_headers['client'] = response.headers.get('client') - sessionStorage.setItem('@portalmec/auth_headers', JSON.stringify(auth_headers)) - }*/ let json = await response.json() onSuccess(json, response.headers) } @@ -224,17 +216,9 @@ export async function fetchAllRequest (urls, onSuccess, onError) { var headers = [] for (let res of responses) { - /*if (checkPreviousTokens(res.headers.get('access-token'))) { - updateHeaders(res.headers) - }*/ if (res.headers.has('access-token') && res.status !== 304) { updateAccessToken(res.headers.get('access-token')) } - /*if (res.headers.has('client')) { - let auth_headers = JSON.parse(sessionStorage.getItem('@portalmec/auth_headers')) - auth_headers['client'] = res.headers.get('client') - sessionStorage.setItem('@portalmec/auth_headers', JSON.stringify(auth_headers)) - }*/ let json = await res.json().catch(err => { return {}; }) diff --git a/src/Components/MenuBar.js b/src/Components/MenuBar.js index 0f1b536b4d1e45139a9a73b28bb63b6d27319cb8..67f91119de51c36b8912101dff158f5f9328e2d2 100644 --- a/src/Components/MenuBar.js +++ b/src/Components/MenuBar.js @@ -193,7 +193,7 @@ export default function MenuBar(props) { <React.Fragment> <ButtonPubRecursoStyled onClick={props.openLogin}>PUBLICAR RECURSO?</ButtonPubRecursoStyled> <ButtonStyled onClick={props.openLogin}><ExitToAppIcon style={{ color: "#00bcd4" }} />Entrar</ButtonStyled> - <ButtonStyled onClick={props.openSignUp}>Cadastre-se</ButtonStyled> + <ButtonStyled onClick={props.openSignUp}>Cadastre-<span style={{textTransform: 'lowercase'}}>se</span></ButtonStyled> </React.Fragment> ) } diff --git a/src/Components/MobileDrawerMenu.js b/src/Components/MobileDrawerMenu.js index 469fa378e9dd7787829eee223147c59710c96b30..654ee7b9154f7fd34b15c8b36ee0c163e301f45f 100644 --- a/src/Components/MobileDrawerMenu.js +++ b/src/Components/MobileDrawerMenu.js @@ -172,7 +172,7 @@ export default function MobileDrawerMenu(props) { <div> <ButtonStyled onClick={props.openSignUp}> - Cadastre-se + Cadastre-<span style={{textTransform: 'lowercase'}}>se</span> </ButtonStyled> </div> </div> diff --git a/src/Components/ModalExcluirColecao.js b/src/Components/ModalExcluirColecao.js index 879112aebb46690447dcc1b3cdecb62e90adbbff..f23b819d88584a3ee2fab19dd94bf3935c90b782 100644 --- a/src/Components/ModalExcluirColecao.js +++ b/src/Components/ModalExcluirColecao.js @@ -31,6 +31,7 @@ export default function ModalExcluirColecao (props) { function handleDeleteSuccess (data) { toggleSnackbar(true) + props.removeColl(props.id) props.handleClose() } const handleDelete = () => { diff --git a/src/Components/TabPanels/PanelComponents/TemplateRede.js b/src/Components/TabPanels/PanelComponents/TemplateRede.js index 4fd3364085585a62ff575b4833c9aedd7ba97394..c792b7d2de531c63ef2ec1b44b2f4a61b992b163 100644 --- a/src/Components/TabPanels/PanelComponents/TemplateRede.js +++ b/src/Components/TabPanels/PanelComponents/TemplateRede.js @@ -76,7 +76,7 @@ export default function PanelTemplateRede(props) { props.sliceArr.map((card) => <> { - card.follower && + card.follower && card.followable && <Grid item xs={12} sm={6} md={'auto'} lg={3} key={card.id}> {RenderContactCard(card, props.follower)} </Grid> diff --git a/src/Components/TabPanels/PublicUserPageTabs/LastCollections.js b/src/Components/TabPanels/PublicUserPageTabs/LastCollections.js index 553b9788dc860e290de3b72bf1acdfd7e06b1730..6e32577f77617b47bda1298c2a583ce7a50cf249 100644 --- a/src/Components/TabPanels/PublicUserPageTabs/LastCollections.js +++ b/src/Components/TabPanels/PublicUserPageTabs/LastCollections.js @@ -54,7 +54,7 @@ export default function LastCols(props) { <StyledGrid container spacing={1} style={{ paddingLeft: "0.5em" }}> { props.collections.slice(0, 4).map((card) => - <Grid item md={3} xs={12} key={card.id}> + <Grid item container md={3} xs={12} key={card.id}> <CollectionCardFunction name={card.name} tags={card.tags} diff --git a/src/Components/TabPanels/PublicUserPageTabs/TabColecoes.js b/src/Components/TabPanels/PublicUserPageTabs/TabColecoes.js index 22fe8e4da3e4ba7e536b2227ca7319f39f600805..4b46dc0700385baa2b787e847b8a671ed3f1f262 100644 --- a/src/Components/TabPanels/PublicUserPageTabs/TabColecoes.js +++ b/src/Components/TabPanels/PublicUserPageTabs/TabColecoes.js @@ -17,79 +17,104 @@ You should have received a copy of the GNU Affero General Public License along with Plataforma Integrada MEC. If not, see <http://www.gnu.org/licenses/>.*/ import React, { useState, useEffect } from 'react' -import { HeaderGrid, ContainerStyled, Carregados, StyledGrid } from '../StyledComponents.js' -import Grid from '@material-ui/core/Grid'; -import CollectionCardFunction from '../../CollectionCardFunction.js' -import { ButtonMostrarMaisColecao } from '../PanelComponents/ButtonsArea.js' - -export default function TabRecursos(props) { - const [arr, setArr] = useState([]) - const [colsSlice, setSlice] = useState([]) - const handleSlice = (newArr) => { setSlice(newArr) } - +import { fetchAllRequest, getRequest } from '../../HelperFunctions/getAxiosConfig' +import PanelTemplateColecao from '../PanelComponents/TemplateColecao.js' +import LoadingSpinner from '../../LoadingSpinner.js' + +export default function TabColecoes(props) { + const [loading, handleLoading] = useState(true) + + const [errorInUserColl, setErrorInUserColl] = useState(false) + + const [userCollections, setUserCollections] = useState([]) + + const [currLimitUserColl, setCurrLimitUserColl] = useState(4) + + const [loadingMoreUserColl, setLoadingMoreUserColl] = useState(false); + + const [endOfUserColl, setEndOfUserColl] = useState(false); + + function handleSuccess(responseArr, headersArr) { + setErrorInUserColl(responseArr[0].errors ? true : false) + + handleLoading(false) + setUserCollections(responseArr[0]) + + if (headersArr[0].has('X-Total-Count')) { + setEndOfUserColl(headersArr[0].get('X-Total-Count')); + } + } + + function handleError(error) { + handleLoading(false) + setErrorInUserColl(true) + } + + const getInfo = () => { + const urls = [ + `/users/${props.id}/collections?offset=0&limit=4`, + ] + fetchAllRequest(urls, handleSuccess, handleError) + } + useEffect(() => { - setArr(props.collections) - setSlice(props.collections.slice(0, 4)) + handleLoading(true) + getInfo() }, []) - - const showMore = (quantity) => { - var sliceLength = colsSlice.length - handleSlice(arr.slice(0, sliceLength + quantity)) + + const showMoreUserCollections = (limite) => { + const limit = limite; + setLoadingMoreUserColl(true); + setCurrLimitUserColl(currLimitUserColl + limit) + const url = `/users/${props.id}/collections?offset=${currLimitUserColl}&limit=${limit}`; + getRequest(url, + (data) => { + if (data.errors) { + setLoadingMoreUserColl(false); + setEndOfUserColl(true) + setErrorInUserColl(true) + } + else if (data.length >= 1) { + let currData = [...userCollections]; + currData = [...currData.concat(data)]; + setLoadingMoreUserColl(false); + setUserCollections(currData); + } + else { + setLoadingMoreUserColl(false); + setEndOfUserColl(true) + } + }, + (error) => { + setLoadingMoreUserColl(false); + setEndOfUserColl(true) + setErrorInUserColl(true) + } + ) } return ( - <ContainerStyled style={{ flexDirection: "column" }}> - - <HeaderGrid container> - <Grid item xs={12}> - <h3>Coleções públicas <b style={{ fontWeight: "500" }}>({props.count})</b></h3> - </Grid> - </HeaderGrid> - - <StyledGrid container spacing={1} style={{ paddingLeft: "30px", paddingRight: "15px" }}> - { - colsSlice.map((card) => - <Grid item xs={12} sm={6} md={'auto'} lg={3} key={card.id}> - <CollectionCardFunction - name={card.name} - tags={card.tags} - rating={card.review_average} - id={card.id} - author={card.owner.name} - description={card.description} - thumbnails={card.items_thumbnails} - avatar={card.owner.avatar} - likeCount={card.likes_count} - followed={card.followed} - liked={card.liked} - collections={card.collection_items} - authorID={card.owner.id} - /> - </Grid> - ) - } - </StyledGrid> - - <Carregados> - <p style={{ margin: "0 0 10px", fontSize: "14px" }}> - Carregados {colsSlice.length} de {arr.length} - </p> - - { - props.count > 5 && - <React.Fragment> - <ButtonMostrarMaisColecao onClick={() => { showMore(4) }}> - <span style={{ color: "#fff", fontSize: "14px", fontWeight: "500" }}>MOSTRAR MAIS 4</span> - </ButtonMostrarMaisColecao> - - <ButtonMostrarMaisColecao onClick={() => { showMore(20) }}> - <span style={{ color: "#fff", fontSize: "14px", fontWeight: "500" }}>MOSTRAR MAIS 20</span> - </ButtonMostrarMaisColecao> - </React.Fragment> - } - - </Carregados> - - </ContainerStyled> + <> + { + loading ? + ( + <LoadingSpinner text={'CARREGANDO COLEÇÕES'} /> + ) + : + ( + <PanelTemplateColecao + title={"Coleções Públicas"} + length={userCollections.length} + noContentText={props.username + " não possui nenhuma coleção."} + sliceArr={userCollections} + showMore={showMoreUserCollections} + loadingMore={loadingMoreUserColl} + end={endOfUserColl} + followed={false} + error={errorInUserColl} + /> + ) + } + </> ) } diff --git a/src/Components/TabPanels/PublicUserPageTabs/TabRede.js b/src/Components/TabPanels/PublicUserPageTabs/TabRede.js index c173dc195d4000acbeda628ffbbef127d1934339..6b8a8a8ee73eb0ede45b2b3ed40785697169cbac 100644 --- a/src/Components/TabPanels/PublicUserPageTabs/TabRede.js +++ b/src/Components/TabPanels/PublicUserPageTabs/TabRede.js @@ -18,62 +18,158 @@ along with Plataforma Integrada MEC. If not, see <http://www.gnu.org/licenses/> import React, {useState, useEffect} from 'react' import PanelTemplateRede from '../PanelComponents/TemplateRede.js' -import {fetchAllRequest} from '../../HelperFunctions/getAxiosConfig' +import { fetchAllRequest, getRequest } from '../../HelperFunctions/getAxiosConfig' +import LoadingSpinner from '../../LoadingSpinner.js' export default function TabRede (props) { - const [followers, setFollowers] = useState([]) - const [followersSlice, setFollowersSlice] = useState([]) + const [loading, handleLoading] = useState(true) - const showMoreFollowers = () => { - let varSlice = followersSlice.length - setFollowersSlice(followers.slice(0, varSlice + 4)) - } - const showAllFollowers = () => {setFollowersSlice(followers)} + const [errorInFollowing, setErrorInFollowing] = useState(false) + const [errorInFollowers, setErrorInFollowers] = useState(false) + + const [followingList, setFollowing] = useState([]) + const [currFollowingLimit, setCurrFollowingLimit] = useState(12) + const [loadingMoreFollowing, setLoadingFollowing] = useState(false) + const [endOfFollowing, setEndOfFollowing] = useState(false) + + const [followersList, setFollowers] = useState([]) + const [currFollowerLimit, setFollowersLimit] = useState(12) + const [loadingMoreFollowers, setLoadingMoreFollowers] = useState(false) + const [endOfFollowers, setEndOfFollowers] = useState(false) - const [following, setFollowing] = useState([]) - const [followingSlice, setFollowingSlice] = useState([]) - const showMoreFollowing = () => { - let varSlice = followingSlice.length - setFollowingSlice(following.slice(0, varSlice + 4)) - } - const showAllFollowing = () => {setFollowingSlice(following)} + const showMoreFollowing = (limite) => { + setLoadingFollowing(true); + const limit = limite; + setCurrFollowingLimit(currFollowingLimit + limit) + const url = `/users/${props.id}/following/User?offset=${currFollowingLimit}&limit=${limit}`; + getRequest(url, + (data) => { + if (data.errors) { + setLoadingFollowing(false); + setEndOfFollowing(true); + setErrorInFollowing(true); + } + else if (data.length >= 1) { + let currData = [...followingList]; + currData = [...currData.concat(data)]; + setLoadingFollowing(false); + setFollowing(currData); + } + else { + setLoadingFollowing(false); + setEndOfFollowing(true); + } + }, + (error) => { + setLoadingFollowing(false); + setEndOfFollowing(true); + setErrorInFollowing(true); + } + ) + } + + const showMoreFollowers = (limite) => { + setLoadingMoreFollowers(true); + const limit = limite; + setFollowersLimit(currFollowerLimit + limit) + const url = `/users/${props.id}/followers?offset=${currFollowerLimit}&limit=${limit}`; + getRequest(url, + (data) => { + if (data.errors) { + setLoadingMoreFollowers(false); + setEndOfFollowers(true); + setErrorInFollowers(true); + } + else { + if (data.length >= 1) { + let currData = [...followersList]; + currData = [...currData.concat(data)]; + setLoadingMoreFollowers(false); + setFollowers(currData); + } + else { + setLoadingMoreFollowers(false); + setEndOfFollowers(true) + } + } + }, + (error) => { + setLoadingMoreFollowers(false); + setEndOfFollowers(true); + setErrorInFollowers(true); + } + ) + } - function handleSuccess (responseArr) { + async function handleSuccess (responseArr, headersArr) { + setErrorInFollowing(responseArr[0].errors ? true : false) // prevent of crashing the portal, do not remove it + setErrorInFollowers(responseArr[1].errors ? true : false) // prevent of crashing the portal, do not remove it setFollowers(responseArr[0]) - setFollowersSlice(responseArr[0].slice(0,4)) - setFollowing(responseArr[1]) - setFollowingSlice(responseArr[1].slice(0,4)) + + if (headersArr[1].has('X-Total-Count')) { + setEndOfFollowing(headersArr[1].get('X-Total-Count')); + } + if (headersArr[0].has('X-Total-Count')) { + setEndOfFollowers(headersArr[0].get('X-Total-Count')); + } + handleLoading(false) + } + + function handleErrors() { + setLoadingMoreFollowers(false); + setEndOfFollowers(true); + setErrorInFollowers(true); } useEffect( () => { + handleLoading(true) const urls = [`/users/${props.id}/followers`, `/users/${props.id}/following/User`] - fetchAllRequest(urls, handleSuccess, (error) => {console.log(error)}) + fetchAllRequest(urls, handleSuccess, handleErrors) }, []) return ( - <React.Fragment> - <PanelTemplateRede - title={"Seguidores"} - length={followers.length} - sliceArr={followersSlice} - showMore={showMoreFollowers} - showAll={showAllFollowers} - follower={true} - noContentText={props.username + ' não possui nenhum seguidor'} - /> - - <PanelTemplateRede - title={"Seguindo"} - length={following.length} - sliceArr={followingSlice} - showMore={showMoreFollowing} - showAll={showAllFollowing} - follower={false} - noContentText={props.username + ' não segue nenhum usuário'} - /> - </React.Fragment> + <> + { + loading ? + ( + [ + <LoadingSpinner text={'CARREGANDO...'} /> + ] + ) + : + ( + [ + <React.Fragment> + <PanelTemplateRede + title={"Seguidores"} + length={followersList.length} + sliceArr={followersList} + showMore={showMoreFollowers} + follower={true} + end={endOfFollowers} + loadingMore={loadingMoreFollowers} + error={errorInFollowers} + noContentText={props.username + ' não possui nenhum seguidor'} + /> + + <PanelTemplateRede + title={"Seguindo"} + length={followingList.length} + sliceArr={followingList} + showMore={showMoreFollowing} + follower={false} + end={endOfFollowing} + loadingMore={loadingMoreFollowing} + error={errorInFollowing} + noContentText={props.username + ' não segue nenhum usuário'} + /> + </React.Fragment> + ] + ) + } + </> ) } diff --git a/src/Components/TabPanels/StyledComponents.js b/src/Components/TabPanels/StyledComponents.js index c8e75d5d2774b63cbb3140a3f40d7d45abb97f84..182fd013462a57191b7482f708e4379537c4255c 100644 --- a/src/Components/TabPanels/StyledComponents.js +++ b/src/Components/TabPanels/StyledComponents.js @@ -173,7 +173,7 @@ export const UserProfileContainer = styled.div` export const CoverContainer = styled.div` height : 230px; position : relative; - @media screen and (max-width: 501px) { + @media screen and (max-width: 600px) { height : 128px } ` diff --git a/src/Components/TabPanels/UserPageTabs/PanelColecoes.js b/src/Components/TabPanels/UserPageTabs/PanelColecoes.js index 420071c2cf0b7ec4b7a4feb7a12826ad1041b063..eef4d1eaa7df0728081c75d13d87e15db0f199b7 100644 --- a/src/Components/TabPanels/UserPageTabs/PanelColecoes.js +++ b/src/Components/TabPanels/UserPageTabs/PanelColecoes.js @@ -50,6 +50,12 @@ export default function TabPanelColecoes(props) { const [endOfUserColl, setEndOfUserColl] = useState(false); const [endOfFollowedColl, setEndOfFollowedColl] = useState(false); + const removeColl = (itemId) => { + let newSlice = userCollections.filter(item => item.id !== itemId); + setUserCollections(newSlice); + setEndOfUserColl(String(endOfUserColl - 1)) + }; + function handleSuccess(responseArr, headersArr) { setErrorInUserColl(responseArr[0].errors ? true : false) setErrorInFollowedColl(responseArr[1].errors ? true : false) @@ -181,10 +187,11 @@ export default function TabPanelColecoes(props) { end={endOfUserColl} callback={getInfo} error={errorInUserColl} + removeColl={removeColl} /> <PanelTemplateColecao - title={"Coleções que eu sigo"} + title={"Coleções que você segue"} length={followedCollections.length} noContentText={"Você ainda não segue nenhuma coleção."} sliceArr={followedCollections} @@ -272,6 +279,7 @@ function Tentativa(props) { liked={card.liked} collections={card.collection_items} authorID={card.owner.id} + removeColl={props.removeColl} /> </Grid> ) diff --git a/src/Components/TabPanels/UserPageTabs/PanelEditarPerfil.js b/src/Components/TabPanels/UserPageTabs/PanelEditarPerfil.js index e8d253324b68c006cc892d5084ab8d0f15e3f977..ce5a319efaacbf631c7a3871c0ee8672a8f68db1 100644 --- a/src/Components/TabPanels/UserPageTabs/PanelEditarPerfil.js +++ b/src/Components/TabPanels/UserPageTabs/PanelEditarPerfil.js @@ -37,13 +37,13 @@ export default function TabPanelEditarPerfil(props) { const [hoverAlterarFoto, handleAlterarFoto] = React.useState(false) const [formNome, setNome] = useState({ - key: false, - value: "" + key: state.currentUser.name ? false : true, + value: state.currentUser.name ? state.currentUser.name : "" }) const [formAboutMe, setAboutMe] = useState({ - key: false, - value: "", + key: state.currentUser.description ? false : true, + value: state.currentUser.description ? state.currentUser.description : "" }) const handleHoverAlterarFoto = () => { @@ -86,14 +86,14 @@ export default function TabPanelEditarPerfil(props) { const limpaCamposForm = () => { setNome({ ...formNome, - key: false, - value: '' + key: state.currentUser.name ? false : true, + value: state.currentUser.name ? state.currentUser.name : "" }) setAboutMe({ ...formAboutMe, - key: false, - value: '' + key: state.currentUser.description ? false : true, + value: state.currentUser.description ? state.currentUser.description : "" }) } @@ -102,7 +102,7 @@ export default function TabPanelEditarPerfil(props) { const handleSubmit = (e) => { e.preventDefault() - const info = { user: { name: formNome.value, description: formAboutMe.value, email: sessionStorage.getItem('@portalmec/uid') } } + const info = { user: { name: formNome.value, description: formAboutMe.value, email: state.currentUser.email } } const flagNome = formNome.key const flagAboutMe = formAboutMe.key @@ -172,7 +172,7 @@ export default function TabPanelEditarPerfil(props) { rows="3" rowsMax="3" error={formAboutMe.key} - placeholder={"Sobre Mim"} + placeholder={"Sobre mim (visível no seu perfil público)"} handleChange={e => handleChange(e, 'aboutMe')} required={false} help={formAboutMe.value.length + '/160'} diff --git a/src/Components/UploadPageComponents/UploadFileWrapper.js b/src/Components/UploadPageComponents/UploadFileWrapper.js index 123512f2dc9e81026f99a2173cd573e1ed0f7e32..b8919a54a0de3a1872de7c5258d32fdecfedc656 100644 --- a/src/Components/UploadPageComponents/UploadFileWrapper.js +++ b/src/Components/UploadPageComponents/UploadFileWrapper.js @@ -22,7 +22,7 @@ import ChooseLink from './ChooseLinkSection.js' import {WrapperBox, BlueButton, GrayButton} from './StyledComponents.js'; import {DottedBox} from './StyledComponents.js'; import {getAxiosConfigFromJSON, updateHeaders, deleteRequest, putRequest} from '../HelperFunctions/getAxiosConfig.js' -import AddAPhotoIcon from '@material-ui/icons/AddAPhoto'; +import AttachFileIcon from '@material-ui/icons/AttachFile'; import axios from 'axios' import {apiUrl} from '../../env'; import DoneIcon from '@material-ui/icons/Done'; @@ -246,7 +246,7 @@ export default function UploadFileWrapper (props) { onDrop={e => handleDrop(e)} onDragOver={e => handleDragOver(e)} > - <AddAPhotoIcon className="icon"/> + <AttachFileIcon className="icon"/> <input type="file" onChange = {(e) => {onFileChange(e.target.files[0])}} @@ -255,7 +255,7 @@ export default function UploadFileWrapper (props) { /> <BlueButton> <label htmlFor="upload-file" style={{width : "inherit", cursor : "pointer"}}> - ESCOLHER IMAGEM + ESCOLHER ARQUIVO </label> </BlueButton> <span style={{marginTop : "6px"}}>Ou arrastar e soltar o arquivo aqui</span> diff --git a/src/Components/UserPageComponents/Avatar.js b/src/Components/UserPageComponents/Avatar.js index 368b54b6fdbb513f7c397ebf755da60f4d300a7f..8c381f197741f833d9171c58b780ffb37bb8ad1b 100644 --- a/src/Components/UserPageComponents/Avatar.js +++ b/src/Components/UserPageComponents/Avatar.js @@ -68,7 +68,7 @@ const ProfileAvatarDiv = styled.div` outline : 0; cursor : pointer; background-color : #a5a5a5; - @media screen and (max-width: 501px) { + @media screen and (max-width: 600px) { height : 73px; width : 73px; position:absolute; diff --git a/src/Pages/PublicUserPage.js b/src/Pages/PublicUserPage.js index 0f2a14d5930535cd1309fa7f10fcb591c45f8af6..070d3cb4f7e265299ddf3efe5dfbad3124f57cbe 100644 --- a/src/Pages/PublicUserPage.js +++ b/src/Pages/PublicUserPage.js @@ -42,7 +42,7 @@ function RenderFollowContainer(props) { const { state } = useContext(Store) const [followed, setFollowed] = useState(props.followed) const toggleFollowed = () => { setFollowed(!followed) } - console.log(followed); + return ( <FollowContainer> <> @@ -103,7 +103,7 @@ export default function PublicUserPage(props) { const { state } = useContext(Store) /*user info variables--------------------------------------*/ const WIDTH = window.innerWidth; - const id = props.match.params.userId + const [id, setId] = useState(props.match.params.userId) const [loading, setLoading] = useState(false); @@ -148,10 +148,12 @@ export default function PublicUserPage(props) { /*Component Will Mount*/ useEffect(() => { + const id = props.match.params.userId + setId(id) const urls = [`/users/${id}`, `/users/${id}/learning_objects`, `/users/${id}/collections`, `/users/${id}/following/User`] setLoading(true); fetchAllRequest(urls, handleSuccess, (error) => { console.log(error) }) - }, [state.currentUser.id]) + }, [state.currentUser.id, props.match.params.userId]) /*---------------------------------------------------------*/ return ( @@ -226,7 +228,7 @@ export default function PublicUserPage(props) { { tabs.map((tab) => <Tab label={tab} key={tab} - disabled={(tab === "Recursos" && learningObjArr.length === 0) || (tab === "Coleções" && collectionsArr.length === 0)} + disabled={(tab === "Recursos" && learningObjArr.length === 0) || (tab === "Coleções" && collectionsArr.length === 0) || (tab === "Rede" && state.currentUser.id === '')} /> ) } @@ -238,18 +240,19 @@ export default function PublicUserPage(props) { </div> </Grid> - <Grid item xs={12}> - {tabValue === 0 && - <TabInicio id={id} user={userData} learningObjs={learningObjArr} collections={collectionsArr} />} - {tabValue === 1 && - <TabRecursos count={userData.learning_objects_count} learningObjs={learningObjArr} id={id} />} - {tabValue === 2 && - <TabColecoes count={userData.collections_count} collections={collectionsArr} - />} - {tabValue === 3 && - <TabRede id={id} username={userData.name} />} - - </Grid> + { + !loading && + <Grid item xs={12}> + {tabValue === 0 && + <TabInicio id={id} user={userData} learningObjs={learningObjArr} collections={collectionsArr} />} + {tabValue === 1 && + <TabRecursos count={userData.learning_objects_count} learningObjs={learningObjArr} id={id} />} + {tabValue === 2 && + <TabColecoes id={id} username={userData.name} />} + {tabValue === 3 && + <TabRede id={id} username={userData.name} />} + </Grid> + } </Grid> </BackgroundDiv> </React.Fragment> diff --git a/src/Pages/UserPage.js b/src/Pages/UserPage.js index 259522a052527be06359a1f29e9e98b5faa31b9c..2688500eeb48d71df1f3fc1469d744a41d4b71e6 100644 --- a/src/Pages/UserPage.js +++ b/src/Pages/UserPage.js @@ -144,10 +144,10 @@ export default function UserPage(props) { <HeaderContainer> <Cover id={id} /> <ProfileAvatar id={id} /> - {WIDTH <= 501 ? null : <UserInfo />} + {WIDTH <= 600 ? null : <UserInfo />} <EditProfileButton /> </HeaderContainer> - {WIDTH <= 501 ? ( + {WIDTH <= 600 ? ( <Grid style={{ marginTop: "4em" }} container @@ -210,7 +210,7 @@ export default function UserPage(props) { indicatorColor="primary" textColor="primary" variant="scrollable" - scrollButtons="auto" + scrollButtons="on" TabIndicatorProps={{ style: { background: "#00bcd4" }, }} diff --git a/src/env.js b/src/env.js index 82bf229b11fe78f3cb5ff8a58d096eec156cedf2..b7359157e1c0e9d260976bbe2b2545a2e0ca51b0 100644 --- a/src/env.js +++ b/src/env.js @@ -17,7 +17,7 @@ You should have received a copy of the GNU Affero General Public License along with Plataforma Integrada MEC. If not, see <http://www.gnu.org/licenses/>.*/ -var apiDomain = 'https://api.portalmectest.c3sl.ufpr.br', +var apiDomain = 'https://api.portalmec.c3sl.ufpr.br', apiVersion = 'v1', apiUrl = apiDomain + '/' + apiVersion;