Documented some calendar functions

This commit is contained in:
Alexis
2024-04-05 17:54:03 +02:00
parent 6368ada51d
commit 84f4b68080

View File

@@ -158,6 +158,9 @@ export const useCalendar = defineStore('calendar', () => {
currentDateTitle currentDateTitle
} }
/**
* Check whether the current viewType is active
*/
const isCurrentScreenActive = computed(() => { const isCurrentScreenActive = computed(() => {
switch (currentConfig.value.viewType) { switch (currentConfig.value.viewType) {
case 'month': case 'month':
@@ -180,7 +183,6 @@ export const useCalendar = defineStore('calendar', () => {
* Moves the current date forward one month * Moves the current date forward one month
*/ */
function incrementMonth() { function incrementMonth() {
// const oldValue = params.month
let newValue = Number(params.month) + 1 let newValue = Number(params.month) + 1
// If the new value would exceed the max number of month per year // If the new value would exceed the max number of month per year
@@ -197,7 +199,6 @@ export const useCalendar = defineStore('calendar', () => {
* Moves the current date backward one month * Moves the current date backward one month
*/ */
function decrementMonth() { function decrementMonth() {
// const oldValue = params.month
let newValue = Number(params.month) - 1 let newValue = Number(params.month) - 1
// If the new value would go below 0 // If the new value would go below 0
@@ -257,15 +258,32 @@ export const useCalendar = defineStore('calendar', () => {
} }
} }
function getMonthName(monthNumber: number) { /**
* Get the formatted month name given its index
*
* @param monthNumber Index of the month
* @returns Formatted month name
*/
function getMonthName(monthNumber: number): string {
const index = Number(monthNumber) const index = Number(monthNumber)
return staticConfig.months[index] return staticConfig.months[index]
} }
/**
* Switches the active viewType
*
* @param viewType Target viewType
*/
function setViewType(viewType: CalendarViewType): void { function setViewType(viewType: CalendarViewType): void {
currentConfig.value.viewType = viewType currentConfig.value.viewType = viewType
} }
/**
* Gets the formatted viewType title
*
* @param viewType Target viewType
* @returns Formatted mode title
*/
function getViewTypeTitle(viewType: CalendarViewType): string { function getViewTypeTitle(viewType: CalendarViewType): string {
switch (viewType) { switch (viewType) {
case 'year': case 'year':
@@ -283,6 +301,13 @@ export const useCalendar = defineStore('calendar', () => {
} }
} }
/**
* From a LeimDate, returns the legible date title
*
* @param date Date target
* @param showNumber Should the date show the day number
* @returns Formatted date name
*/
function getFormattedDateTitle(date: LeimDate, showNumber?: boolean): string { function getFormattedDateTitle(date: LeimDate, showNumber?: boolean): string {
if (showNumber) { if (showNumber) {
return `${date.day} ${getMonthName(date.month)} ${date.year} ${getPeriodOfYear(date.year).short}` return `${date.day} ${getMonthName(date.month)} ${date.year} ${getPeriodOfYear(date.year).short}`
@@ -291,17 +316,32 @@ export const useCalendar = defineStore('calendar', () => {
return `${getMonthName(date.month)} ${date.year} ${getPeriodOfYear(date.year).short}` return `${getMonthName(date.month)} ${date.year} ${getPeriodOfYear(date.year).short}`
} }
/**
* Check whether two dates are identical
*
* @param date1 First date
* @param date2 Second date
* @returns True if the dates are identical
*/
function compareTwoDates(date1: LeimDate, date2: LeimDate) { function compareTwoDates(date1: LeimDate, date2: LeimDate) {
// To refacto to be more precise // To refacto to be more precise
return JSON.stringify({ ...date1 }) === JSON.stringify({ ...date2 }) return JSON.stringify({ ...date1 }) === JSON.stringify({ ...date2 })
} }
/**
* Jumps the calendar to the given date
*
* @param date Target date
*/
function jumpToDate(date: LeimDate) { function jumpToDate(date: LeimDate) {
params.day = date.day.toString() params.day = date.day.toString()
params.month = date.month.toString() params.month = date.month.toString()
params.year = date.year.toString() params.year = date.year.toString()
} }
/**
* Jump the calendar to the default date
*/
function jumpToDefaultDate() { function jumpToDefaultDate() {
jumpToDate(defaultDate.value) jumpToDate(defaultDate.value)
currentConfig.value.viewType = 'month' currentConfig.value.viewType = 'month'