feat(i18n): 增强生理周期模块的国际化支持,添加多语言格式和翻译
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import { LinearGradient } from 'expo-linear-gradient';
|
||||
import dayjs, { Dayjs } from 'dayjs';
|
||||
import { LinearGradient } from 'expo-linear-gradient';
|
||||
import React, { useEffect, useMemo, useState } from 'react';
|
||||
import { StyleSheet, Text, TouchableOpacity, View } from 'react-native';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { StyleSheet, Text, TouchableOpacity, View } from 'react-native';
|
||||
|
||||
import { Colors } from '@/constants/Colors';
|
||||
import { fetchMenstrualFlowSamples } from '@/utils/health';
|
||||
import { fetchMenstrualFlowSamples, healthDataEvents } from '@/utils/health';
|
||||
import {
|
||||
buildMenstrualTimeline,
|
||||
convertHealthKitSamplesToCycleRecords,
|
||||
@@ -49,7 +49,10 @@ export const MenstrualCycleCard: React.FC<Props> = ({ onPress }) => {
|
||||
useEffect(() => {
|
||||
let mounted = true;
|
||||
const loadMenstrualData = async () => {
|
||||
setLoading(true);
|
||||
// Avoid setting loading to true for background updates to prevent UI flicker
|
||||
if (records.length === 0) {
|
||||
setLoading(true);
|
||||
}
|
||||
try {
|
||||
const today = dayjs();
|
||||
const startDate = today.subtract(3, 'month').startOf('month').toDate();
|
||||
@@ -72,8 +75,16 @@ export const MenstrualCycleCard: React.FC<Props> = ({ onPress }) => {
|
||||
};
|
||||
|
||||
loadMenstrualData();
|
||||
|
||||
// Listen for data changes
|
||||
const handleDataChange = () => {
|
||||
loadMenstrualData();
|
||||
};
|
||||
healthDataEvents.on('menstrualDataChanged', handleDataChange);
|
||||
|
||||
return () => {
|
||||
mounted = false;
|
||||
healthDataEvents.off('menstrualDataChanged', handleDataChange);
|
||||
};
|
||||
}, []);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user