Delay, and lazily load Marquees

This commit is contained in:
Belen Curcio
2020-11-05 18:06:59 -03:00
parent b6160b44ab
commit cc72658c99
5 changed files with 25 additions and 8876 deletions

View File

@@ -2,6 +2,7 @@ import cn from 'classnames'
import s from './Marquee.module.css'
import { FC, ReactNode, Component } from 'react'
import Ticker from 'react-ticker'
import { useInView } from 'react-intersection-observer'
interface Props {
className?: string
@@ -9,7 +10,11 @@ interface Props {
variant?: 'primary' | 'secondary'
}
const M: FC<Props> = ({ className = '', children, variant = 'primary' }) => {
const Maquee: FC<Props> = ({
className = '',
children,
variant = 'primary',
}) => {
const rootClassName = cn(
s.root,
{
@@ -18,14 +23,20 @@ const M: FC<Props> = ({ className = '', children, variant = 'primary' }) => {
},
className
)
const [ref, inView] = useInView({
triggerOnce: true,
rootMargin: '200px 0px',
})
console.log(inView)
return (
<div className={rootClassName}>
<Ticker offset={80}>
{({ index }) => <div className={s.container}>{children}</div>}
</Ticker>
<div className={rootClassName} ref={ref}>
{inView ? (
<Ticker offset={80}>
{() => <div className={s.container}>{children}</div>}
</Ticker>
) : null}
</div>
)
}
export default M
export default Maquee