50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
// Metro module 6658 (f6659).
|
|
import { useMemo } from "react";
|
|
import { View } from "react-native";
|
|
import { createStyles } from "../../Styles/native/createStyles";
|
|
import FastImage from "../../../../components_native/common/FastImage";
|
|
import { isImage } from "../../../../_bundle/Module3901";
|
|
import { isRive } from "../../../../_bundle/Module3999";
|
|
let c4260_6, useStyles, RiveGraphic;
|
|
const ImageGraphic = function ImageGraphic(props) {
|
|
return <FastImage source={props.src} style={useStyles().image} resizeMode="contain" accessibilityElementsHidden />;
|
|
};
|
|
RiveGraphic = function RiveGraphic(props) {
|
|
const { rive: Rive, riveProps = {} } = props;
|
|
const styles = useStyles();
|
|
return <View style={styles.image}>
|
|
<Rive {...riveProps} style={styles.image} />
|
|
</View>;
|
|
};
|
|
c4260_6 = {
|
|
"21/9": 2.3333333333333335,
|
|
"16/9": 1.7777777777777777,
|
|
"6/4": 1.5,
|
|
"2/1": 2,
|
|
"1/1": 1
|
|
};
|
|
useStyles = createStyles({
|
|
container: {
|
|
width: "100%",
|
|
justifyContent: "center",
|
|
alignItems: "center",
|
|
overflow: "hidden"
|
|
},
|
|
image: {
|
|
width: "100%",
|
|
height: "100%"
|
|
}
|
|
});
|
|
export function Graphic(props) {
|
|
const { aspectRatio = "16/9", style, ...rest } = props;
|
|
let c15818_0 = rest;
|
|
return <View style={[useStyles().container, {
|
|
aspectRatio: c4260_6[aspectRatio]
|
|
}, style]}>
|
|
{useMemo(() => {
|
|
const props = c15818_0;
|
|
return isImage(props) ? <ImageGraphic {...props} /> : isRive(props) ? <RiveGraphic {...props} /> : null;
|
|
}, [rest])}
|
|
</View>;
|
|
}
|