mango-v4-ui/components/shared/SheenLoader.tsx

30 lines
796 B
TypeScript
Raw Normal View History

2022-09-08 18:00:47 -07:00
import { useTheme } from 'next-themes'
2022-07-23 21:27:54 -07:00
import { ReactNode } from 'react'
// Children should be a shape or set of shapes with a bg color to animate over
2022-08-15 04:28:36 -07:00
const SheenLoader = ({
children,
className,
}: {
children: ReactNode
className?: string
}) => {
2022-09-08 18:00:47 -07:00
const { theme } = useTheme()
2022-07-23 21:27:54 -07:00
return (
<div className="flex items-center">
<div
2022-09-08 18:00:47 -07:00
className={`relative ${className} overflow-hidden before:absolute before:inset-0 before:-translate-x-full before:animate-[shimmer_4s_infinite] before:bg-gradient-to-r before:from-transparent ${
theme === 'Light'
? 'before:via-[rgba(0,0,0,0.1)]'
: 'before:via-[rgba(255,255,255,0.1)]'
} before:to-transparent`}
>
{children}
2022-07-23 21:27:54 -07:00
</div>
</div>
)
}
export default SheenLoader