import React, { useMemo, useState } from 'react'; import { Link } from 'react-router-dom'; import { SearchHeaderP } from '../../pages/subscriptionIcons'; import { useAuthStore } from '../../stores/authStore'; import { usePermissions } from '../../hooks/usePermissions'; import { menuForRole, type SettingsMenuItem } from './settingsMenu'; /** * سایدبار تنظیمات — همان فهرستی که `SettingsMenuPage` روی موبایل نشان می‌دهد * (`settingsMenu.ts`)، با دو تفاوتِ عمدی: * * ۱. «مدیریت پزشک» اینجا نیست؛ جایش منوی اصلی/پروفایل پزشک است. * ۲. یک آیتم «تنظیمات» غیرفعال ته فهرست است — بخش امنیت هنوز مسیر پزشک/کلینیک ندارد. * * قبلاً این فهرست کپی جدا بود و هر آیتم تازه باید دو جا اضافه می‌شد؛ «منابع» و * «دسته‌بندی‌ها» فقط در موبایل ظاهر شدند و در سایدبار غایب بودند. */ const HIDDEN_KEYS = new Set(['doctor']); const SECURITY_ITEM: SettingsMenuItem = { key: 'security', label: 'تنظیمات', icon: () => null, alwaysOpen: true, disabled: true, }; export default function PurchaseSubscriptionSidebar({ active }: { active: string }) { const [query, setQuery] = useState(''); const primaryRole = useAuthStore((s) => s.primaryRole); const scope = useAuthStore((s) => s.context?.scope); const { can } = usePermissions(); const items = useMemo( () => [ ...menuForRole(primaryRole, can, scope).filter((i) => !HIDDEN_KEYS.has(i.key)), SECURITY_ITEM, ].filter((i) => i.label.includes(query.trim())), [query, primaryRole, scope, can], ); return ( ); }