Files
discord-decomp/_bundle/Module3959.js
T
2026-11-01 12:12:55 +02:00

61 lines
1.9 KiB
JavaScript

// 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
};
}