diff --git a/app/assets/javascripts/discourse/app/services/emoji-store.js b/app/assets/javascripts/discourse/app/services/emoji-store.js index f7aa11bb28e..4f9083519b9 100644 --- a/app/assets/javascripts/discourse/app/services/emoji-store.js +++ b/app/assets/javascripts/discourse/app/services/emoji-store.js @@ -1,39 +1,41 @@ -import KeyValueStore from "discourse/lib/key-value-store"; import Service from "@ember/service"; +import KeyValueStore from "discourse/lib/key-value-store"; +import { disableImplicitInjections } from "discourse/lib/implicit-injections"; const EMOJI_USAGE = "emojiUsage"; const EMOJI_SELECTED_DIVERSITY = "emojiSelectedDiversity"; const TRACKED_EMOJIS = 15; const STORE_NAMESPACE = "discourse_emojis_"; -export default Service.extend({ - init() { - this._super(...arguments); +@disableImplicitInjections +export default class EmojiStore extends Service { + store = new KeyValueStore(STORE_NAMESPACE); - this.store = new KeyValueStore(STORE_NAMESPACE); + constructor() { + super(...arguments); if (!this.store.getObject(EMOJI_USAGE)) { this.favorites = []; } - }, + } get diversity() { return this.store.getObject(EMOJI_SELECTED_DIVERSITY) || 1; - }, + } set diversity(value) { this.store.setObject({ key: EMOJI_SELECTED_DIVERSITY, value: value || 1 }); this.notifyPropertyChange("diversity"); - }, + } get favorites() { return this.store.getObject(EMOJI_USAGE) || []; - }, + } set favorites(value) { this.store.setObject({ key: EMOJI_USAGE, value: value || [] }); this.notifyPropertyChange("favorites"); - }, + } track(code) { const normalizedCode = code.replace(/(^:)|(:$)/g, ""); @@ -41,11 +43,10 @@ export default Service.extend({ recent.unshift(normalizedCode); recent.length = Math.min(recent.length, TRACKED_EMOJIS); this.favorites = recent; - }, + } reset() { - const store = new KeyValueStore(STORE_NAMESPACE); - store.setObject({ key: EMOJI_USAGE, value: [] }); - store.setObject({ key: EMOJI_SELECTED_DIVERSITY, value: 1 }); - }, -}); + this.store.setObject({ key: EMOJI_USAGE, value: [] }); + this.store.setObject({ key: EMOJI_SELECTED_DIVERSITY, value: 1 }); + } +}