diff --git a/src/Components/HelperFunctions/getAxiosConfig.js b/src/Components/HelperFunctions/getAxiosConfig.js index 15a461129312976a379c9c5e81a16da611b611b1..91597bf58e724191041de30763bcd95219de575a 100644 --- a/src/Components/HelperFunctions/getAxiosConfig.js +++ b/src/Components/HelperFunctions/getAxiosConfig.js @@ -196,7 +196,6 @@ export async function fetchAllRequest (urls, onSuccess, onError) { headers : fetchHeaders() }))) - console.log(responses) var data = [] var headers = [] diff --git a/src/Components/TabPanels/PanelComponents/TemplateColecao.js b/src/Components/TabPanels/PanelComponents/TemplateColecao.js index a8fba55079f606ae8df0e4f8ac986597564d3473..7af99a6cf6e901be5a1c03276475edb85a4dc44e 100644 --- a/src/Components/TabPanels/PanelComponents/TemplateColecao.js +++ b/src/Components/TabPanels/PanelComponents/TemplateColecao.js @@ -73,7 +73,7 @@ export default function PanelTemplateColecao(props) { <WhiteContainer> <Title title={props.title} - length={props.length} + length={props.end} /> { diff --git a/src/Components/TabPanels/PanelComponents/TemplateCuradoria.js b/src/Components/TabPanels/PanelComponents/TemplateCuradoria.js index 2b8135fd06101019ddd93f424124923c4322bbe6..4426a239ded8dc1c3d42925e8f83caa7c59598d7 100644 --- a/src/Components/TabPanels/PanelComponents/TemplateCuradoria.js +++ b/src/Components/TabPanels/PanelComponents/TemplateCuradoria.js @@ -31,7 +31,7 @@ export default function Template(props) { <WhiteContainer> <Title title={props.titleText} - length={props.length} + length={props.end} /> { diff --git a/src/Components/TabPanels/PanelComponents/TemplateRecurso.js b/src/Components/TabPanels/PanelComponents/TemplateRecurso.js index 379128c493e22c2eb04c34d3d6107e3f7ae257e2..6bf05604c0d56eef5e435c449b2b8cc103517572 100644 --- a/src/Components/TabPanels/PanelComponents/TemplateRecurso.js +++ b/src/Components/TabPanels/PanelComponents/TemplateRecurso.js @@ -31,7 +31,7 @@ export default function Template(props) { <WhiteContainer> <Title title={props.titleText} - length={props.length} + length={props.end} /> { diff --git a/src/Components/TabPanels/PanelComponents/TemplateRede.js b/src/Components/TabPanels/PanelComponents/TemplateRede.js index 7bd506188b746200e4830bc5605e3bc4481f3257..1242626beba3169a1c38aea3617b4ec501a07053 100644 --- a/src/Components/TabPanels/PanelComponents/TemplateRede.js +++ b/src/Components/TabPanels/PanelComponents/TemplateRede.js @@ -9,6 +9,8 @@ import { ButtonsAreaRede } from './ButtonsArea' import LoadingSpinner from '../../LoadingSpinner.js' export default function PanelTemplateRede(props) { + console.log(props + ) const RenderContactCard = (card, followerBoolean) => { if (followerBoolean) { return ( @@ -47,7 +49,7 @@ export default function PanelTemplateRede(props) { <Title title={props.title} - length={props.length} + length={props.end} /> @@ -93,8 +95,8 @@ export default function PanelTemplateRede(props) { sliceLength={props.sliceArr.length} length={props.length} showMore={props.showMore} - end={props.end} total={props.end} + end={String(props.sliceArr.length) === props.end} /> } </React.Fragment> diff --git a/src/Components/TabPanels/UserPageTabs/PanelColecoes.js b/src/Components/TabPanels/UserPageTabs/PanelColecoes.js index 240cbcc6c5b237e65be9029aedd7c1f18aafc817..420071c2cf0b7ec4b7a4feb7a12826ad1041b063 100644 --- a/src/Components/TabPanels/UserPageTabs/PanelColecoes.js +++ b/src/Components/TabPanels/UserPageTabs/PanelColecoes.js @@ -33,265 +33,268 @@ import CriarColecaoModal from '../../CriarColecaoModal.js' import { fetchAllRequest, getRequest } from '../../HelperFunctions/getAxiosConfig' export default function TabPanelColecoes(props) { - const [loading, handleLoading] = useState(true) + const [loading, handleLoading] = useState(true) - const [errorInUserColl, setErrorInUserColl] = useState(false) - const [errorInFollowedColl, setErrorInFollowedColl] = useState(false) + const [errorInUserColl, setErrorInUserColl] = useState(false) + const [errorInFollowedColl, setErrorInFollowedColl] = useState(false) - const [userCollections, setUserCollections] = useState([]) - const [followedCollections, setFollowedCollections] = useState([]) + const [userCollections, setUserCollections] = useState([]) + const [followedCollections, setFollowedCollections] = useState([]) - const [currLimitUserColl, setCurrLimitUserColl] = useState(4) - const [currLimitFollowedColl, setCurrLimitFollowedColl] = useState(4) + const [currLimitUserColl, setCurrLimitUserColl] = useState(4) + const [currLimitFollowedColl, setCurrLimitFollowedColl] = useState(4) - const [loadingMoreUserColl, setLoadingMoreUserColl] = useState(false); - const [loadingMoreFollowedColl, setLoadingMoreFollowedColl] = useState(false); + const [loadingMoreUserColl, setLoadingMoreUserColl] = useState(false); + const [loadingMoreFollowedColl, setLoadingMoreFollowedColl] = useState(false); - const [endOfUserColl, setEndOfUserColl] = useState(false); - const [endOfFollowedColl, setEndOfFollowedColl] = useState(false); + const [endOfUserColl, setEndOfUserColl] = useState(false); + const [endOfFollowedColl, setEndOfFollowedColl] = useState(false); - function handleSuccess(responseArr, headersArr) { - handleLoading(false) - setUserCollections(responseArr[0]) - setFollowedCollections(responseArr[1]) + function handleSuccess(responseArr, headersArr) { + setErrorInUserColl(responseArr[0].errors ? true : false) + setErrorInFollowedColl(responseArr[1].errors ? true : false) - if (headersArr[0].has('X-Total-Count')) { - setEndOfUserColl(headersArr[0].get('X-Total-Count')); - } - if (headersArr[1].has('X-Total-Count')) { - setEndOfFollowedColl(headersArr[1].get('X-Total-Count')); - } - } + handleLoading(false) + setUserCollections(responseArr[0]) + setFollowedCollections(responseArr[1]) - function handleError(error) { - handleLoading(false) - setErrorInFollowedColl(true) - setErrorInUserColl(true) + if (headersArr[0].has('X-Total-Count')) { + setEndOfUserColl(headersArr[0].get('X-Total-Count')); } - - const getInfo = () => { - const urls = [ - `/users/${props.id}/collections?offset=0&limit=4`, - `/users/${props.id}/following/Collection?offset=0&limit=4` - ] - fetchAllRequest(urls, handleSuccess, handleError) + if (headersArr[1].has('X-Total-Count')) { + setEndOfFollowedColl(headersArr[1].get('X-Total-Count')); } + } - useEffect(() => { - handleLoading(true) - getInfo() - }, []) + function handleError(error) { + handleLoading(false) + setErrorInFollowedColl(true) + setErrorInUserColl(true) + } - 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) - } - ) - } + const getInfo = () => { + const urls = [ + `/users/${props.id}/collections?offset=0&limit=4`, + `/users/${props.id}/following/Collection?offset=0&limit=4` + ] + fetchAllRequest(urls, handleSuccess, handleError) + } - const showMoreFollowedCollections = (limite) => { - const limit = limite; - setLoadingMoreFollowedColl(true); - setCurrLimitFollowedColl(currLimitFollowedColl + limit) - const url = `/users/${props.id}/following/Collection?offset=${currLimitFollowedColl}&limit=${limit}`; - getRequest(url, - (data) => { - if (data.errors) { - setLoadingMoreFollowedColl(false); - setEndOfFollowedColl(true) - setErrorInFollowedColl(true) - } - else if (data.length >= 1) { - let currData = [...followedCollections]; - currData = [...currData.concat(data)]; - setLoadingMoreFollowedColl(false); - setFollowedCollections(currData); - } - else { - setLoadingMoreFollowedColl(false); - setEndOfFollowedColl(true) - } - }, - (error) => { - setLoadingMoreFollowedColl(false); - setEndOfFollowedColl(true) - setErrorInFollowedColl(true) - } - ) - } + useEffect(() => { + handleLoading(true) + getInfo() + }, []) - return ( - <> - { - loading ? - ( - <LoadingSpinner text={'CARREGANDO COLEÇÕES'} /> - ) - : - ( - [ - <React.Fragment> - <Tentativa - title={"Minhas Coleções"} - length={userCollections.length} - noContentText={ - <div> - <img src={PaginaVaziaColecao} alt="PaginaVaziaColecao" style={{ height: "150px", width: "150px", verticalAlign: "middle", border: "0" }} /> - <br /> - <span style={{ fontFamily: "Roboto", fontWeight: "lighter", fontSize: "24px" }}> - Criamos a sua primeira Coleção! + 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) + } + ) + } + + const showMoreFollowedCollections = (limite) => { + const limit = limite; + setLoadingMoreFollowedColl(true); + setCurrLimitFollowedColl(currLimitFollowedColl + limit) + const url = `/users/${props.id}/following/Collection?offset=${currLimitFollowedColl}&limit=${limit}`; + getRequest(url, + (data) => { + if (data.errors) { + setLoadingMoreFollowedColl(false); + setEndOfFollowedColl(true) + setErrorInFollowedColl(true) + } + else if (data.length >= 1) { + let currData = [...followedCollections]; + currData = [...currData.concat(data)]; + setLoadingMoreFollowedColl(false); + setFollowedCollections(currData); + } + else { + setLoadingMoreFollowedColl(false); + setEndOfFollowedColl(true) + } + }, + (error) => { + setLoadingMoreFollowedColl(false); + setEndOfFollowedColl(true) + setErrorInFollowedColl(true) + } + ) + } + + return ( + <> + { + loading ? + ( + <LoadingSpinner text={'CARREGANDO COLEÇÕES'} /> + ) + : + ( + [ + <React.Fragment> + <Tentativa + title={"Minhas Coleções"} + length={userCollections.length} + noContentText={ + <div> + <img src={PaginaVaziaColecao} alt="PaginaVaziaColecao" style={{ height: "150px", width: "150px", verticalAlign: "middle", border: "0" }} /> + <br /> + <span style={{ fontFamily: "Roboto", fontWeight: "lighter", fontSize: "24px" }}> + Criamos a sua primeira Coleção! </span> - <p style={{ fontFamily: "Roboto", fontSize: "16px", margin: "10px 0 0", fontWeight: "normal" }}> - Adicione nela recursos que você queira acessar mais tarde. + <p style={{ fontFamily: "Roboto", fontSize: "16px", margin: "10px 0 0", fontWeight: "normal" }}> + Adicione nela recursos que você queira acessar mais tarde. <br /> Crie novas coleções clicando no cartão roxo "Criar Colecão". </p> - </div> - } - sliceArr={userCollections} - showMore={showMoreUserCollections} - loadingMore={loadingMoreUserColl} - end={endOfUserColl} - callback={getInfo} - error={errorInUserColl} - /> + </div> + } + sliceArr={userCollections} + showMore={showMoreUserCollections} + loadingMore={loadingMoreUserColl} + end={endOfUserColl} + callback={getInfo} + error={errorInUserColl} + /> - <PanelTemplateColecao - title={"Coleções que eu sigo"} - length={followedCollections.length} - noContentText={"Você ainda não segue nenhuma coleção."} - sliceArr={followedCollections} - showMore={showMoreFollowedCollections} - loadingMore={loadingMoreFollowedColl} - end={endOfFollowedColl} - followed={true} - error={errorInFollowedColl} - /> - </React.Fragment> - ] - ) - } - </> - ) + <PanelTemplateColecao + title={"Coleções que eu sigo"} + length={followedCollections.length} + noContentText={"Você ainda não segue nenhuma coleção."} + sliceArr={followedCollections} + showMore={showMoreFollowedCollections} + loadingMore={loadingMoreFollowedColl} + end={endOfFollowedColl} + followed={true} + error={errorInFollowedColl} + /> + </React.Fragment> + ] + ) + } + </> + ) } function Tentativa(props) { - const [modalOpen, toggleModal] = useState(false) - const handleModal = () => { toggleModal(!modalOpen) }; + const [modalOpen, toggleModal] = useState(false) + const handleModal = () => { toggleModal(!modalOpen) }; - if (props.error) - return ( - <WhiteContainer> - <Title - title={props.title} - length={props.length} - /> - <p - style={{ fontSize: "15px", fontWeight: "lighter", margin: "0 0 10px", display: "flex", justifyContent: "center", textAlign: "center" }} - > - Erro ao tentar obter os dados + if (props.error) + return ( + <WhiteContainer> + <Title + title={props.title} + length={props.length} + /> + <p + style={{ fontSize: "15px", fontWeight: "lighter", margin: "0 0 10px", display: "flex", justifyContent: "center", textAlign: "center" }} + > + Erro ao tentar obter os dados </p> - </WhiteContainer> - ) - else - return ( - <WhiteContainer> - <CriarColecaoModal open={modalOpen} handleClose={() => { handleModal(); props.callback() }} /> + </WhiteContainer> + ) + else + return ( + <WhiteContainer> + <CriarColecaoModal open={modalOpen} handleClose={() => { handleModal(); props.callback() }} /> - <Title - title={props.title} - length={props.length} - /> + <Title + title={props.title} + length={props.end} + /> - <StyledGrid container spacing={1} style={{ paddingLeft: "30px", paddingRight: "15px" }}> - <Grid item xs={12} sm={6} md={'auto'} lg={3}> - <CardDiv onClick={() => { handleModal() }}> - <div style={{ backgroundColor: "#673ab7", display: "flex", height: "100%", width: "100%", justifyContent: "center", alignItems: "center", cursor: "pointer" }}> - <CreateNewFolderIcon style={{ color: "#fff", fontSize: "70px" }} /> - <p style={{ fontSize: "16px", margin: "0 0 10px", color: "#fff" }}> - CRIAR COLEÇÃO + <StyledGrid container spacing={1} style={{ paddingLeft: "30px", paddingRight: "15px" }}> + <Grid item xs={12} sm={6} md={'auto'} lg={3}> + <CardDiv onClick={() => { handleModal() }}> + <div style={{ backgroundColor: "#673ab7", display: "flex", height: "100%", width: "100%", justifyContent: "center", alignItems: "center", cursor: "pointer" }}> + <CreateNewFolderIcon style={{ color: "#fff", fontSize: "70px" }} /> + <p style={{ fontSize: "16px", margin: "0 0 10px", color: "#fff" }}> + CRIAR COLEÇÃO </p> - </div> - </CardDiv> - </Grid> + </div> + </CardDiv> + </Grid> + { + props.length === 0 ? + ( + [ + <Grid item lg={6} md={4} sm={6} xs={12}> + <NoContent text={props.noContentText} /> + </Grid> + ] + ) + : + ( + [ + <React.Fragment> { - props.length === 0 ? - ( - [ - <Grid item lg={6} md={4} sm={6} xs={12}> - <NoContent text={props.noContentText} /> - </Grid> - ] - ) - : - ( - [ - <React.Fragment> - { - props.sliceArr.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> - ) - } - </React.Fragment> - ] - ) + props.sliceArr.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> - { - props.loadingMore ? - <LoadingSpinner text={'Carregando Recursos...'} /> - : - <ButtonsAreaColecao - sliceLength={props.sliceArr.length} - length={props.length} - showMore={props.showMore} - total={props.end} - end={props.end} - /> - } - </WhiteContainer> - ) + </React.Fragment> + ] + ) + } + </StyledGrid> + { + props.loadingMore ? + <LoadingSpinner text={'Carregando Recursos...'} /> + : + <ButtonsAreaColecao + sliceLength={props.sliceArr.length} + length={props.length} + showMore={props.showMore} + total={props.end} + end={String(props.sliceArr.length) === props.end} + /> + } + </WhiteContainer> + ) } const CardDiv = styled(Card)` diff --git a/src/Components/TabPanels/UserPageTabs/PanelFavoritos.js b/src/Components/TabPanels/UserPageTabs/PanelFavoritos.js index d3ea7b8147f7786b8951c114ae35219bafd67298..8c9fff1ba0a9dce2b90cdd477ddc0decf8242c32 100644 --- a/src/Components/TabPanels/UserPageTabs/PanelFavoritos.js +++ b/src/Components/TabPanels/UserPageTabs/PanelFavoritos.js @@ -41,6 +41,9 @@ export default function TabPanelFavoritos(props) { function handleSuccess(responseArr, headersArr) { + setErrorInLikedInLearnObj(responseArr[0].errors ? true : false) + setErrorInLikedInColl(responseArr[1].errors ? true : false) + setlikedLearnObjs(responseArr[0]) setlikedCollections(responseArr[1]) diff --git a/src/Components/TabPanels/UserPageTabs/PanelMeusRecursos.js b/src/Components/TabPanels/UserPageTabs/PanelMeusRecursos.js index c015e5d3f9ddab18bdd35041e2fb12e46f35ad77..c6c3099a11ac3007bb63adc605896512d79caea1 100644 --- a/src/Components/TabPanels/UserPageTabs/PanelMeusRecursos.js +++ b/src/Components/TabPanels/UserPageTabs/PanelMeusRecursos.js @@ -45,7 +45,11 @@ export default function TabPanelAtividades(props) { const [drafts, setDrafts] = useState([]); const [curating, setCurating] = useState([]); - function handleSuccess(responseArr, headersArr) { + function handleSuccess(responseArr, headersArr) { + setErrorInLearnObj(responseArr[0].errors ? true : false) + setErrorInDrafts(responseArr[1].errors ? true : false) + setErrorInCurating(responseArr[2].errors ? true : false) + setLearningObjects(responseArr[0]) if (headersArr[0].has('X-Total-Count')) { setEndofLearndObj(headersArr[0].get('X-Total-Count')); diff --git a/src/Components/TabPanels/UserPageTabs/PanelRede.js b/src/Components/TabPanels/UserPageTabs/PanelRede.js index 41aee63af299bf06d95ae030f0e22bddcf06036a..51233c549b1409b2134b7283c32ee76d91e0917a 100644 --- a/src/Components/TabPanels/UserPageTabs/PanelRede.js +++ b/src/Components/TabPanels/UserPageTabs/PanelRede.js @@ -23,167 +23,175 @@ import PanelTemplateRede from '../PanelComponents/TemplateRede.js' import { fetchAllRequest, getRequest } from '../../HelperFunctions/getAxiosConfig' export default function TabPanelRede(props) { - const [loading, handleLoading] = useState(true) - - const [errorInFollowing, setErrorInFollowing] = useState(false) - const [errorInFollowers, setErrorInFollowers] = useState(false) - - const [followingList, setFollowing] = useState([]) - const [currFollowingLimit, setCurrFollowingLimit] = useState(4) - const [loadingMoreFollowing, setLoadingFollowing] = useState(false) - const [endOfFollowing, setEndOfFollowing] = useState(false) - - const [followersList, setFollowers] = useState([]) - const [currFollowerLimit, setFollowersLimit] = useState(4) - const [loadingMoreFollowers, setLoadingMoreFollowers] = useState(false) - const [endOfFollowers, setEndOfFollowers] = useState(false) - - 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); - } - 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, headersArr) { - setFollowing(responseArr[0]) - setFollowers(responseArr[1]) - if (headersArr[0].has('X-Total-Count')) { - setEndOfFollowing(headersArr[0].get('X-Total-Count')); + const [loading, handleLoading] = useState(true) + + 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 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); } - if (headersArr[1].has('X-Total-Count')) { - setEndOfFollowers(headersArr[1].get('X-Total-Count')); + else if (data.length >= 1) { + let currData = [...followingList]; + currData = [...currData.concat(data)]; + setLoadingFollowing(false); + setFollowing(currData); } - handleLoading(false) - } - - function handleErrors() { + 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); + } + ) + } + + 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 + setFollowing(responseArr[0]) + setFollowers(responseArr[1]) + if (headersArr[0].has('X-Total-Count')) { + setEndOfFollowing(headersArr[0].get('X-Total-Count')); } - - useEffect(() => { - handleLoading(true) - const urls = [ - `/users/${props.id}/following/User`, - `/users/${props.id}/followers` - ] - - fetchAllRequest(urls, handleSuccess, handleErrors) - }, []) - - return ( - <> - { - loading ? + if (headersArr[1].has('X-Total-Count')) { + setEndOfFollowers(headersArr[1].get('X-Total-Count')); + } + handleLoading(false) + } + + function handleErrors() { + setLoadingMoreFollowers(false); + setEndOfFollowers(true); + setErrorInFollowers(true); + } + + useEffect(() => { + handleLoading(true) + const urls = [ + `/users/${props.id}/following/User`, + `/users/${props.id}/followers` + ] + + fetchAllRequest(urls, handleSuccess, handleErrors) + }, []) + + useEffect(() => { + console.log(errorInFollowers, errorInFollowing) + }, [errorInFollowers, errorInFollowing]) + + return ( + <> + { + loading ? + ( + [ + <LoadingSpinner text={'CARREGANDO...'} /> + ] + ) + : + ( + [ + <> + { + followingList.length === 0 && followersList.length === 0 ? ( - [ - <LoadingSpinner text={'CARREGANDO...'} /> - ] + [ + <> + <ContainerRedeVazia /> + </> + ] ) : ( - [ - <> - { - followingList.length === 0 && followersList.length === 0 ? - ( - [ - <> - <ContainerRedeVazia /> - </> - ] - ) - : - ( - <React.Fragment> - <PanelTemplateRede - title={followersList.length === 1 ? "Seguidor" : "Seguidores"} - length={followersList.length} - sliceArr={followersList} - showMore={showMoreFollowers} - follower={true} - loadingMore={loadingMoreFollowers} - end={endOfFollowers} - error={errorInFollowers} - noContentText={'Você não possui nenhum seguidor'} - /> - - <PanelTemplateRede - title={"Seguindo"} - length={followingList.length} - sliceArr={followingList} - showMore={showMoreFollowing} - follower={false} - loadingMore={loadingMoreFollowing} - end={endOfFollowing} - error={errorInFollowing} - noContentText={'Você ainda não segue nenhum usuário'} - /> - </React.Fragment> - - ) - } - </> - ] + <React.Fragment> + <PanelTemplateRede + title={followersList.length === 1 ? "Seguidor" : "Seguidores"} + length={followersList.length} + sliceArr={followersList} + showMore={showMoreFollowers} + follower={true} + loadingMore={loadingMoreFollowers} + end={endOfFollowers} + error={errorInFollowers} + noContentText={'Você não possui nenhum seguidor'} + /> + + <PanelTemplateRede + title={"Seguindo"} + length={followingList.length} + sliceArr={followingList} + showMore={showMoreFollowing} + follower={false} + loadingMore={loadingMoreFollowing} + end={endOfFollowing} + error={errorInFollowing} + noContentText={'Você ainda não segue nenhum usuário'} + /> + </React.Fragment> + ) - } - </> - ) + } + </> + ] + ) + } + </> + ) }