import { useState, useRef, lazy, Suspense } from 'react' import { useTranslation } from 'react-i18next' import { Navbar } from '@/components/Navbar' import { Card, CardContent } from '@/components/ui/card' import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs' import { User, Palette, Copy } from 'lucide-react' import type { CustomVoiceFormHandle } from '@/components/tts/CustomVoiceForm' import type { VoiceDesignFormHandle } from '@/components/tts/VoiceDesignForm' import { HistorySidebar } from '@/components/HistorySidebar' import { OnboardingDialog } from '@/components/OnboardingDialog' import FormSkeleton from '@/components/FormSkeleton' import LoadingScreen from '@/components/LoadingScreen' import { useUserPreferences } from '@/contexts/UserPreferencesContext' const CustomVoiceForm = lazy(() => import('@/components/tts/CustomVoiceForm')) const VoiceDesignForm = lazy(() => import('@/components/tts/VoiceDesignForm')) const VoiceCloneForm = lazy(() => import('@/components/tts/VoiceCloneForm')) function Home() { const { t } = useTranslation('nav') const [currentTab, setCurrentTab] = useState('custom-voice') const [sidebarOpen, setSidebarOpen] = useState(false) const { preferences } = useUserPreferences() const customVoiceFormRef = useRef(null) const voiceDesignFormRef = useRef(null) if (!preferences) { return } const showOnboarding = !preferences.onboarding_completed return (
{}} />
setSidebarOpen(!sidebarOpen)} />
{t('customVoiceTab')} {t('voiceDesignTab')} {t('voiceCloneTab')} }> }> }>
) } export default Home