From 2954e7cf880d7285fdbd85679d8f418706340aa1 Mon Sep 17 00:00:00 2001 From: Lucas Schoenfelder <les17@inf.ufpr.br> Date: Thu, 17 Dec 2020 10:19:10 -0300 Subject: [PATCH] fixed not being able to follow or like collections/learning objects --- src/Components/AreasSubPages.js | 6 +++++ src/Components/ColCardPublicOptions.js | 7 +++++- src/Components/CollectionCardFunction.js | 28 +++++++++++++++++++++--- src/Components/ResourceCardFunction.js | 16 ++++++++++++-- src/Pages/Search.js | 2 ++ 5 files changed, 53 insertions(+), 6 deletions(-) diff --git a/src/Components/AreasSubPages.js b/src/Components/AreasSubPages.js index dec90423..a2db47d2 100644 --- a/src/Components/AreasSubPages.js +++ b/src/Components/AreasSubPages.js @@ -166,6 +166,8 @@ class ReqCollections extends Component { description={card.description} thumbnails={card.items_thumbnails} avatar={card.owner.avatar} + likeCount={card.likes_count} + /> </Col> ))} @@ -181,6 +183,8 @@ class ReqCollections extends Component { description={card.description} thumbnails={card.items_thumbnails} avatar={card.owner.avatar} + likeCount={card.likes_count} + /> </Col> ))} @@ -196,6 +200,8 @@ class ReqCollections extends Component { description={card.description} thumbnails={card.items_thumbnails} avatar={card.owner.avatar} + likeCount={card.likes_count} + /> </Col> ))} diff --git a/src/Components/ColCardPublicOptions.js b/src/Components/ColCardPublicOptions.js index 2ba27fd6..53c8e8a3 100644 --- a/src/Components/ColCardPublicOptions.js +++ b/src/Components/ColCardPublicOptions.js @@ -50,7 +50,12 @@ export default function ColCardPublicOptions (props) { let payload = {} axios.put( (`${apiUrl}/collections/` + props.id + '/follow'),payload, config).then( - (response) => {console.log(response.data)}, (error) => {console.log(error)}) + (response) => { + console.log(response.data) + if ( response.headers['access-token'] ) { + sessionStorage.setItem('@portalmec/accessToken', response.headers['access-token']) + } + }, (error) => {console.log(error)}) } return ( diff --git a/src/Components/CollectionCardFunction.js b/src/Components/CollectionCardFunction.js index 0b75f9eb..e3433955 100644 --- a/src/Components/CollectionCardFunction.js +++ b/src/Components/CollectionCardFunction.js @@ -49,6 +49,25 @@ export default function CollectionCardFunction (props) { const [userFollowingCol, toggleUserFollowingCol] = useState(props.followed) const handleToggleUserFollowingCol = () => {toggleUserFollowingCol(!userFollowingCol)} + const [likesCount, setLikesCount] = useState(props.likeCount) + const [liked, toggleLiked] = useState(props.liked) + const handleLike = () => { + let payload = {} + let config = getAxiosConfig() + + axios.put( (`${apiUrl}/collections/` + props.id + '/like'),payload, config + ).then( + (response) => { + if ( response.headers['access-token'] ) { + sessionStorage.setItem('@portalmec/accessToken', response.headers['access-token']) + } + toggleLiked(!liked) + setLikesCount(response.data.count) + }, + (error) => {console.log(error)} + ) + } + const [followingHover, handleFollowingHover] = useState(false) const toggleFollowingHover = (value) => {handleFollowingHover(value)} @@ -61,6 +80,9 @@ export default function CollectionCardFunction (props) { axios.put( (`${apiUrl}/collections/` + props.id + '/follow'),payload, config).then( (response) => { + if ( response.headers['access-token'] ) { + sessionStorage.setItem('@portalmec/accessToken', response.headers['access-token']) + } console.log(response.data) handleToggleUserFollowingCol() }, @@ -188,9 +210,9 @@ export default function CollectionCardFunction (props) { <span>{props.thumbnails.length != 1 ? "Recursos" : "Recurso"}</span> </Type> <LikeCounter> - <span>{props.likeCount}</span> - <ButtonNoWidth> - <FavoriteIcon style={{color : props.liked ? "red" : "#666" }}/> + <span>{likesCount}</span> + <ButtonNoWidth onClick={handleLike}> + <FavoriteIcon style={{color : liked ? "red" : "#666" }}/> </ButtonNoWidth> </LikeCounter> </Footer> diff --git a/src/Components/ResourceCardFunction.js b/src/Components/ResourceCardFunction.js index b5f22d50..d783645d 100644 --- a/src/Components/ResourceCardFunction.js +++ b/src/Components/ResourceCardFunction.js @@ -66,6 +66,7 @@ export default function ResourceCardFunction (props) { const controlSlide = () => {setSlide(!slideIn)} const [liked, toggleLiked] = useState(props.liked) const [publisher, setPublisher] = useState(undefined) + const [likesCount, setLikesCount] = useState(props.likeCount) useEffect( () => { //decide which thumbnail to use @@ -87,7 +88,18 @@ export default function ResourceCardFunction (props) { let config = getAxiosConfig() axios.put( (`${apiUrl}/learning_objects/` + props.id + '/like'),payload, config - ).then( (response) => {toggleLiked(!liked)}, (error) => {console.log(error)}) + ).then( + (response) => { + console.log(response.data) + if ( response.headers['access-token'] ) { + sessionStorage.setItem('@portalmec/accessToken', response.headers['access-token']) + } + toggleLiked(!liked) + setLikesCount(response.data.count) + + }, + (error) => {console.log(error)} + ) } const SlideAnimationContent = () => { @@ -169,7 +181,7 @@ export default function ResourceCardFunction (props) { { props.published && <LikeCounter> - <span>{props.likeCount}</span> + <span>{likesCount}</span> <ButtonNoWidth onClick={handleLike}> <FavoriteIcon style={{color : liked ? "red" : "#666" }}/> </ButtonNoWidth> diff --git a/src/Pages/Search.js b/src/Pages/Search.js index bdf155c2..4f6a2fb0 100644 --- a/src/Pages/Search.js +++ b/src/Pages/Search.js @@ -248,6 +248,8 @@ export default function Search(props) { description={card.description} thumbnails={card.items_thumbnails} avatar={card.owner.avatar} + likeCount={card.likes_count} + /> </Grid> ))} -- GitLab