diff --git a/src/app/core/models/user.model.ts b/src/app/core/models/user.model.ts index 40b4963..36e42bc 100644 --- a/src/app/core/models/user.model.ts +++ b/src/app/core/models/user.model.ts @@ -11,5 +11,6 @@ export class User { public subscriptions?: string[], public readFeeds?: string[], public savedFeeds?: string[], + public likedFeeds?: string[], ) {} } diff --git a/src/app/core/services/feed.service.ts b/src/app/core/services/feed.service.ts index 641fb60..8a441e7 100644 --- a/src/app/core/services/feed.service.ts +++ b/src/app/core/services/feed.service.ts @@ -67,15 +67,16 @@ export class FeedService { public mapInUserResource(feeds: Feed[] | Feed): Feed[] | Feed { const userActive = this.authService.getUserActive(); - if(userActive) { - const { savedFeeds } = userActive; - if(Array.isArray(feeds)) { - feeds.map(feed => feed.inUser = savedFeeds?.includes(feed._id)); - } else { - feeds.inUser = savedFeeds?.includes(feeds._id); - } + if (userActive) { + const { savedFeeds, likedFeeds } = userActive; + const mapFeed = (feed: Feed): Feed => { + feed.inUser = savedFeeds?.includes(feed._id) || false; + feed.liked = likedFeeds?.includes(feed._id) || false; + feed.likes = feed.likes ?? 0; + return feed; + }; + Array.isArray(feeds) ? feeds.forEach(mapFeed) : feeds = mapFeed(feeds); } return feeds; } - } diff --git a/src/app/shared/news-container/news-container.component.ts b/src/app/shared/news-container/news-container.component.ts index 73888e5..b418cbd 100644 --- a/src/app/shared/news-container/news-container.component.ts +++ b/src/app/shared/news-container/news-container.component.ts @@ -56,8 +56,9 @@ export class NewsContainerComponent implements OnInit { } if(option === 'liked' && feed._id === idFeed) { feed.liked = !feed.liked; - feed.liked ? feed.likes++ : feed.likes--; + feed.likes += feed.liked ? 1 : -1; } + return feed; }); }); }