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