From f93f2b2f76a9a2f0cd2d1008f6c45903b83b8d39 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Thu, 21 May 2026 14:56:16 +0300 Subject: [PATCH] forgot file --- .../still-image/still-image-emoji-popover.js | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/components/still-image/still-image-emoji-popover.js diff --git a/src/components/still-image/still-image-emoji-popover.js b/src/components/still-image/still-image-emoji-popover.js new file mode 100644 index 000000000..74d6a002f --- /dev/null +++ b/src/components/still-image/still-image-emoji-popover.js @@ -0,0 +1,72 @@ +import Popover from 'components/popover/popover.vue' +import SelectComponent from 'components/select/select.vue' + +import StillImage from './still-image.vue' +import { mapState } from 'pinia' + +import { useInterfaceStore } from 'src/stores/interface' +import { useEmojiStore } from 'src/stores/emoji' + +export default { + components: { StillImage, Popover, SelectComponent }, + props: { + shortcode: { + type: String, + required: true, + }, + isLocal: { + type: Boolean, + required: true, + }, + }, + data() { + return { + packName: '', + } + }, + computed: { + isUserAdmin() { + return this.$store.state.users.currentUser?.rights.admin + }, + ...mapState(useEmojiStore, ['adminPacksLocal', 'adminPacksLocalLoading']) + }, + methods: { + displayError(msg) { + useInterfaceStore().pushGlobalNotice({ + messageKey: 'admin_dash.emoji.error', + messageArgs: [msg], + level: 'error', + }) + }, + copyToLocalPack() { + this.$store.state.api.backendInteractor + .addNewEmojiFile({ + packName: this.packName, + file: this.$attrs.src, + shortcode: this.shortcode, + filename: '', + }) + .then((resp) => resp.json()) + .then((resp) => { + if (resp.error !== undefined) { + this.displayError(resp.error) + return + } + useInterfaceStore().pushGlobalNotice({ + messageKey: 'admin_dash.emoji.copied_successfully', + messageArgs: [this.shortcode, this.packName], + level: 'success', + }) + + this.$refs.emojiPopover.hidePopover() + this.packName = '' + }) + }, + + fetchEmojiPacksIfAdmin() { + useEmojiStore().getAdminPacksLocal().then(() => { + this.$refs.emojiPopover.updateStyles() + }) + }, + }, +}