@@ -399,10 +399,13 @@ const { user } = useAtproto()
399399
400400const authModal = useModal (' auth-modal' )
401401
402- const { data : likesData } = useFetch (() => ` /api/social/likes/${packageName .value } ` , {
403- default : () => ({ totalLikes: 0 , userHasLiked: false }),
404- server: false ,
405- })
402+ const { data : likesData, status : likesStatus } = useFetch (
403+ () => ` /api/social/likes/${packageName .value } ` ,
404+ {
405+ default : () => ({ totalLikes: 0 , userHasLiked: false }),
406+ server: false ,
407+ },
408+ )
406409
407410const isLikeActionPending = ref (false )
408411
@@ -414,12 +417,12 @@ const likeAction = async () => {
414417
415418 if (isLikeActionPending .value ) return
416419
417- const currentlyLiked = likesData .value ? .userHasLiked ?? false
418- const currentLikes = likesData .value ? .totalLikes ?? 0
420+ const currentlyLiked = likesData .value .userHasLiked
421+ const currentLikes = likesData .value .totalLikes
419422
420423 // Optimistic update
421424 likesData .value = {
422- totalLikes: currentlyLiked ? currentLikes - 1 : currentLikes + 1 ,
425+ totalLikes: currentLikes + ( currentlyLiked ? - 1 : 1 ) ,
423426 userHasLiked: ! currentlyLiked ,
424427 }
425428
@@ -605,7 +608,6 @@ onKeyStroke(
605608
606609 <!-- Package likes -->
607610 <TooltipApp
608- v-if =" likesData"
609611 :text ="
610612 likesData.userHasLiked ? $t('package.likes.unlike') : $t('package.likes.like')
611613 "
@@ -631,7 +633,9 @@ onKeyStroke(
631633 class =" w-4 h-4"
632634 aria-hidden =" true"
633635 />
634- <span >{{ formatCompactNumber(likesData.totalLikes, { decimals: 1 }) }}</span >
636+ <span v-if =" likesStatus !== 'pending'" >{{
637+ formatCompactNumber(likesData.totalLikes, { decimals: 1 })
638+ }}</span >
635639 </button >
636640 </TooltipApp >
637641 <template #fallback >
0 commit comments