import { Activity, Archive, Folder, FolderPlus, MessageSquare, Plus, RefreshCw, Search, X, PanelLeftClose } from 'lucide-react'; import type { TFunction } from 'i18next'; import { Button, Input, Tooltip } from '../../../../shared/view/ui'; import { IS_PLATFORM } from '../../../../constants/config'; import { cn } from '../../../../lib/utils'; import type { SidebarSearchMode } from '../../types/types'; import GitHubStarBadge from './GitHubStarBadge'; const MOD_KEY = typeof navigator !== 'undefined' && /Mac|iPhone|iPad/.test(navigator.platform) ? '⌘' : 'Ctrl'; type SidebarHeaderProps = { isPWA: boolean; isMobile: boolean; isLoading: boolean; projectsCount: number; runningSessionsCount: number; archivedSessionsCount: number; isArchivedSessionsLoading: boolean; searchFilter: string; onSearchFilterChange: (value: string) => void; onClearSearchFilter: () => void; searchMode: SidebarSearchMode; onSearchModeChange: (mode: SidebarSearchMode) => void; onRefresh: () => void; isRefreshing: boolean; onCreateProject: () => void; onCollapseSidebar: () => void; t: TFunction; }; export default function SidebarHeader({ isPWA, isMobile, isLoading, projectsCount, runningSessionsCount, archivedSessionsCount, isArchivedSessionsLoading, searchFilter, onSearchFilterChange, onClearSearchFilter, searchMode, onSearchModeChange, onRefresh, isRefreshing, onCreateProject, onCollapseSidebar, t, }: SidebarHeaderProps) { const showSearchTools = (projectsCount > 0 || runningSessionsCount > 0 || archivedSessionsCount > 0 || isArchivedSessionsLoading) && !isLoading; const searchPlaceholder = searchMode === 'conversations' ? t('search.conversationsPlaceholder') : searchMode === 'archived' ? t('search.archivedPlaceholder', 'Search archived sessions...') : searchMode === 'running' ? t('search.runningPlaceholder', 'Search running sessions...') : t('projects.searchPlaceholder'); const runningBadgeText = runningSessionsCount > 99 ? '99+' : String(runningSessionsCount); const LogoBlock = () => (