HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/blijegasten/blijegasten.be/resources/js/site/components/datePickerHandler.js
import flatpickr from "flatpickr";
import { Dutch } from "flatpickr/dist/l10n/nl";
flatpickr.localize(Dutch);

const today = new Date().setHours(0,0,0,0);

flatpickr.defaultConfig = {
    dateFormat: "d-m-Y",
    // minDate: today, // Probably bug in flatpickr but doesn't work
    defaultDate: today,
    // allowInput: true, // We disable by input, because it's buggy and not working if you change the format style...
    nextArrow: '<span class="lib-flatpickr__arrow  lib-flatpickr__arrow--next"></span>',
    prevArrow: '<span class="lib-flatpickr__arrow  lib-flatpickr__arrow--prev"></span>',
    disableMobile: "true" // needs to be disabled, otherwise it crashes on mobile

    // This allows to change the date by changing the input
    // onClose: function (selectedDates, dateStr, instance) {
    //     if(selectedDates.length === 1) {
    //         instance.setDate(dateStr);
    //         instance.onClose(selectedDates, dateStr, instance);
    //     }
    // },
    
    // We check in the on change method that it must be before the minDate
    // onChange: function (selectedDates, dateStr, instance) {
    //     debugger;
    // }
};

const DatePickerHandler = {

    datePickers: [],

    init: function () {

        const datePickerElements = document.getElementsByClassName('js-date-picker');

        for(let i = 0; i < datePickerElements.length; i++) {

            const datePickerElement = datePickerElements[i];
            let selectedDate = datePickerElement.value;
            let minDate = datePickerElement.getAttribute('data-min-date');

            flatpickr(datePickerElements[i], {
                minDate: minDate,
                defaultDate: selectedDate,
            });
        }
    },

};

DatePickerHandler.init();