// Metro module 3959 (f3960). import { useCallback, useEffect, useRef, useState } from "react"; import { useDisposableMemo } from "./Module3954"; export function useRiveTrigger(a0, a1, a2) { let c13755_0 = a0; const onTrigger = (a2 == null ? {} : a2).onTrigger; const ref = useRef(void 0); const ref2 = useRef(false); const ref3 = useRef(onTrigger); ref3.current = onTrigger; const disposableMemo = useDisposableMemo(() => { if (a1) { return a1.triggerProperty(c13755_0); } }, (a0) => a0 == null ? void 0 : a0.dispose(), [a1, a0], ref); if (ref.current) { ref2.current = true; } const [error, setState] = useState(null); useEffect(() => { setState(null); }, [a0, a1]); useEffect(() => { if (a1 && !disposableMemo) { setState(new Error(`Property "${c13755_0}" not found in the ViewModel instance`)); } }, [a1, disposableMemo, a0]); useEffect(() => { if (disposableMemo) { let c24897_0 = disposableMemo.addListener(() => { const current = ref3.current; if (current != null) { current.call(ref3); } }); return () => { try { c24897_0(); } catch ($e) {} }; } }, [disposableMemo]); return { trigger: useCallback(() => { if (ref.current) { ref.current.trigger(); } else { const current = ref2.current; const r4 = console; const concat = HermesInternal.concat; if (current) { r4.warn(concat.call("useRiveTrigger: trigger('", c13755_0, "') called after dispose. The property has been cleaned up — this is likely a stale closure from an async callback that fired after unmount.")); } else { r4.warn(concat.call("useRiveTrigger: trigger('", c13755_0, "') called but the property is not available yet. The viewModelInstance may still be loading.")); } } }, [a0]), error }; }