All files / atom/icon/src LazyIcon.js

33.33% Statements 1/3
0% Branches 0/2
0% Functions 0/1
33.33% Lines 1/3

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16                        1x      
import PropTypes from 'prop-types'
 
import {useNearScreen} from '@s-ui/react-hooks/lib/useOnScreen'
 
import AtomIcon from './Icon.js'
 
export default function LazyIcon({children, ...restOfProps}) {
  const [isIntersecting, outerRef] = useNearScreen()
 
  return <AtomIcon {...restOfProps}>{isIntersecting ? children : <svg ref={outerRef} />}</AtomIcon>
}
 
LazyIcon.propTypes = {
  children: PropTypes.element
}