This commit is contained in:
syuilo 2018-10-30 14:34:32 +09:00
parent d399241e65
commit 7afa541a53
No known key found for this signature in database
GPG key ID: BDC4C49D06AB9D69
7 changed files with 31 additions and 29 deletions

View file

@ -40,8 +40,8 @@ export default Vue.extend({
mounted() { mounted() {
this.connection = (this as any).os.stream.useSharedConnection('main'); this.connection = (this as any).os.stream.useSharedConnection('main');
this.connection.on('follow', this.onFollow); this.connection.on('follow', this.onFollowChange);
this.connection.on('unfollow', this.onUnfollow); this.connection.on('unfollow', this.onFollowChange);
}, },
beforeDestroy() { beforeDestroy() {
@ -49,17 +49,11 @@ export default Vue.extend({
}, },
methods: { methods: {
onFollow(user) { onFollowChange(user) {
if (user.id == this.u.id) {
this.u.isFollowing = user.isFollowing;
this.u.hasPendingFollowRequestFromYou = user.hasPendingFollowRequestFromYou;
}
},
onUnfollow(user) {
if (user.id == this.u.id) { if (user.id == this.u.id) {
this.u.isFollowing = user.isFollowing; this.u.isFollowing = user.isFollowing;
this.u.hasPendingFollowRequestFromYou = user.hasPendingFollowRequestFromYou; this.u.hasPendingFollowRequestFromYou = user.hasPendingFollowRequestFromYou;
this.$forceUpdate();
} }
}, },

View file

@ -17,6 +17,7 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
export default Vue.extend({ export default Vue.extend({
props: { props: {
user: { user: {
@ -24,6 +25,7 @@ export default Vue.extend({
required: true required: true
} }
}, },
data() { data() {
return { return {
u: this.user, u: this.user,
@ -31,28 +33,24 @@ export default Vue.extend({
connection: null connection: null
}; };
}, },
mounted() { mounted() {
this.connection = (this as any).os.stream.useSharedConnection('main'); this.connection = (this as any).os.stream.useSharedConnection('main');
this.connection.on('follow', this.onFollow); this.connection.on('follow', this.onFollowChange);
this.connection.on('unfollow', this.onUnfollow); this.connection.on('unfollow', this.onFollowChange);
}, },
beforeDestroy() { beforeDestroy() {
this.connection.dispose(); this.connection.dispose();
}, },
methods: { methods: {
onFollowChange(user) {
onFollow(user) {
if (user.id == this.u.id) {
this.u.isFollowing = user.isFollowing;
this.u.hasPendingFollowRequestFromYou = user.hasPendingFollowRequestFromYou;
}
},
onUnfollow(user) {
if (user.id == this.u.id) { if (user.id == this.u.id) {
this.u.isFollowing = user.isFollowing; this.u.isFollowing = user.isFollowing;
this.u.hasPendingFollowRequestFromYou = user.hasPendingFollowRequestFromYou; this.u.hasPendingFollowRequestFromYou = user.hasPendingFollowRequestFromYou;
this.$forceUpdate();
} }
}, },
@ -90,8 +88,6 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
.mk-follow-button .mk-follow-button
display block display block
user-select none user-select none

View file

@ -60,7 +60,9 @@ async function cancelRequest(follower: IUser, followee: IUser) {
} }
if (isLocalUser(follower)) { if (isLocalUser(follower)) {
packUser(followee, follower).then(packed => publishMainStream(follower._id, 'unfollow', packed)); packUser(followee, follower, {
detail: true
}).then(packed => publishMainStream(follower._id, 'unfollow', packed));
} }
// リモートにフォローリクエストをしていたらUndoFollow送信 // リモートにフォローリクエストをしていたらUndoFollow送信
@ -110,7 +112,9 @@ async function unFollow(follower: IUser, followee: IUser) {
// Publish unfollow event // Publish unfollow event
if (isLocalUser(follower)) { if (isLocalUser(follower)) {
packUser(followee, follower).then(packed => publishMainStream(follower._id, 'unfollow', packed)); packUser(followee, follower, {
detail: true
}).then(packed => publishMainStream(follower._id, 'unfollow', packed));
} }
// リモートにフォローをしていたらUndoFollow送信 // リモートにフォローをしていたらUndoFollow送信

View file

@ -87,7 +87,9 @@ export default async function(follower: IUser, followee: IUser, requestId?: stri
// Publish follow event // Publish follow event
if (isLocalUser(follower)) { if (isLocalUser(follower)) {
packUser(followee, follower).then(packed => publishMainStream(follower._id, 'follow', packed)); packUser(followee, follower, {
detail: true
}).then(packed => publishMainStream(follower._id, 'follow', packed));
} }
// Publish followed event // Publish followed event

View file

@ -42,7 +42,9 @@ export default async function(follower: IUser, followee: IUser) {
// Publish unfollow event // Publish unfollow event
if (isLocalUser(follower)) { if (isLocalUser(follower)) {
packUser(followee, follower).then(packed => publishMainStream(follower._id, 'unfollow', packed)); packUser(followee, follower, {
detail: true
}).then(packed => publishMainStream(follower._id, 'unfollow', packed));
} }
if (isLocalUser(follower) && isRemoteUser(followee)) { if (isLocalUser(follower) && isRemoteUser(followee)) {

View file

@ -70,5 +70,7 @@ export default async function(followee: IUser, follower: IUser) {
detail: true detail: true
}).then(packed => publishMainStream(followee._id, 'meUpdated', packed)); }).then(packed => publishMainStream(followee._id, 'meUpdated', packed));
packUser(followee, follower).then(packed => publishMainStream(follower._id, 'follow', packed)); packUser(followee, follower, {
detail: true
}).then(packed => publishMainStream(follower._id, 'follow', packed));
} }

View file

@ -28,5 +28,7 @@ export default async function(followee: IUser, follower: IUser) {
} }
}); });
packUser(followee, follower).then(packed => publishMainStream(follower._id, 'unfollow', packed)); packUser(followee, follower, {
detail: true
}).then(packed => publishMainStream(follower._id, 'unfollow', packed));
} }