Spaces:
Running
Running
File size: 1,626 Bytes
1904e4c 978caa8 1904e4c 978caa8 1904e4c 978caa8 1904e4c 978caa8 1904e4c 978caa8 1904e4c 978caa8 1904e4c 978caa8 1904e4c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
import { Brain } from "lucide-react";
import { useState, useEffect } from "react";
export const ThinkingAnimation = () => {
const [dots, setDots] = useState(0);
useEffect(() => {
const interval = setInterval(() => {
setDots((prev) => (prev + 1) % 4);
}, 400);
return () => clearInterval(interval);
}, []);
return (
<div className="flex items-center gap-2 px-4 py-1">
<div className="thinking-brain-svg relative flex items-center justify-center">
<Brain className="h-4 w-4 text-financial-accent" />
<div className="thinking-waves-enhanced flex items-center justify-center absolute inset-0">
<span className="block absolute border-4 border-financial-accent/20 bg-financial-accent/20 rounded-full animate-[ripple_1.5s_ease-out_infinite]"></span>
<span className="block absolute border-4 border-financial-accent/30 bg-financial-accent/20 rounded-full animate-[ripple_1.5s_ease-out_0.4s_infinite]"></span>
<span className="block absolute border-4 border-financial-accent/40 bg-financial-accent/20 rounded-full animate-[ripple_1.5s_ease-out_0.8s_infinite]"></span>
</div>
</div>
<span className="text-sm font-medium text-financial-accent flex items-center">
Thinking
<span className="thinking-dots-container ml-2">
{Array(3).fill(0).map((_, i) => (
<span
key={i}
className={`thinking-dot ${i <= dots ? 'thinking-dot-active bg-financial-accent' : 'bg-financial-accent/30'}`}
></span>
))}
</span>
</span>
</div>
);
};
|