full upgrade

This commit is contained in:
2026-01-07 23:13:25 +01:00
parent 4cd3f60c98
commit c5efd28383
23 changed files with 693 additions and 226 deletions

View File

@@ -119,7 +119,7 @@ const SoundWaves = () => {
);
};
// Running animation
// Running animation with smooth wavy motion
const RunningAnimation = () => {
return (
<div className="absolute inset-0 overflow-hidden pointer-events-none">
@@ -127,16 +127,34 @@ const RunningAnimation = () => {
className="absolute bottom-2 text-4xl"
animate={{
x: ["-10%", "110%"],
y: [0, -10, -5, -12, -3, -10, 0, -8, -2, -10, 0],
}}
transition={{
duration: 3,
repeat: Infinity,
ease: "linear",
x: {
duration: 1.2,
repeat: Infinity,
ease: "linear",
},
y: {
duration: 0.4,
repeat: Infinity,
ease: [0.25, 0.1, 0.25, 1], // Smooth cubic bezier for wavy effect
},
}}
>
🏃
</motion.div>
<div className="absolute bottom-2 left-0 right-0 h-0.5 bg-liquid-lime/30" />
<motion.div
className="absolute bottom-2 left-0 right-0 h-0.5 bg-liquid-lime/30"
animate={{
opacity: [0.3, 0.6, 0.3],
}}
transition={{
duration: 0.4,
repeat: Infinity,
ease: "easeInOut",
}}
/>
</div>
);
};
@@ -264,7 +282,9 @@ export const ActivityFeed = () => {
setData(json);
}
} catch (e) {
console.error("Failed to fetch activity", e);
if (process.env.NODE_ENV === 'development') {
console.error("Failed to fetch activity", e);
}
}
};
fetchData();
@@ -301,7 +321,9 @@ export const ActivityFeed = () => {
throw new Error("Chat API failed");
}
} catch (error) {
console.error("Chat error:", error);
if (process.env.NODE_ENV === 'development') {
console.error("Chat error:", error);
}
setChatHistory((prev) => [
...prev,
{
@@ -527,7 +549,7 @@ export const ActivityFeed = () => {
<div
className={`max-w-[85%] p-3 rounded-2xl text-sm ${
msg.role === "user"
? "bg-gradient-to-br from-stone-800 to-stone-900 text-white rounded-tr-none shadow-md"
? "bg-gradient-to-br from-stone-700 to-stone-600 text-white rounded-tr-none shadow-md"
: "bg-gradient-to-br from-white to-stone-50 text-stone-900 shadow-md rounded-tl-none border-2 border-stone-100"
}`}
>
@@ -561,14 +583,14 @@ export const ActivityFeed = () => {
onChange={(e) => setChatMessage(e.target.value)}
placeholder="Ask me anything..."
disabled={isLoading}
className="flex-1 bg-white border-2 border-stone-200 rounded-xl px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-liquid-mint focus:border-transparent disabled:opacity-50 transition-all duration-300"
className="flex-1 bg-white border-2 border-stone-200 rounded-xl px-4 py-3 text-sm text-stone-900 placeholder:text-stone-400 focus:outline-none focus:ring-2 focus:ring-liquid-mint focus:border-transparent disabled:opacity-50 transition-all duration-300"
/>
<motion.button
type="submit"
disabled={isLoading || !chatMessage.trim()}
whileHover={{ scale: 1.05 }}
whileTap={{ scale: 0.95 }}
className="p-3 bg-gradient-to-br from-stone-900 to-stone-800 text-white rounded-xl hover:from-black hover:to-stone-900 transition-all duration-300 disabled:opacity-50 disabled:cursor-not-allowed shadow-lg"
className="p-3 bg-gradient-to-br from-stone-700 to-stone-600 text-white rounded-xl hover:from-stone-600 hover:to-stone-500 transition-all duration-300 disabled:opacity-50 disabled:cursor-not-allowed shadow-lg"
>
<Send size={18} />
</motion.button>