import { type FC, useEffect } from 'react'
import LogoImage from '../assets/images/logo.svg'
import LogoSmall from '../assets/images/logo-small.svg'
import { useTranslation } from 'react-i18next'
import {
Home2,
Element3,
Receipt21,
TicketDiscount,
DocumentText,
Truck,
Money3,
People,
UserSquare,
Profile,
Messages3,
Chart,
Setting2,
Logout,
Briefcase,
Headphone,
SmsTracking
} from 'iconsax-react'
import SideBarItem from './SideBarItem'
import { useLocation } from 'react-router-dom'
import { useSharedStore } from './store/sharedStore'
import { clx } from '../helpers/utils'
import BlogSubMenu from './components/BlogSubMenu'
import SubMenuItem from './components/SubMenuItem'
import { Pages } from '../config/Pages'
const SideBar: FC = () => {
const { t } = useTranslation('global')
const { openSidebar, setOpenSidebar, hasSubMenu, setSubMenuName, setSubtMenu, subMenuName } = useSharedStore()
const location = useLocation()
const isActive = (name: string) => {
return location.pathname.includes(name)
}
useEffect(() => {
const split = location.pathname.split('/')
if (split[1] === 'dashboard' || split[1] === 'products' || split[1] === 'orders' ||
split[1] === 'blog' || split[1] === 'shipping' || split[1] === 'financial' ||
split[1] === 'sellers' || split[1] === 'buyers' || split[1] === 'users' ||
split[1] === 'tickets' || split[1] === 'reports' || split[1] === 'chat' ||
split[1] === 'contact' || split[1] === 'settings' || split[1] === 'pages' ||
split[1] === 'jobs' || split[1] === 'category') {
setSubMenuName(split[1])
setSubtMenu(true)
} else {
setSubMenuName('')
setSubtMenu(false)
}
}, [location.pathname, setSubMenuName, setSubtMenu])
const iconSizeSideBar = 20
return (
<>
{
openSidebar &&
setOpenSidebar(false)} />
}
{
!hasSubMenu ?

:

}
{t('sidebar.menu')}
{/* داشبورد */}
}
title="داشبورد"
isActive={isActive('dashboard')}
link="/dashboard"
activeName='dashboard'
/>
{/* محصولات */}
}
title="محصولات"
isActive={isActive('products')}
link="/products"
activeName='products'
/>
{/* سفارشات */}
}
title="سفارشات"
isActive={isActive('orders')}
link="/orders"
activeName='orders'
/>
{/* تخفیف ها */}
}
title="تخفیف ها"
isActive={isActive('discounts')}
link="/discounts"
activeName='discounts'
/>
{/* بلاگ */}
}
title="بلاگ"
isActive={isActive('blog')}
link="/blog"
activeName='blog'
/>
{/* روش های ارسال */}
}
title="روش های ارسال"
isActive={isActive('shipping')}
link="/shipping"
activeName='shipping'
/>
{/* مالی */}
}
title="مالی"
isActive={isActive('financial')}
link="/financial"
activeName='financial'
/>
{/* فروشندگان */}
}
title="فروشندگان"
isActive={isActive('sellers')}
link="/sellers"
activeName='sellers'
/>
{/* خریداران */}
}
title="خریداران"
isActive={isActive('buyers')}
link="/buyers"
activeName='buyers'
/>
{/* کاربران */}
}
title="کاربران"
isActive={isActive('users')}
link="/users"
activeName='users'
/>
{/* تیکت ها */}
}
title="تیکت ها"
isActive={isActive('tickets')}
link="/tickets"
activeName='tickets'
/>
{/* گزارش ها */}
}
title="گزارش ها"
isActive={isActive('reports')}
link="/reports"
activeName='reports'
/>
{/* گفت و گو */}
}
title="گفت و گو"
isActive={isActive('chat')}
link="/chat"
activeName='chat'
/>
{/* ارتباط با ما */}
}
title="ارتباط با ما"
isActive={isActive('contact')}
link="/contact"
activeName='contact'
/>
{/* تنظیمات */}
}
title="تنظیمات"
isActive={isActive('settings')}
link="/settings"
activeName='settings'
/>
{/* مدیریت صفحات */}
}
title="مدیریت صفحات"
isActive={isActive('pages')}
link="/pages"
activeName='pages'
/>
{/* مشاغل */}
}
title="مشاغل"
isActive={isActive('jobs')}
link="/jobs"
activeName='jobs'
/>
}
title="خروج"
isActive={isActive('logout')}
link={`#`}
isLogout
activeName=''
/>
{/* منوی فرعی */}
{
hasSubMenu && (openSidebar || window.innerWidth > 1139) &&
{
subMenuName === 'blog' ?
: subMenuName === 'dashboard' ?
: subMenuName === 'products' ?
: subMenuName === 'orders' ?
: subMenuName === 'shipping' ?
: subMenuName === 'financial' ?
: subMenuName === 'sellers' ?
: subMenuName === 'buyers' ?
: subMenuName === 'users' ?
: subMenuName === 'tickets' ?
: subMenuName === 'reports' ?
: subMenuName === 'chat' ?
: subMenuName === 'contact' ?
: subMenuName === 'settings' ?
: subMenuName === 'pages' ?
: subMenuName === 'jobs' ?
: subMenuName === 'category' ?
: null
}
}
>
)
}
// کامپوننتهای SubMenu برای هر بخش - دقیقاً مثل BlogSubMenu
const DashboardSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const ProductsSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const OrdersSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const ShippingSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const FinancialSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const SellersSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const BuyersSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const UsersSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const TicketsSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const ReportsSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const ChatSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const ContactSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const SettingsSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const PagesSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const JobsSubMenu: FC = () => {
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
const CategorySubMenu: FC = () => {
const location = useLocation()
const isActive = (name: string) => {
return location.pathname.includes(name)
}
return (
)
}
export default SideBar