@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
35 lines • 1.51 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.useTableHasScroll = void 0;
const react_1 = __importDefault(require("react"));
const resizeObserver_1 = require("../../../utils/resizeObserver/resizeObserver");
const hasScroll_1 = require("../../../utils/scroll/hasScroll");
const useTableHasScroll = ({ ref, disabled = false, }) => {
const [hasScroll, setHasScroll] = react_1.default.useState(false);
react_1.default.useEffect(() => {
const scrollableContainer = ref.current?.querySelector?.('[data-table-scrollable-container]');
let resizeObserver;
if (scrollableContainer instanceof HTMLElement && !disabled) {
const handleElementResize = (element) => {
setHasScroll((0, hasScroll_1.hasScroll)(element));
};
handleElementResize(scrollableContainer);
resizeObserver = new resizeObserver_1.ResizeObserver(() => {
handleElementResize(scrollableContainer);
});
resizeObserver.observe(scrollableContainer);
}
if (disabled) {
setHasScroll(false);
}
return () => {
resizeObserver?.disconnect();
};
}, [disabled]);
return { hasScroll };
};
exports.useTableHasScroll = useTableHasScroll;
//# sourceMappingURL=useTableHasScroll.js.map