aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShpuld Shpludson <shp@cock.li>2020-05-08 08:33:20 +0000
committerShpuld Shpludson <shp@cock.li>2020-05-08 08:33:20 +0000
commitec7bee6bd6c41fcd2f2006c9e3ac5f91def1b768 (patch)
tree6d7a1ddb581a3879165828c059596847408638b3 /src
parentf40de85b92f55903da39c5c0f1b8db6ca7cb88f6 (diff)
parentf4676e17d3ec15f7c8bad776a7c7799f83f679b0 (diff)
Merge branch 'feature/copy-link' into 'develop'
Copy status link to clipboard See merge request pleroma/pleroma-fe!1085
Diffstat (limited to 'src')
-rw-r--r--src/components/extra_buttons/extra_buttons.js8
-rw-r--r--src/components/extra_buttons/extra_buttons.vue19
-rw-r--r--src/components/react_button/react_button.js2
-rw-r--r--src/components/react_button/react_button.vue1
-rw-r--r--src/components/status/status.vue2
-rw-r--r--src/i18n/en.json3
6 files changed, 26 insertions, 9 deletions
diff --git a/src/components/extra_buttons/extra_buttons.js b/src/components/extra_buttons/extra_buttons.js
index 37485383..e4b19d01 100644
--- 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
index 3a7f1283..bca93ea7 100644
--- 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
index 19949563..abc3bf07 100644
--- 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
index ab4b4fcd..0b34add1 100644
--- 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
index ca295640..76b5c5ab 100644
--- 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
index e42754ea..d5748719 100644
--- 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",