aboutsummaryrefslogtreecommitdiff
path: root/src/components/follow_button/follow_button.js
diff options
context:
space:
mode:
authorHJ <30-hj@users.noreply.git.pleroma.social>2023-01-25 23:49:16 +0000
committerHJ <30-hj@users.noreply.git.pleroma.social>2023-01-25 23:49:16 +0000
commit65e10f07def87f0c4399dbce92eb00b430d5dba4 (patch)
tree02d8646054b4f3647cee9938d82c2e9e3a70312b /src/components/follow_button/follow_button.js
parenta9716701be26c696ee1b908a1787b34880175ffa (diff)
parentc7c68340f1c8838cead855de3f624e0796fbc6c7 (diff)
Merge branch 'from/develop/tusooa/confirm-dialogs' into 'develop'
Confirmation dialogs See merge request pleroma/pleroma-fe!1431
Diffstat (limited to 'src/components/follow_button/follow_button.js')
-rw-r--r--src/components/follow_button/follow_button.js25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/components/follow_button/follow_button.js b/src/components/follow_button/follow_button.js
index 3edbcb86..443aa9bc 100644
--- a/src/components/follow_button/follow_button.js
+++ b/src/components/follow_button/follow_button.js
@@ -1,12 +1,20 @@
+import ConfirmModal from '../confirm_modal/confirm_modal.vue'
import { requestFollow, requestUnfollow } from '../../services/follow_manipulate/follow_manipulate'
export default {
props: ['relationship', 'user', 'labelFollowing', 'buttonClass'],
+ components: {
+ ConfirmModal
+ },
data () {
return {
- inProgress: false
+ inProgress: false,
+ showingConfirmUnfollow: false
}
},
computed: {
+ shouldConfirmUnfollow () {
+ return this.$store.getters.mergedConfig.modalOnUnfollow
+ },
isPressed () {
return this.inProgress || this.relationship.following
},
@@ -35,6 +43,12 @@ export default {
}
},
methods: {
+ showConfirmUnfollow () {
+ this.showingConfirmUnfollow = true
+ },
+ hideConfirmUnfollow () {
+ this.showingConfirmUnfollow = false
+ },
onClick () {
this.relationship.following || this.relationship.requested ? this.unfollow() : this.follow()
},
@@ -45,12 +59,21 @@ export default {
})
},
unfollow () {
+ if (this.shouldConfirmUnfollow) {
+ this.showConfirmUnfollow()
+ } else {
+ this.doUnfollow()
+ }
+ },
+ doUnfollow () {
const store = this.$store
this.inProgress = true
requestUnfollow(this.relationship.id, store).then(() => {
this.inProgress = false
store.commit('removeStatus', { timeline: 'friends', userId: this.relationship.id })
})
+
+ this.hideConfirmUnfollow()
}
}
}