feat(memberListActivities): show different asset in tooltip

This commit is contained in:
D3SOX 2024-04-15 00:57:07 +02:00
parent f6b3df7b5d
commit b5b43a7900
No known key found for this signature in database
GPG key ID: 39EC1673FC37B048

View file

@ -138,7 +138,7 @@ function getActivityImage(activity: Activity): string | undefined {
return image.replace("spotify:", "https://i.scdn.co/image/"); return image.replace("spotify:", "https://i.scdn.co/image/");
} }
} }
// TODO: we could support other assets here, like showing the small/large image counterpart in comparison to that was shown in the activity list // TODO: we could support other assets here
} }
const ActivityTooltip = ({ activity }: Readonly<{ activity: Activity }>) => { const ActivityTooltip = ({ activity }: Readonly<{ activity: Activity }>) => {
@ -147,7 +147,7 @@ const ActivityTooltip = ({ activity }: Readonly<{ activity: Activity }>) => {
if (activityImage) { if (activityImage) {
return activityImage; return activityImage;
} }
const icon = getApplicationIcons([activity])[0]; const icon = getApplicationIcons([activity], true)[0];
return icon?.image.src; return icon?.image.src;
}, [activity]); }, [activity]);
@ -168,7 +168,7 @@ const ActivityTooltip = ({ activity }: Readonly<{ activity: Activity }>) => {
}; };
function getApplicationIcons(activities: Activity[]) { function getApplicationIcons(activities: Activity[], preferSmall = false) {
const applicationIcons: ApplicationIcon[] = []; const applicationIcons: ApplicationIcon[] = [];
const applications = activities.filter(activity => activity.application_id || activity.platform); const applications = activities.filter(activity => activity.application_id || activity.platform);
@ -197,14 +197,21 @@ function getApplicationIcons(activities: Activity[]) {
} }
}; };
// Prefer large image const smallImage = assets.small_image;
const smallText = assets.small_text ?? "Small Text";
const largeImage = assets.large_image; const largeImage = assets.large_image;
if (largeImage) { const largeText = assets.large_text ?? "Large Text";
addImage(largeImage, assets.large_text ?? "Large Text"); if (preferSmall) {
} else {
const smallImage = assets.small_image;
if (smallImage) { if (smallImage) {
addImage(smallImage, assets.small_text ?? "Small Text"); addImage(smallImage, smallText);
} else if (largeImage) {
addImage(largeImage, largeText);
}
} else {
if (largeImage) {
addImage(largeImage, largeText);
} else if (smallImage) {
addImage(smallImage, smallText);
} }
} }
} else if (application_id) { } else if (application_id) {