From ded376825fcf6a2357dac44befa5990503474931 Mon Sep 17 00:00:00 2001 From: Yury Uvarov Date: Mon, 16 Dec 2024 15:02:25 +0300 Subject: [PATCH] fix reset, update and set methods --- demo/pages/input/main.ts | 70 +++++++++++++-------------- package/src/scripts/methods/reset.ts | 4 +- package/src/scripts/methods/set.ts | 5 +- package/src/scripts/methods/update.ts | 5 +- 4 files changed, 39 insertions(+), 45 deletions(-) diff --git a/demo/pages/input/main.ts b/demo/pages/input/main.ts index a0921287..3e91be31 100644 --- a/demo/pages/input/main.ts +++ b/demo/pages/input/main.ts @@ -28,34 +28,6 @@ const configDiv: Options = { } self.hide(); }, - popups: { - '2024-08-28': { - modifier: 'bg-red', - html: 'Meeting at 9:00 PM', - }, - '2024-08-05': { - modifier: 'bg-red text-bold', - html: 'Meeting at 6:00 PM with a friend', - }, - '2024-08-11': { - modifier: 'bg-red text-bold', - html: 'Diner at 8:00 PM with a friend', - }, - '2024-08-19': { - modifier: 'bg-orange', - html: `
- 12:00 PM -

Airplane in Las Vegas

-
`, - }, - '2024-08-04': { - modifier: 'bg-orange', - html: `
- 12:00 PM -

Lunch with John for initial meeting

-
`, - }, - }, }; document.addEventListener('DOMContentLoaded', () => { @@ -63,18 +35,44 @@ document.addEventListener('DOMContentLoaded', () => { calendarInput.init(); const calendarDiv = new Calendar('#calendar-div', configDiv); + calendarDiv.set({ + popups: { + '2024-08-28': { + modifier: 'bg-red', + html: 'Meeting at 9:00 PM', + }, + '2024-08-05': { + modifier: 'bg-red text-bold', + html: 'Meeting at 6:00 PM with a friend', + }, + '2024-08-11': { + modifier: 'bg-red text-bold', + html: 'Diner at 8:00 PM with a friend', + }, + '2024-08-19': { + modifier: 'bg-orange', + html: `
+ 12:00 PM +

Airplane in Las Vegas

+
`, + }, + '2024-08-04': { + modifier: 'bg-orange', + html: `
+ 12:00 PM +

Lunch with John for initial meeting

+
`, + }, + }, + }); calendarDiv.init(); document.querySelector('#set-date')?.addEventListener('click', () => { - calendarInput.selectedDates = ['2023-04-07']; - calendarInput.selectedMonth = 3; - calendarInput.selectedYear = 2023; - calendarInput.update({ - dates: true, - month: true, - year: true, + calendarInput.set({ + selectedDates: ['2023-04-07'], + selectedMonth: 3, + selectedYear: 2023, }); - calendarInput.context.inputElement!.value = '2023-04-07'; }); }); diff --git a/package/src/scripts/methods/reset.ts b/package/src/scripts/methods/reset.ts index 7a7cbe6a..54cedab2 100644 --- a/package/src/scripts/methods/reset.ts +++ b/package/src/scripts/methods/reset.ts @@ -4,7 +4,7 @@ import initAllVariables from '@scripts/utils/initVariables/initAllVariables'; import setContext from '@scripts/utils/setContext'; import type { Calendar, Reset } from '@src/index'; -const reset = (self: Calendar, { year, month, dates, time, locale }: Reset) => { +const reset = (self: Calendar, { year, month, dates, time, locale }: Reset, recreate = true) => { const previousSelected = { year: self.selectedYear, month: self.selectedMonth, @@ -32,7 +32,7 @@ const reset = (self: Calendar, { year, month, dates, time, locale }: Reset) => { } initAllVariables(self); - create(self); + if (recreate) create(self); self.selectedYear = previousSelected.year; self.selectedMonth = previousSelected.month; diff --git a/package/src/scripts/methods/set.ts b/package/src/scripts/methods/set.ts index de486f45..dfd6d4c6 100644 --- a/package/src/scripts/methods/set.ts +++ b/package/src/scripts/methods/set.ts @@ -1,11 +1,10 @@ -import reset from '@scripts/methods/reset'; +import update from '@scripts/methods/update'; import replaceProperties from '@scripts/utils/replaceProperties'; import type { Calendar, Options, Reset } from '@src/index'; const set = (self: Calendar, options: Options, resetOptions?: Partial) => { - const defaultReset = { year: true, month: true, dates: true, time: true, locale: true }; replaceProperties(self, options); - reset(self, { ...defaultReset, ...resetOptions }); + if (self.context.isInit) update(self, resetOptions); }; export default set; diff --git a/package/src/scripts/methods/update.ts b/package/src/scripts/methods/update.ts index 6da89fa7..9ee6fff1 100644 --- a/package/src/scripts/methods/update.ts +++ b/package/src/scripts/methods/update.ts @@ -1,14 +1,11 @@ -import createToInput from '@scripts/creators/createToInput'; import reset from '@scripts/methods/reset'; import errorMessages from '@scripts/utils/getErrorMessages'; import type { Calendar, Reset } from '@src/index'; const update = (self: Calendar, resetOptions?: Partial) => { if (!self.context.isInit) throw new Error(errorMessages.notInit); - if (self.inputMode && !self.context.inputModeInit) createToInput(self, false); const defaultReset = { year: true, month: true, dates: true, time: true, locale: true }; - - reset(self, { ...defaultReset, ...resetOptions }); + reset(self, { ...defaultReset, ...resetOptions }, !(self.inputMode && !self.context.inputModeInit)); if (self.onUpdate) self.onUpdate(self); };