mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-28 21:42:27 +08:00
- Added new components including CodeEditor, CollapsibleSearchBar, and DraggableList. - Removed obsolete components such as Button, CustomCollapse, and StatusTag. - Updated migration status documentation and adjusted component exports. - Enhanced package.json dependencies for better compatibility.
38 lines
852 B
TypeScript
38 lines
852 B
TypeScript
// Original: src/renderer/src/components/Spinner.tsx
|
|
import { motion } from 'framer-motion'
|
|
import { Search } from 'lucide-react'
|
|
|
|
interface Props {
|
|
text: React.ReactNode
|
|
className?: string
|
|
}
|
|
|
|
// Define variants for the spinner animation
|
|
const spinnerVariants = {
|
|
defaultColor: {
|
|
color: '#2a2a2a'
|
|
},
|
|
dimmed: {
|
|
color: '#8C9296'
|
|
}
|
|
}
|
|
|
|
export default function Spinner({ text, className = '' }: Props) {
|
|
return (
|
|
<motion.div
|
|
className={`flex items-center gap-1 p-0 ${className}`}
|
|
variants={spinnerVariants}
|
|
initial="defaultColor"
|
|
animate={['defaultColor', 'dimmed']}
|
|
transition={{
|
|
duration: 0.8,
|
|
repeat: Infinity,
|
|
repeatType: 'reverse',
|
|
ease: 'easeInOut'
|
|
}}>
|
|
<Search size={16} style={{ color: 'unset' }} />
|
|
<span>{text}</span>
|
|
</motion.div>
|
|
)
|
|
}
|