'use client' import * as React from 'react' import Link from 'next/link' import { Search, Settings, Plus, BookOpen, BarChart2 } from 'lucide-react' import { Button } from '@/components/ui/button' import { ThemeToggle } from '@/components/ThemeToggle' interface HeaderProps { showSearchFilter?: boolean showScanButtons?: boolean showBackButton?: boolean backHref?: string backLabel?: string onSearchClick?: () => void onFilterClick?: () => void onQuickScan?: () => void coffeeUrl?: string } export function Header({ showSearchFilter = true, showScanButtons = false, showBackButton = false, backHref, backLabel, onSearchClick, onFilterClick, onQuickScan, coffeeUrl, }: HeaderProps) { const [mobileMenuOpen, setMobileMenuOpen] = React.useState(false) return (
{/* Back button - only on course/watch pages */} {showBackButton && backHref && ( {backLabel || 'Back'} )} {/* Logo - Text + Icon */} OfflineAcademy

OfflineAcademy

Your Offline Learning Hub

{/* Desktop Controls */}
{showSearchFilter && ( <> )} {showScanButtons && ( <> {onQuickScan && ( )} )}
{coffeeUrl ? ( Support on Ko-fi ) : null}
{/* Mobile Menu Button */}
{/* Mobile Menu */} {mobileMenuOpen && (
{showSearchFilter && ( <> )} {showScanButtons && ( <> {onQuickScan && ( )} setMobileMenuOpen(false)}> )} setMobileMenuOpen(false)}> setMobileMenuOpen(false)}>
)}
) }