mirror of
https://github.com/NotXia/notxia.github.io.git
synced 2025-12-14 19:01:51 +01:00
Migration to Nuxt3
This commit is contained in:
11
utils/cookie_handler.ts
Normal file
11
utils/cookie_handler.ts
Normal 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");
|
||||
}
|
||||
28
utils/easteregg_handler.ts
Normal file
28
utils/easteregg_handler.ts
Normal 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
11
utils/random.ts
Normal 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
22
utils/theme_handler.ts
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user