File size: 703 Bytes
9b72f0d
 
db78b1a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9b72f0d
db78b1a
 
 
 
 
 
 
9b72f0d
 
 
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
import cn from "@utils/classnames.ts";

type LoaderSize = "xs" | "sm" | "md" | "lg";

interface LoaderProps {
  className?: string;
  size?: LoaderSize;
}

const sizeClasses: Record<LoaderSize, string> = {
  xs: "h-3 w-3 border-2",
  sm: "h-4 w-4 border-2",
  md: "h-8 w-8 border-4",
  lg: "h-12 w-12 border-[5px]",
};

export default function Loader({ className = "", size = "md" }: LoaderProps) {
  return (
    <div className={cn(className, "flex items-center justify-center")}>
      <div
        className={cn(
          "animate-spin rounded-full border-gray-300 border-t-yellow-500 dark:border-gray-600 dark:border-t-yellow-400",
          sizeClasses[size]
        )}
      />
    </div>
  );
}