brush picker!

This commit is contained in:
りき萌 2025-06-19 13:48:07 +02:00
parent 9b82b211b4
commit c1612b2a94
12 changed files with 849 additions and 45 deletions

View file

@ -28,3 +28,43 @@ export function debounce(time, fn) {
}
};
}
export class SaveData {
constructor(prefix) {
this.prefix = `rkgk.${prefix}`;
this.elementId = "<global>";
}
#localStorageKey(key) {
return `${this.prefix}.${this.elementId}.${key}`;
}
attachToElement(element) {
this.elementId = element.dataset.storageId;
}
getRaw(key) {
return localStorage.getItem(this.#localStorageKey(key));
}
setRaw(key, value) {
localStorage.setItem(this.#localStorageKey(key), value);
}
get(key, defaultValue) {
let value = this.getRaw(key);
if (value == null) {
return defaultValue;
} else {
try {
return JSON.parse(value);
} catch (e) {
throw new Error(`${this.#localStorageKey(key)}`, { cause: e });
}
}
}
set(key, value) {
this.setRaw(key, JSON.stringify(value));
}
}