Merge branch 'dev' into production
Some checks failed
CI / CD / deploy-dev (push) Has been cancelled
CI / CD / deploy-production (push) Has been cancelled
CI / CD / test-build (push) Has been cancelled

This commit is contained in:
2026-04-23 23:06:31 +02:00
2 changed files with 24 additions and 24 deletions

View File

@@ -165,10 +165,10 @@ export default function ActivityFeed({
)} )}
{data?.gaming?.isPlaying && ( {data?.gaming?.isPlaying && (
<motion.div initial={{ opacity: 0, y: 10 }} animate={{ opacity: 1, y: 0 }} className="bg-indigo-500/5 dark:bg-indigo-500/10 border border-indigo-500/20 rounded-2xl p-5"> <motion.div initial={{ opacity: 0, y: 10 }} animate={{ opacity: 1, y: 0 }} className="bg-indigo-500/10 dark:bg-indigo-500/20 border border-indigo-500/20 dark:border-indigo-400/30 rounded-2xl p-5">
<div className="flex items-center gap-3 mb-3"> <div className="flex items-center gap-3 mb-3">
<Gamepad2 size={14} className="text-indigo-600 dark:text-indigo-400" /> <Gamepad2 size={14} className="text-indigo-600 dark:text-indigo-300" />
<span className="text-[10px] font-black uppercase tracking-widest text-indigo-600 dark:text-indigo-400">{t("gaming")}</span> <span className="text-[10px] font-black uppercase tracking-widest text-indigo-600 dark:text-indigo-300">{t("gaming")}</span>
</div> </div>
<div className="flex gap-4"> <div className="flex gap-4">
{data.gaming.image && ( {data.gaming.image && (
@@ -178,7 +178,7 @@ export default function ActivityFeed({
)} )}
<div className="min-w-0 flex flex-col justify-center"> <div className="min-w-0 flex flex-col justify-center">
<p className="font-bold text-stone-900 dark:text-white text-base truncate">{data.gaming.name}</p> <p className="font-bold text-stone-900 dark:text-white text-base truncate">{data.gaming.name}</p>
<p className="text-xs text-stone-500 dark:text-white/50 truncate"> <p className="text-xs text-stone-600 dark:text-stone-300 truncate">
{getSafeGamingText(data.gaming.details, data.gaming.state, t("inGame"))} {getSafeGamingText(data.gaming.details, data.gaming.state, t("inGame"))}
</p> </p>
</div> </div>

View File

@@ -41,28 +41,28 @@ function updatePresence(guild) {
type: a.type, type: a.type,
details: a.details || null, details: a.details || null,
state: a.state || null, state: a.state || null,
assets: a.assets image: null,
? { applicationId: a.applicationId || null,
large_image: a.assets.largeImage || null,
large_text: a.assets.largeText || null,
small_image: a.assets.smallImage || null,
small_text: a.assets.smallText || null,
}
: null,
timestamps: a.timestamps
? {
start: a.timestamps.start?.toISOString() || null,
end: a.timestamps.end?.toISOString() || null,
}
: null,
}; };
if (a.applicationId && a.assets?.largeImage) { if (a.applicationId && a.assets?.largeImage) {
const imgId = a.assets.largeImage.startsWith("mp:external") const imgKey = a.assets.largeImage;
? `https://media.discordapp.net/${a.assets.largeImage.replace("mp:", "")}` entry.image = imgKey.startsWith("mp:external")
: `https://cdn.discordapp.com/app-assets/${a.applicationId}/${a.assets.largeImage}.png`; ? `https://media.discordapp.net/${imgKey.replace("mp:", "")}`
entry.image = imgId; : `https://cdn.discordapp.com/app-assets/${a.applicationId}/${imgKey}.png`;
} else if (a.assets?.largeImage) { }
entry.image = `https://cdn.discordapp.com/app-assets/0/${a.assets.largeImage}.png`; if (a.assets) {
entry.assets = {
large_image: a.assets.largeImage || null,
large_text: a.assets.largeText || null,
small_image: a.assets.smallImage || null,
small_text: a.assets.smallText || null,
};
}
if (a.timestamps) {
entry.timestamps = {
start: a.timestamps.start?.toISOString() || null,
end: a.timestamps.end?.toISOString() || null,
};
} }
return entry; return entry;
}) })