31 lines
729 B
JavaScript
31 lines
729 B
JavaScript
/* global PuzzleState */
|
|
|
|
class StorageManager {
|
|
static _key(roomCode) {
|
|
return `ipuzzle_${roomCode}`;
|
|
}
|
|
|
|
static save(state) {
|
|
try {
|
|
localStorage.setItem(StorageManager._key(state.roomCode), JSON.stringify(state.serialize()));
|
|
} catch (e) {
|
|
console.warn('iPuzzle: localStorage save failed', e);
|
|
}
|
|
}
|
|
|
|
static load(roomCode) {
|
|
try {
|
|
const raw = localStorage.getItem(StorageManager._key(roomCode));
|
|
if (!raw) return null;
|
|
return PuzzleState.deserialize(JSON.parse(raw));
|
|
} catch (e) {
|
|
console.warn('iPuzzle: localStorage load failed', e);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
static remove(roomCode) {
|
|
localStorage.removeItem(StorageManager._key(roomCode));
|
|
}
|
|
}
|