import React from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import { YStack, XStack } from '@tamagui/stacks'; import { SizableText as Text } from '@tamagui/text'; import { Button } from '@tamagui/button'; import { Input } from '@tamagui/input'; import { Card } from '@tamagui/card'; import { useTranslation } from '@/guest/i18n/useTranslation'; import { useEventData } from '../context/EventDataContext'; import { useGuestIdentity } from '../context/GuestIdentityContext'; import EventLogo from '../components/EventLogo'; import { useGuestThemeVariant } from '../lib/guestTheme'; export default function ProfileSetupScreen() { const { token } = useParams<{ token: string }>(); const navigate = useNavigate(); const { t } = useTranslation(); const { event, status } = useEventData(); const identity = useGuestIdentity(); const { isDark } = useGuestThemeVariant(); const primaryText = isDark ? '#F8FAFF' : '#0F172A'; const mutedText = isDark ? 'rgba(226, 232, 240, 0.7)' : 'rgba(15, 23, 42, 0.6)'; const cardBackground = isDark ? 'rgba(15, 23, 42, 0.75)' : 'rgba(255, 255, 255, 0.9)'; const cardBorder = isDark ? 'rgba(148, 163, 184, 0.18)' : 'rgba(15, 23, 42, 0.12)'; const [nameDraft, setNameDraft] = React.useState(identity.name ?? ''); const [saving, setSaving] = React.useState(false); React.useEffect(() => { if (identity.hydrated) { setNameDraft(identity.name ?? ''); } }, [identity.hydrated, identity.name]); const handleSubmit = React.useCallback(() => { if (!token) { return; } const trimmed = nameDraft.trim(); if (!trimmed) { return; } setSaving(true); identity.setName(trimmed); navigate(`/e/${encodeURIComponent(token)}`); }, [identity, nameDraft, navigate, token]); if (status === 'loading' || status === 'idle') { return ( {t('profileSetup.loading')} ); } if (!event) { return ( {t('profileSetup.error.default')} ); } return ( {event.name} {t('profileSetup.card.description')} {t('profileSetup.form.label')} ); }