// Metro module 8516 (f8517).
import { useState, useMemo, useCallback } from "react";
import { Image as Image2, View } from "react-native";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../_bundle/Module712";
import ReanimatedRexport, { useSharedValue, useAnimatedStyle } from "../../../reanimated/ReanimatedRexport";
import { getGenreText } from "../../../../utils/SKUUtils";
import Module4611 from "../../../../_bundle/Module4611";
import GameProfileRankPill from "./GameProfileRankPill";
import { Text } from "../../../../design/components/Text/native/Text";
const useStyles = createStyles({
container: {
backgroundColor: Module712.colors.BACKGROUND_BASE_LOWEST
},
artHero: {
width: "100%",
position: "absolute",
top: 0,
bottom: -Module712.space.PX_80,
left: 0,
right: 0
},
artHeroImage: {
height: "100%",
width: "100%",
resizeMode: "cover"
},
artHeroGradient: {
position: "absolute",
top: 0,
bottom: 0,
left: 0,
right: 0
},
headerContent: {
paddingTop: Module712.space.PX_32,
paddingHorizontal: Module712.space.PX_16,
gap: Module712.space.PX_12,
flexDirection: "row",
alignItems: "flex-end",
maxWidth: 520,
alignSelf: "center",
width: "100%"
},
shadowContainer: {
borderRadius: Module712.radii.sm,
...Module712.shadows.SHADOW_LOW
},
coverContainer: {
width: 85,
height: 114,
borderRadius: Module712.radii.sm,
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW,
overflow: "hidden"
},
iconContainer: {
width: 85,
height: 85,
borderRadius: Module712.radii.sm,
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW,
overflow: "hidden"
},
image: {
width: "100%",
height: "100%"
},
titleContainer: {
flex: 1,
flexDirection: "column",
alignItems: "flex-start"
},
textShadow: {
textShadowColor: Module712.colors.BLACK,
textShadowOffset: {
width: 0,
height: 0
},
textShadowRadius: 1
}
});
const __initData = {
code: "function GameProfileHeaderTsx1(){const{effectiveScrollY}=this.__closure;return{top:-Math.max(0,-effectiveScrollY.get())};}"
};
export default function GameProfileHeader(props) {
let sharedValue;
const game = props.game;
let scrollY = props.scrollY;
const onHeightMeasured = props.onHeightMeasured;
sharedValue = void 0;
const styles = useStyles();
const [state] = useState(() => Math.random());
const sharedValue2 = useSharedValue(0);
if (scrollY == null) {
scrollY = sharedValue2;
}
sharedValue = scrollY;
const _ = function _() {
return {
top: -Math.max(0, -sharedValue.get())
};
};
_.__closure = {
effectiveScrollY: sharedValue
};
_.__workletHash = 1177397229282;
_.__initData = __initData;
const animatedStyle = useAnimatedStyle(_);
const name = game?.name;
const r43 = game == null ? void 0 : game.genres.map(getGenreText).join(", ");
const l30Rank = game?.l30Rank;
const memo = useMemo(() => {
let r3 = game == null ? void 0 : game.getBannerURL(1024);
if (r3 == null) {
r3 = game?.screenshotUrls != null ? game.screenshotUrls.length > 0 ? game.screenshotUrls[Math.floor(state * game.screenshotUrls.length)] : null : null;
}
return r3;
}, [game, state]);
const memo2 = useMemo(() => game == null ? void 0 : game.getCoverURL(114), [game]);
const memo3 = useMemo(() => game == null ? void 0 : game.getIconURL(114), [game]);
const props2 = {
style: styles.container,
onLayout: useCallback((a0) => {
if (onHeightMeasured != null) {
onHeightMeasured(a0.nativeEvent.layout.height);
}
}, [onHeightMeasured]),
children: null
};
props2.children = [
{memo != null && }
,
} : {
style: styles.iconContainer,
children: memo3 != null &&
}} />
{l30Rank != null && }
{name}
{r43 != null ? r43 !== "" ? {r43} : null : null}
];
return ;
};