نشان وضعیت (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 */}ورودی از کد عددی (۱ تا ۴)
ورودی از متن
نام انگلیسی، رشتهی عددی، یا برچسب فارسی/عربی — همه به یک وضعیت نگاشت میشوند.
اندازهها
Props
ابزار کمکی
برای تبدیل دستی مقدار به کلید وضعیت (خارج از این کامپوننت)، از 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 — نشان عمومی غیر دامنهای