diff options
author | Claire <claire.github-309c@sitedethib.com> | 2022-10-11 19:22:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-11 19:22:48 +0200 |
commit | b01faa7375493ee91f7e9dfa32b0af3058c8d16f (patch) | |
tree | 42ef2359b2f85e5210172240b73ce735f1e92293 /app/javascript/flavours/glitch/settings.js | |
parent | 94713940c7f28e9aff50071cf63d897c8e355ee6 (diff) | |
parent | e1db6cf320d5a1b3f7c87f4bd9e6f2f1a0c0585f (diff) |
Merge pull request #1862 from ClearlyClaire/glitch-soc/refactor/upstream-discrepancies
Refactor glitch-soc front-end to limit discrepancies with upstream
Diffstat (limited to 'app/javascript/flavours/glitch/settings.js')
-rw-r--r-- | app/javascript/flavours/glitch/settings.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/app/javascript/flavours/glitch/settings.js b/app/javascript/flavours/glitch/settings.js new file mode 100644 index 000000000..7643a508e --- /dev/null +++ b/app/javascript/flavours/glitch/settings.js @@ -0,0 +1,47 @@ +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'); +export const tagHistory = new Settings('mastodon_tag_history'); |