fix: build and test stability for design overhaul
Some checks failed
Dev Deployment (Zero Downtime) / deploy-dev (push) Failing after 9m19s
Some checks failed
Dev Deployment (Zero Downtime) / deploy-dev (push) Failing after 9m19s
Fixed missing types, import errors, and updated test suites to match the new editorial design. Verified Docker container build.
This commit is contained in:
@@ -1,15 +1,13 @@
|
||||
"use client";
|
||||
|
||||
import React, { useEffect, useState } from "react";
|
||||
import Image from "next/image";
|
||||
import { motion } from "framer-motion";
|
||||
import { Code2, Disc3, Gamepad2, Zap, Quote as QuoteIcon } from "lucide-react";
|
||||
import { Disc3, Gamepad2, Zap, Quote as QuoteIcon } from "lucide-react";
|
||||
|
||||
interface StatusData {
|
||||
status: { text: string; color: string; };
|
||||
music: { isPlaying: boolean; track: string; artist: string; album: string; albumArt: string; url: string; } | null;
|
||||
music: { isPlaying: boolean; track: string; artist: string; albumArt: string; url: string; } | null;
|
||||
gaming: { isPlaying: boolean; name: string; image: string | null; state?: string | number; details?: string | number; } | null;
|
||||
coding: { isActive: boolean; project?: string; file?: string; language?: string; stats?: { time: string; topLang: string; topProject: string; }; } | null;
|
||||
coding: { isActive: boolean; project?: string; file?: string; language?: string; } | null;
|
||||
customActivities?: Record<string, any>;
|
||||
}
|
||||
|
||||
@@ -64,7 +62,7 @@ export default function ActivityFeed({
|
||||
);
|
||||
setHasActivity(isActive);
|
||||
onActivityChange?.(isActive);
|
||||
} catch (error) {
|
||||
} catch {
|
||||
setHasActivity(false);
|
||||
onActivityChange?.(false);
|
||||
}
|
||||
@@ -118,10 +116,16 @@ export default function ActivityFeed({
|
||||
<span className="text-[10px] font-black uppercase tracking-widest text-indigo-400">Gaming</span>
|
||||
</div>
|
||||
<div className="flex gap-4">
|
||||
{data.gaming.image && <div className="w-12 h-12 rounded-xl overflow-hidden shrink-0 shadow-lg"><img src={data.gaming.image} className="w-full h-full object-cover" /></div>}
|
||||
{data.gaming.image && (
|
||||
<div className="w-12 h-12 rounded-xl overflow-hidden shrink-0 shadow-lg relative">
|
||||
<img src={data.gaming.image} alt={data.gaming.name} className="w-full h-full object-cover" />
|
||||
</div>
|
||||
)}
|
||||
<div className="min-w-0 flex flex-col justify-center">
|
||||
<p className="font-bold text-white text-base truncate">{data.gaming.name}</p>
|
||||
<p className="text-xs text-white/50 truncate">In Game</p>
|
||||
<p className="text-xs text-white/50 truncate">
|
||||
{getSafeGamingText(data.gaming.details, data.gaming.state, "In Game")}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</motion.div>
|
||||
@@ -134,7 +138,9 @@ export default function ActivityFeed({
|
||||
<span className="text-[10px] font-black uppercase tracking-widest text-white/40">Listening</span>
|
||||
</div>
|
||||
<div className="flex gap-4">
|
||||
<div className="w-12 h-12 rounded-xl overflow-hidden shrink-0 shadow-2xl"><img src={data.music.albumArt} className="w-full h-full object-cover" /></div>
|
||||
<div className="w-12 h-12 rounded-xl overflow-hidden shrink-0 shadow-2xl relative">
|
||||
<img src={data.music.albumArt} alt="Album Art" className="w-full h-full object-cover" />
|
||||
</div>
|
||||
<div className="min-w-0 flex flex-col justify-center">
|
||||
<p className="font-bold text-white text-base truncate">{data.music.track}</p>
|
||||
<p className="text-xs text-white/50 truncate">{data.music.artist}</p>
|
||||
|
||||
Reference in New Issue
Block a user