Spaces:
Sleeping
Sleeping
File size: 866 Bytes
d97b8f9 | 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 | 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; |