UNPKG

motion-v

Version:

<h1 align="center"> <img width="35" height="35" alt="Motion logo" src="https://github.com/user-attachments/assets/00d6d1c3-72c4-4c2f-a664-69da13182ffc" /><br />Motion for Vue</h1>

26 lines (25 loc) 758 B
import { cancelFrame, frame, motionValue } from "motion-dom"; import { getCurrentInstance, onUnmounted } from "vue"; function useCombineMotionValues(combineValues) { const value = motionValue(combineValues()); const updateValue = () => value.set(combineValues()); const scheduleUpdate = () => frame.preRender(updateValue, false, true); let subscriptions; const subscribe = (values) => { subscriptions = values.map((v) => v.on("change", scheduleUpdate)); }; const unsubscribe = () => { subscriptions.forEach((unsubscribe$1) => unsubscribe$1()); cancelFrame(updateValue); }; if (getCurrentInstance()) onUnmounted(() => { unsubscribe(); }); return { subscribe, unsubscribe, value, updateValue }; } export { useCombineMotionValues };