'use client' import { useState, useEffect, Suspense } from 'react' import { Container, Box, Typography, Button, Card, CardContent, CircularProgress, Alert } from '@mui/material' import { CheckCircle, ChatBubble, AutoAwesome, EmojiEvents, Favorite } from '@mui/icons-material' import { useRouter, useSearchParams } from 'next/navigation' import { useTranslations, useLocale } from 'next-intl' import Link from 'next/link' function SuccessContent() { const router = useRouter() const searchParams = useSearchParams() const locale = useLocale() const t = useTranslations('subscription') const [loading, setLoading] = useState(true) const [error, setError] = useState('') useEffect(() => { // Verify session and refresh user data const sessionId = searchParams.get('session_id') if (!sessionId) { setError(t('errors.noSession')) setLoading(false) return } // Give webhooks a moment to process, then verify the user's subscription const timer = setTimeout(async () => { try { const token = localStorage.getItem('authToken') if (!token) { router.push(`/${locale}/login`) return } // Refresh user profile to confirm upgrade const response = await fetch('/api/user/profile', { headers: { 'Authorization': `Bearer ${token}` } }) if (response.ok) { const data = await response.json() if (data.user.subscriptionTier === 'premium') { setLoading(false) } else { setError(t('errors.upgradeNotConfirmed')) setLoading(false) } } else { setError(t('errors.loadFailed')) setLoading(false) } } catch (err) { console.error('Error verifying subscription:', err) setError(t('errors.generic')) setLoading(false) } }, 2000) // Wait 2 seconds for webhook processing return () => clearTimeout(timer) }, [searchParams, router, locale, t]) if (loading) { return ( {t('success.verifying')} ) } if (error) { return ( {error} ) } return ( {/* Success Header */} {t('success.title')} {t('success.subtitle')} {t('success.message')} {/* Premium Benefits */} {t('success.benefitsTitle')} {t('success.benefits.unlimited.title')} {t('success.benefits.unlimited.description')} {t('success.benefits.priority.title')} {t('success.benefits.priority.description')} {t('success.benefits.support.title')} {t('success.benefits.support.description')} {/* Action Buttons */} {/* Additional Info */} {t('success.receiptInfo')} ) } export default function SubscriptionSuccessPage() { return ( } > ) }