import React, { useMemo, useState } from 'react'; import { Link } from 'react-router-dom'; import { useAuthStore } from '../../stores/authStore'; import { menuForRole } from './SettingsLayout'; import { SearchHeaderP } from '../../pages/subscriptionIcons'; /** * PurchaseSubscriptionSidebar — pixel-faithful port of clinic-pro-tauri's * `PurchaseSubscriptionSidebar.jsx` (title + search + tab list, orange active * pill #f17732). Unlike the Tauri original it does not switch content inline; * each item is a real admin route (from SETTINGS_MENU / menuForRole), so the * clinicpro routing architecture is preserved. `active` marks the open section. */ export default function PurchaseSubscriptionSidebar({ active }: { active: string }) { const primaryRole = useAuthStore((s) => s.primaryRole); const [query, setQuery] = useState(''); const items = useMemo( () => menuForRole(primaryRole).filter((i) => i.label.includes(query.trim())), [primaryRole, query], ); return (
{/* Mobile/Tablet: horizontal scrollable tab strip */}
{items.map((item) => { const isActive = item.key === active; const inner = ( {item.label} ); return item.to ? {inner} : {inner}; })}
{/* Desktop: Title + Search + vertical list */}
تنظیمات
setQuery(e.target.value)} placeholder="جستجو در تنظیمات" aria-label="جستجو در تنظیمات" style={{ border: 'none', outline: 'none', background: 'transparent', fontFamily: 'inherit', fontSize: 13, color: 'var(--text)', width: '100%', textAlign: 'right', direction: 'rtl', }} />
); }