* Move push notifications settings * fix typo `setf` -> `set`master
parent
3a52c90de1
commit
cdae7e4c8b
@ -0,0 +1,46 @@ |
||||
export default class Settings { |
||||
|
||||
constructor(keyBase = null) { |
||||
this.keyBase = keyBase; |
||||
} |
||||
|
||||
generateKey(id) { |
||||
return this.keyBase ? [this.keyBase, `id${id}`].join('.') : id; |
||||
} |
||||
|
||||
set(id, data) { |
||||
const key = this.generateKey(id); |
||||
try { |
||||
const encodedData = JSON.stringify(data); |
||||
localStorage.setItem(key, encodedData); |
||||
return data; |
||||
} catch (e) { |
||||
return null; |
||||
} |
||||
} |
||||
|
||||
get(id) { |
||||
const key = this.generateKey(id); |
||||
try { |
||||
const rawData = localStorage.getItem(key); |
||||
return JSON.parse(rawData); |
||||
} catch (e) { |
||||
return null; |
||||
} |
||||
} |
||||
|
||||
remove(id) { |
||||
const data = this.get(id); |
||||
if (data) { |
||||
const key = this.generateKey(id); |
||||
try { |
||||
localStorage.removeItem(key); |
||||
} catch (e) { |
||||
} |
||||
} |
||||
return data; |
||||
} |
||||
|
||||
} |
||||
|
||||
export const pushNotificationsSetting = new Settings('mastodon_push_notification_data'); |
Loading…
Reference in new issue