pmtool / src /components /asset-management /shared /LoadingSpinner.tsx
devarshia5's picture
Upload 487 files
d97b8f9 verified
Raw
History Blame Contribute Delete
866 Bytes
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;