diff --git a/src/App.vue b/src/App.vue
index a78fb6f..ed2af98 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -3,5 +3,7 @@ import { RouterView } from 'vue-router'
-
+
+
+
diff --git a/src/components/Calendar.vue b/src/components/Calendar.vue
new file mode 100644
index 0000000..d9a3835
--- /dev/null
+++ b/src/components/Calendar.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/CalendarMenu.vue b/src/components/CalendarMenu.vue
new file mode 100644
index 0000000..8a70e70
--- /dev/null
+++ b/src/components/CalendarMenu.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+ {{ navbarTitle }}
+
+
+
diff --git a/src/components/state/Century.vue b/src/components/state/Century.vue
new file mode 100644
index 0000000..1c83776
--- /dev/null
+++ b/src/components/state/Century.vue
@@ -0,0 +1,9 @@
+
+
+
+ Century
+
diff --git a/src/components/state/Decade.vue b/src/components/state/Decade.vue
new file mode 100644
index 0000000..1c6de81
--- /dev/null
+++ b/src/components/state/Decade.vue
@@ -0,0 +1,3 @@
+
+ Decade
+
diff --git a/src/components/state/Monthly.vue b/src/components/state/Monthly.vue
new file mode 100644
index 0000000..6a1ce67
--- /dev/null
+++ b/src/components/state/Monthly.vue
@@ -0,0 +1,3 @@
+
+ Monthly
+
diff --git a/src/components/state/Year.vue b/src/components/state/Year.vue
new file mode 100644
index 0000000..b5256a2
--- /dev/null
+++ b/src/components/state/Year.vue
@@ -0,0 +1,3 @@
+
+ Annuel
+
diff --git a/src/models/Date.ts b/src/models/Date.ts
index 37872e8..6c8950a 100644
--- a/src/models/Date.ts
+++ b/src/models/Date.ts
@@ -6,3 +6,4 @@ export type LeimDate = {
}
export type LeimPeriod = 'ante' | 'nante'
+export type LeimPeriodShort = 'A.R' | 'N.R'
diff --git a/src/stores/calendar.ts b/src/stores/calendar.ts
index bc0a14c..a28a897 100644
--- a/src/stores/calendar.ts
+++ b/src/stores/calendar.ts
@@ -1,7 +1,7 @@
import { computed, type Ref, type ComputedRef, ref } from 'vue'
import { defineStore } from 'pinia'
import { useUrlSearchParams } from '@vueuse/core'
-import type { LeimPeriod } from '@/models/Date'
+import type { LeimPeriod, LeimPeriodShort } from '@/models/Date'
type CalendarViewType = 'month' | 'year' | 'decade' | 'century'
@@ -18,11 +18,12 @@ type CalendarCurrentConfig = {
}
type CalendarCurrentDate = {
- currentPeriod: Ref
- currentYear: ComputedRef
- currentMonth: ComputedRef
currentDay: ComputedRef
+ currentMonth: ComputedRef
currentMonthName: ComputedRef
+ currentYear: ComputedRef
+ currentPeriod: Ref
+ currentPeriodAbbr: Ref
}
export const useCalendar = defineStore('calendar', () => {
@@ -60,7 +61,7 @@ export const useCalendar = defineStore('calendar', () => {
}
const currentConfig: Ref = ref({
- viewType: 'century'
+ viewType: 'month'
})
// Get date from URL params
@@ -100,14 +101,18 @@ export const useCalendar = defineStore('calendar', () => {
const year = Number(currentYear.value)
return year >= 0 ? 'nante' : 'ante'
})
+ const currentPeriodAbbr: ComputedRef = computed(() => {
+ return currentPeriod.value === 'ante' ? 'A.R' : 'N.R'
+ })
// Create base config
const currentDate: CalendarCurrentDate = {
currentDay,
currentMonth,
+ currentMonthName,
currentYear,
currentPeriod,
- currentMonthName
+ currentPeriodAbbr
}
/**
@@ -174,11 +179,29 @@ export const useCalendar = defineStore('calendar', () => {
params.year = newValue.toString()
}
+ /**
+ * From a given year, returns a set of LeimPeriod identifier
+ *
+ * This is used in range use-cases
+ *
+ * @param year The year to display
+ * @returns An object containing both short and long LeimPeriod
+ */
+ function getPeriodOfYear(year: string | number): { long: LeimPeriod; short: LeimPeriodShort } {
+ const numYear = year as number
+
+ return {
+ long: numYear >= 0 ? 'nante' : 'ante',
+ short: numYear >= 0 ? 'N.R' : 'A.R'
+ }
+ }
+
return {
staticConfig,
currentConfig,
currentDate,
params,
+ getPeriodOfYear,
incrementMonth,
decrementMonth,
setMonth,
diff --git a/src/stores/events.ts b/src/stores/events.ts
index 985551c..9ca812c 100644
--- a/src/stores/events.ts
+++ b/src/stores/events.ts
@@ -60,13 +60,13 @@ export const useCalendarEvents = defineStore('calendar-events', () => {
case 'decade':
return (
- event.date.year >= Number(currentDate.currentYear) - 10 &&
+ event.date.year >= Number(currentDate.currentYear) &&
event.date.year <= Number(currentDate.currentYear) + 10
)
case 'century':
return (
- event.date.year >= Number(currentDate.currentYear) - 100 &&
+ event.date.year >= Number(currentDate.currentYear) &&
event.date.year <= Number(currentDate.currentYear) + 100
)
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue
index 58074de..401a6c1 100644
--- a/src/views/HomeView.vue
+++ b/src/views/HomeView.vue
@@ -1,20 +1,11 @@
-
-
+
+
+