import React from 'react'; import { View, Text, StyleSheet, Dimensions } from 'react-native'; import { LinearGradient } from 'expo-linear-gradient'; import { Ionicons } from '@expo/vector-icons'; import { theme } from '../styles/theme'; const { width } = Dimensions.get('window'); interface ActivityWidgetProps { steps: number; calories: number; duration: number; // in minutes } export function ActivityWidget({ steps, calories, duration }: ActivityWidgetProps) { return ( Daily Activity {steps.toLocaleString()} Steps {calories} Kcal {duration}m Active {/* Simple Bar Chart Visualization */} {[0.4, 0.6, 0.3, 0.8, 0.5, 0.9, 0.7].map((height, index) => ( {['M', 'T', 'W', 'T', 'F', 'S', 'S'][index]} ))} ); } const styles = StyleSheet.create({ container: { marginHorizontal: 20, marginBottom: 20, }, card: { borderRadius: 24, padding: 20, borderWidth: 1, borderColor: 'rgba(255, 255, 255, 0.1)', }, header: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', marginBottom: 20, }, title: { fontSize: 18, fontWeight: '700', color: '#fff', }, statsRow: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', marginBottom: 24, }, statItem: { alignItems: 'center', flex: 1, }, iconContainer: { width: 40, height: 40, borderRadius: 20, justifyContent: 'center', alignItems: 'center', marginBottom: 8, }, statValue: { fontSize: 20, fontWeight: '700', color: '#fff', marginBottom: 2, }, statLabel: { fontSize: 12, color: theme.colors.gray400, fontWeight: '500', }, divider: { width: 1, height: 40, backgroundColor: 'rgba(255, 255, 255, 0.1)', }, chartContainer: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'flex-end', height: 80, paddingTop: 10, borderTopWidth: 1, borderTopColor: 'rgba(255, 255, 255, 0.1)', }, barContainer: { alignItems: 'center', gap: 8, }, bar: { width: 6, borderRadius: 3, opacity: 0.8, }, dayLabel: { fontSize: 10, color: theme.colors.gray500, fontWeight: '600', }, });