Refactor HomeScreen activity state and update UI labels

- Changed state management for next day's activity to use 'dayLabel' instead of 'dateStr'.
- Updated logic to determine the day label for next day's activity.
- Modified badge text in HomeScreen to reflect the new label and improved localization for today's activity.
This commit is contained in:
Mekan1206
2025-09-20 14:24:33 +05:00
parent fa0465ee1a
commit 2c7884b9ff
2 changed files with 11 additions and 6 deletions

View File

@@ -14,7 +14,7 @@ import { getPrograms, ProgramActivity } from '@/utils/programs';
export default function HomeScreen() { export default function HomeScreen() {
const insets = useSafeAreaInsets(); const insets = useSafeAreaInsets();
const [todaysActivity, setTodaysActivity] = useState<ProgramActivity | null>(null); const [todaysActivity, setTodaysActivity] = useState<ProgramActivity | null>(null);
const [nextDayActivity, setNextDayActivity] = useState<(ProgramActivity & { dateStr: string }) | null>(null); const [nextDayActivity, setNextDayActivity] = useState<(ProgramActivity & { dayLabel: string }) | null>(null);
useEffect(() => { useEffect(() => {
const fetchAndSetActivities = async () => { const fetchAndSetActivities = async () => {
@@ -54,8 +54,13 @@ export default function HomeScreen() {
return loopDate > todayDate; return loopDate > todayDate;
}); });
const tomorrow = new Date(now);
tomorrow.setDate(tomorrow.getDate() + 1);
const tomorrowStr = formatDate(tomorrow);
if (nextDateStr && activities[nextDateStr].length > 0) { if (nextDateStr && activities[nextDateStr].length > 0) {
setNextDayActivity({ ...activities[nextDateStr][0], dateStr: nextDateStr }); const dayLabel = nextDateStr === tomorrowStr ? 'Ertir' : nextDateStr;
setNextDayActivity({ ...activities[nextDateStr][0], dayLabel });
} }
} catch (error) { } catch (error) {
console.error('Failed to load activities for home screen:', error); console.error('Failed to load activities for home screen:', error);
@@ -98,7 +103,7 @@ export default function HomeScreen() {
<View style={styles.innerContainer}> <View style={styles.innerContainer}>
{todaysActivity && ( {todaysActivity && (
<FeatureCard <FeatureCard
badgeText={`Today, ${todaysActivity.time || 'All Day'}`} badgeText={`Şu gün, ${todaysActivity.time}`}
title={todaysActivity.title} title={todaysActivity.title}
description={todaysActivity.description} description={todaysActivity.description}
image={require('@/assets/images/aisha.jpg')} image={require('@/assets/images/aisha.jpg')}
@@ -107,7 +112,7 @@ export default function HomeScreen() {
{nextDayActivity && ( {nextDayActivity && (
<FeatureCard <FeatureCard
badgeText={`${nextDayActivity.dateStr}, ${nextDayActivity.time || 'All Day'}`} badgeText={`${nextDayActivity.dayLabel}, ${nextDayActivity.time}`}
title={nextDayActivity.title} title={nextDayActivity.title}
description={nextDayActivity.description} description={nextDayActivity.description}
image={require('@/assets/images/aisha.jpg')} image={require('@/assets/images/aisha.jpg')}

View File

@@ -79,12 +79,12 @@ export default function Programs() {
return ( return (
<View style={[styles.container, { backgroundColor: Colors[colorScheme].background, paddingTop: insets.top }]}> <View style={[styles.container, { backgroundColor: Colors[colorScheme].background, paddingTop: insets.top }]}>
<View style={styles.header}> <View style={styles.header}>
<Text style={[styles.title, { color: Colors[colorScheme].text }]}>Umrah Pilgrimage</Text> <Text style={[styles.title, { color: Colors[colorScheme].text }]}>Respisaniýa</Text>
</View> </View>
{isStale && ( {isStale && (
<View style={styles.warningContainer}> <View style={styles.warningContainer}>
<Text style={styles.warningText}>Failed to fetch latest data. Showing cached activities.</Text> <Text style={styles.warningText}>Soňky maglumatlary almak başartmady. Saklanan çäreler görkezilýär.</Text>
</View> </View>
)} )}