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:
@@ -14,7 +14,7 @@ import { getPrograms, ProgramActivity } from '@/utils/programs';
|
||||
export default function HomeScreen() {
|
||||
const insets = useSafeAreaInsets();
|
||||
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(() => {
|
||||
const fetchAndSetActivities = async () => {
|
||||
@@ -54,8 +54,13 @@ export default function HomeScreen() {
|
||||
return loopDate > todayDate;
|
||||
});
|
||||
|
||||
const tomorrow = new Date(now);
|
||||
tomorrow.setDate(tomorrow.getDate() + 1);
|
||||
const tomorrowStr = formatDate(tomorrow);
|
||||
|
||||
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) {
|
||||
console.error('Failed to load activities for home screen:', error);
|
||||
@@ -98,7 +103,7 @@ export default function HomeScreen() {
|
||||
<View style={styles.innerContainer}>
|
||||
{todaysActivity && (
|
||||
<FeatureCard
|
||||
badgeText={`Today, ${todaysActivity.time || 'All Day'}`}
|
||||
badgeText={`Şu gün, ${todaysActivity.time}`}
|
||||
title={todaysActivity.title}
|
||||
description={todaysActivity.description}
|
||||
image={require('@/assets/images/aisha.jpg')}
|
||||
@@ -107,7 +112,7 @@ export default function HomeScreen() {
|
||||
|
||||
{nextDayActivity && (
|
||||
<FeatureCard
|
||||
badgeText={`${nextDayActivity.dateStr}, ${nextDayActivity.time || 'All Day'}`}
|
||||
badgeText={`${nextDayActivity.dayLabel}, ${nextDayActivity.time}`}
|
||||
title={nextDayActivity.title}
|
||||
description={nextDayActivity.description}
|
||||
image={require('@/assets/images/aisha.jpg')}
|
||||
|
||||
@@ -79,12 +79,12 @@ export default function Programs() {
|
||||
return (
|
||||
<View style={[styles.container, { backgroundColor: Colors[colorScheme].background, paddingTop: insets.top }]}>
|
||||
<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>
|
||||
|
||||
{isStale && (
|
||||
<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>
|
||||
)}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user