import React from 'react'; import { Navigate, useNavigate } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { YStack, XStack } from '@tamagui/stacks'; import { SizableText as Text } from '@tamagui/text'; import { Pressable } from '@tamagui/react-native-web-lite'; import { MobileShell } from './components/MobileShell'; import { MobileCard, CTAButton } from './components/Primitives'; import { useEventContext } from '../context/EventContext'; import { formatEventDate, resolveEngagementMode, resolveEventDisplayName } from '../lib/events'; import { adminPath } from '../constants'; import { useTheme } from '@tamagui/core'; export default function MobileTasksTabPage() { const { events, activeEvent, hasEvents, selectEvent } = useEventContext(); const { t, i18n } = useTranslation('management'); const navigate = useNavigate(); const theme = useTheme(); const text = String(theme.color?.val ?? '#111827'); const muted = String(theme.gray?.val ?? '#4b5563'); const border = String(theme.borderColor?.val ?? '#e5e7eb'); const primary = String(theme.primary?.val ?? '#007AFF'); const tasksEnabled = resolveEngagementMode(activeEvent ?? null) !== 'photo_only'; if (activeEvent?.slug && tasksEnabled) { return ; } if (activeEvent?.slug && !tasksEnabled) { return ( {t('events.tasks.disabledTitle', 'Task mode is off for this event')} {t('events.tasks.disabledBody', 'Guests see only the photo feed. Enable tasks in the event settings to show them again.')} navigate(adminPath(`/mobile/events/${activeEvent.slug}/edit`))} /> ); } if (!hasEvents) { return ( {t('events.tasks.emptyTitle', 'Create an event first')} {t('events.tasks.emptyBody', 'Start an event to add tasks, challenges, and checklists.')} navigate(adminPath('/mobile/events/new'))} /> ); } const locale = i18n.language?.startsWith('en') ? 'en-GB' : 'de-DE'; return ( {t('events.tasks.pickEvent', 'Pick an event to manage tasks')} {events.map((event) => ( { selectEvent(event.slug ?? null); if (event.slug) { navigate(adminPath(`/mobile/events/${event.slug}/tasks`)); } }} > {resolveEventDisplayName(event)} {formatEventDate(event.event_date, locale) ?? t('events.status.draft', 'Draft')} {t('events.actions.open', 'Open')} ))} ); }