import React, { useState } from 'react'; import { LayoutTemplate, Menu, Home, Settings, Download, ZoomIn, ZoomOut, X, CalendarDays, Sparkles, Play, FolderOpen } from 'lucide-react'; import { AISettingsPanel } from './settings/AISettingsPanel'; interface TopHeaderProps { currentStep: 'dashboard' | 'brand' | 'studio' | 'express' | 'content-grid' | 'template-builder' | 'production-form'; setCurrentStep: (step: 'dashboard' | 'brand' | 'studio' | 'express' | 'content-grid' | 'template-builder' | 'production-form') => void; /** Open Express editor with blank canvas, no brand */ onStartExpressBlank?: () => void; /** Open Pro editor with blank canvas, no brand */ onStartProBlank?: () => void; outputFormat?: 'video' | 'image'; /** Zoom controls — passed up from StudioWorkspace */ zoom?: number; onZoomIn?: () => void; onZoomOut?: () => void; onZoomReset?: () => void; /** Aspect ratio controls */ aspectRatio?: string; onAspectRatioChange?: (ratio: string) => void; disableAspectControls?: boolean; titleOverride?: React.ReactNode; } export const TopHeader: React.FC = ({ currentStep, setCurrentStep, outputFormat, onStartExpressBlank, onStartProBlank, zoom = 1, onZoomIn, onZoomOut, onZoomReset, aspectRatio = '9:16', onAspectRatioChange, disableAspectControls, titleOverride, }) => { const [menuOpen, setMenuOpen] = useState(false); const [showAISettings, setShowAISettings] = useState(false); const isStudio = currentStep === 'studio'; return (
{/* Left: Hamburger + Logo */}
{/* Dropdown menu */} {menuOpen && ( <>
setMenuOpen(false)} />
{currentStep !== 'brand' && ( )}
)}
{showAISettings && ( setShowAISettings(false)} /> )}
{titleOverride || 'SaaS Branding'}
{/* Center: Zoom controls (only in studio) */} {isStudio && onZoomIn && onZoomOut && (
{/* Aspect ratio pills */} {onAspectRatioChange && !disableAspectControls && ( <>
{(['16:9', '9:16', '1:1', '4:5', '4:3'] as const).map(ratio => ( ))} )}
)} {/* Right: Editor buttons + Format badge */}
{/* Express / Pro buttons — only on dashboard */} {currentStep === 'dashboard' && onStartExpressBlank && ( )} {currentStep === 'dashboard' && onStartProBlank && ( )} {currentStep !== 'content-grid' && ( )} {isStudio && ( {outputFormat === 'image' ? 'Imagen' : 'Video'} )} {currentStep !== 'dashboard' && !isStudio && ( )}
); };