Add button in 3dot menu to copy status link to clipboard

This commit is contained in:
Mark Felder 2020-03-30 12:39:28 -05:00
parent 6e14fb292c
commit 8c5946b728
4 changed files with 26 additions and 3 deletions

View file

@ -3,6 +3,11 @@ import Popover from '../popover/popover.vue'
const ExtraButtons = {
props: [ 'status' ],
components: { Popover },
data: function () {
return {
statusLink: `https://${this.$store.state.instance.name}${this.$router.resolve({ name: 'conversation', params: { id: this.status.id } }).href}`
}
},
methods: {
deleteStatus () {
const confirmed = window.confirm(this.$t('status.delete_confirm'))
@ -29,6 +34,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: {

View file

@ -1,6 +1,5 @@
<template>
<Popover
v-if="canDelete || canMute || canPin"
trigger="click"
placement="top"
class="extra-button-popover"
@ -45,6 +44,13 @@
>
<i class="icon-cancel" /><span>{{ $t("status.delete") }}</span>
</button>
<button
v-close-popover
class="dropdown-item dropdown-item-icon"
@click.prevent="copyLink"
>
<i class="icon-share" /><span>{{ $t("status.copy_link") }}</span>
</button>
</div>
</div>
<i

View file

@ -616,7 +616,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",

View file

@ -345,6 +345,12 @@
"css": "link",
"code": 59427,
"src": "fontawesome"
},
{
"uid": "4aad6bb50b02c18508aae9cbe14e784e",
"css": "share",
"code": 61920,
"src": "fontawesome"
}
]
}
}