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