import React, { useState } from 'react'; import { Header } from './components/Header'; import { HarmonizationNoticeBanner } from './components/HarmonizationNoticeBanner'; import { NavigationSidebar } from './components/NavigationSidebar'; import { UnifiedDocumentContent } from './components/UnifiedDocumentContent'; import { VerificationPanel } from './components/VerificationPanel'; import { TabsManifestView } from './components/TabsManifestView'; import { HarmonizationSummaryView } from './components/HarmonizationSummaryView'; import { DocumentExportModal } from './components/DocumentExportModal'; export default function App() { const [activeTab, setActiveTab] = useState<'document' | 'verification' | 'summary' | 'tabsManifest'>('document'); const [activePartId, setActivePartId] = useState('part-1'); const [searchQuery, setSearchQuery] = useState(''); const [showLineNumbers, setShowLineNumbers] = useState(false); const [fontSize, setFontSize] = useState<'small' | 'medium' | 'large'>('medium'); const [isExportModalOpen, setIsExportModalOpen] = useState(false); const handleSelectPart = (partId: string) => { setActivePartId(partId); if (activeTab !== 'document') { setActiveTab('document'); } // Smooth scroll to the target element setTimeout(() => { const element = document.getElementById(partId); if (element) { element.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }, 50); }; return (
{/* App Header */}
setIsExportModalOpen(true)} /> {/* Harmonization status alert banner */}
{/* Main Content Area */}
{activeTab === 'document' && (
{/* Sidebar navigation */} {/* Document body */}
)} {activeTab === 'verification' && ( )} {activeTab === 'tabsManifest' && ( )} {activeTab === 'summary' && ( )}
{/* Printable version of the document container (for window.print()) */}
{/* Export Modal */} setIsExportModalOpen(false)} /> {/* Footer */}
); }