5656 </v-col >
5757 </template >
5858 <template #actions >
59- <v-btn
60- @click =" changeReactionLike() "
61- density =" compact"
62- size =" large"
59+ <v-btn
60+ @click =" changeReactionLike()"
61+ density =" compact"
62+ size =" large"
6363 :color =" isLiked ? 'primary' : 'default'"
64- :prepend-icon =" isLiked ? 'mdi-thumb-up' : 'mdi-thumb-up-outline'" >
64+ :prepend-icon =" isLiked ? 'mdi-thumb-up' : 'mdi-thumb-up-outline'"
65+ >
6566 {{ like_count }}
6667 </v-btn >
6768 <v-btn
68- @click =" changeReactionDislike()"
69- density =" compact"
69+ @click =" changeReactionDislike()"
70+ density =" compact"
7071 size =" large"
7172 :color =" isDisliked ? 'primary' : 'default'"
72- :prepend-icon =" isDisliked ? 'mdi-thumb-down' : 'mdi-thumb-down-outline'" >
73+ :prepend-icon =" isDisliked ? 'mdi-thumb-down' : 'mdi-thumb-down-outline'"
74+ >
7375 {{ dislike_count }}
7476 </v-btn >
7577 </template >
@@ -90,46 +92,54 @@ const propsLocal = defineProps({
9092 photo: { type: String , required: true },
9193 comment: { type: Object , required: true },
9294});
93- const isLiked = ref (false )
94- const like_count = ref (0 )
95+ const isLiked = ref (false );
96+ const like_count = ref (propsLocal . comment . raw . like_count );
9597
96- const isDisliked = ref (false )
97- const dislike_count = ref (0 )
98+ const isDisliked = ref (false );
99+ const dislike_count = ref (0 );
98100
99101const emit = defineEmits ([' comment-deleted' ]);
100102
101103const markGeneral = ref (0 );
102104const redactedText = ref <string []>([]);
103105
104106async function changeReactionLike() {
105- try {
107+ try {
106108 const response = await apiClient .PUT (' /rating/comment/{uuid}/{reaction}' , {
107- params: {
108- path: {
109- uuid: propsLocal .comment .raw .uuid ,
110- reaction: " like"
111- }
112- },
113- })
114-
115- like_count .value = response .data .like_count + 1
116- isLiked .value = ! isLiked .value
117-
118- }catch (error ){
119- console .error (" Ошибка лайка:" , error )
109+ params: {
110+ path: {
111+ uuid: propsLocal .comment .raw .uuid ,
112+ reaction: ' like' ,
113+ },
114+ },
115+ });
116+ if (isLiked .value == false ) {
117+ like_count .value = response .data .like_count ;
118+ isLiked .value = ! isLiked .value ;
119+ }else {
120+ like_count .value = response .data .like_count ;
121+ isLiked .value = ! isLiked .value ;
122+ }
123+ } catch (error ) {
124+ console .error (' Ошибка лайка:' , error );
120125 }
121126}
122127
123128async function changeReactionDislike() {
124- try {
129+ try {
125130 const response = await apiClient .PUT (' /rating/comment/{uuid}/{reaction}' , {
126- params: { path: { uuid: propsLocal .comment .raw .uuid ,
127- reaction: " dislike" } },
128- })
129- dislike_count .value = response .data .dislike_count + 1
130- isDisliked .value = ! isDisliked .value
131- }catch (error ){
132- console .error (" Ошибка дизлайка:" , error )
131+ params: { path: { uuid: propsLocal .comment .raw .uuid , reaction: ' dislike' } },
132+ });
133+ if (isDisliked .value == false ) {
134+ dislike_count .value = response .data .dislike_count ;
135+ isDisliked .value = ! isDisliked .value ;
136+ }
137+ else {
138+ dislike_count .value = response .data .dislike_count ;
139+ isDisliked .value = ! isDisliked .value ;
140+ }
141+ } catch (error ) {
142+ console .error (' Ошибка дизлайка:' , error );
133143 }
134144}
135145
0 commit comments