Sorting events by default and minor fixes

This commit is contained in:
Alexis
2024-05-03 18:15:40 +02:00
parent bfa7f1aea5
commit 8a9f38069a
3 changed files with 29 additions and 27 deletions

View File

@@ -54,7 +54,7 @@ import {
import SearchList from './lists/SearchList.vue' import SearchList from './lists/SearchList.vue'
const { characters } = useCharacters() const { characters } = useCharacters()
const { baseEvents } = useCalendarEvents() const { allEvents } = useCalendarEvents()
const modalOpen = defineModel({ default: false }) const modalOpen = defineModel({ default: false })
@@ -96,11 +96,11 @@ const searchResults = computed<(Character | CalendarEvent)[]>(() => {
// Assign data to loop over and filter // Assign data to loop over and filter
// They are assigned this way for readability // They are assigned this way for readability
if (selectedEntity.value === 'events') { if (selectedEntity.value === 'events') {
dataToFilter = baseEvents dataToFilter = allEvents
} else if (selectedEntity.value === 'characters') { } else if (selectedEntity.value === 'characters') {
dataToFilter = characters dataToFilter = characters
} else { } else {
dataToFilter = [...baseEvents, ...characters] dataToFilter = [...allEvents, ...characters]
} }
/** /**
@@ -306,7 +306,7 @@ function handleCategorySelect(e: any) {
</div> </div>
<div class="flex items-center gap-1"> <div class="flex items-center gap-1">
<TagsInput class="px-0 gap-0 w-52" :model-value="selectedCategories"> <TagsInput class="px-0 gap-0 w-72" :model-value="selectedCategories">
<div class="flex gap-2 flex-wrap items-center px-3"> <div class="flex gap-2 flex-wrap items-center px-3">
<TagsInputItem v-for="item in selectedCategories" :key="item" :value="item"> <TagsInputItem v-for="item in selectedCategories" :key="item" :value="item">
<TagsInputItemText class="capitalize" /> <TagsInputItemText class="capitalize" />

View File

@@ -1,6 +1,6 @@
import type { CalendarEvent } from '@/models/Events' import type { CalendarEvent } from '@/models/Events'
export const regularEvents: CalendarEvent[] = [ export const initialEvents: CalendarEvent[] = [
// Histoire Antique // Histoire Antique
{ {
title: "Laurdieu devient la première cité de l'empire de Kaliatos", title: "Laurdieu devient la première cité de l'empire de Kaliatos",

View File

@@ -1,35 +1,37 @@
import { regularEvents } from '@/data/Events' import { initialEvents } from '@/data/Events'
import { convertDateToDays, daysPerMonth } from '@/models/Date' import { compareDates, convertDateToDays, daysPerMonth } from '@/models/Date'
import type { CalendarEvent } from '@/models/Events' import type { CalendarEvent } from '@/models/Events'
import { defineStore } from 'pinia' import { defineStore } from 'pinia'
import { ref, watch, type Ref } from 'vue' import { ref, watch, type Ref } from 'vue'
import { useCalendar } from './CalendarStore' import { useCalendar } from './CalendarStore'
import { useCharacters } from './CharacterStore' // import { useCharacters } from './CharacterStore'
export const useCalendarEvents = defineStore('calendar-events', () => { export const useCalendarEvents = defineStore('calendar-events', () => {
const { currentDate, currentConfig } = useCalendar() 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) => { // const characterBirthEvents = charactersWithBirthData.map((character) => {
return { // return {
title: `Naissance de ${character.name}`, // title: `Naissance de ${character.name}`,
startDate: character.birth, // startDate: character.birth,
category: 'naissance' // category: 'naissance'
} as CalendarEvent // } 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 // Gets all current event in its default state
const currentEvents: Ref<CalendarEvent[]> = ref(computeCurrentEvents()) const currentEvents: Ref<CalendarEvent[]> = ref(computeCurrentEvents())
@@ -106,5 +108,5 @@ export const useCalendarEvents = defineStore('calendar-events', () => {
return allEvents.filter((event) => shouldEventBeDisplayed(event)) return allEvents.filter((event) => shouldEventBeDisplayed(event))
} }
return { baseEvents, allEvents, currentEvents } return { allEvents, currentEvents }
}) })