Files
ETB/ETB-FrontEnd/node_modules/motion-dom/dist/es/value/subscribe-value.mjs
Iliyan Angelov 306b20e24a Frontend start
2025-09-14 00:54:48 +03:00

14 lines
501 B
JavaScript

import { cancelFrame, frame } from '../frameloop/frame.mjs';
function subscribeValue(inputValues, outputValue, getLatest) {
const update = () => outputValue.set(getLatest());
const scheduleUpdate = () => frame.preRender(update, false, true);
const subscriptions = inputValues.map((v) => v.on("change", scheduleUpdate));
outputValue.on("destroy", () => {
subscriptions.forEach((unsubscribe) => unsubscribe());
cancelFrame(update);
});
}
export { subscribeValue };