پرتوپرتو

نشان وضعیت (StatusBadge)

نمایش وضعیت عملیاتی (بحرانی/هشدار/متوسط/پایین) با نقطه‌ی نبض‌دار برای حالت بحرانی — با ورودی عدد یا متن

معرفی

StatusBadge وضعیت عملیاتی یک موجودیت (خوشه، کمپین، پیج، هشدار) را روی یک طیف چهارکلاسه‌ی شدت (بحرانی ← هشدار ← متوسط ← پایین) نشان می‌دهد. حالت «بحرانی» به‌صورت پیش‌فرض نبض ملایم دارد تا توجه را جلب کند — رفتار احترام‌کننده به prefers-reduced-motion.

ورودی status انعطاف‌پذیر است: می‌توانید کلید وضعیت، کد عددی (۱ تا ۴)، یا متن (نام انگلیسی یا برچسب محلی) بدهید — کامپوننت در هر حالت وضعیت درست را تشخیص می‌دهد و رنگ، نقطه و برچسب متناظر را نمایش می‌دهد.

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

  • روی کارت خوشه/کمپین برای نشان وضعیت بحرانی‌بودن
  • در سطر جدول برای فیلتر سریع ردیف‌های بحرانی
  • کنار نام یک هشدار یا job عملیاتی

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

  • برای اولویت یا فوریت — از SeverityBadge استفاده کنید
  • برای sentiment/emotion — از SentimentBadge / EmotionBadge استفاده کنید
  • برای status نرم‌افزاری (online/offline/loading) — از Badge با رنگ‌های brand/muted استفاده کنید
بحرانیهشدارمتوسطپایین

زمین بازی

زمین بازی
پایین
تنظیمات
ظاهر
محتوا
حالت
import { StatusBadge } from '@parto-system-design/ui'

<StatusBadge />

مقادیر و نگاشت عددی

نشان وضعیت روی مقیاس عددی افکارسنجی کار می‌کند. کدها از 1 (بحرانی) شروع و به 4 (پایین) ختم می‌شوند:

کدکلید (key)برچسب فارسینام انگلیسیتوکن رنگرنگ
۱criticalبحرانیCritical--status-criticalقرمز #ef4444
۲warningهشدارWarning--status-warningکهربایی #f59e0b
۳middleمتوسطMiddle--status-middleآبی #3b82f6
۴lowپایینLow--status-lowخاکستری #71717a

نکته‌ی مهاجرت

کلید قدیمی normal حذف شده است. در ورودی، رشته‌ی 'normal' به‌عنوان alias سازگاری به low نگاشت می‌شود، اما در کد جدید مستقیماً از low استفاده کنید.

استفاده

status هر یک از این فرم‌ها را می‌پذیرد:

import { StatusBadge } from '@parto-system-design/ui';

// ۱) کلید وضعیت
<StatusBadge status="critical" />     // پیش‌فرض نبض‌دار

// ۲) کد عددی (۱ تا ۴) — مثلاً خروجی مستقیم API
<StatusBadge status={1} />            {/* → بحرانی */}
<StatusBadge status={4} />            {/* → پایین */}

// ۳) متن — نام انگلیسی، رشته‌ی عددی، یا برچسب محلی (بزرگ/کوچک مهم نیست)
<StatusBadge status="Critical" />     {/* → بحرانی */}
<StatusBadge status="متوسط" />        {/* → متوسط */}
<StatusBadge status={'3'} />          {/* → متوسط */}

// سایر تنظیمات
<StatusBadge status="critical" animated={false} />  // خاموش کردن نبض

// مقدار ناشناخته یا خارج از بازه → چیزی رندر نمی‌شود
<StatusBadge status={0} />            {/* → null */}

ورودی از کد عددی (۱ تا ۴)

بحرانیهشدارمتوسطپایین

ورودی از متن

نام انگلیسی، رشته‌ی عددی، یا برچسب فارسی/عربی — همه به یک وضعیت نگاشت می‌شوند.

بحرانیهشدارمتوسطپایینبحرانی

اندازه‌ها

smهشدارمتوسطپایین
mdهشدارمتوسطپایین

Props

Prop

Type

ابزار کمکی

برای تبدیل دستی مقدار به کلید وضعیت (خارج از این کامپوننت)، از resolveStatus استفاده کنید. خروجی برای مقادیر نامعتبر null است:

import { resolveStatus, STATUS_VALUE_MAP, STATUS_KEY_TO_VALUE } from '@parto-system-design/ui'

resolveStatus(1) // 'critical'
resolveStatus('Critical') // 'critical'
resolveStatus('متوسط') // 'middle'
resolveStatus('3') // 'middle'
resolveStatus('normal') // 'low'  (alias سازگاری)
resolveStatus(0) // null
resolveStatus(99) // null

STATUS_VALUE_MAP[1] // 'critical'
STATUS_KEY_TO_VALUE.low // 4

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

بکنید

  • از critical فقط برای موارد واقعاً بحرانی استفاده کنید — نبض چشمی صرف، معنای «critical» را تحلیل می‌برد - در جدول‌ها از size="sm" و showLabel={false} استفاده کنید اگر ستون باریک است (ولی ستون باید header معنی‌دار داشته باشد) - برای لیست‌های طولانی که همه‌ی ردیف‌ها critical هستند (مثلاً فیلتر شده)، animated={false} قرار دهید تا UI آرام بماند - وقتی داده‌ی API به‌صورت کد عددی می‌آید، همان عدد را مستقیم به status بدهید — نیازی به نگاشت دستی نیست

نکنید

  • از StatusBadge برای اولویت یا urgency استفاده نکنید — SeverityBadge پروپ severity دارد - نبض را به دلخواه روی warning، middle یا low اعمال نکنید — نبض معنای بصری «نیازمند اقدام فوری» دارد

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

  • نقطه رنگی و برچسب متنی هر دو نمایش داده می‌شوند (وابستگی صرف به رنگ نیست)
  • نبض با prefers-reduced-motion: reduce به‌صورت خودکار غیرفعال می‌شود
  • با showLabel={false} مقدار aria-label در متن صفحه‌خوان خوانده می‌شود

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

  • SeverityBadge — نمایش اولویت/فوریت (مستقل از status)
  • Badge — نشان عمومی غیر دامنه‌ای