پرتوپرتو

ناوبری فرعی (SecondaryNav)

پرایمیتیوهای محتوای پنل جانبی (Part 2) — آیتم، عنوان گروه، جداکننده، گروه بازشونده و ورودی جستجو

معرفی

خانوادهٔ SecondaryNav پرایمیتیوهای محتوای پنل جانبی (Part 2) هستند — همتای پارتویی InnerSideMenu استودیوی Supabase. برای پرکردن AppSecondary ساخته شده‌اند: لینک‌های متنی، عنوان گروه، گروه‌های بازشونده و ورودی جستجو.

چه زمانی استفاده کنیم:

  • محتوای فرعیِ ماندگار یک بخش (فهرست گزارش‌ها، فیلترها، ساب‌ناوبری) داخل AppSecondary.
  • می‌خواهید ظاهر و رفتار دقیقاً مثل پنل دوم استودیو باشد.

چه زمانی استفاده نکنیم:

  • ناوبری اصلی سطح‌بالا → از NavRail استفاده کنید.
  • درخت ناوبری عمومی صفحه → از NavTree استفاده کنید.
  • فهرست/منوی شناور → از DropdownMenu یا Command استفاده کنید.

گزارش‌ها

پیشنهادی

استفاده

import {
  AppSecondary,
  AppSecondaryHeader,
  AppSecondaryTitle,
  AppSecondaryContent,
  SecondaryNavItem,
  SecondaryNavTitle,
  SecondaryNavSeparator,
  SecondaryNavCollapsible,
  SecondaryNavCollapsibleTrigger,
  SecondaryNavCollapsibleContent,
  SecondaryNavSearchInput,
} from '@partodata/ui'
;<AppSecondary resizable>
  <AppSecondaryHeader>
    <AppSecondaryTitle>گزارش‌ها</AppSecondaryTitle>
  </AppSecondaryHeader>
  <AppSecondaryContent className="gap-1 p-2">
    <SecondaryNavSearchInput placeholder="جستجو…" aria-label="جستجو" />
    <SecondaryNavTitle>پیشنهادی</SecondaryNavTitle>
    <SecondaryNavItem isActive>نمای کلی هفتگی</SecondaryNavItem>
    <SecondaryNavItem>روند تعامل</SecondaryNavItem>
  </AppSecondaryContent>
</AppSecondary>

حالت‌ها و انواع

آیتم فعال و لینک

SecondaryNavItem با isActive حالت فعال می‌گیرد (bg-selection) و با asChild می‌تواند به یک لینک تبدیل شود:

<SecondaryNavItem asChild isActive>
  <Link href="/reports/weekly">نمای کلی هفتگی</Link>
</SecondaryNavItem>

گروه بازشونده

<SecondaryNavCollapsible defaultOpen>
  <SecondaryNavCollapsibleTrigger title="ذخیره‌شده" />
  <SecondaryNavCollapsibleContent>
    <SecondaryNavItem>کمپین تخفیف فصلی</SecondaryNavItem>
    <SecondaryNavItem>بازخورد بسته‌بندی</SecondaryNavItem>
  </SecondaryNavCollapsibleContent>
</SecondaryNavCollapsible>

جستجو و جداکننده

<SecondaryNavSearchInput placeholder="جستجو…" aria-label="جستجو" isLoading={loading} />
<SecondaryNavSeparator />
<SecondaryNavTitle>عنوان گروه</SecondaryNavTitle>

راهنمای استفاده

بکنید

  • عنوان گروه (SecondaryNavTitle) را کوتاه و meta نگه دارید. - برای آیتم‌های ناوبری واقعی از asChild با Link استفاده کنید تا دسترس‌پذیری و پیمایش درست بماند. - جستجو را بالای فهرست و با aria-label بگذارید.

نکنید

  • از حروف بزرگ/tracking برای عنوان‌ها استفاده نکنید — در فارسی بد خوانده می‌شود (این خانواده عمداً بدون uppercase است). - این پرایمیتیوها را برای ناوبری اصلی به کار نبرید؛ جای آن NavRail است. - SecondaryNavItem را بدون متن قابل‌خواندن نگذارید.

جدول ویژگی‌ها

SecondaryNavItem

Prop

Type

SecondaryNavCollapsibleTrigger

Prop

Type

SecondaryNavSearchInput

Prop

Type

SecondaryNavTitle و SecondaryNavSeparator بدون prop خاص‌اند (فقط className و فرزندان).

دسترسی‌پذیری

  • SecondaryNavItem فعال: aria-current="page".
  • SecondaryNavSeparator: role="separator".
  • گروه بازشونده روی Collapsible رادیکس سوار است (کیبورد + aria-expanded).
  • SecondaryNavSearchInput را همیشه با aria-label بدهید.

کامپوننت‌های مرتبط

  • ظرف این پرایمیتیوها ← NavRail (AppSecondary) و AppShell (secondaryPanel).
  • برای ناوبری اصلی سطح‌بالا ← NavRail.
  • برای درخت ناوبری عمومی ← NavTree.