{"version":3,"sources":["useOnChange.ts"],"sourcesContent":["import { useEffect } from \"react\"\nimport { MotionValue } from \"framer\"\n//@ts-ignore\nimport { isMotionValue } from \"./isMotionValue.ts\"\n\nexport type Subscriber<T> = (v: T) => void\n\nexport function useOnChange<T>(\n    value: MotionValue<T> | number | string,\n    callback: Subscriber<T>\n) {\n    useEffect(() =>\n        // @ts-ignore this should be detected as a MV :shrug:\n        isMotionValue(value) ? value.onChange(callback) : undefined\n    )\n}\n\nexport function useMultiOnChange(values: MotionValue[], handler: () => void) {\n    useEffect(() => {\n        const subscriptions = values.map((value) => value.onChange(handler))\n        return () => subscriptions.forEach((unsubscribe) => unsubscribe())\n    })\n}\n"],"names":[],"mappings":"SAAS,SAAS,SAAQ,KAAO;AAEjC,EAAY,AAAZ,UAAY;SACH,aAAa,SAAQ,kBAAoB;gBAIlC,WAAW,CACvB,KAAuC,EACvC,QAAuB,EACzB,CAAC;IACC,SAAS,KACL,EAAqD,AAArD,mDAAqD;QACrD,aAAa,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,SAAS;;AAEnE,CAAC;gBAEe,gBAAgB,CAAC,MAAqB,EAAE,OAAmB,EAAE,CAAC;IAC1E,SAAS,KAAO,CAAC;QACb,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,GAAK,KAAK,CAAC,QAAQ,CAAC,OAAO;;mBACrD,aAAa,CAAC,OAAO,EAAE,WAAW,GAAK,WAAW;;;IACnE,CAAC;AACL,CAAC"}