Ver Fonte

更换直播关注为关注主播个人

蒋开心 há 2 semanas atrás
pai
commit
9efa24df56
1 ficheiros alterados com 20 adições e 9 exclusões
  1. 20 9
      pages/live/watch.nvue

+ 20 - 9
pages/live/watch.nvue

@@ -368,10 +368,9 @@ import {
 	notifyRoomExit,
 	pushRoomComment,
 	pushRoomLike,
-	followLiveAnchor,
 	requestLiveGoodsExplain
 } from '@/features/live/gateway'
-import { fetchDiamondBalance } from '@/features/feed/feed-gateway'
+import { fetchDiamondBalance, toggleClipFollow } from '@/features/feed/feed-gateway'
 import { resolvePlaybackUrl, describeRoomPhase } from '@/features/live/stream-picker'
 import { readRoomQueue, saveRoomQueue, patchRoomMeta } from '@/features/live/room-queue'
 import {
@@ -1682,15 +1681,27 @@ export default {
 			}
 
 			this._followBusy = true
-			this.$set(this.session, 'isFollow', 1)
+			const wasFollowed = this.anchorFollowed
+			const nextFollowed = !wasFollowed
+			// 乐观更新(同 reel onFollowTap)
+			this.$set(this.session, 'isFollow', nextFollowed ? 1 : 0)
+
 			try {
-				await followLiveAnchor({
-					userNo,
-					groupId: this.session.liveid
-				})
-				patchRoomMeta(this.roomKey, { isFollow: 1, userNo })
-				this._entryMeta = { ...(this._entryMeta || {}), isFollow: 1, userNo }
+				// POST /wanlshop/find/user/setFindUser  { id: user_no, type: 'follow' }
+				const flag = await toggleClipFollow(userNo)
+				let finalFollowed = nextFollowed
+				if (flag === 1 || flag === 0 || flag === '1' || flag === '0') {
+					const serverFollowed = flag === 1 || flag === '1'
+					if (serverFollowed !== nextFollowed) {
+						this.$set(this.session, 'isFollow', serverFollowed ? 1 : 0)
+					}
+					finalFollowed = serverFollowed
+				}
+				const followFlag = finalFollowed ? 1 : 0
+				patchRoomMeta(this.roomKey, { isFollow: followFlag, userNo })
+				this._entryMeta = { ...(this._entryMeta || {}), isFollow: followFlag, userNo }
 			} catch (_) {
+				this.$set(this.session, 'isFollow', wasFollowed ? 1 : 0)
 				uni.showToast({ title: this.copy.actionFailed, icon: 'none' })
 			} finally {
 				this._followBusy = false