انتخاب کشور (CountryPicker)
چندانتخابی کشورها بر اساس کد ISO 3166-1 alpha-2 با پرچم
معرفی
CountryPicker یک wrapper سبک روی MultiSelect است که از یک فهرست curated شامل ۸۰ کشور (همسایگان ایران، خلیج فارس، MENA، بازارهای غربی، آسیا-اقیانوسیه) تغذیه میشود. مقدار خروجی همواره کد ISO 3166-1 alpha-2 (دو حرف، uppercase) است و بهصورت پیشفرض پرچم emoji قبل از نام نمایش داده میشود.
چه زمانی استفاده کنیم:
- داشبورد influencer که شکست مخاطب را به تفکیک کشور نشان میدهد
- فیلتر صحتسنجی منبع برای پستهایی که از خارج میآیند (
AE,TR,IQ) - تحلیل کمپین چندبازاری
چه زمانی استفاده نکنیم:
- برای فیلتر دقیقتر روی استانهای ایران — از
RegionPickerاستفاده کنید - اگر به فهرست کامل ISO 3166 نیاز دارید —
optionsخود را پاس بدهید (پیشفرض ۸۰ کشور است) - برای زبان رابط کاربر — از
Selectساده استفاده کنید
🇮🇷 ایران🇦🇪 امارات
زمین بازی
با تغییر تنظیمات زیر، انتخاب کشور را بهصورت زنده مشاهده کنید.
زمین بازی
کشور را انتخاب کنید
تنظیمات
محتوا
کد این نمونه بهصورت خودکار قابل تولید نیست — برای کد آمادهی copy/paste به بخش «استفاده» در بالای صفحه مراجعه کنید.
استفاده
import { CountryPicker } from '@parto-system-design/ui'
const [codes, setCodes] = React.useState<string[]>([])
;<CountryPicker value={codes} onValueChange={setCodes} placeholder="کشور را انتخاب کنید" />حالتها و انواع
پیشفرض با پرچم
<CountryPicker value={codes} onValueChange={setCodes} />بدون پرچم (لیست متنی)
<CountryPicker showFlag={false} value={codes} onValueChange={setCodes} />محدود به یک زیرمجموعه
<CountryPicker includeCodes={['IR', 'IQ', 'AF', 'TR', 'PK']} value={codes} onValueChange={setCodes} />Single-select با سقف ۱
<CountryPicker maxSelected={1} value={codes} onValueChange={setCodes} />دیتاست سفارشی (override کامل)
<CountryPicker
options={[
{ code: 'XK', labels: { fa: 'کوزوو', ar: 'كوسوفو', en: 'Kosovo' } },
{ code: 'TW', labels: { fa: 'تایوان', ar: 'تايوان', en: 'Taiwan' } },
]}
value={codes}
onValueChange={setCodes}
/>راهنمای استفاده
بکنید
- برای داشبوردهای influencer که جغرافیای مخاطب مهم است، از کد ISO استفاده کنید نه نام نمایشی -
includeCodesرا برای محدود کردن به بازار هدف به کار ببرید (افزایش سرعت + کاهش noise) - برای فهرست کامل ISO 3166،optionsخود را تأمین کنید — DS عمداً فقط ۸۰ کشور پراستفاده را داخل bundle نگه داشته
نکنید
- از این کامپوننت برای فیلتر استانی استفاده نکنید —
RegionPickerاین وظیفه را دارد - پرچمها روی فونتهای قدیمی ممکن است بهصورت دو حرف رندر شوند — اگر این یک نگرانی استshowFlag={false}را تنظیم کنید - مقدار را به نام محلی ذخیره نکنید — همواره کد ISO ذخیره کنید تا lookup مستقل از locale کار کند
جدول ویژگیها
دسترسیپذیری
- روی
MultiSelectساخته شده — Tab برای فوکوس trigger، Space/Enter برای باز شدن popover، Arrow keys برای navigation در فهرست، Escape برای close. - پرچم emoji با whitespace قبل از نام جدا میشود؛ screen reader نام کشور را بهصورت کامل میخواند.
- مقدار trigger روی
role="combobox"وaria-expandedبهروزرسانی میشود. - روی RTL، popover با
align="start"به سمت منطقی align میشود.
کامپوننتهای مرتبط
- RegionPicker — اگر نیاز به انتخاب استان ایران دارید، نه کشور
- MultiSelect — اگر کامپوننت پایهای میخواهید بدون دیتاست country-specific
- SocialPlatformBadge — برای نمایش پلتفرم نه کشور