// Metro module 3918 (f3919). import { forwardRef, useContext, useMemo, useImperativeHandle, useEffect, useRef } from "react"; import { Image as Image2, PixelRatio, View, StyleSheet, Platform } from "react-native"; import { useRiveFile, useRive, useViewModelInstance, DataBindMode, RiveView, useRiveNumber, useRiveString, useRiveBoolean, useRiveColor, useRiveEnum, useRiveTrigger, RiveImages } from "./DataBindByName"; import { AccessibilityPreferencesContext } from "./Module3908"; import { useManaContext } from "./Module3965"; import { useRivePlayback } from "./Module3966"; import { FIT_MAP, ALIGNMENT_MAP } from "./Module3967"; function $mk73297($env) { return () => { const r1 = $env; r1[2].current = r1[1]; }; } function $mk73298($env) { return () => { const r2 = $env; const r4 = r2[0]; if (r4 !== void 0) { const r3 = r2[2]; const current3 = r3.current; if (current3 != null) { current3.call(r3, r4); } } }; } Platform; const styles = StyleSheet.create({ container: { flexGrow: 1 }, fill: { flex: 1 }, hidden: { opacity: 0 } }); const r33 = forwardRef(function BaseRiveInner(props, a1) { let play, pause; const { src, style, artboard, artboardProperties, artboardViewModelInstances, defaultViewModelInstance, referencedAssets, stateMachine, fit, alignment, withReducedMotion = "halt", renderDataBinding } = props; play = void 0; pause = void 0; let riveFile = useRiveFile(src, referencedAssets != null ? { referencedAssets } : void 0).riveFile; const rive = useRive(); const { riveViewRef, setHybridRef } = rive; const isReady = riveViewRef != null; const enabled = useContext(AccessibilityPreferencesContext).reducedMotion.enabled; const experiments = useManaContext().experiments; const r3 = experiments == null; let appStatePlaybackEnabled = void 0; if (!r3) { const enabledExperiments = experiments.enabledExperiments; appStatePlaybackEnabled = enabledExperiments == null ? void 0 : enabledExperiments.includes("rive-app-state-playback"); } if (appStatePlaybackEnabled == null) { appStatePlaybackEnabled = false; } const layoutScaleFactor = fit === "layout" ? PixelRatio.get() : void 0; let r62 = artboardViewModelInstances[artboard]; if (r62 == null) { r62 = []; } const r64 = r62.length > 0; const memo = useMemo(() => defaultViewModelInstance, []); let instance = useViewModelInstance(memo == null ? r64 ? riveFile == null ? null : riveFile : null : riveFile == null ? null : riveFile, { artboardName: artboard, instanceName: memo }).instance; const dataBind = instance == null ? DataBindMode.None : instance; const r83 = artboardProperties[artboard]?.reducedMotion != null; const rivePlayback = useRivePlayback(riveViewRef, { isReady, appStatePlaybackEnabled, shouldShortLoopForReducedMotion: enabled && !r83 && withReducedMotion !== "play" }); play = rivePlayback.play; pause = rivePlayback.pause; const playIfNeeded = rivePlayback.playIfNeeded; useImperativeHandle(a1, () => ({ play, pause }), [play, pause]); const style2 = [styles.container, isReady ? void 0 : styles.hidden]; const r140 = [riveFile != null && , ,]; const r141 = renderDataBinding == null; let r142 = void 0; if (!r141) { if (instance == null) { instance = null; } if (riveFile == null) { riveFile = null; } r142 = renderDataBinding({ instance, file: riveFile, reducedMotionEnabled: enabled, playIfNeeded }); } r140[1] = r142; return {r140}; }); export { r33 as BaseRive }; export function useNumberBinding(a0, a1, a2, a3, a4) { let env13735; const riveNumber = useRiveNumber(a0, a1); const { setValue, value: value2 } = riveNumber; useEffect(() => { if (a2 != null) { setValue(typeof a2 === "number" ? Number.isNaN(a2) ? Number.isNaN(parseFloat(a2.toString())) ? 0 : parseFloat(a2.toString()) : a2 : Number.isNaN(parseFloat(a2.toString())) ? 0 : parseFloat(a2.toString())); if (a4 != null) { a4(); } } }, [a2, setValue, a4]); const r21 = env13735 = {}; env13735[0] = value2; env13735[1] = a3; env13735[2] = void 0; env13735[2] = useRef(a3); useEffect($mk73297(r21), [a3]); useEffect($mk73298(r21), [value2]); } export function useStringBinding(a0, a1, a2, a3, a4) { let env13737; const riveString = useRiveString(a0, a1); const { setValue: setValue2, value: value2 } = riveString; useEffect(() => { if (a2 != null) { setValue2(a2.toString()); if (a4 != null) { a4(); } } }, [a2, setValue2, a4]); const r21 = env13737 = {}; env13737[0] = value2; env13737[1] = a3; env13737[2] = void 0; env13737[2] = useRef(a3); useEffect($mk73297(r21), [a3]); useEffect($mk73298(r21), [value2]); } export function useBooleanBinding(a0, a1, a2, a3, a4) { let env13739; const riveBoolean = useRiveBoolean(a0, a1); const { setValue: setValue3, value: value2 } = riveBoolean; useEffect(() => { if (a2 != null) { setValue3(Boolean(a2)); if (a4 != null) { a4(); } } }, [a2, setValue3, a4]); const r21 = env13739 = {}; env13739[0] = value2; env13739[1] = a3; env13739[2] = void 0; env13739[2] = useRef(a3); useEffect($mk73297(r21), [a3]); useEffect($mk73298(r21), [value2]); } export function useColorBinding(a0, a1, a2, a3, a4) { let ref; const current = a3; const riveColor = useRiveColor(a0, a1); const { setValue: setValue4, value } = riveColor; useEffect(() => { if (a2 != null) { setValue4(a2.toString()); if (a4 != null) { a4(); } } }, [a2, setValue4, a4]); ref = useRef(a3); useEffect(() => { ref.current = current; }, [a3]); useEffect(() => { if (value != null) { const current3 = ref.current; if (current3 != null) { current3.call(ref, value.toInt()); } } }, [value]); } export function useEnumBinding(a0, a1, a2, a3, a4) { let env13742; const riveEnum = useRiveEnum(a0, a1); const { setValue: setValue5, value: value2 } = riveEnum; useEffect(() => { if (a2 != null) { setValue5(a2.toString()); if (a4 != null) { a4(); } } }, [a2, setValue5, a4]); const r21 = env13742 = {}; env13742[0] = value2; env13742[1] = a3; env13742[2] = void 0; env13742[2] = useRef(a3); useEffect($mk73297(r21), [a3]); useEffect($mk73298(r21), [value2]); } export function useTriggerBinding(a0, a1, a2, a3, a4) { const trigger = useRiveTrigger(a0, a1, a3 != null ? { onTrigger: a3 } : void 0).trigger; useEffect(() => { let r4 = a2; if (typeof r4 !== "boolean") { r4 = a2 !== 0 && a2 != null; } if (r4) { trigger(); if (a4 != null) { a4(); } } }, [a2, trigger, a4]); } export function useImageBinding(a0, a1, a2, a3, a4) { let ref2; const current2 = a3; useEffect(() => { if (a1 != null) { if (a2 != null) { let c24894_0 = false; let r16 = a2; if (typeof r16 === "number") { r16 = Image2.resolveAssetSource(a2).uri; } RiveImages.loadFromURLAsync(r16).then((result) => { if (!c24894_0) { const r6 = a1.imageProperty(a0); if (r6 != null) { r6.set(result); } if (a4 != null) { a4(); } } }).catch(() => {}); return () => { c24894_0 = true; }; } } }, [a0, a1, a2, a4]); ref2 = useRef(a3); useEffect(() => { ref2.current = current2; }, [a3]); useEffect(() => { if (a1 != null) { const r5 = a1.imageProperty(a0); if (r5 != null) { return r5.addListener(() => { const current3 = ref2.current; return current3 == null ? void 0 : current3.call(ref2); }); } } }, [a0, a1]); } export function useArtboardBinding(a0, a1, a2, a3, a4) { useEffect(() => { if (a1 != null) { if (a2 != null) { if (typeof a3 === "string") { try { const r7 = a1.artboardProperty(a0); if (r7 != null) { r7.set(a2.getBindableArtboard(a3)); } if (a4 != null) { a4(); } } catch ($e) {} } } } }, [a0, a1, a2, a3, a4]); }