ensure pikaday date is updated when we choose a preset date range

This commit is contained in:
Danny van Kooten 2018-05-24 13:46:26 +02:00
parent a00e72f81d
commit b414f10348
2 changed files with 14 additions and 4 deletions

View File

@ -21,7 +21,9 @@ const availablePeriods = [
id: 'year', id: 'year',
label: 'This year' label: 'This year'
} }
] ];
const padZero = function(n){return n<10? '0'+n:''+n;}
class DatePicker extends Component { class DatePicker extends Component {
constructor(props) { constructor(props) {
@ -106,8 +108,7 @@ class DatePicker extends Component {
} }
dateValue(date) { dateValue(date) {
const addZero = function(n){return n<10? '0'+n:''+n;} return date.getFullYear() + '-' + padZero(date.getMonth() + 1) + '-' + padZero(date.getDate());
return date.getFullYear() + '-' + addZero(date.getMonth() + 1) + '-' + addZero(date.getDate());
} }
@bind @bind

View File

@ -5,12 +5,21 @@ import { h, Component } from 'preact';
class Pikadayer extends Component { class Pikadayer extends Component {
componentDidMount() { componentDidMount() {
new Pikaday({ this.pikaday = new Pikaday({
field: this.base, field: this.base,
onSelect: this.props.onSelect, onSelect: this.props.onSelect,
position: 'bottom right', position: 'bottom right',
}) })
} }
componentWillReceiveProps(newProps) {
// make sure pikaday updates if we set a date using one of our presets
if(newProps.value !== this.state.value) {
this.state.value = newProps.value;
this.pikaday.setDate(newProps.value, false);
}
}
render(props) { render(props) {
return <input {...props} /> return <input {...props} />
} }