new project modal & seperate playback and music likes
This commit is contained in:
@@ -339,15 +339,37 @@ exports.createProjectLikeNotification = onDocumentWritten(
|
||||
return null;
|
||||
}
|
||||
|
||||
const beforeLikes = Array.isArray(before?.likedBy) ? before.likedBy : [];
|
||||
const afterLikes = Array.isArray(after?.likedBy) ? after.likedBy : [];
|
||||
const beforeSongLikes = Array.isArray(before?.likes?.song)
|
||||
? before.likes.song
|
||||
: [];
|
||||
const afterSongLikes = Array.isArray(after?.likes?.song)
|
||||
? after.likes.song
|
||||
: [];
|
||||
const beforePlaybackLikes = Array.isArray(before?.likes?.playback)
|
||||
? before.likes.playback
|
||||
: [];
|
||||
const afterPlaybackLikes = Array.isArray(after?.likes?.playback)
|
||||
? after.likes.playback
|
||||
: [];
|
||||
|
||||
if (afterLikes.length <= beforeLikes.length) {
|
||||
return null;
|
||||
}
|
||||
const beforeSongSet = new Set(beforeSongLikes);
|
||||
const beforePlaybackSet = new Set(beforePlaybackLikes);
|
||||
|
||||
const beforeSet = new Set(beforeLikes);
|
||||
const newLikers = afterLikes.filter((uid) => !beforeSet.has(uid));
|
||||
const newSongLikers = afterSongLikes.filter(
|
||||
(uid) => uid && !beforeSongSet.has(uid)
|
||||
);
|
||||
const newPlaybackLikers = afterPlaybackLikes.filter(
|
||||
(uid) => uid && !beforePlaybackSet.has(uid)
|
||||
);
|
||||
|
||||
const newLikers = [];
|
||||
|
||||
newSongLikers.forEach((uid) => {
|
||||
newLikers.push({ likerId: uid, likeType: "song" });
|
||||
});
|
||||
newPlaybackLikers.forEach((uid) => {
|
||||
newLikers.push({ likerId: uid, likeType: "playback" });
|
||||
});
|
||||
|
||||
if (!newLikers.length) {
|
||||
return null;
|
||||
@@ -359,7 +381,7 @@ exports.createProjectLikeNotification = onDocumentWritten(
|
||||
: "ton projet";
|
||||
|
||||
await Promise.all(
|
||||
newLikers.map(async (likerId) => {
|
||||
newLikers.map(async ({ likerId, likeType }) => {
|
||||
if (!likerId || likerId === ownerId) {
|
||||
return null;
|
||||
}
|
||||
@@ -371,7 +393,9 @@ exports.createProjectLikeNotification = onDocumentWritten(
|
||||
? liker.userName.trim()
|
||||
: "Un utilisateur";
|
||||
|
||||
const message = `${likerName} a aimé ton projet "${projectTitle}"`;
|
||||
const isPlaybackLike = likeType === "playback";
|
||||
const assetLabel = isPlaybackLike ? "ton playback" : "ta musique";
|
||||
const message = `${likerName} a aimé ${assetLabel} "${projectTitle}"`;
|
||||
|
||||
await sendNotification({
|
||||
sender: likerId,
|
||||
@@ -384,6 +408,7 @@ exports.createProjectLikeNotification = onDocumentWritten(
|
||||
projectId,
|
||||
likerId,
|
||||
likerName,
|
||||
likeType,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user