@corvu/utils
Version:
Utilities for corvu
34 lines (31 loc) • 862 B
JavaScript
import { access } from '../chunk/ZV6G25TT.js';
import { createSignal, createEffect, onCleanup } from 'solid-js';
var createSize = (props) => {
const [size, setSize] = createSignal(0);
createEffect(() => {
const element = access(props.element);
if (!element) return;
syncSize(element);
const observer = new ResizeObserver(resizeObserverCallback);
observer.observe(element);
onCleanup(() => {
observer.disconnect();
});
});
const resizeObserverCallback = ([entry]) => {
syncSize(entry.target);
};
const syncSize = (element) => {
switch (access(props.dimension)) {
case "width":
setSize(element.offsetWidth);
break;
case "height":
setSize(element.offsetHeight);
break;
}
};
return size;
};
var size_default = createSize;
export { size_default as default };