diff --git a/src/Components/AreasSubPages.js b/src/Components/AreasSubPages.js index dec904237ff0b4c863db941216a29b8a165b94e6..a2db47d20ecf0b23d75dbdc292a9ee36641779d5 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 2ba27fd6551072f69d9218be353c78d2e84413eb..53c8e8a3b85234b22a1cac61948777cbfbbf9911 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 0b75f9ebf88f4c655b0f347f5ffc2eb1bdd15ffb..e34339552a426468b419b47258ec2d94de3a879a 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 b5f22d5025397f498e4a8bb0a9072dfa8e5f3a52..d783645d79bcc211bf48e1fc22369d885b659cce 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 bdf155c21ff1c85dae5f1f9b04bcd319770e170e..4f6a2fb0acbd0a42313a227d776eb89cc806fad1 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> ))}