import React, { useState, useRef, useEffect, useCallback, Suspense, lazy } from 'react'; import './index.css'; import { useAppStore } from './store'; import SearchableSelect from './components/SearchableSelect'; import DirectionDialog from './components/DirectionDialog'; // Lazy-load heavy/conditional components so they don't bloat the initial bundle. const AudioTrimmer = lazy(() => import('./components/AudioTrimmer')); const Launchpad = lazy(() => import('./pages/Launchpad')); const CloneDesignTab = lazy(() => import('./pages/CloneDesignTab')); const DubTab = lazy(() => import('./pages/DubTab')); const Sidebar = lazy(() => import('./components/Sidebar')); const CompareModal = lazy(() => import('./components/CompareModal')); const Settings = lazy(() => import('./pages/Settings')); const VoiceProfile = lazy(() => import('./pages/VoiceProfile')); const BatchQueue = lazy(() => import('./pages/BatchQueue')); const ToolsPage = lazy(() => import('./pages/ToolsPage')); const SetupWizard = lazy(() => import('./pages/SetupWizard')); const KeyboardCheatsheet = lazy(() => import('./components/KeyboardCheatsheet')); const VoicePreview = lazy(() => import('./components/VoicePreview')); const LogsFooter = lazy(() => import('./components/LogsFooter')); const ProjectsPage = lazy(() => import('./pages/Projects')); const VoiceGallery = lazy(() => import('./pages/VoiceGallery')); const DonatePage = lazy(() => import('./pages/DonatePage')); const EnterprisePage = lazy(() => import('./pages/EnterprisePage')); const TranscriptionsPage = lazy(() => import('./pages/Transcriptions')); const StoriesEditor = lazy(() => import('./components/StoriesEditor')); import Header from './components/Header'; import NavRail from './components/NavRail'; import ErrorBoundary from './components/ErrorBoundary'; import FloatingPill from './components/FloatingPill'; import useRealtimeEvents from './hooks/useRealtimeEvents'; import { BootstrapSplash, useBootstrapStage } from './components/BootstrapSplash'; import './components/Misc.css'; import { askConfirm } from './utils/dialog'; import useRecording from './hooks/useRecording'; import useSegmentEditing from './hooks/useSegmentEditing'; import useAppData from './hooks/useAppData'; import useProfiles from './hooks/useProfiles'; import useTTS from './hooks/useTTS'; import useDubWorkflow from './hooks/useDubWorkflow'; const LazyFallback = () =>