import React, { useState, useEffect } from 'react'; import { View, Text, StyleSheet } from 'react-native'; import { Ionicons } from '@expo/vector-icons'; import { useLocalSearchParams } from 'expo-router'; import { Screen } from '@presentation/components/layout/Screen'; import { Header } from '@presentation/components/layout/Header'; import { Button } from '@presentation/components/ui/Button'; import { colors, typography, spacing, radius } from '@shared/theme'; import { resendVerificationUseCase } from '@infrastructure/container'; const COOLDOWN_SECS = 60; /** * Tela de Verificação de E-mail — RU-0 * Mostrada após o cadastro bem-sucedido. */ export default function CheckEmailScreen(): React.ReactElement { const { email } = useLocalSearchParams<{ email: string }>(); const [isLoading, setIsLoading] = useState(false); const [cooldown, setCooldown] = useState(0); const [sent, setSent] = useState(false); useEffect(() => { if (cooldown <= 0) return; const timer = setTimeout(() => setCooldown((c) => c - 1), 1000); return () => clearTimeout(timer); }, [cooldown]); async function handleResend(): Promise { if (!email || cooldown > 0) return; setIsLoading(true); try { await resendVerificationUseCase.execute(email); setSent(true); setCooldown(COOLDOWN_SECS); } finally { setIsLoading(false); } } return (
Confirme seu e-mail Enviamos um link de verificação para o seu e-mail. Clique no link para ativar sua conta e poder fazer login. {email && (