diff --git a/src/components/Calendar.vue b/src/components/Calendar.vue index d184bc6..a948a03 100644 --- a/src/components/Calendar.vue +++ b/src/components/Calendar.vue @@ -23,9 +23,9 @@ function selectDay(event : Event, day : number | null){ if(!(event.target instanceof HTMLElement) || day == null) return; - event.target.classList.toggle("item-selected"); calendar.setDay(day); datePicker.select(calendar.getDate()); + event.target.classList.toggle("item-selected"); } function clickPrev(){ diff --git a/src/helpers/ArrayHelper.ts b/src/helpers/ArrayHelper.ts new file mode 100644 index 0000000..51a34f0 --- /dev/null +++ b/src/helpers/ArrayHelper.ts @@ -0,0 +1,24 @@ +export abstract class ArrayHelper { + + public static contains(array : any[], element : any) : boolean { + return array.indexOf(element) > -1; + } + + public static indexOf(array : any[], element : any) : number { + return array.indexOf(element); + } + + public static toggleElement(array : any[], element : any) : void { + + let index = ArrayHelper.indexOf(array, element); + console.log(index); + if(index < 0) { + console.log("Not in array") + array.push(element); + } else { + console.log("Already in array") + array.splice(index, 1); + } + } + +} diff --git a/src/stores/CalendarStore.ts b/src/stores/CalendarStore.ts index 3aadfdc..2b81c85 100644 --- a/src/stores/CalendarStore.ts +++ b/src/stores/CalendarStore.ts @@ -1,13 +1,23 @@ import { defineStore } from 'pinia' +import { ArrayHelper} from "@/helpers/ArrayHelper.ts"; export const datePickerStore = defineStore('datePicker', { state: () => { - return { from: new Date(), to: new Date() } + return { dates: [] as number[] } }, actions: { select(date : Date) { - this.from = date < this.from ? date : this.from; - this.to = date > this.to ? date : this.to; + toggleElement(this.dates, date.getTime()); + console.log(this.dates); }, }, }) + +function toggleElement(arr : any[], element:any) : void { + let index = ArrayHelper.indexOf(arr, element); + if (index < 0) { + arr.push(element); + } else { + arr.splice(index, 1); + } +}