Files
VRCX/src/composables/useTableHeight.js
2026-01-05 02:54:38 +13:00

45 lines
1023 B
JavaScript

import { onMounted, onUnmounted, ref } from 'vue';
export function useTableHeight(tableRef, options = {}) {
const containerRef = ref(null);
const offset = options.offset ?? 127;
const immediate = options.immediate ?? true;
let resizeObserver;
const setTableHeight = () => {
if (!tableRef?.value || !containerRef.value) {
return;
}
tableRef.value.tableProps = {
...(tableRef.value.tableProps || {}),
// @ts-ignore default is null
height: containerRef.value.clientHeight - offset
};
};
onMounted(() => {
if (immediate) {
setTableHeight();
}
resizeObserver = new ResizeObserver(() => {
setTableHeight();
});
if (containerRef.value) {
resizeObserver.observe(containerRef.value);
}
});
onUnmounted(() => {
resizeObserver?.disconnect();
});
return {
containerRef,
setTableHeight
};
}