Source: utils/updateEvent.js

/**
 * @description La fonction `updateEvent` met à jour un tableau d'événements en ajoutant ou en supprimant un
 * événement en fonction d'une condition donnée.
 * @param {Array} events - (store.loadedEvents)Une panoplie d'événements. Chaque événement est un objet avec des propriétés telles que uuid, start, end, etc.
 *
 * @param {Object} data - Le paramètre `data` est un objet qui représente l'événement à mettre à jour.
 * @param {String}[data.uuid] - L'identifiant unique de l'événement.
 * @param {Boolean} [add=true] - Le paramètre "add" est une valeur booléenne qui détermine s'il faut ajouter ou
 * mettre à jour un événement dans le tableau des événements. Si add est vrai, la fonction ajoutera
 * l'événement au tableau s'il n'existe pas déjà. Si add est faux, la fonction mettra à jour
 * l'événement existant dans le tableau
 * @returns le tableau `db` (store.loadedEvents) mis à jour.
 */
export async function updateEvent(events, data, add = true) {
  const index = events.events.findIndex((val) => val.uuid === data.uuid);

  if (index === -1) {
    events.events.push(data);
  } else {
    if (add) events.events[index] = data;
    else events.events.splice(index, 1);
  }

  if (events.length > 0) events.sort((a, b) => a.start - b.start);

  return events;
}