brush picker!
This commit is contained in:
parent
9b82b211b4
commit
c1612b2a94
12 changed files with 849 additions and 45 deletions
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue