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() {
|
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')}
|
||||||
|
|||||||
@@ -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>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user