Spaces:
Sleeping
Sleeping
| import React from 'react'; | |
| import { Loader2 } from 'lucide-react'; | |
| import { cn } from '@/lib/utils'; | |
| interface LoadingSpinnerProps { | |
| size?: 'sm' | 'md' | 'lg'; | |
| className?: string; | |
| text?: string; | |
| } | |
| const LoadingSpinner: React.FC<LoadingSpinnerProps> = ({ | |
| size = 'md', | |
| className, | |
| text | |
| }) => { | |
| const sizeClasses = { | |
| sm: 'h-4 w-4', | |
| md: 'h-6 w-6', | |
| lg: 'h-8 w-8' | |
| }; | |
| const textSizeClasses = { | |
| sm: 'text-sm', | |
| md: 'text-base', | |
| lg: 'text-lg' | |
| }; | |
| return ( | |
| <div className={cn('flex items-center justify-center gap-2', className)}> | |
| <Loader2 className={cn('animate-spin', sizeClasses[size])} /> | |
| {text && ( | |
| <span className={cn('text-muted-foreground', textSizeClasses[size])}> | |
| {text} | |
| </span> | |
| )} | |
| </div> | |
| ); | |
| }; | |
| export default LoadingSpinner; |