انتخاب چندتایی (MultiSelect)
انتخاب چند گزینه از لیست با جستجو و چیپهای قابل حذف
معرفی
کامپوننت MultiSelect برای انتخاب چندین گزینه از لیست استفاده میشود. مقادیر انتخابشده به صورت FilterChip نمایش داده میشوند.
چه زمانی استفاده کنیم:
- وقتی کاربر باید چندین گزینه از لیست مشخصی انتخاب کند
- وقتی گزینههای انتخابشده باید به صورت chip قابل حذف نمایش داده شوند
- برای فیلترهای چند مقداری در فرمها و داشبوردها
چه زمانی استفاده نکنیم:
- برای انتخاب تک گزینه — از
Selectاستفاده کنید - برای بیش از ۱۰۰ گزینه — از
Commandبا multi-select استفاده کنید - وقتی گزینهها باید همیشه دیده شوند — از
Checkboxgroup استفاده کنید
تهران
استفاده
import { MultiSelect } from '@parto-system-design/ui'
const options = [
{ value: 'tehran', label: 'تهران' },
{ value: 'isfahan', label: 'اصفهان' },
{ value: 'shiraz', label: 'شیراز' },
{ value: 'tabriz', label: 'تبریز' },
]
const [selected, setSelected] = useState<string[]>([])
;<MultiSelect options={options} value={selected} onValueChange={setSelected} placeholder="شهر را انتخاب کنید" />با محدودیت انتخاب
<MultiSelect
options={options}
value={selected}
onValueChange={setSelected}
maxSelected={3}
placeholder="حداکثر ۳ مورد"
/>حالت بارگذاری
<MultiSelect options={[]} isLoading={true} placeholder="در حال بارگذاری..." />Props
حالتها و انواع
با محدودیت انتخاب
با maxSelected میتوانید حداکثر تعداد گزینههای قابل انتخاب را محدود کنید.
حالت بارگذاری
با isLoading={true} یک Skeleton در dropdown نمایش داده میشود.
محدودیت نمایش چیپها
با maxDisplayed تعداد چیپهای نمایشی قبل از نمایش عدد overflow را تنظیم کنید.
راهنمای استفاده
بکنید
- از
maxSelectedبرای جلوگیری از انتخاب بیش از حد استفاده کنید - ازmaxDisplayedاستفاده کنید تا فضای زیادی اشغال نشود -placeholderمناسب و توصیفی ارائه دهید
نکنید
- برای لیستهای خیلی بزرگ (بیش از ۱۰۰ گزینه) از MultiSelect استفاده نکنید —
Commandمناسبتر است - از MultiSelect برای انتخاب تک گزینه استفاده نکنید —Selectکافی است - بدونemptyMessageسفارشی، تجربه کاربری نامطلوبی ایجاد نکنید
دسترسیپذیری
- باز و بسته کردن dropdown با Enter و Space
- پیمایش بین گزینهها با ↑ و ↓
- جستجوی درون لیست با تایپ کردن
- حذف چیپها با کلیک روی دکمه حذف
- پشتیبانی کامل از RTL
کامپوننتهای مرتبط
- اگر فقط نیاز به انتخاب یک گزینه دارید → Select
- اگر لیست گزینهها بسیار بزرگ است و نیاز به جستجوی پیشرفته دارید → Command
- اگر نیاز به نمایش فیلترهای فعال به صورت chip دارید → FilterChip
- اگر نیاز به جستجو و انتخاب از API دارید → Autocomplete