UNPKG

@quasar/quasar-ui-qcalendar

Version:

QCalendar - Day/Month/Week Calendars, Popups, Date Pickers, Schedules, Agendas, Planners and Tasks for your Vue Apps

45 lines (35 loc) 1.06 kB
import { Ref } from 'vue' import { Timestamp } from '../utils/Timestamp' export const useCheckChangeEmits = ['change'] as const export interface CheckChangeProps { days: Ref<Timestamp[]> lastStart: Ref<string | null> lastEnd: Ref<string | null> } export interface CheckChangeEvent { start: string end: string days: Timestamp[] } interface CheckChangeReturn { checkChange: () => boolean } export default function useCheckChange( emit: (_event: 'change', _payload: CheckChangeEvent) => void, { days, lastStart, lastEnd }: CheckChangeProps, ): CheckChangeReturn { function checkChange(): boolean { const dayList = days.value if (dayList.length === 0) return false const start = dayList[0].date const end = dayList[dayList.length - 1].date if (!lastStart.value || !lastEnd.value || start !== lastStart.value || end !== lastEnd.value) { lastStart.value = start lastEnd.value = end emit('change', { start, end, days: dayList }) return true } return false } return { checkChange } }