Skip to content

Commit 68b1e08

Browse files
committed
✨ Add likedFeeds property to User model and implement likes functionality
1 parent 99e8415 commit 68b1e08

File tree

3 files changed

+12
-9
lines changed

3 files changed

+12
-9
lines changed

src/app/core/models/user.model.ts

+1
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ export class User {
1111
public subscriptions?: string[],
1212
public readFeeds?: string[],
1313
public savedFeeds?: string[],
14+
public likedFeeds?: string[],
1415
) {}
1516
}

src/app/core/services/feed.service.ts

+9-8
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,16 @@ export class FeedService {
6767

6868
public mapInUserResource(feeds: Feed[] | Feed): Feed[] | Feed {
6969
const userActive = this.authService.getUserActive();
70-
if(userActive) {
71-
const { savedFeeds } = userActive;
72-
if(Array.isArray(feeds)) {
73-
feeds.map(feed => feed.inUser = savedFeeds?.includes(feed._id));
74-
} else {
75-
feeds.inUser = savedFeeds?.includes(feeds._id);
76-
}
70+
if (userActive) {
71+
const { savedFeeds, likedFeeds } = userActive;
72+
const mapFeed = (feed: Feed): Feed => {
73+
feed.inUser = savedFeeds?.includes(feed._id) || false;
74+
feed.liked = likedFeeds?.includes(feed._id) || false;
75+
feed.likes = feed.likes ?? 0;
76+
return feed;
77+
};
78+
Array.isArray(feeds) ? feeds.forEach(mapFeed) : feeds = mapFeed(feeds);
7779
}
7880
return feeds;
7981
}
80-
8182
}

src/app/shared/news-container/news-container.component.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,9 @@ export class NewsContainerComponent implements OnInit {
5656
}
5757
if(option === 'liked' && feed._id === idFeed) {
5858
feed.liked = !feed.liked;
59-
feed.liked ? feed.likes++ : feed.likes--;
59+
feed.likes += feed.liked ? 1 : -1;
6060
}
61+
return feed;
6162
});
6263
});
6364
}

0 commit comments

Comments
 (0)