From b8e07c8f089005dc39a354290a8c9c5e7cac7183 Mon Sep 17 00:00:00 2001 From: Eric Liu Date: Wed, 23 Feb 2022 06:50:25 -0800 Subject: [PATCH] fix(date-picker): re-initialize calendar if options change Fixes #1127 --- src/DatePicker/DatePicker.svelte | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/DatePicker/DatePicker.svelte b/src/DatePicker/DatePicker.svelte index cd4a7618..15b38441 100644 --- a/src/DatePicker/DatePicker.svelte +++ b/src/DatePicker/DatePicker.svelte @@ -138,18 +138,11 @@ }, }); - async function initCalendar() { + async function initCalendar(options) { + calendar?.destroy(); + calendar = null; calendar = await createCalendar({ - options: { - appendTo: datePickerRef, - dateFormat, - defaultDate: $inputValue, - locale, - maxDate, - minDate, - mode: $mode, - ...flatpickrProps, - }, + options, base: inputRef, input: inputRefTo, dispatch: (event) => { @@ -203,7 +196,17 @@ $: valueFrom = $inputValueFrom; $: inputValueTo.set(valueTo); $: valueTo = $inputValueTo; - $: if ($hasCalendar && !calendar && inputRef) initCalendar(); + $: if ($hasCalendar && inputRef) + initCalendar({ + appendTo: datePickerRef, + dateFormat, + defaultDate: $inputValue, + locale, + maxDate, + minDate, + mode: $mode, + ...flatpickrProps, + });