2021-06-05 15:13:38 -03:00

46 lines
996 B
TypeScript

import cn from 'classnames'
import s from './Marquee.module.css'
import { FC, ReactNode, Component, Children } from 'react'
import Ticker from 'react-ticker'
interface MarqueeProps {
className?: string
children?: ReactNode[] | Component[] | any[]
variant?: 'primary' | 'secondary'
}
const Marquee: FC<MarqueeProps> = ({
className = '',
children,
variant = 'primary',
}) => {
const rootClassName = cn(
s.root,
{
[s.primary]: variant === 'primary',
[s.secondary]: variant === 'secondary',
},
className
)
return (
<div className={rootClassName}>
<Ticker offset={80}>
{() => (
<div className={s.container}>
{Children.map(children, (child) => ({
...child,
props: {
...child.props,
className: cn(child.props.className, `${variant}`),
},
}))}
</div>
)}
</Ticker>
</div>
)
}
export default Marquee