تقویم (Calendar)
کامپوننت پایه تقویم با پشتیبانی از تقویم شمسی و میلادی
معرفی
کامپوننت Calendar یک تقویم پایه است که از تقویم شمسی (جلالی) و میلادی پشتیبانی میکند. این کامپوننت بهطور مستقل یا بهعنوان بخشی از DatePicker استفاده میشود.
توجه: برای اکثر موارد استفاده در فرمها، کامپوننت Date Picker که لایهای بر روی Calendar است، پیشنهاد میشود.
چه زمانی استفاده نکنیم:
- وقتی کاربر باید تاریخ تایپ کند — از
DatePickerاستفاده کنید - برای نمایش رویدادها — Calendar فقط انتخاب تاریخ است، نه تقویم رویداد
فروردین ۱۴۰۵
| ش | ۱ش | ۲ش | ۳ش | ۴ش | ۵ش | ج |
|---|---|---|---|---|---|---|
استفاده
import { Calendar } from '@parto-system-design/ui'
import { useState } from 'react'
export default function MyComponent() {
const [selected, setSelected] = useState<Date>()
return <Calendar mode="single" selected={selected} onSelect={setSelected} />
}حالتها و انواع
تقویم شمسی
فروردین ۱۴۰۵
| ش | ۱ش | ۲ش | ۳ش | ۴ش | ۵ش | ج |
|---|---|---|---|---|---|---|
تقویم میلادی
<Calendar mode="single" usePersianCalendar={false} />انتخاب محدوده
<Calendar mode="range" usePersianCalendar />راهنمای استفاده
بکنید
- از Calendar زمانی استفاده کنید که نیاز به نمایش تقویم بهصورت inline (بدون popover) دارید - برای تقویم شمسی،
usePersianCalendar={true}را فعال کنید - ازmode="range"برای انتخاب بازه تاریخی استفاده کنید
نکنید
- برای انتخاب تاریخ در فرمها از Calendar مستقیماً استفاده نکنید — از
DatePickerکه لایهای بر روی Calendar است استفاده کنید - Calendar را برای نمایش رویدادها استفاده نکنید — این کامپوننت فقط برای انتخاب تاریخ طراحی شده است - بدون تعیینmodeاز Calendar استفاده نکنید
جدول ویژگیها
دسترسیپذیری
- پیمایش کامل با کیبورد (Arrow keys، Enter، Escape)
aria-selectedبرای روز انتخابشدهaria-disabledبرای روزهای غیرفعال- ساختار شبکه روزها با
role="gridcell"
مرتبط
- Date Picker — کامپوننت کامل انتخاب بازه تاریخ (پیشنهادی)
- Popover — برای قرار دادن Calendar داخل popup
- Form — برای استفاده در فرمها با اعتبارسنجی
کامپوننتهای مرتبط
- DatePicker — اگر نیاز به انتخاب تاریخ در فرم با input field و popover دارید، از DatePicker استفاده کنید
- DateRangePicker — اگر نیاز به انتخاب بازه تاریخی با label و امکانات بیشتر دارید، از DateRangePicker استفاده کنید
- PeriodSelector — اگر فقط نیاز به دورههای از پیش تعریفشده دارید (۷ روز، ۳۰ روز)، PeriodSelector سادهتر است