انتخاب استان (RegionPicker)
چندانتخابی ۳۱ استان ایران بر اساس slug یا کد ISO 3166-2:IR
معرفی
RegionPicker یک wrapper سبک روی MultiSelect است که از دادهی canonical IRAN_PROVINCES تغذیه میشود. خروجی بهصورت پیشفرض slug (مثل tehran) است که URL-friendly است؛ با keyBy="iso" میتوانید کد ISO 3166-2:IR (مثل IR-07) دریافت کنید.
چه زمانی استفاده کنیم:
- داشبورد افکارسنجی scoped per province
- فیلتر گزارش بولتن استانی
- Pair با
IranProvinceHeatبرای فیلتر-and-render همزمان
چه زمانی استفاده نکنیم:
- اگر به انتخاب کشور نیاز دارید — از
CountryPickerاستفاده کنید - اگر میخواهید نقشه SVG قابل کلیک داشته باشید (Phase 5.4 deferred — هنوز shipped نیست)
تهراناصفهان
زمین بازی
با تغییر تنظیمات زیر، انتخاب استان را بهصورت زنده مشاهده کنید.
زمین بازی
استان را انتخاب کنید
تنظیمات
محتوا
ظاهر
کد این نمونه بهصورت خودکار قابل تولید نیست — برای کد آمادهی copy/paste به بخش «استفاده» در بالای صفحه مراجعه کنید.
استفاده
import { RegionPicker } from '@parto-system-design/ui'
const [provinces, setProvinces] = React.useState<string[]>([])
;<RegionPicker value={provinces} onValueChange={setProvinces} placeholder="استان را انتخاب کنید" />حالتها و انواع
پیشفرض (slug-based)
<RegionPicker value={provinces} onValueChange={setProvinces} />خروجی بهصورت کد ISO
<RegionPicker keyBy="iso" value={provinces} onValueChange={setProvinces} />
// خروجی: ['IR-07', 'IR-04', ...]محدود به استانهای منتخب
<RegionPicker
includeSlugs={['tehran', 'isfahan', 'fars', 'khorasan-razavi']}
value={provinces}
onValueChange={setProvinces}
/>Single-select
<RegionPicker maxSelected={1} value={provinces} onValueChange={setProvinces} />راهنمای استفاده
بکنید
- مقدار را همیشه بهصورت
slugذخیره کنید — locale-independent و URL-safe است - اگر در state از URL همگامسازی میکنید، slug را به query param بدهید:?province=tehran- ازkeyBy="iso"فقط زمانی استفاده کنید که با سرویس external که ISO میخواهد کار میکنید
نکنید
- از این کامپوننت برای فیلتر کشور استفاده نکنید —
CountryPickerمناسب آن است - مقدار را به نام فارسی استان ذخیره نکنید — هرگز به نام label وابستگی نسازید - پارامترIRAN_PROVINCESرا در کلاینت پارس نکنید — منبع canonical درlib/iran-provinces.tsاست
جدول ویژگیها
دسترسیپذیری
- روی
MultiSelectساخته شده — تمام keyboard interactions به ارث میرسد. - اسامی استانها به فارسی روان screen reader را پیست میکنند؛ روی en/ar از label محلی استفاده میشود.
role="combobox"باaria-labelمعنادار از placeholder یا value تأمین میشود.
کامپوننتهای مرتبط
- CountryPicker — اگر نیاز به انتخاب کشور دارید، نه استان
- IranProvinceHeat — برای نمایش choropleth-style توزیع داده روی استانها
- MultiSelect — اگر کامپوننت پایه میخواهید بدون دیتاست استانی