29 lines
636 B
TypeScript
29 lines
636 B
TypeScript
// Loading Spinner Component
|
|
import { clsx } from 'clsx';
|
|
import './LoadingSpinner.css';
|
|
|
|
interface LoadingSpinnerProps {
|
|
size?: 'small' | 'medium' | 'large';
|
|
fullPage?: boolean;
|
|
className?: string;
|
|
}
|
|
|
|
export default function LoadingSpinner({ size = 'medium', fullPage = false, className }: LoadingSpinnerProps) {
|
|
const spinner = (
|
|
<div className={clsx('loading-spinner', `loading-spinner--${size}`, className)}>
|
|
<div className="loading-spinner__circle" />
|
|
</div>
|
|
);
|
|
|
|
if (fullPage) {
|
|
return (
|
|
<div className="loading-spinner__overlay">
|
|
{spinner}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
return spinner;
|
|
}
|
|
|