Migration to Nuxt3

This commit is contained in:
2023-04-30 18:36:39 +02:00
parent ed2e1824c5
commit 0480b99865
170 changed files with 13890 additions and 3699 deletions

11
utils/cookie_handler.ts Normal file
View File

@ -0,0 +1,11 @@
export function shouldShowCookie():boolean {
return localStorage.getItem("cookie") == undefined;
}
export function acceptCookie():void {
localStorage.setItem("cookie", "accept");
}
export function refuseCookie():void {
localStorage.setItem("cookie", "refuse");
}

View File

@ -0,0 +1,28 @@
const EASTER_EGGS = ["cookie", "future", "change-something", "picture-bright", "picture-nolights"];
export function addFoundEasterEgg(name:string):void {
if (!EASTER_EGGS.includes(name)) { return; }
let found_eastereggs = new Set( JSON.parse(localStorage.getItem("eastereggs") ?? "[]") );
const is_new = !found_eastereggs.has(name);
found_eastereggs.add(name);
localStorage.setItem("eastereggs", JSON.stringify([...found_eastereggs]));
if (is_new) {
// To trigger the banner
document.dispatchEvent(new CustomEvent("easteregg", { detail: name }));
}
}
export function getFoundEasterEggs():string[] {
return JSON.parse(localStorage.getItem("eastereggs") ?? "[]");
}
export function getFoundEasterEggsCount():number {
return getFoundEasterEggs().length;
}
export function getTotalEasterEggsCount():number {
return EASTER_EGGS.length;
}

11
utils/random.ts Normal file
View File

@ -0,0 +1,11 @@
export function randomOfArray<T>(array:T[]):T {
return array[Math.floor(Math.random() * array.length)];
}
export function random(min:number, max:number):number {
return Math.random() * (max - min) + min;
}
export function randomInt(min:number, max:number):number {
return Math.floor(random(min, max));
}

22
utils/theme_handler.ts Normal file
View File

@ -0,0 +1,22 @@
export function getTheme() : string {
return localStorage.getItem("theme") ?? "dark";
}
export function setTheme(theme:string) : void {
if (theme !== "dark" && theme !== "light") { theme = "dark"; }
localStorage.setItem("theme", theme);
}
export function flipTheme() : void {
setTheme(getTheme() === "dark" ? "light" : "dark");
}
export function applyTheme(theme?:string) : void {
if (!theme) { theme = getTheme(); }
switch (theme) {
case "dark": document.documentElement.classList.add("dark"); break;
case "light": document.documentElement.classList.remove("dark"); break;
default: document.documentElement.classList.add("dark"); break;
}
}