feat: 支持营养圆环

This commit is contained in:
richarjiang
2025-08-31 16:30:08 +08:00
parent 4bb0576d92
commit fe634ba258
8 changed files with 400 additions and 158 deletions

View File

@@ -16,7 +16,7 @@ export default function TabLayout() {
return (
<Tabs
initialRouteName="coach"
initialRouteName="statistics"
screenOptions={({ route }) => {
const routeName = route.name;
const isSelected = (routeName === 'explore' && pathname === ROUTES.TAB_EXPLORE) ||

View File

@@ -1,4 +1,3 @@
import { AnimatedNumber } from '@/components/AnimatedNumber';
import { BasalMetabolismCard } from '@/components/BasalMetabolismCard';
import { DateSelector } from '@/components/DateSelector';
import { FitnessRingsCard } from '@/components/FitnessRingsCard';
@@ -332,7 +331,7 @@ export default function ExploreScreen() {
{/* 营养摄入雷达图卡片 */}
<NutritionRadarCard
nutritionSummary={nutritionSummary}
burnedCalories={basalMetabolism || 0}
burnedCalories={(basalMetabolism || 0) + (activeCalories || 0)}
calorieDeficit={0}
resetToken={animToken}
onMealPress={(mealType: 'breakfast' | 'lunch' | 'dinner' | 'snack') => {
@@ -355,28 +354,6 @@ export default function ExploreScreen() {
/>
</FloatingCard>
<FloatingCard style={styles.masonryCard} delay={500}>
<Text style={styles.cardTitle}></Text>
<View style={{
flexDirection: 'row',
alignItems: 'flex-end',
marginTop: 20
}}>
{activeCalories != null ? (
<AnimatedNumber
value={activeCalories}
resetToken={animToken}
style={styles.caloriesValue}
format={(v) => `${Math.round(v)}`}
/>
) : (
<Text style={styles.caloriesValue}></Text>
)}
<Text style={styles.caloriesUnit}></Text>
</View>
</FloatingCard>
<FloatingCard style={styles.masonryCard}>
<StepsCard
stepCount={stepCount}
@@ -392,6 +369,15 @@ export default function ExploreScreen() {
hrvValue={hrvValue}
/>
</FloatingCard>
{/* 心率卡片 */}
<FloatingCard style={styles.masonryCard} delay={2000}>
<HeartRateCard
resetToken={animToken}
style={styles.basalMetabolismCardOverride}
heartRate={heartRate}
/>
</FloatingCard>
</View>
{/* 右列 */}
@@ -439,14 +425,6 @@ export default function ExploreScreen() {
/>
</FloatingCard>
{/* 心率卡片 */}
<FloatingCard style={styles.masonryCard} delay={2000}>
<HeartRateCard
resetToken={animToken}
style={styles.basalMetabolismCardOverride}
heartRate={heartRate}
/>
</FloatingCard>
</View>
</View>