@kubit-ui-web/react-components
Version:
Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience
28 lines • 1.15 kB
JavaScript
import React from 'react';
import { ResizeObserver } from '../../../utils/resizeObserver/resizeObserver';
import { hasScroll as checkHasSroll } from '../../../utils/scroll/hasScroll';
export const useTableHasScroll = ({ ref, disabled = false, }) => {
const [hasScroll, setHasScroll] = React.useState(false);
React.useEffect(() => {
const scrollableContainer = ref.current?.querySelector?.('[data-table-scrollable-container]');
let resizeObserver;
if (scrollableContainer instanceof HTMLElement && !disabled) {
const handleElementResize = (element) => {
setHasScroll(checkHasSroll(element));
};
handleElementResize(scrollableContainer);
resizeObserver = new ResizeObserver(() => {
handleElementResize(scrollableContainer);
});
resizeObserver.observe(scrollableContainer);
}
if (disabled) {
setHasScroll(false);
}
return () => {
resizeObserver?.disconnect();
};
}, [disabled]);
return { hasScroll };
};
//# sourceMappingURL=useTableHasScroll.js.map