29 lines
773 B
TypeScript
29 lines
773 B
TypeScript
interface LoadingSpinnerProps {
|
|
size?: 'sm' | 'md' | 'lg';
|
|
className?: string;
|
|
}
|
|
|
|
export default function LoadingSpinner({ size = 'md', className = '' }: LoadingSpinnerProps) {
|
|
const sizeClasses = {
|
|
sm: 'w-4 h-4',
|
|
md: 'w-8 h-8',
|
|
lg: 'w-12 h-12',
|
|
};
|
|
|
|
return (
|
|
<div className={`inline-block ${sizeClasses[size]} ${className}`}>
|
|
<div className="animate-spin rounded-full border-2 border-gray-300 border-t-theme-accent" />
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export function FullPageSpinner() {
|
|
return (
|
|
<div className="min-h-screen flex items-center justify-center theme-bg">
|
|
<div className="text-center">
|
|
<LoadingSpinner size="lg" className="mb-4" />
|
|
<p className="theme-text">Loading StoryCove...</p>
|
|
</div>
|
|
</div>
|
|
);
|
|
} |