import React from 'react'; import { useLocation } from 'react-router-dom'; import { BellIcon, SunIcon, MoonIcon, Bars3Icon, Cog6ToothIcon, MagnifyingGlassIcon, XMarkIcon, CheckIcon, } from '@heroicons/react/24/outline'; import { ChevronLeftIcon } from '@heroicons/react/24/outline'; import { useUiStore, HUES, type BrandHue } from '../../stores/uiStore'; const CRUMBS: Record = { '/admin/dashboard': ['داشبورد'], '/admin/users': ['کاربران'], '/admin/doctors': ['پزشکان'], '/admin/clinics': ['کلینیک‌ها'], '/admin/appointments': ['مدیریت', 'نوبت‌ها'], '/admin/payments': ['مدیریت', 'پرداخت‌ها'], '/admin/settlements': ['مدیریت', 'تسویه‌حساب'], '/admin/comments': ['محتوا', 'نظرات'], '/admin/ratings': ['محتوا', 'امتیازها'], '/admin/blogs': ['محتوا', 'بلاگ'], '/admin/sms': ['محتوا', 'پیامک'], '/admin/categories': ['سیستم', 'دسته‌بندی‌ها'], '/admin/representations': ['سیستم', 'نمایندگان'], '/admin/secretaries': ['سیستم', 'منشی‌ها'], }; function getCrumbs(pathname: string): string[] { if (CRUMBS[pathname]) return CRUMBS[pathname]; const entry = Object.entries(CRUMBS).find(([k]) => pathname.startsWith(k + '/')); return entry ? entry[1] : ['داشبورد']; } interface Props { onMobileMenuOpen?: () => void; } export default function Topbar({ onMobileMenuOpen }: Props) { const location = useLocation(); const toggleSidebar = useUiStore((s) => s.toggleSidebar); const darkMode = useUiStore((s) => s.darkMode); const toggleDarkMode = useUiStore((s) => s.toggleDarkMode); const density = useUiStore((s) => s.density); const setDensity = useUiStore((s) => s.setDensity); const brandHue = useUiStore((s) => s.brandHue); const setBrandHue = useUiStore((s) => s.setBrandHue); const sidebarOpen = useUiStore((s) => s.sidebarOpen); const settingsPanelOpen = useUiStore((s) => s.settingsPanelOpen); const toggleSettingsPanel = useUiStore((s) => s.toggleSettingsPanel); const crumbs = getCrumbs(location.pathname); return ( <>
{/* Sidebar toggle — desktop only */} {/* Mobile menu open — mobile only */} {/* Search bar */}
⌘K
{/* Breadcrumbs */}
{/* Settings */} {/* Dark mode */} {/* Bell */} {/* Avatar */}
A
{/* Settings Panel */} {settingsPanelOpen && (
e.stopPropagation()} >

شخصی‌سازی

{/* Theme */}
{/* Brand color */}
{HUES.map((hue) => ( ))}
{/* Density */}
{/* Sidebar */}
تنظیمات شما به‌صورت خودکار ذخیره می‌شود و در بازدید بعدی حفظ می‌ماند.
)} ); }