Tiny wrapper component for React-datepicker to stylistically fit with Chakra-UI.
<DatePicker selectedDate={myDate} handleChange={(d) => console.log(d) />
Adapted from this comment
Tiny wrapper component for React-datepicker to stylistically fit with Chakra-UI.
<DatePicker selectedDate={myDate} handleChange={(d) => console.log(d) />
Adapted from this comment
| .react-datepicker { | |
| font-family: unset; | |
| font-size: 0.9rem; | |
| } | |
| .react-datepicker-wrapper, | |
| .react-datepicker__input-container { | |
| display: block; | |
| } | |
| .react-datepicker__input-container { | |
| font-size: 1rem; | |
| padding-left: 1rem; | |
| padding-right: 1rem; | |
| height: 2.5rem; | |
| border-radius: 0.25rem; | |
| border: 1px solid; | |
| border-color: hsl(0,0%,80%); | |
| } | |
| .react-datepicker__input-container:hover { | |
| border-color: hsl(0,0%,70%); | |
| } | |
| .react-datepicker__input-container:focus-within { | |
| z-index: 1; | |
| border-color: #3182ce; | |
| box-shadow: 0 0 0 1px #3182ce; | |
| } | |
| .react-datepicker__input-container > input { | |
| width: 100%; | |
| height: 100%; | |
| outline: 0; | |
| } | |
| .react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button) { | |
| right: 90px; | |
| } | |
| .react-datepicker__navigation--previous, | |
| .react-datepicker__navigation--next { | |
| height: 8px; | |
| } | |
| .react-datepicker__navigation--previous { | |
| border-right-color: #cbd5e0; | |
| } | |
| .react-datepicker__navigation--previous:hover { | |
| border-right-color: #a0aec0; | |
| } | |
| .react-datepicker__navigation--next { | |
| border-left-color: #cbd5e0; | |
| } | |
| .react-datepicker__navigation--next:hover { | |
| border-left-color: #a0aec0; | |
| } | |
| .react-datepicker__header { | |
| background: #f7fafc; | |
| } | |
| .react-datepicker__header, | |
| .react-datepicker__time-container { | |
| border-color: #E2E8F0; | |
| } | |
| .react-datepicker__current-month, | |
| .react-datepicker-time__header, | |
| .react-datepicker-year-header { | |
| font-size: inherit; | |
| font-weight: 600; | |
| } | |
| .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item { | |
| margin: 0 1px 0 0; | |
| height: auto; | |
| padding: 7px 10px; | |
| } | |
| .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover { | |
| background: #edf2f7; | |
| } | |
| .react-datepicker__day:hover { | |
| background: #edf2f7; | |
| } | |
| .react-datepicker__day--selected, | |
| .react-datepicker__day--in-selecting-range, | |
| .react-datepicker__day--in-range, | |
| .react-datepicker__month-text--selected, | |
| .react-datepicker__month-text--in-selecting-range, | |
| .react-datepicker__month-text--in-range, | |
| .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected { | |
| background: #3182ce; | |
| font-weight: normal; | |
| } | |
| .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover { | |
| background: #2a69ac; | |
| } |
| import { BoxProps } from '@chakra-ui/core'; | |
| import * as React from 'react'; | |
| import { FormEventHandler } from 'react'; | |
| import ReactDatePicker from 'react-datepicker'; | |
| import 'react-datepicker/dist/react-datepicker.css'; | |
| import './date-picker.css'; | |
| interface Props { | |
| selectedDate: Date; | |
| handleChange: FormEventHandler; | |
| } | |
| const DatePicker = ({ selectedDate, handleChange, ...props }: Props & BoxProps) => { | |
| return <ReactDatePicker selected={selectedDate} onChange={handleChange} showPopperArrow={false} {...props} />; | |
| }; | |
| export default DatePicker; |