fix: sync store state when like/favorite actions complete

- Update templateSocialStore when like/unlike succeeds
- Update templateSocialStore when favorite/unfavorite succeeds
- Sync likeCount and favoriteCount from API response
- Ensure state consistency across video page and detail page

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
imeepos
2026-01-28 19:23:11 +08:00
parent 30625bc820
commit e6416ee604
2 changed files with 30 additions and 0 deletions

View File

@@ -4,6 +4,7 @@ import { useCallback, useState } from 'react'
import { type ApiError } from '@/lib/types'
import { handleError } from './use-error'
import { templateSocialStore } from '@/stores/templateSocialStore'
export const useTemplateLike = (templateId?: string) => {
const [liked, setLiked] = useState<boolean>(false)
@@ -31,6 +32,13 @@ export const useTemplateLike = (templateId?: string) => {
}
setLiked(true)
// 同步更新 store
templateSocialStore.setLiked(templateId, true)
if (data?.likeCount !== undefined) {
templateSocialStore.setLikeCount(templateId, data.likeCount)
}
return {}
}, [templateId])
@@ -55,6 +63,13 @@ export const useTemplateLike = (templateId?: string) => {
}
setLiked(false)
// 同步更新 store
templateSocialStore.setLiked(templateId, false)
if (data?.likeCount !== undefined) {
templateSocialStore.setLikeCount(templateId, data.likeCount)
}
return {}
}, [templateId])