mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 23:35:58 +00:00
* After creating the post, the author of it automatically observes it to get notifications when there are interactions * a user that comments a post, automatically observes that post to get notifications when there are more interactions on that post * mutation that switches the state of the obeservation of a post on and off * remove duplicate code * fix unit tests * add metric observed users count to posts * change naming * Add follow post entry to post menu * Add FollowButton (WIP), show unfollow in menu when already followed * Follow/unfollow post => observe * Update slashed bell * Add requests to observe/unobserve posts * Add ObserveButton functionality * Rename isObservedByMe * Add observingUsersCount; simplify ObserveButton and menu entries * Fix locales * Add snapshot test for ObserveButton (WIP) * Remove empty routes push * Add test for ObserveButton * Add test for ContentMenu, improve ObserveButton test * Remove unneeded fields from PostQuery --------- Co-authored-by: Moriz Wahl <moriz.wahl@gmx.de>
58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
import PostMutations from '~/graphql/PostMutations'
|
|
|
|
export default {
|
|
methods: {
|
|
removePostFromList(deletedPost, posts) {
|
|
return posts.filter((post) => {
|
|
return post.id !== deletedPost.id
|
|
})
|
|
},
|
|
pinPost(post, refetchPostList = () => {}) {
|
|
this.$apollo
|
|
.mutate({
|
|
mutation: PostMutations().pinPost,
|
|
variables: {
|
|
id: post.id,
|
|
},
|
|
})
|
|
.then(() => {
|
|
this.$toast.success(this.$t('post.menu.pinnedSuccessfully'))
|
|
refetchPostList()
|
|
})
|
|
.catch((error) => this.$toast.error(error.message))
|
|
},
|
|
unpinPost(post, refetchPostList = () => {}) {
|
|
this.$apollo
|
|
.mutate({
|
|
mutation: PostMutations().unpinPost,
|
|
variables: {
|
|
id: post.id,
|
|
},
|
|
})
|
|
.then(() => {
|
|
this.$toast.success(this.$t('post.menu.unpinnedSuccessfully'))
|
|
refetchPostList()
|
|
})
|
|
.catch((error) => this.$toast.error(error.message))
|
|
},
|
|
toggleObservePost(postId, value, refetchPostList = () => {}) {
|
|
this.$apollo
|
|
.mutate({
|
|
mutation: PostMutations().toggleObservePost,
|
|
variables: {
|
|
value,
|
|
id: postId,
|
|
},
|
|
})
|
|
.then(() => {
|
|
const message = this.$t(
|
|
`post.menu.${value ? 'observedSuccessfully' : 'unobservedSuccessfully'}`,
|
|
)
|
|
this.$toast.success(message)
|
|
refetchPostList()
|
|
})
|
|
.catch((error) => this.$toast.error(error.message))
|
|
},
|
|
},
|
|
}
|