انتخاب کشور (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 '@partodata/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 — برای نمایش پلتفرم نه کشور