import ImgTotalSvg from "@/assets/icons/svg/imgTotalWhite.svg"; import LiveTotalSvg from "@/assets/icons/svg/liveTotal.svg"; import PeopleSvg from "@/assets/icons/svg/people.svg"; import TimeTotalSvg from "@/assets/icons/svg/timeTotalWhite.svg"; import VideoTotalSvg from "@/assets/icons/svg/videoTotalWhite.svg"; import { BlurView } from "expo-blur"; import { Image, StyleProp, StyleSheet, View, ViewStyle } from "react-native"; import { ThemedText } from "../ThemedText"; interface CategoryProps { title: string; data: { title: string, number: { s: number, m: number, h: number } | number }[]; bgSvg: string | null; style?: StyleProp; width: number; } const TimeUnit = ({ value, unit }: { value: number; unit: string }) => ( value > 0 && ( <> {value} {unit} ) ); const CategoryComponent = ({ title, data, bgSvg, style, width }: CategoryProps) => { const renderTimeDisplay = (time: { s: number; m: number; h: number }) => { const { h, m, s } = time; const showSeconds = s > 0 || (s === 0 && m === 0 && h === 0); return ( {showSeconds && ( <> {s} s )} ); }; return ( {data.map((item, index) => ( { index == 0 ? : index == 1 ? : index == 2 ? : } {item.title} {item?.title === "Length" ? ( typeof item.number === 'object' ? ( renderTimeDisplay(item.number) ) : ( {item.number} ) ) : ( {typeof item.number === 'number' ? item.number : 0} )} ))} {title} ); }; const styles = StyleSheet.create({ container: { borderRadius: 32, overflow: 'hidden', position: 'relative', aspectRatio: 1, }, backgroundContainer: { ...StyleSheet.absoluteFillObject, width: "100%", height: "100%", }, overlay: { ...StyleSheet.absoluteFillObject, backgroundColor: 'rgba(0, 0, 0, 0.4)', backdropFilter: 'blur(5px)', }, content: { padding: 32, paddingRight: 16, justifyContent: "space-between", flex: 1 }, titleContent: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center', position: 'relative', width: '100%', paddingVertical: 4 }, title: { color: 'white', fontSize: 20, fontWeight: '700', textShadowColor: 'rgba(0, 0, 0, 0.5)', textShadowOffset: { width: 1, height: 1 }, textShadowRadius: 2, position: 'absolute', textAlign: 'center', width: '100%', zIndex: 1, }, item: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', paddingVertical: 16, width: '100%', }, itemTitle: { color: 'white', fontSize: 22, fontWeight: '700', marginLeft: 16, flex: 1, }, itemNumber: { color: 'white', fontSize: 28, lineHeight: 30, fontWeight: '700', textAlign: 'left', flex: 1, } }); export default CategoryComponent;