303 lines
8.7 KiB
React
303 lines
8.7 KiB
React
// 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 && <RiveView file={riveFile} hybridRef={setHybridRef} artboardName={artboard} autoPlay dataBind={dataBind} style={[styles.fill, style]} {...stateMachine != null ? {
|
|
stateMachineName: stateMachine
|
|
} : {}} {...fit != null ? {
|
|
fit: FIT_MAP[fit]
|
|
} : {}} {...alignment != null ? {
|
|
alignment: ALIGNMENT_MAP[alignment]
|
|
} : {}} {...layoutScaleFactor != null ? {
|
|
layoutScaleFactor
|
|
} : {}} />, ,];
|
|
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 <View style={style2}>{r140}</View>;
|
|
});
|
|
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]);
|
|
}
|