react-week-calendar
v0.1.3
Published
Week calendar on react
Downloads
1,567
Readme
react-week-calendar
A flexible week calendar implemented in React.js. Additional dependency is moment.js
Demo
Live demo: http://birik.github.io/react-week-calendar/
In order to run demo locally, clone the repo and run:
npm install
npm start
and open localhost:3000
in your browser.
Installation
npm install react-week-calendar --save
react-week-calendar in addition to react.js dependes on moment.js. You need to have it in your dependencies:
npm install moment --save
Usage
You need to import the component and styles in your application as follows:
import WeekCalendar from 'react-week-calendar';
import 'react-week-calendar/dist/style.less';
// or import css file
// import 'react-week-calendar/dist/style.css';
Props
| Property | Type | Default | Description
:---|:---|:--- |:---
| firstDay
| momentObj | moment() | The day of the first column |
| numberOfDays
| number | 7 | How many days to show in calendar/ Number of columns |
| scaleHeaderTitle
| string | '' | The text for the top left cell |
| headerCellComponent
| ReactComponent | HeaderCell | The react component that gets used for rendering of header cell |
| dayFormat
| string | 'dd., DD.MM' | formatter for the header cells |
| startTime
| momentObj | moment({h: 0, m: 0}) | From which time to show calendar |
| endTime
| momentObj | moment({h: 23, m: 59}) | Until which time to show calendar |
| scaleUnit
| number | 15 | Pulsing of the calendar in minutes |
| scaleFormat
| string | 'HH:mm' | formatter for the scale cells |
| cellHeight
| number | 25 | the height of the cell |
| dayCellComponent
| ReactComponent | DayCell | The react component that gets used for rendering of calendar cell. If you want to start selection you need to call startSelection from props. |
| selectedIntervals
| array | [] | Array of all selected intervals. Important that all intervals have start and end properties as momentObj. All object is sent to EventComponent|
| onIntervalSelect
| func | | Send back the array of selected intervals with start, end and all values from module|
| onIntervalUpdate
| func | | Send back the new values of interval|
| onIntervalRemove
| func | | |
| eventComponent
| ReactComponent | Event | The react component that gets used for rendering of intervals |
| onEventClick
| func | | |
| modalComponent
| ReactComponent | Modal | The react component that gets used for rendering of modal |
| useModal
| bool | true | If false, after selection of the intervals the modal will be not shown and intervals will send back |
| showModalCase
| array | ['create', 'edit'] | Cases in which to show the modal (create new interval vs. edit existing interval)
| eventSpacing
| number | 15 |The amount of horizontal space (in pixels) between events|
If you want to change the styles of the component, you should overwrite the less variable. For example:
@import "~react-week-calendar/dist/style.less";
@calendar-max-height: 350px;
@header-height: 35px;
@column-min-width: 200px;
@scale-width: 100px;
Check all variables and default values in style.less