Skip to content

Instantly share code, notes, and snippets.

@studentIvan
Created October 9, 2016 16:23
Show Gist options
  • Save studentIvan/dc436526291c7922f6d2e5e23c92376e to your computer and use it in GitHub Desktop.
Save studentIvan/dc436526291c7922f6d2e5e23c92376e to your computer and use it in GitHub Desktop.
Datepicker ES6 PickMeUp component example with flat mode
import pickmeup from 'pickmeup'
import moment from 'moment'
const init = () => {
$(() => {
let today = new Date(), next3months = moment().add(3, 'months').toDate();
let element = document.querySelector('.choose-date__datepickerbox');
if (!element) {
return;
}
let $picker = pickmeup(element, {
min: today,
max: next3months,
select_year: false,
select_month: false,
flat: true,
hide_on_select: true,
format: 'Y.m.d'
});
$(element).each((i, found) => {
pickmeup(found).hide();
let $input = $(found).parent().find('input');
// here I using europe date format Y.m.d
$input.val(today.toISOString().substr(0, 10).replace(/-/g, '.'));
$input.parent().click((event) => {
let box = $(event.target).parent().parent()
.find('.choose-date__datepickerbox .pickmeup').get(0);
box.classList.remove('pmu-hidden');
});
$input.keyup((event, remoteCall) => {
let newDate = $input.val();
if (/\d{4}\.\d{2}\.\d{2}/.test(newDate)) {
// here I using europe date format Y.m.d
let dateResult;
$picker.set_date(new Date(newDate.replace(/\./g, '-')));
setTimeout(() => {
dateResult = $picker.get_date(true);
$input.val(dateResult);
}, 1);
$picker.hide();
}
});
});
element.addEventListener('pickmeup-change', (event) => {
pickmeup(event.target).hide();
$(event.target).parent().find('input').val(event.detail.formatted_date);
});
});
}
export default init();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment