حالت ها

  • input (default)
  • input-icon
  • button
  • icon
  • custom

اینپوت

<DatePicker 
  type="input"
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

دکمه

<DatePicker 
  type="button"
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

اینپوت-آیکن

<DatePicker 
  type="input-icon" 
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

آیکن

<DatePicker 
  type="icon" 
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

دستی (فانکشن)

<DatePicker
  value="2020/10/19"
  type="custom"
  render={(stringDate, openCalendar) => {
    return (
      <button onClick={openCalendar}>
        {stringDate}
      </button>
    )
  }}
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

دستی (کامپوننت)

import React from "react"
.
.
.
class CustomComponent extends React.Component {
  render() {
    return (
      <button onClick={this.props.openCalendar}>
        {this.props.stringDate}
      </button >
    )
  }
}
.
.
.
<DatePicker
  value="2020/10/19"
  type="custom"
  render={<CustomComponent />}
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

دستی (اینپوت)

اگر میخواهید تغییراتی رو که در ورودی دیت پیکر انجام میدید رو به صورت همزمان در تقویم هم مشاهده کنید از گزینه onChange استفاده کنید.

نکته: در نسخه های قبل از ۴ باید بجای onChange از پراپ onValueChange استفاده کنید.

import React from "react"

function CustomInput({ openCalendar, stringDate, handleValueChange }) {
  return (
    <input
      onFocus={openCalendar}
      value={stringDate}
      onChange={handleValueChange}
    />
  )
}

<DatePicker
  type="custom"
  render={<CustomInput />}
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

انتخابگر های چند تایی و دامنه

در نسخه 1.8.1 و در حالت چندتایی و دامنه، به جای stringDate ، آرایه ای از stringDate ها ارسال میشود.

بنابراین برای بدست آوردن مقدار ورودی در نسخه های >= 1.8.1 ، می توانید مثال های زیر را دنبال کنید.

دستی (انتخابگر چند تایی)

import React from "react"

function CustomMultipleInput({openCalendar, stringDates}) {
  return (
    <input
      onFocus={openCalendar}
      value={stringDates.join(", ")}
      readOnly
    />
  )
}

<DatePicker
  multiple
  type="custom"
  render={<CustomMultipleInput />}
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

دستی (انتخابگر دامنه)

import React from "react"

function CustomRangeInput({openCalendar, stringDates}) {
  let from = stringDates[0] || ""
  let to = stringDates[1] || ""
  let value = from && to ? "از " + from + "، تا " + to" : from
  
  return (
    <input
      onFocus={openCalendar}
      value={value}
      readOnly
    />
  )
}

<DatePicker
  range
  eachDaysInRange
  type="custom"
  render={<CustomRangeInput />}
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>