nice-ui
Version:
React design system, components, and utilities
22 lines (21 loc) • 762 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.ScrollToView = void 0;
const React = require("react");
const ScrollToView = ({ scroll, children }) => {
const ref = React.useRef();
React.useEffect(() => {
if (!scroll)
return;
if (!ref.current)
return;
const el = ref.current;
const rect1 = el.getBoundingClientRect();
const rect2 = el.parentElement.getBoundingClientRect();
if (rect1.y + rect1.height < rect2.y + 16 || rect1.y > rect2.y + rect2.height - 16) {
el.scrollIntoView({ behavior: 'smooth' });
}
}, [scroll]);
return React.createElement("div", { ref: ref }, children);
};
exports.ScrollToView = ScrollToView;
;