import type { HTMLAttributes, ReactNode } from 'react';
import type { SpinnerProps } from './Spinner';
import { motion } from 'motion/react';
import { Suspense } from 'react';
import { twMerge } from 'tailwind-merge';
import { Spinner } from './Spinner';
interface LoaderProps extends HTMLAttributes {
children?: ReactNode;
spinner?: SpinnerProps;
}
export function LoaderContainer({
loading = false,
children,
spinner,
className,
}: LoaderProps & {
loading?: boolean;
}) {
return loading ? : {children};
}
export function LoaderSuspense({
children,
spinner,
className,
}: LoaderProps) {
return (
}>
{children}
);
}
function Fallback({
spinner,
className,
}: {
spinner?: SpinnerProps;
className?: string;
}) {
return (
);
}
function LoadedChildren({
children,
className,
}: {
children: ReactNode;
className?: string;
}) {
return (
{children}
);
}