'use client' import React from 'react' import clsx from 'clsx' import SidebarMobile from '@/components/layouts/SidebarMobile' import { useMediaQuery } from '@/hooks/useMediaQuery' interface PageNavbarProps { description?: string pageTitle?: string startSlot?: React.ReactNode centerSlot?: React.ReactNode endSlot?: React.ReactNode className?: string } const ADMIN_PAGE_DESCRIPTIONS: Record = { پیشخوان: 'نمای کلی وضعیت و فعالیت‌های سامانه', کاربران: 'مشاهده و مدیریت حساب‌های کاربری', رویدادها: 'بررسی، ایجاد و مدیریت رویدادها', رزروها: 'پیگیری رزروها و وضعیت حضور مهمانان', پرداخت‌ها: 'مشاهده تراکنش‌ها و وضعیت پرداخت‌ها', تسویه‌ها: 'مدیریت تسویه‌حساب‌های مالی', 'درخواست‌های برداشت': 'بررسی و پردازش درخواست‌های مالی', 'دسته‌بندی‌های رویداد': 'مدیریت ساختار دسته‌بندی رویدادها', 'لیست‌های مهمان': 'مشاهده و مدیریت فهرست مهمانان', 'مدیریت نظرات': 'بررسی و مدیریت بازخورد کاربران', شهرها: 'مدیریت اطلاعات جغرافیایی شهرها', 'احراز هویت میزبان': 'بررسی مدارک و وضعیت احراز هویت میزبانان', اعلان‌ها: 'ارسال و پیگیری اعلان درون‌برنامه‌ای، پوش و پیامک', پیامک‌ها: 'پیگیری پیامک‌های ارسالی سامانه', 'ارسال اعلان دستی': 'ارسال اعلان درون‌برنامه‌ای و پوش به کاربران منتخب', 'تحویل پوش': 'عیب‌یابی وضعیت ارسال، نمایش و بازشدن اعلان‌های پوش', 'گزارش‌های کاربران': 'بررسی گزارش‌ها و تخلف‌های ثبت‌شده', 'پیام‌های تماس': 'مشاهده پیام‌های فرم تماس عمومی', 'نظارت بر گفتگوها': 'مشاهده فقط‌خواندنی گفتگوهای گروهی و خصوصی', } const PageNavbar = ({ description, pageTitle, startSlot, centerSlot, endSlot, className }: PageNavbarProps) => { const isMobile = useMediaQuery('(max-width: 768px)') const pageDescription = description ?? (pageTitle ? (ADMIN_PAGE_DESCRIPTIONS[pageTitle] ?? `مدیریت و مشاهده اطلاعات ${pageTitle}`) : undefined) return (
{isMobile && } {pageTitle ? (

{pageTitle}

{pageDescription ?

{pageDescription}

: null}
) : ( startSlot )}
{isMobile ? ( <> {endSlot &&
{endSlot}
} {centerSlot &&
{centerSlot}
} ) : ( <> {centerSlot ?
{centerSlot}
:
} {endSlot &&
{endSlot}
} )}
) } export default PageNavbar