mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-15 21:03:52 +02:00
45 lines
1023 B
JavaScript
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
|
|
};
|
|
}
|