export type ScrollMode = "native" | "inverted" | "glitch"

export const SCROLL_MODE_STORAGE_KEY = "valabel-scroll"
// Événement custom pour synchroniser le contrôleur global (monté dans le
// layout racine, actif sur toutes les pages) avec le sélecteur, qui lui ne
// vit que sur la page d'accueil — le storage event ne se déclenche pas dans
// l'onglet qui vient d'écrire, il faut donc ce relais manuel.
export const SCROLL_MODE_EVENT = "valabel-scroll-change"

export const SCROLL_MODES: { value: ScrollMode; label: string; description: string }[] = [
  { value: "native", label: "Originale", description: "Défilement natif du navigateur" },
  { value: "inverted", label: "Inversé", description: "La molette scrolle à l'envers" },
  { value: "glitch", label: "Glitch", description: "Défilement normal, sautes imprévisibles" },
]

export function isScrollMode(value: string | null): value is ScrollMode {
  return value === "native" || value === "inverted" || value === "glitch"
}
