Files
meal-planner/src/components/caregiver/LoadingSpinner.tsx

39 lines
748 B
TypeScript

"use client";
import { Loader2 } from "lucide-react";
import { cn } from "@/lib/utils";
interface LoadingSpinnerProps {
fullPage?: boolean;
size?: "sm" | "md" | "lg";
className?: string;
}
const sizeClasses = {
sm: "h-4 w-4",
md: "h-8 w-8",
lg: "h-12 w-12",
};
export function LoadingSpinner({
fullPage = false,
size = "md",
className,
}: LoadingSpinnerProps) {
const spinner = (
<Loader2
className={cn("animate-spin text-primary", sizeClasses[size], className)}
/>
);
if (fullPage) {
return (
<div className="min-h-screen flex items-center justify-center bg-muted/50">
{spinner}
</div>
);
}
return <div className="flex items-center justify-center p-8">{spinner}</div>;
}