feat(workout): 新增锻炼历史记录功能与健康数据集成

- 新增锻炼历史页面,展示最近一个月的锻炼记录详情
- 添加锻炼汇总卡片组件,在统计页面显示当日锻炼数据
- 集成HealthKit锻炼数据获取,支持多种运动类型和详细信息
- 完善锻炼数据处理工具,包含统计分析和格式化功能
- 优化后台任务,随机选择挑战发送鼓励通知
- 版本升级至1.0.16
This commit is contained in:
2025-10-02 22:13:59 +08:00
parent 303c36025b
commit 79ddd41a49
13 changed files with 1437 additions and 34 deletions

View File

@@ -10,6 +10,7 @@ import StepsCard from '@/components/StepsCard';
import { StressMeter } from '@/components/StressMeter';
import WaterIntakeCard from '@/components/WaterIntakeCard';
import { WeightHistoryCard } from '@/components/weight/WeightHistoryCard';
import { WorkoutSummaryCard } from '@/components/WorkoutSummaryCard';
import { Colors } from '@/constants/Colors';
import { useAppDispatch, useAppSelector } from '@/hooks/redux';
import { useAuthGuard } from '@/hooks/useAuthGuard';
@@ -400,6 +401,11 @@ export default function ExploreScreen() {
<WeightHistoryCard />
<WorkoutSummaryCard
date={currentSelectedDate}
style={styles.workoutCardOverride}
/>
{/* 真正瀑布流布局 */}
<View style={styles.masonryContainer}>
{/* 左列 */}
@@ -422,7 +428,6 @@ export default function ExploreScreen() {
</FloatingCard>
<FloatingCard style={styles.masonryCard}>
<StressMeter
curDate={currentSelectedDate}
@@ -817,6 +822,9 @@ const styles = StyleSheet.create({
borderRadius: 16,
height: '100%', // 填充整个masonryCard
},
workoutCardOverride: {
marginTop: 16,
},
waterCardOverride: {
margin: -16, // 抵消 masonryCard 的 padding
borderRadius: 16,