From 8a9f38069aac2c7310c18705dc5cec637cf0bc99 Mon Sep 17 00:00:00 2001 From: Alexis <35.alexis.pele@gmail.com> Date: Fri, 3 May 2024 18:15:40 +0200 Subject: [PATCH] Sorting events by default and minor fixes --- .../calendar/search/CalendarSearch.vue | 8 ++-- src/data/Events.ts | 2 +- src/stores/EventStore.ts | 46 ++++++++++--------- 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/src/components/calendar/search/CalendarSearch.vue b/src/components/calendar/search/CalendarSearch.vue index 8daa23d..a1796ea 100644 --- a/src/components/calendar/search/CalendarSearch.vue +++ b/src/components/calendar/search/CalendarSearch.vue @@ -54,7 +54,7 @@ import { import SearchList from './lists/SearchList.vue' const { characters } = useCharacters() -const { baseEvents } = useCalendarEvents() +const { allEvents } = useCalendarEvents() const modalOpen = defineModel({ default: false }) @@ -96,11 +96,11 @@ const searchResults = computed<(Character | CalendarEvent)[]>(() => { // Assign data to loop over and filter // They are assigned this way for readability if (selectedEntity.value === 'events') { - dataToFilter = baseEvents + dataToFilter = allEvents } else if (selectedEntity.value === 'characters') { dataToFilter = characters } else { - dataToFilter = [...baseEvents, ...characters] + dataToFilter = [...allEvents, ...characters] } /** @@ -306,7 +306,7 @@ function handleCategorySelect(e: any) {
- +
diff --git a/src/data/Events.ts b/src/data/Events.ts index 11abfc3..6788b03 100644 --- a/src/data/Events.ts +++ b/src/data/Events.ts @@ -1,6 +1,6 @@ import type { CalendarEvent } from '@/models/Events' -export const regularEvents: CalendarEvent[] = [ +export const initialEvents: CalendarEvent[] = [ // Histoire Antique { title: "Laurdieu devient la première cité de l'empire de Kaliatos", diff --git a/src/stores/EventStore.ts b/src/stores/EventStore.ts index c47a6b1..964f208 100644 --- a/src/stores/EventStore.ts +++ b/src/stores/EventStore.ts @@ -1,35 +1,37 @@ -import { regularEvents } from '@/data/Events' -import { convertDateToDays, daysPerMonth } from '@/models/Date' +import { initialEvents } from '@/data/Events' +import { compareDates, convertDateToDays, daysPerMonth } from '@/models/Date' import type { CalendarEvent } from '@/models/Events' import { defineStore } from 'pinia' import { ref, watch, type Ref } from 'vue' import { useCalendar } from './CalendarStore' -import { useCharacters } from './CharacterStore' +// import { useCharacters } from './CharacterStore' export const useCalendarEvents = defineStore('calendar-events', () => { const { currentDate, currentConfig } = useCalendar() - const { charactersWithBirthData, charactersWithDeathData } = useCharacters() + // const { charactersWithBirthData, charactersWithDeathData } = useCharacters() - const baseEvents: CalendarEvent[] = regularEvents + const baseEvents: CalendarEvent[] = initialEvents - const characterBirthEvents = charactersWithBirthData.map((character) => { - return { - title: `Naissance de ${character.name}`, - startDate: character.birth, - category: 'naissance' - } as CalendarEvent + // const characterBirthEvents = charactersWithBirthData.map((character) => { + // return { + // title: `Naissance de ${character.name}`, + // startDate: character.birth, + // category: 'naissance' + // } as CalendarEvent + // }) + + // const characterDeathEvents = charactersWithDeathData.map((character) => { + // return { + // title: `Décès de ${character.name}`, + // startDate: character.death, + // category: 'mort' + // } as CalendarEvent + // }) + + const allEvents = [...baseEvents].sort((a, b) => { + return compareDates(a.startDate, b.startDate, 'desc') }) - const characterDeathEvents = charactersWithDeathData.map((character) => { - return { - title: `Décès de ${character.name}`, - startDate: character.death, - category: 'mort' - } as CalendarEvent - }) - - const allEvents = [...characterBirthEvents, ...characterDeathEvents, ...baseEvents] - // Gets all current event in its default state const currentEvents: Ref = ref(computeCurrentEvents()) @@ -106,5 +108,5 @@ export const useCalendarEvents = defineStore('calendar-events', () => { return allEvents.filter((event) => shouldEventBeDisplayed(event)) } - return { baseEvents, allEvents, currentEvents } + return { allEvents, currentEvents } })