import React, { useState } from "react"; import { Menu, Printer, Save, Type, Settings, X, Layers, User } from "lucide-react"; import { AuthUser } from "../../types"; interface HeaderProps { user: AuthUser; isSidebarOpen: boolean; setIsSidebarOpen: (open: boolean) => void; activeLayoutPreset: "default" | "writer" | "collab"; editorFontFamily: "sans" | "serif" | "mono"; setEditorFontFamily: (font: "sans" | "serif" | "mono") => void; autoSaveEnabled: boolean; setAutoSaveEnabled: (val: boolean) => void; handlePrintPdf: () => void; handleManualSave: () => void; resolvedTheme: "dark" | "light"; themeMode: "system" | "dark" | "light"; setThemeMode: (theme: "system" | "dark" | "light") => void; documentInputTheme: "modern" | "terminal" | "notebook" | "ivory" | "monokai" | "darcula" | "solarized-dark" | "solarized-light"; setDocumentInputTheme: (theme: any) => void; documentExportTheme: "corporate" | "tech" | "academic" | "sunset" | "midnight"; setDocumentExportTheme: (theme: any) => void; printIncludeCoverPage: boolean; setPrintIncludeCoverPage: (inc: boolean) => void; printIncludeQRCode: boolean; setPrintIncludeQRCode: (inc: boolean) => void; printWatermarkType: "none" | "confidential" | "draft" | "custom"; setPrintWatermarkType: (type: any) => void; printWatermarkText: string; setPrintWatermarkText: (txt: string) => void; prefSyncStatus: "idle" | "syncing" | "synced" | "error"; syncPreferencesToServer: () => void; handleApplyPreset: (preset: "default" | "writer" | "collab") => void; showFolderSidebar: boolean; setShowFolderSidebar: (show: boolean) => void; showAIPanel: boolean; setShowAIPanel: (show: boolean) => void; showLogs: boolean; setShowLogs: (show: boolean) => void; showPreview: boolean; setShowPreview: (show: boolean) => void; showAiTools: boolean; setShowAiTools: (show: boolean) => void; addLog: (text: string, type: "success" | "info" | "sync" | "error") => void; } export default function Header({ user, isSidebarOpen, setIsSidebarOpen, activeLayoutPreset, editorFontFamily, setEditorFontFamily, autoSaveEnabled, setAutoSaveEnabled, handlePrintPdf, handleManualSave, resolvedTheme, themeMode, setThemeMode, documentInputTheme, setDocumentInputTheme, documentExportTheme, setDocumentExportTheme, printIncludeCoverPage, setPrintIncludeCoverPage, printIncludeQRCode, setPrintIncludeQRCode, printWatermarkType, setPrintWatermarkType, printWatermarkText, setPrintWatermarkText, prefSyncStatus, syncPreferencesToServer, handleApplyPreset, showFolderSidebar, setShowFolderSidebar, showAIPanel, setShowAIPanel, showLogs, setShowLogs, showPreview, setShowPreview, showAiTools, setShowAiTools, addLog }: HeaderProps) { const [isPreferencesDropdownOpen, setIsPreferencesDropdownOpen] = useState(false); return (
{/* Logo, Sidebar Toggle Button & Workspace Title */}
DOCUFLOW PRO
Workspace Hub
{/* Minimal navbar right actions: Operator Preferences & Tier Status */}
{/* Prominent Export as PDF Button */} {/* Manual Save Button - visible when Auto-save is disabled */} {!autoSaveEnabled && ( )} {/* Font Family Selector Dropdown for Workspace Editor */}
{/* Preferences & Layout Configuration Dropdown Trigger */} {/* Dropdown menu modal popover overlay */} {isPreferencesDropdownOpen && (
Workspace Settings
{/* Theme options */}
App Theme
{(["system", "dark", "light"] as const).map((t) => ( ))}
{/* Preset Layout Options */}
Layout Preset
{(["default", "writer", "collab"] as const).map((p) => ( ))}
{/* Container checklist controls */}
Workspace Layout Toggles
📁 File Browser
🤖 Chat & Co-pilot
📊 Logs Window
👁️ Live Preview
✨ AI Assistant Tools
💾 Auto-save
{/* Input Themes selectors */}
Editor Panel Themes
{(["modern", "terminal", "notebook", "ivory", "monokai", "darcula", "solarized-dark", "solarized-light"] as const).map((it) => ( ))}
{/* Export Style document themes select */}
PDF Page Themes
{(["corporate", "tech", "academic", "sunset", "midnight"] as const).map((et) => ( ))}
{/* Print & PDF Layout Controls */}
Print Layout Addons
{/* Dynamic Status Watermarks Selection */}
Document Print Watermark
{(["none", "confidential", "draft", "custom"] as const).map((type) => ( ))}
{printWatermarkType === "custom" && (
setPrintWatermarkText(e.target.value.toUpperCase())} maxLength={40} placeholder="CUSTOM WATERMARK E.G. DRAFT V2..." className="w-full text-[9px] px-2 py-1 bg-[#0F1115] border border-slate-850 rounded text-slate-200 font-mono focus:outline-none focus:border-amber-500/50 uppercase tracking-widest placeholder:text-slate-650" />
)}
{/* Synchronizer settings status line */}
Preferences Sync {prefSyncStatus === "syncing" && ( Synchronizing... )} {prefSyncStatus === "synced" && ( ✓ Synced )} {prefSyncStatus === "error" && ( ⚠️ Error )} {prefSyncStatus === "idle" && ( ● Synced )}
)}
{user.tier.toUpperCase()}
{user.email || "Guest"}
); }