@s-ui/react-atom-icon
Version:
> Atom Element: Icon
19 lines • 798 B
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
var _excluded = ["children"];
import PropTypes from 'prop-types';
import { useNearScreen } from '@s-ui/react-hooks/lib/useOnScreen';
import AtomIcon from './Icon.js';
import { jsx as _jsx } from "react/jsx-runtime";
export default function LazyIcon(_ref) {
var children = _ref.children,
restOfProps = _objectWithoutPropertiesLoose(_ref, _excluded);
var _useNearScreen = useNearScreen(),
isIntersecting = _useNearScreen[0],
outerRef = _useNearScreen[1];
return /*#__PURE__*/_jsx(AtomIcon, _extends({}, restOfProps, {
children: isIntersecting ? children : /*#__PURE__*/_jsx("svg", {
ref: outerRef
})
}));
}