import {ref, type Ref} from 'vue' import {isValidIso} from './dateFormat' export function useCalendarView(viewMode: Ref<'days' | 'months'>) { const today = new Date() const currentMonth = ref(today.getMonth()) const currentYear = ref(today.getFullYear()) const goToPrev = () => { if (viewMode.value === 'months') { currentYear.value -= 1 return } if (currentMonth.value === 0) { currentMonth.value = 11 currentYear.value -= 1 } else { currentMonth.value -= 1 } } const goToNext = () => { if (viewMode.value === 'months') { currentYear.value += 1 return } if (currentMonth.value === 11) { currentMonth.value = 0 currentYear.value += 1 } else { currentMonth.value += 1 } } const selectMonth = (m: number) => { currentMonth.value = m } const syncToIso = (iso: string | null) => { if (iso && isValidIso(iso)) { currentMonth.value = Number(iso.slice(5, 7)) - 1 currentYear.value = Number(iso.slice(0, 4)) } else { const now = new Date() currentMonth.value = now.getMonth() currentYear.value = now.getFullYear() } } return {currentMonth, currentYear, goToPrev, goToNext, selectMonth, syncToIso} }