diff options
| author | Shpuld Shpuldson <shp@cock.li> | 2020-04-22 15:06:10 +0300 |
|---|---|---|
| committer | Shpuld Shpuldson <shp@cock.li> | 2020-04-22 15:06:10 +0300 |
| commit | aa561473226d22d71c37756265df6949795a6cab (patch) | |
| tree | 3fab898008b249eae92b7938521e6b91d3cd8b5a | |
| parent | 576ad9750be4a76df7f7cc4d7062aa4546d7f61f (diff) | |
fix follow
| -rw-r--r-- | src/components/follow_button/follow_button.js | 6 | ||||
| -rw-r--r-- | src/services/follow_manipulate/follow_manipulate.js | 20 |
2 files changed, 13 insertions, 13 deletions
diff --git a/src/components/follow_button/follow_button.js b/src/components/follow_button/follow_button.js index af7b1fef..95e7cb6b 100644 --- a/src/components/follow_button/follow_button.js +++ b/src/components/follow_button/follow_button.js @@ -37,16 +37,16 @@ export default { }, follow () { this.inProgress = true - requestFollow(this.user, this.$store).then(() => { + requestFollow(this.relationship.id, this.$store).then(() => { this.inProgress = false }) }, unfollow () { const store = this.$store this.inProgress = true - requestUnfollow(this.user, store).then(() => { + requestUnfollow(this.relationship.id, store).then(() => { this.inProgress = false - store.commit('removeStatus', { timeline: 'friends', userId: this.user.id }) + store.commit('removeStatus', { timeline: 'friends', userId: this.relationship.id }) }) } } diff --git a/src/services/follow_manipulate/follow_manipulate.js b/src/services/follow_manipulate/follow_manipulate.js index c5d86afa..08f4c4d6 100644 --- a/src/services/follow_manipulate/follow_manipulate.js +++ b/src/services/follow_manipulate/follow_manipulate.js @@ -1,27 +1,27 @@ -const fetchRelationship = (attempt, user, store) => new Promise((resolve, reject) => { +const fetchRelationship = (attempt, userId, store) => new Promise((resolve, reject) => { setTimeout(() => { - store.state.api.backendInteractor.fetchUserRelationship({ id: user.id }) + store.state.api.backendInteractor.fetchUserRelationship({ id: userId }) .then((relationship) => { store.commit('updateUserRelationship', [relationship]) return relationship }) - .then((relationship) => resolve([relationship.following, relationship.requested, user.locked, attempt])) + .then((relationship) => resolve([relationship.following, relationship.requested, relationship.locked, attempt])) .catch((e) => reject(e)) }, 500) }).then(([following, sent, locked, attempt]) => { if (!following && !(locked && sent) && attempt <= 3) { // If we BE reports that we still not following that user - retry, // increment attempts by one - fetchRelationship(++attempt, user, store) + fetchRelationship(++attempt, userId, store) } }) -export const requestFollow = (user, store) => new Promise((resolve, reject) => { - store.state.api.backendInteractor.followUser({ id: user.id }) +export const requestFollow = (userId, store) => new Promise((resolve, reject) => { + store.state.api.backendInteractor.followUser({ id: userId }) .then((updated) => { store.commit('updateUserRelationship', [updated]) - if (updated.following || (user.locked && user.requested)) { + if (updated.following || (updated.locked && updated.requested)) { // If we get result immediately or the account is locked, just stop. resolve() return @@ -34,15 +34,15 @@ export const requestFollow = (user, store) => new Promise((resolve, reject) => { // don't know that yet. // Recursive Promise, it will call itself up to 3 times. - return fetchRelationship(1, user, store) + return fetchRelationship(1, updated, store) .then(() => { resolve() }) }) }) -export const requestUnfollow = (user, store) => new Promise((resolve, reject) => { - store.state.api.backendInteractor.unfollowUser({ id: user.id }) +export const requestUnfollow = (userId, store) => new Promise((resolve, reject) => { + store.state.api.backendInteractor.unfollowUser({ id: userId }) .then((updated) => { store.commit('updateUserRelationship', [updated]) resolve({ |
