@pmndrs/uikit
Version:
Build performant 3D user interfaces with Three.js and yoga.
24 lines (23 loc) • 710 B
JavaScript
import { abortableEffect } from './utils.js';
export function setupLayoutListeners(l1, l2, size, abortSignal) {
abortableEffect(() => {
const s = size.value;
if (s == null) {
return;
}
l1.peek()?.onSizeChange?.(...s);
l2.peek()?.onSizeChange?.(...s);
}, abortSignal);
}
export function setupClippedListeners(l1, l2, isClippedSignal, abortSignal) {
let first = true;
abortableEffect(() => {
const isClipped = isClippedSignal.value;
if (first) {
first = false;
return;
}
l1.peek()?.onIsClippedChange?.(isClipped);
l2.peek()?.onIsClippedChange?.(isClipped);
}, abortSignal);
}