logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe
commit: ec7bee6bd6c41fcd2f2006c9e3ac5f91def1b768
parent: f40de85b92f55903da39c5c0f1b8db6ca7cb88f6
Author: Shpuld Shpludson <shp@cock.li>
Date:   Fri,  8 May 2020 08:33:20 +0000

Merge branch 'feature/copy-link' into 'develop'

Copy status link to clipboard

See merge request pleroma/pleroma-fe!1085

Diffstat:

Msrc/components/extra_buttons/extra_buttons.js8++++++++
Msrc/components/extra_buttons/extra_buttons.vue19++++++++++++++-----
Msrc/components/react_button/react_button.js2+-
Msrc/components/react_button/react_button.vue1-
Msrc/components/status/status.vue2+-
Msrc/i18n/en.json3++-
Mstatic/fontello.json6++++++
7 files changed, 32 insertions(+), 9 deletions(-)

diff --git a/src/components/extra_buttons/extra_buttons.js b/src/components/extra_buttons/extra_buttons.js @@ -29,6 +29,11 @@ const ExtraButtons = { this.$store.dispatch('unmuteConversation', this.status.id) .then(() => this.$emit('onSuccess')) .catch(err => this.$emit('onError', err.error.error)) + }, + copyLink () { + navigator.clipboard.writeText(this.statusLink) + .then(() => this.$emit('onSuccess')) + .catch(err => this.$emit('onError', err.error.error)) } }, computed: { @@ -46,6 +51,9 @@ const ExtraButtons = { }, canMute () { return !!this.currentUser + }, + statusLink () { + return `${this.$store.state.instance.server}${this.$router.resolve({ name: 'conversation', params: { id: this.status.id } }).href}` } } } diff --git a/src/components/extra_buttons/extra_buttons.vue b/src/components/extra_buttons/extra_buttons.vue @@ -1,11 +1,13 @@ <template> <Popover - v-if="canDelete || canMute || canPin" trigger="click" placement="top" class="extra-button-popover" > - <div slot="content"> + <div + slot="content" + slot-scope="{close}" + > <div class="dropdown-menu"> <button v-if="canMute && !status.thread_muted" @@ -23,28 +25,35 @@ </button> <button v-if="!status.pinned && canPin" - v-close-popover class="dropdown-item dropdown-item-icon" @click.prevent="pinStatus" + @click="close" > <i class="icon-pin" /><span>{{ $t("status.pin") }}</span> </button> <button v-if="status.pinned && canPin" - v-close-popover class="dropdown-item dropdown-item-icon" @click.prevent="unpinStatus" + @click="close" > <i class="icon-pin" /><span>{{ $t("status.unpin") }}</span> </button> <button v-if="canDelete" - v-close-popover class="dropdown-item dropdown-item-icon" @click.prevent="deleteStatus" + @click="close" > <i class="icon-cancel" /><span>{{ $t("status.delete") }}</span> </button> + <button + class="dropdown-item dropdown-item-icon" + @click.prevent="copyLink" + @click="close" + > + <i class="icon-share" /><span>{{ $t("status.copy_link") }}</span> + </button> </div> </div> <i diff --git a/src/components/react_button/react_button.js b/src/components/react_button/react_button.js @@ -2,7 +2,7 @@ import Popover from '../popover/popover.vue' import { mapGetters } from 'vuex' const ReactButton = { - props: ['status', 'loggedIn'], + props: ['status'], data () { return { filterWord: '' diff --git a/src/components/react_button/react_button.vue b/src/components/react_button/react_button.vue @@ -37,7 +37,6 @@ </div> </div> <i - v-if="loggedIn" slot="trigger" class="icon-smile button-icon add-reaction-button" :title="$t('tool_tip.add_reaction')" diff --git a/src/components/status/status.vue b/src/components/status/status.vue @@ -404,7 +404,7 @@ :status="status" /> <ReactButton - :logged-in="loggedIn" + v-if="loggedIn" :status="status" /> <extra-buttons diff --git a/src/i18n/en.json b/src/i18n/en.json @@ -620,7 +620,8 @@ "replies_list": "Replies:", "mute_conversation": "Mute conversation", "unmute_conversation": "Unmute conversation", - "status_unavailable": "Status unavailable" + "status_unavailable": "Status unavailable", + "copy_link": "Copy link to status" }, "user_card": { "approve": "Approve", diff --git a/static/fontello.json b/static/fontello.json @@ -347,6 +347,12 @@ "src": "fontawesome" }, { + "uid": "4aad6bb50b02c18508aae9cbe14e784e", + "css": "share", + "code": 61920, + "src": "fontawesome" + }, + { "uid": "8b80d36d4ef43889db10bc1f0dc9a862", "css": "user", "code": 59428,