/react-weekly-day-picker

React component provides weekly view and day picker option like calendly.

Primary LanguageJavaScriptMIT LicenseMIT

React Weekly Day Picker banner


React Weekly Day Picker

This react component provides weekly view and day picker option like calendly.

This component makes use of moment.js.

Installation

To install this Component, run yarn add react-weekly-day-picker or npm install react-weekly-day-picker.

Usage

To use the component, In your react application just do

  <ReactWeeklyDayPicker />

Props

You can also provide additional configuration like

<ReactWeeklyDayPicker
  daysCount={7}  //How many days will be shown
  classNames={}  //Overrides classnames for custom classes (below example)
  startDay={new Date()} // First day as Date Object or 22 June 2016
  selectedDays={['22 June 2017', new Date()]} // Selected days list
  multipleDaySelect={true} //enables multiple day selection
  selectDay={function(day){}}
  unselectDay={function(day){}}
  onPrevClick={function(startDay, selectedDays){}} // called with the new startDay
  onNextClick={function(startDay, selectedDays){}} // called with the new startDay
  unselectable={false} // if true allows to unselect a date once it has been selected. Only works when multipleDaySelect={false}
  format={'YYYY-MM-DD'} //format of dates that handled in selectDay and unselectDay functions
  firstLineFormat={'ddd'} // format for the first line of the day button
  secondLineFormat={'MMM D'} // format for the second line of the day button
  firstLineMobileFormat={'dddd'} // format for the first line of the day button mobile
  secondLineMobileFormat={'MMMM D, Y'} // format for the second line of the day button mobile
  unavailables={{
    dates:['22 July 2017'],  //unavailable dates list
    relative:[0,1],  //unavailable dates list relative to today (0:today, 1:tomorrow, -1:yesterday)
    weekly: [0] //unavailable dates list for each week (0:Sunday, 1:Monday ...)
  }}
  mobilView={window.innerWidth < 1024}  // enables mobil view
  beforeToday={false}   // all dates before today set as unavailable (default:true)
  hiddens={{  // makes dates invisible
    dates: ['22 July 2017'], //absolute dates list
    relative: [2], // relative to today (0:today, 1:tomorrow, -1:yesterday)
    weekly: [1]  //each week (0:Sunday, 1:Monday ...)
  }}
  todayText={"today"}  // replacing today text (default : - TODAY -)
  unavailableText={"Unavailable"}  // replacing unavailable text (default: unavailable )
/>

Responsiveness and Mobil View

When mobilView props is true, mobilView enables:

React Weekly Day Picker Responsiveness

Styling and Css classes

classNames prop overrides existed css classes

render() {
  const classNames = {
    container : '',
    prevWeekArrow: '',
    nextWeekArrow: '',
    dayBox: '',
    dayCircleContainer: '',
    dayCicle: '',
    dayCircleTodayText: '',
    dayCircleUnavailable: '',
    dayCircleUnavailableText: '',
    dayCicleSelected: '',
  }
  return (
    <ReactWeeklyDayPicker
      classNames={classNames}
    />
  );
}