import 'flatpickr/dist/themes/airbnb.css'; import flatpickr from 'flatpickr'; import english from 'flatpickr/dist/l10n/default'; // Import flatpickr types import type { Instance as FlatpickrInstance } from 'flatpickr/dist/types/instance'; import type { Options as FlatpickrOptions } from 'flatpickr/dist/types/options'; import { resetButton } from './resetButton'; // Date picker options const flatpickrOptions: FlatpickrOptions = { minDate: 'today', maxDate: (() => { const maxDate = new Date(); maxDate.setDate(maxDate.getDate() + 365); // One year from now return maxDate; })(), dateFormat: 'F j Y', altFormat: 'F j Y', locale: english, onReady(selectedDates, dateStr, instance) { instance.close(); }, }; export function handleDates(): HTMLAnchorElement | boolean { // Set default dates of today and one year from now const today = new Date(); const nextYear = new Date(today.getFullYear() + 1, today.getMonth(), today.getDate()); console.log('Created Dates', { today, nextYear }); // Get the date elements const dateToElement = document.getElementById('Date-To') as HTMLInputElement; const dateFromElement = document.getElementById('Date-From') as HTMLInputElement; console.log('Date Elements', { dateFromElement, dateToElement }); // If the date elements exist... if (dateFromElement && dateToElement) { const urlParams = new URLSearchParams(window.location.search); const datesParam = urlParams.get('dates'); const [dateParamFrom, dateParamTo] = (datesParam ?? '').split(','); if (datesParam) { console.log('Found Existing Dates Parameter', { dateParamFrom, dateParamTo }); dateFromElement.value = dateParamFrom; dateToElement.value = dateParamTo; console.log('Input values set for Range Elements', { dateFromElement, dateToElement }); } // Initialize the date pickers const dateFrom = flatpickr(dateFromElement, flatpickrOptions) as FlatpickrInstance; const dateTo = flatpickr(dateToElement, flatpickrOptions) as FlatpickrInstance; console.log('Initialized Flatpickr'); if (dateParamFrom) { dateFrom.setDate(dateParamFrom); console.log('Set Date From to Query Variable'); } else { dateFrom.setDate(today); console.log('Set Date From to Today'); } if (dateParamTo) { dateTo.setDate(dateParamTo); console.log('Set Date To to Query Variable'); } else { dateTo.setDate(nextYear); console.log('Set Date To to Next Year'); } const reset = resetButton(dateFrom, dateTo, today, nextYear); return reset; } console.error('Date elements not found.'); return false; }