| 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> |
| ); |
| } |
|
|