From faeee2b1a112571f564190c06499fafbf61c1e5a Mon Sep 17 00:00:00 2001 From: metonym Date: Sat, 26 Feb 2022 11:24:44 -0800 Subject: [PATCH] fix(date-picker): update calendar if options change (#1128) Fixes #1127 --- src/DatePicker/DatePicker.svelte | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/src/DatePicker/DatePicker.svelte b/src/DatePicker/DatePicker.svelte index cd4a7618..3253936f 100644 --- a/src/DatePicker/DatePicker.svelte +++ b/src/DatePicker/DatePicker.svelte @@ -138,17 +138,24 @@ }, }); - async function initCalendar() { + async function initCalendar(options) { + if (calendar) { + calendar.set("minDate", minDate); + calendar.set("maxDate", maxDate); + calendar.set("locale", locale); + calendar.set("dateFormat", dateFormat); + Object.entries(flatpickrProps).forEach(([option, value]) => { + calendar.set(options, value); + }); + return; + } + calendar = await createCalendar({ options: { + ...options, appendTo: datePickerRef, - dateFormat, defaultDate: $inputValue, - locale, - maxDate, - minDate, mode: $mode, - ...flatpickrProps, }, base: inputRef, input: inputRefTo, @@ -203,7 +210,15 @@ $: valueFrom = $inputValueFrom; $: inputValueTo.set(valueTo); $: valueTo = $inputValueTo; - $: if ($hasCalendar && !calendar && inputRef) initCalendar(); + $: if ($hasCalendar && inputRef) { + initCalendar({ + dateFormat, + locale, + maxDate, + minDate, + ...flatpickrProps, + }); + }