پراپ ها
پراپ | حالت | پیش فرض |
---|---|---|
position | String | "right" |
disabled | Boolean | false |
sort | String | |
eachDaysInRange | Boolean | false |
onClickDate | Function | |
removeButton | Boolean | true |
header | String | |
markFocused | Boolean | false |
focusedClassName | String | |
formatFunction | Function |
نکته مهم در مورد onClickDate
نکته مهم در مورد پراپرتی onClickDate که باید گفته بشه اینه که اگر روی تاریخی کلیک شود، مقدار آن تاریخ به عنوان آرگومان در onClickDate ارسال میشود، ولی اگر روی دکمه حذف کلیک شود، باز هم onClickDate صدا زده میشود اما با مقدار آرگومان undefined .
مرتب سازی بر اساس تاریخ
import DatePicker, { DateObject } from "react-multi-date-picker"
import DatePanel from "react-multi-date-picker/plugins/date_panel"
import persian from "react-date-object/calendars/persian"
import persian_fa from "react-date-object/locales/persian_fa"
.
.
.
const [value, setValue] = useState([
new DateObject({ calendar: persian }),
new DateObject({ calendar: persian }).add(2, "days"),
new DateObject({ calendar: persian }).add(10, "days")
])
.
.
.
<DatePicker
value={value}
onChange={setValue}
multiple
plugins={[
<DatePanel sort="date" position="left" />
]}
calendar={persian}
locale={persian_fa}
calendarPosition="bottom-right"
/>
قرار دادن پنل تاریخ ها در سمت راست تقویم
import DatePicker, { DateObject } from "react-multi-date-picker"
import DatePanel from "react-multi-date-picker/plugins/date_panel"
import persian from "react-date-object/calendars/persian"
import persian_fa from "react-date-object/locales/persian_fa"
.
.
.
const [value, setValue] = useState(
[
5,
10,
15,
20,
25,
30
].map(day => new DateObject({ calendar: persian }).setDay(day))
)
.
.
.
<DatePicker
value={value}
onChange={setValue}
multiple
plugins={[
<DatePanel position="right" />
]}
calendar={persian}
locale={persian_fa}
calendarPosition="bottom-right"
/>
بدون دکمه حذف
import DatePicker, { DateObject } from "react-multi-date-picker"
import DatePanel from "react-multi-date-picker/plugins/date_panel"
import persian from "react-date-object/calendars/persian"
import persian_fa from "react-date-object/locales/persian_fa"
.
.
.
const [value, setValue] = useState([
new DateObject({ calendar: persian }),
new DateObject({ calendar: persian }).add(1, "day")
])
.
.
.
<DatePicker
value={value}
onChange={setValue}
plugins={[
<DatePanel
removeButton={false}
position="left"
/>
]}
calendar={persian}
locale={persian_fa}
calendarPosition="bottom-right"
/>
اضافه کردن کلیک لیستنر
import DatePicker, { DateObject } from "react-multi-date-picker"
import DatePanel from "react-multi-date-picker/plugins/date_panel"
import persian from "react-date-object/calendars/persian"
import persian_fa from "react-date-object/locales/persian_fa"
.
.
.
const [value, setValue] = useState([
new DateObject({ calendar: persian }),
new DateObject({ calendar: persian }).add(1, "day")
])
.
.
.
<DatePicker
value={value}
onChange={setValue}
plugins={[
<DatePanel
removeButton={false}
onClickDate={dateObject => {
let mustDelete = window.confirm("آیا مطمعن به حذف این تاریخ هستید ؟")
if (mustDelete) setValue(
value.filter(date => date !== dateObject)
)
}}
position="left"
/>
]}
calendar={persian}
locale={persian_fa}
calendarPosition="bottom-right"
/>
تغییر نام سرتیتر
import DatePicker from "react-multi-date-picker"
import DatePanel from "react-multi-date-picker/plugins/date_panel"
import persian from "react-date-object/calendars/persian"
import persian_fa from "react-date-object/locales/persian_fa"
.
.
.
<DatePicker
plugins={[
<DatePanel header="همه تاریخ ها" />
]}
calendar={persian}
locale={persian_fa}
calendarPosition="bottom-right"
/>
شخصی سازی تاریخ متمرکز شده
با کلیک روی هر تاریخ در پنل تاریخ ها، آن تاریخ فوکوس میشود.
برای بهتر مشخص شدن اینکه کدام تاریخ فوکوس شده است ، میتوانید از پراپرتی markFocused استفاده کنید. همچنین برای شخصی سازی بیشتر آن تاریخ میتوانید برای آن، کلاس ست کنید.
import DatePicker from "react-multi-date-picker"
import DatePanel from "react-multi-date-picker/plugins/date_panel"
import persian from "react-date-object/calendars/persian"
import persian_fa from "react-date-object/locales/persian_fa"
.
.
.
const [focusedDate, setFocusedDate] = useState();
.
.
.
<DatePicker
multiple
sort
onFocusedDateChange={setFocusedDate}
onClose={() => setFocusedDate(undefined)}
plugins={[
<DatePanel markFocused focusedClassName="bg-red" />
]}
mapDays={({ date, isSameDate }) => {
let props = {}
if (!isSameDate(date, focusedDate)) return
props.style = { backgroundColor: "red" }
return props
}}
calendar={persian}
locale={persian_fa}
calendarPosition="bottom-right"
/>