logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe git clone https://anongit.hacktivis.me/git/pleroma-fe.git/
commit: 9deb8aaff6546f81625fa90ca19c9093dcc89850
parent cfa1a48bfb66d319ff0d7c24e7e936be147408f4
Author: Henry Jameson <me@hjkos.com>
Date:   Wed, 15 Jan 2025 12:51:51 +0200

remove old status actions stuff

Diffstat:

Dsrc/components/extra_buttons/extra_buttons.js175-------------------------------------------------------------------------------
Dsrc/components/extra_buttons/extra_buttons.vue236-------------------------------------------------------------------------------
Dsrc/components/favorite_button/favorite_button.js49-------------------------------------------------
Dsrc/components/favorite_button/favorite_button.vue114-------------------------------------------------------------------------------
Dsrc/components/react_button/react_button.js54------------------------------------------------------
Dsrc/components/react_button/react_button.vue115-------------------------------------------------------------------------------
Dsrc/components/reply_button/reply_button.js27---------------------------
Dsrc/components/reply_button/reply_button.vue96-------------------------------------------------------------------------------
Dsrc/components/retweet_button/retweet_button.js68--------------------------------------------------------------------
Dsrc/components/retweet_button/retweet_button.vue133-------------------------------------------------------------------------------
Msrc/components/status/status.js10----------
Msrc/components/status/status.vue31-------------------------------
12 files changed, 0 insertions(+), 1108 deletions(-)

diff --git a/src/components/extra_buttons/extra_buttons.js b/src/components/extra_buttons/extra_buttons.js @@ -1,175 +0,0 @@ -import Popover from '../popover/popover.vue' -import genRandomSeed from '../../services/random_seed/random_seed.service.js' -import ConfirmModal from '../confirm_modal/confirm_modal.vue' -import StatusBookmarkFolderMenu from '../status_bookmark_folder_menu/status_bookmark_folder_menu.vue' -import { library } from '@fortawesome/fontawesome-svg-core' -import { - faEllipsisH, - faBookmark, - faEyeSlash, - faThumbtack, - faShareAlt, - faExternalLinkAlt, - faHistory, - faPlus, - faTimes -} from '@fortawesome/free-solid-svg-icons' -import { - faBookmark as faBookmarkReg, - faFlag -} from '@fortawesome/free-regular-svg-icons' - -library.add( - faEllipsisH, - faBookmark, - faBookmarkReg, - faEyeSlash, - faThumbtack, - faShareAlt, - faExternalLinkAlt, - faFlag, - faHistory, - faPlus, - faTimes -) - -const ExtraButtons = { - props: ['status'], - components: { - Popover, - ConfirmModal, - StatusBookmarkFolderMenu - }, - data () { - return { - expanded: false, - showingDeleteDialog: false, - randomSeed: genRandomSeed() - } - }, - methods: { - onShow () { - this.expanded = true - }, - onClose () { - this.expanded = false - }, - deleteStatus () { - if (this.shouldConfirmDelete) { - this.showDeleteStatusConfirmDialog() - } else { - this.doDeleteStatus() - } - }, - doDeleteStatus () { - this.$store.dispatch('deleteStatus', { id: this.status.id }) - this.hideDeleteStatusConfirmDialog() - }, - showDeleteStatusConfirmDialog () { - this.showingDeleteDialog = true - }, - hideDeleteStatusConfirmDialog () { - this.showingDeleteDialog = false - }, - pinStatus () { - this.$store.dispatch('pinStatus', this.status.id) - .then(() => this.$emit('onSuccess')) - .catch(err => this.$emit('onError', err.error.error)) - }, - unpinStatus () { - this.$store.dispatch('unpinStatus', this.status.id) - .then(() => this.$emit('onSuccess')) - .catch(err => this.$emit('onError', err.error.error)) - }, - muteConversation () { - this.$store.dispatch('muteConversation', this.status.id) - .then(() => this.$emit('onSuccess')) - .catch(err => this.$emit('onError', err.error.error)) - }, - unmuteConversation () { - 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)) - }, - bookmarkStatus () { - this.$store.dispatch('bookmark', { id: this.status.id }) - .then(() => this.$emit('onSuccess')) - .catch(err => this.$emit('onError', err.error.error)) - }, - unbookmarkStatus () { - this.$store.dispatch('unbookmark', { id: this.status.id }) - .then(() => this.$emit('onSuccess')) - .catch(err => this.$emit('onError', err.error.error)) - }, - reportStatus () { - this.$store.dispatch('openUserReportingModal', { userId: this.status.user.id, statusIds: [this.status.id] }) - }, - editStatus () { - this.$store.dispatch('fetchStatusSource', { id: this.status.id }) - .then(data => this.$store.dispatch('openEditStatusModal', { - statusId: this.status.id, - subject: data.spoiler_text, - statusText: data.text, - statusIsSensitive: this.status.nsfw, - statusPoll: this.status.poll, - statusFiles: [...this.status.attachments], - visibility: this.status.visibility, - statusContentType: data.content_type - })) - }, - showStatusHistory () { - const originalStatus = { ...this.status } - const stripFieldsList = ['attachments', 'created_at', 'emojis', 'text', 'raw_html', 'nsfw', 'poll', 'summary', 'summary_raw_html'] - stripFieldsList.forEach(p => delete originalStatus[p]) - this.$store.dispatch('openStatusHistoryModal', originalStatus) - } - }, - computed: { - currentUser () { return this.$store.state.users.currentUser }, - canDelete () { - if (!this.currentUser) { return } - return this.currentUser.privileges.includes('messages_delete') || this.status.user.id === this.currentUser.id - }, - ownStatus () { - return this.status.user.id === this.currentUser.id - }, - canPin () { - return this.ownStatus && (this.status.visibility === 'public' || this.status.visibility === 'unlisted') - }, - canMute () { - return !!this.currentUser - }, - canBookmark () { - return !!this.currentUser - }, - bookmarkFolders () { - return this.$store.state.instance.pleromaBookmarkFoldersAvailable - }, - statusLink () { - return `${this.$store.state.instance.server}${this.$router.resolve({ name: 'conversation', params: { id: this.status.id } }).href}` - }, - isEdited () { - return this.status.edited_at !== null - }, - editingAvailable () { return this.$store.state.instance.editingAvailable }, - shouldConfirmDelete () { - return this.$store.getters.mergedConfig.modalOnDelete - }, - triggerAttrs () { - return { - title: this.$t('status.more_actions'), - id: `popup-trigger-${this.randomSeed}`, - 'aria-controls': `popup-menu-${this.randomSeed}`, - 'aria-expanded': this.expanded, - 'aria-haspopup': 'menu' - } - } - } -} - -export default ExtraButtons diff --git a/src/components/extra_buttons/extra_buttons.vue b/src/components/extra_buttons/extra_buttons.vue @@ -1,236 +0,0 @@ -<template> - <Popover - class="ExtraButtons" - trigger="click" - :trigger-attrs="triggerAttrs" - placement="top" - :offset="{ y: 5 }" - :bound-to="{ x: 'container' }" - remove-padding - @show="onShow" - @close="onClose" - > - <template #content="{close}"> - <div - :id="`popup-menu-${randomSeed}`" - class="dropdown-menu" - role="menu" - > - <button - v-if="canMute && !status.thread_muted" - class="menu-item dropdown-item -icon" - role="menuitem" - @click.prevent="muteConversation" - > - <FAIcon - fixed-width - icon="eye-slash" - /><span>{{ $t("status.mute_conversation") }}</span> - </button> - <button - v-if="canMute && status.thread_muted" - class="menu-item dropdown-item -icon" - role="menuitem" - @click.prevent="unmuteConversation" - > - <FAIcon - fixed-width - icon="eye-slash" - /><span>{{ $t("status.unmute_conversation") }}</span> - </button> - <button - v-if="!status.pinned && canPin" - class="menu-item dropdown-item -icon" - role="menuitem" - @click.prevent="pinStatus" - @click="close" - > - <FAIcon - fixed-width - icon="thumbtack" - /><span>{{ $t("status.pin") }}</span> - </button> - <button - v-if="status.pinned && canPin" - class="menu-item dropdown-item -icon" - role="menuitem" - @click.prevent="unpinStatus" - @click="close" - > - <FAIcon - fixed-width - icon="thumbtack" - /><span>{{ $t("status.unpin") }}</span> - </button> - <template v-if="canBookmark"> - <button - v-if="!status.bookmarked" - class="menu-item dropdown-item -icon" - role="menuitem" - @click.prevent="bookmarkStatus" - @click="close" - > - <FAIcon - fixed-width - :icon="['far', 'bookmark']" - /><span>{{ $t("status.bookmark") }}</span> - </button> - <button - v-if="status.bookmarked" - class="menu-item dropdown-item -icon" - role="menuitem" - @click.prevent="unbookmarkStatus" - @click="close" - > - <FAIcon - fixed-width - icon="bookmark" - /><span>{{ $t("status.unbookmark") }}</span> - </button> - <StatusBookmarkFolderMenu - v-if="status.bookmarked && bookmarkFolders" - :status="status" - /> - </template> - <button - v-if="ownStatus && editingAvailable" - class="menu-item dropdown-item -icon" - role="menuitem" - @click.prevent="editStatus" - @click="close" - > - <FAIcon - fixed-width - icon="pen" - /><span>{{ $t("status.edit") }}</span> - </button> - <button - v-if="isEdited && editingAvailable" - class="menu-item dropdown-item -icon" - role="menuitem" - @click.prevent="showStatusHistory" - @click="close" - > - <FAIcon - fixed-width - icon="history" - /><span>{{ $t("status.status_history") }}</span> - </button> - <button - v-if="canDelete" - class="menu-item dropdown-item -icon" - role="menuitem" - @click.prevent="deleteStatus" - @click="close" - > - <FAIcon - fixed-width - icon="times" - /><span>{{ $t("status.delete") }}</span> - </button> - <button - class="menu-item dropdown-item -icon" - role="menuitem" - @click.prevent="copyLink" - @click="close" - > - <FAIcon - fixed-width - icon="share-alt" - /><span>{{ $t("status.copy_link") }}</span> - </button> - <a - v-if="!status.is_local" - class="menu-item dropdown-item -icon" - role="menuitem" - title="Source" - :href="status.external_url" - target="_blank" - > - <FAIcon - fixed-width - icon="external-link-alt" - /><span>{{ $t("status.external_source") }}</span> - </a> - <button - class="menu-item dropdown-item -icon" - role="menuitem" - @click.prevent="reportStatus" - @click="close" - > - <FAIcon - fixed-width - :icon="['far', 'flag']" - /><span>{{ $t("user_card.report") }}</span> - </button> - </div> - </template> - <template #trigger> - <FALayers class="fa-old-padding-layer"> - <FAIcon - class="fa-scale-110 " - icon="ellipsis-h" - /> - <FAIcon - v-show="!expanded" - class="focus-marker" - transform="shrink-6 up-8 right-16" - icon="plus" - /> - <FAIcon - v-show="expanded" - class="focus-marker" - transform="shrink-6 up-8 right-16" - icon="times" - /> - </FALayers> - <teleport to="#modal"> - <ConfirmModal - v-if="showingDeleteDialog" - :title="$t('status.delete_confirm_title')" - :cancel-text="$t('status.delete_confirm_cancel_button')" - :confirm-text="$t('status.delete_confirm_accept_button')" - @cancelled="hideDeleteStatusConfirmDialog" - @accepted="doDeleteStatus" - > - {{ $t('status.delete_confirm') }} - </ConfirmModal> - </teleport> - </template> - </Popover> -</template> - -<script src="./extra_buttons.js"></script> - -<style lang="scss"> -@import "../../mixins"; - -.ExtraButtons { - .popover-trigger { - position: static; - padding: 10px; - margin: -10px; - - &:hover .svg-inline--fa { - color: var(--text); - } - } - - .popover-trigger-button { - /* override of popover internal stuff */ - width: auto; - - @include unfocused-style { - .focus-marker { - visibility: hidden; - } - } - - @include focused-style { - .focus-marker { - visibility: visible; - } - } - } -} -</style> diff --git a/src/components/favorite_button/favorite_button.js b/src/components/favorite_button/favorite_button.js @@ -1,49 +0,0 @@ -import { mapGetters } from 'vuex' -import { library } from '@fortawesome/fontawesome-svg-core' -import { - faStar, - faPlus, - faMinus, - faCheck -} from '@fortawesome/free-solid-svg-icons' -import { - faStar as faStarRegular -} from '@fortawesome/free-regular-svg-icons' - -library.add( - faStar, - faStarRegular, - faPlus, - faMinus, - faCheck -) - -const FavoriteButton = { - props: ['status', 'loggedIn'], - data () { - return { - animated: false - } - }, - methods: { - favorite () { - if (!this.status.favorited) { - this.$store.dispatch('favorite', { id: this.status.id }) - } else { - this.$store.dispatch('unfavorite', { id: this.status.id }) - } - this.animated = true - setTimeout(() => { - this.animated = false - }, 500) - } - }, - computed: { - ...mapGetters(['mergedConfig']), - remoteInteractionLink () { - return this.$store.getters.remoteInteractionLink({ statusId: this.status.id }) - } - } -} - -export default FavoriteButton diff --git a/src/components/favorite_button/favorite_button.vue b/src/components/favorite_button/favorite_button.vue @@ -1,114 +0,0 @@ -<template> - <div class="FavoriteButton"> - <button - v-if="loggedIn" - class="button-unstyled interactive" - :class="status.favorited && '-favorited'" - :title="$t('tool_tip.favorite')" - @click.prevent="favorite()" - > - <FALayers class="fa-scale-110 fa-old-padding-layer"> - <FAIcon - class="fa-scale-110" - :icon="[status.favorited ? 'fas' : 'far', 'star']" - :spin="animated" - /> - <FAIcon - v-if="status.favorited" - class="active-marker" - transform="shrink-6 up-9 right-12" - icon="check" - /> - <FAIcon - v-if="!status.favorited" - class="focus-marker" - transform="shrink-6 up-9 right-12" - icon="plus" - /> - <FAIcon - v-else - class="focus-marker" - transform="shrink-6 up-9 right-12" - icon="minus" - /> - </FALayers> - </button> - <a - v-else - class="button-unstyled interactive" - target="_blank" - role="button" - :title="$t('tool_tip.favorite')" - :href="remoteInteractionLink" - > - <FALayers class="fa-scale-110 fa-old-padding-layer"> - <FAIcon - class="fa-scale-110" - :icon="['far', 'star']" - /> - <FAIcon - class="focus-marker" - transform="shrink-6 up-9 right-12" - icon="plus" - /> - </FALayers> - </a> - <span - v-if="!mergedConfig.hidePostStats && status.fave_num > 0" - class="action-counter" - > - {{ status.fave_num }} - </span> - </div> -</template> - -<script src="./favorite_button.js"></script> - -<style lang="scss"> -@import "../../mixins"; - -.FavoriteButton { - display: flex; - - > :first-child { - padding: 10px; - margin: -10px -8px -10px -10px; - } - - .action-counter { - pointer-events: none; - user-select: none; - } - - .interactive { - .svg-inline--fa { - animation-duration: 0.6s; - } - - &:hover .svg-inline--fa, - &.-favorited .svg-inline--fa { - color: var(--cOrange); - } - - @include unfocused-style { - .focus-marker { - visibility: hidden; - } - - .active-marker { - visibility: visible; - } - } - - @include focused-style { - .focus-marker { - visibility: visible; - } - - .active-marker { - visibility: hidden; - } - } - } -} -</style> diff --git a/src/components/react_button/react_button.js b/src/components/react_button/react_button.js @@ -1,54 +0,0 @@ -import Popover from '../popover/popover.vue' -import EmojiPicker from '../emoji_picker/emoji_picker.vue' -import { library } from '@fortawesome/fontawesome-svg-core' -import { faPlus, faTimes } from '@fortawesome/free-solid-svg-icons' -import { faSmileBeam } from '@fortawesome/free-regular-svg-icons' - -library.add( - faPlus, - faTimes, - faSmileBeam -) - -const ReactButton = { - props: ['status'], - data () { - return { - filterWord: '', - expanded: false - } - }, - components: { - Popover, - EmojiPicker - }, - methods: { - addReaction (event) { - const emoji = event.insertion - const existingReaction = this.status.emoji_reactions.find(r => r.name === emoji) - if (existingReaction && existingReaction.me) { - this.$store.dispatch('unreactWithEmoji', { id: this.status.id, emoji }) - } else { - this.$store.dispatch('reactWithEmoji', { id: this.status.id, emoji }) - } - }, - show () { - if (!this.expanded) { - this.$refs.picker.showPicker() - } - }, - onShow () { - this.expanded = true - }, - onClose () { - this.expanded = false - } - }, - computed: { - hideCustomEmoji () { - return !this.$store.state.instance.pleromaCustomEmojiReactionsAvailable - } - } -} - -export default ReactButton diff --git a/src/components/react_button/react_button.vue b/src/components/react_button/react_button.vue @@ -1,115 +0,0 @@ -<template> - <span class="ReactButton"> - <EmojiPicker - ref="picker" - :enable-sticker-picker="false" - :hide-custom-emoji="hideCustomEmoji" - class="emoji-picker-panel" - @emoji="addReaction" - @show="onShow" - @close="onClose" - /> - <span - class="button-unstyled popover-trigger" - role="button" - :tabindex="0" - :title="$t('tool_tip.add_reaction')" - @click.stop.prevent="show" - > - <FALayers> - <FAIcon - class="fa-scale-110 fa-old-padding" - :icon="['far', 'smile-beam']" - /> - <FAIcon - v-show="!expanded" - class="focus-marker" - transform="shrink-6 up-9 right-17" - icon="plus" - /> - <FAIcon - v-show="expanded" - class="focus-marker" - transform="shrink-6 up-9 right-17" - icon="times" - /> - </FALayers> - </span> - </span> -</template> - -<script src="./react_button.js"></script> - -<style lang="scss"> -@import "../../mixins"; - -.ReactButton { - .reaction-picker-filter { - padding: 0.5em; - display: flex; - - input { - flex: 1; - } - } - - .reaction-picker-divider { - height: 1px; - width: 100%; - margin: 0.5em; - background-color: var(--border); - } - - .reaction-picker { - width: 10em; - height: 9em; - font-size: 1.5em; - overflow-y: scroll; - display: flex; - flex-wrap: wrap; - padding: 0.5em; - text-align: center; - align-content: flex-start; - user-select: none; - mask: - linear-gradient(to top, white 0, transparent 100%) bottom no-repeat, - linear-gradient(to bottom, white 0, transparent 100%) top no-repeat, - linear-gradient(to top, white, white); - transition: mask-size 150ms; - mask-size: 100% 20px, 100% 20px, auto; - - /* Autoprefixed seem to ignore this one, and also syntax is different */ - mask-composite: xor; - mask-composite: exclude; - - .emoji-button { - cursor: pointer; - flex-basis: 20%; - line-height: 1.5; - align-content: center; - - &:hover { - transform: scale(1.25); - } - } - } - - .popover-trigger { - padding: 10px; - margin: -10px; - - @include unfocused-style { - .focus-marker { - visibility: hidden; - } - } - - @include focused-style { - .focus-marker { - visibility: visible; - } - } - } -} - -</style> diff --git a/src/components/reply_button/reply_button.js b/src/components/reply_button/reply_button.js @@ -1,27 +0,0 @@ -import { library } from '@fortawesome/fontawesome-svg-core' -import { - faReply, - faPlus, - faTimes -} from '@fortawesome/free-solid-svg-icons' - -library.add( - faReply, - faPlus, - faTimes -) - -const ReplyButton = { - name: 'ReplyButton', - props: ['status', 'replying'], - computed: { - loggedIn () { - return !!this.$store.state.users.currentUser - }, - remoteInteractionLink () { - return this.$store.getters.remoteInteractionLink({ statusId: this.status.id }) - } - } -} - -export default ReplyButton diff --git a/src/components/reply_button/reply_button.vue b/src/components/reply_button/reply_button.vue @@ -1,96 +0,0 @@ -<template> - <div class="ReplyButton"> - <button - v-if="loggedIn" - class="button-unstyled interactive" - :class="{'-active': replying}" - :title="$t('tool_tip.reply')" - @click.prevent="$emit('toggle')" - > - <FALayers class="fa-old-padding-layer"> - <FAIcon - class="fa-scale-110" - icon="reply" - /> - <FAIcon - v-if="!replying" - class="focus-marker" - transform="shrink-6 up-8 right-11" - icon="plus" - /> - <FAIcon - v-else - class="focus-marker" - transform="shrink-6 up-8 right-11" - icon="times" - /> - </FALayers> - </button> - <a - v-else - class="button-unstyled interactive" - target="_blank" - role="button" - :href="remoteInteractionLink" - :title="$t('tool_tip.reply')" - > - <FALayers class="fa-old-padding-layer"> - <FAIcon - class="fa-scale-110" - icon="reply" - /> - <FAIcon - v-if="!replying" - class="focus-marker" - transform="shrink-6 up-8 right-16" - icon="plus" - /> - </FALayers> - </a> - <span - v-if="status.replies_count > 0" - class="action-counter" - > - {{ status.replies_count }} - </span> - </div> -</template> - -<script src="./reply_button.js"></script> - -<style lang="scss"> -@import "../../mixins"; - -.ReplyButton { - display: flex; - - > :first-child { - padding: 10px; - margin: -10px -8px -10px -10px; - } - - .action-counter { - pointer-events: none; - user-select: none; - } - - .interactive { - &:hover .svg-inline--fa, - &.-active .svg-inline--fa { - color: var(--cBlue); - } - - @include unfocused-style { - .focus-marker { - visibility: hidden; - } - } - - @include focused-style { - .focus-marker { - visibility: visible; - } - } - } -} -</style> diff --git a/src/components/retweet_button/retweet_button.js b/src/components/retweet_button/retweet_button.js @@ -1,68 +0,0 @@ -import ConfirmModal from '../confirm_modal/confirm_modal.vue' -import { library } from '@fortawesome/fontawesome-svg-core' -import { - faRetweet, - faPlus, - faMinus, - faCheck -} from '@fortawesome/free-solid-svg-icons' - -library.add( - faRetweet, - faPlus, - faMinus, - faCheck -) - -const RetweetButton = { - props: ['status', 'loggedIn', 'visibility'], - components: { - ConfirmModal - }, - data () { - return { - animated: false, - showingConfirmDialog: false - } - }, - methods: { - retweet () { - if (!this.status.repeated && this.shouldConfirmRepeat) { - this.showConfirmDialog() - } else { - this.doRetweet() - } - }, - doRetweet () { - if (!this.status.repeated) { - this.$store.dispatch('retweet', { id: this.status.id }) - } else { - this.$store.dispatch('unretweet', { id: this.status.id }) - } - this.animated = true - setTimeout(() => { - this.animated = false - }, 500) - this.hideConfirmDialog() - }, - showConfirmDialog () { - this.showingConfirmDialog = true - }, - hideConfirmDialog () { - this.showingConfirmDialog = false - } - }, - computed: { - mergedConfig () { - return this.$store.getters.mergedConfig - }, - remoteInteractionLink () { - return this.$store.getters.remoteInteractionLink({ statusId: this.status.id }) - }, - shouldConfirmRepeat () { - return this.mergedConfig.modalOnRepeat - } - } -} - -export default RetweetButton diff --git a/src/components/retweet_button/retweet_button.vue b/src/components/retweet_button/retweet_button.vue @@ -1,133 +0,0 @@ -<template> - <div class="RetweetButton"> - <button - v-if="visibility !== 'private' && visibility !== 'direct' && loggedIn" - class="button-unstyled interactive" - :class="status.repeated && '-repeated'" - :title="$t('tool_tip.repeat')" - @click.prevent="retweet()" - > - <FALayers class="fa-old-padding-layer"> - <FAIcon - class="fa-scale-110" - icon="retweet" - :spin="animated" - /> - <FAIcon - v-if="status.repeated" - class="active-marker" - transform="shrink-6 up-9 right-12" - icon="check" - /> - <FAIcon - v-if="!status.repeated" - class="focus-marker" - transform="shrink-6 up-9 right-12" - icon="plus" - /> - <FAIcon - v-else - class="focus-marker" - transform="shrink-6 up-9 right-12" - icon="minus" - /> - </FALayers> - </button> - <span v-else-if="loggedIn"> - <FAIcon - class="fa-scale-110 fa-old-padding" - icon="lock" - :title="$t('timeline.no_retweet_hint')" - /> - </span> - <a - v-else - class="button-unstyled interactive" - target="_blank" - role="button" - :title="$t('tool_tip.repeat')" - :href="remoteInteractionLink" - > - <FALayers class="fa-old-padding-layer"> - <FAIcon - class="fa-scale-110" - icon="retweet" - /> - <FAIcon - class="focus-marker" - transform="shrink-6 up-9 right-12" - icon="plus" - /> - </FALayers> - </a> - <span - v-if="!mergedConfig.hidePostStats && status.repeat_num > 0" - class="no-event" - > - {{ status.repeat_num }} - </span> - <teleport to="#modal"> - <confirm-modal - v-if="showingConfirmDialog" - :title="$t('status.repeat_confirm_title')" - :confirm-text="$t('status.repeat_confirm_accept_button')" - :cancel-text="$t('status.repeat_confirm_cancel_button')" - @accepted="doRetweet" - @cancelled="hideConfirmDialog" - > - {{ $t('status.repeat_confirm') }} - </confirm-modal> - </teleport> - </div> -</template> - -<script src="./retweet_button.js"></script> - -<style lang="scss"> -@import "../../mixins"; - -.RetweetButton { - display: flex; - - > :first-child { - padding: 10px; - margin: -10px -8px -10px -10px; - } - - .action-counter { - pointer-events: none; - user-select: none; - } - - .interactive { - .svg-inline--fa { - animation-duration: 0.6s; - } - - &:hover .svg-inline--fa, - &.-repeated .svg-inline--fa { - color: var(--cGreen); - } - - @include unfocused-style { - .focus-marker { - visibility: hidden; - } - - .active-marker { - visibility: visible; - } - } - - @include focused-style { - .focus-marker { - visibility: visible; - } - - .active-marker { - visibility: hidden; - } - } - } -} -</style> diff --git a/src/components/status/status.js b/src/components/status/status.js @@ -1,8 +1,3 @@ -import ReplyButton from '../reply_button/reply_button.vue' -import FavoriteButton from '../favorite_button/favorite_button.vue' -import ReactButton from '../react_button/react_button.vue' -import RetweetButton from '../retweet_button/retweet_button.vue' -import ExtraButtons from '../extra_buttons/extra_buttons.vue' import PostStatusForm from '../post_status_form/post_status_form.vue' import UserAvatar from '../user_avatar/user_avatar.vue' import AvatarList from '../avatar_list/avatar_list.vue' @@ -103,11 +98,6 @@ const controlledOrUncontrolledSet = (obj, name, val) => { const Status = { name: 'Status', components: { - ReplyButton, - FavoriteButton, - ReactButton, - RetweetButton, - ExtraButtons, PostStatusForm, UserAvatar, AvatarList, diff --git a/src/components/status/status.vue b/src/components/status/status.vue @@ -541,37 +541,6 @@ :replying="replying" @toggleReplying="toggleReplying" /> - <div - v-if="!noHeading && !isPreview" - class="status-actions" - > - <reply-button - :replying="replying" - :status="status" - @toggle="toggleReplying" - /> - <retweet-button - :visibility="status.visibility" - :logged-in="loggedIn" - :status="status" - @click="$emit('interacted')" - /> - <favorite-button - :logged-in="loggedIn" - :status="status" - @click="$emit('interacted')" - /> - <ReactButton - v-if="loggedIn" - :status="status" - @click="$emit('interacted')" - /> - <extra-buttons - :status="status" - @onError="showError" - @onSuccess="clearError" - /> - </div> </div> </div> <div