From 4310229c2fc1fe68e6ace096cab512e3109516a8 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Wed, 1 Nov 2023 10:14:00 -0300 Subject: [PATCH] fix(market-card.tsx): fix logic for updating likes_count and liked_by_user state variables The logic for updating the `likes_count` and `liked_by_user` state variables in the `handleLike` function was incorrect. This commit fixes the logic to correctly update the state variables based on the previous values. Additionally, it adds error handling for the `postLikeComponent` API call and sets the `likes_count` and `liked_by_user` state variables to their previous values in case of an error. --- src/backend/langflow/services/store/service.py | 1 - .../src/pages/StorePage/components/market-card.tsx | 8 +++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/backend/langflow/services/store/service.py b/src/backend/langflow/services/store/service.py index 7f6e6aa40..921df01f5 100644 --- a/src/backend/langflow/services/store/service.py +++ b/src/backend/langflow/services/store/service.py @@ -6,7 +6,6 @@ from typing import TYPE_CHECKING, List, Dict, Any, Optional, Union import httpx from httpx import HTTPError -from langflow.services.database.models import user from langflow.services.store.schema import ( ComponentResponse, DownloadComponentResponse, diff --git a/src/frontend/src/pages/StorePage/components/market-card.tsx b/src/frontend/src/pages/StorePage/components/market-card.tsx index c320d965b..55014d44f 100644 --- a/src/frontend/src/pages/StorePage/components/market-card.tsx +++ b/src/frontend/src/pages/StorePage/components/market-card.tsx @@ -72,19 +72,25 @@ export const MarketCardComponent = ({ data }: { data: storeComponent }) => { function handleLike() { if (liked_by_user !== undefined || liked_by_user !== null) { const temp = liked_by_user; + const tempNum = likes_count; setLiked_by_user((prev) => !prev); + if (!temp) { + setLikes_count((prev) => prev + 1); + } else { + setLikes_count((prev) => prev - 1); + } console.log(data.id); postLikeComponent(data.id) .catch((error) => { console.error(error); setLiked_by_user(temp); + setLikes_count(tempNum); setErrorData({ title: "Error on liking component", list: [error["response"]["data"]["detail"]], }); }) .then((response) => { - console.log(response); setLikes_count(response.likes_count); setLiked_by_user(response.liked_by_user); });