diff --git a/src/frontend/src/components/cardComponent/index.tsx b/src/frontend/src/components/cardComponent/index.tsx index 8de27fd3b..1f36361e3 100644 --- a/src/frontend/src/components/cardComponent/index.tsx +++ b/src/frontend/src/components/cardComponent/index.tsx @@ -1,5 +1,4 @@ import { useContext, useState } from "react"; -import { useNavigate } from "react-router-dom"; import { alertContext } from "../../contexts/alertContext"; import { FlowsContext } from "../../contexts/flowsContext"; import { StoreContext } from "../../contexts/storeContext"; @@ -45,17 +44,22 @@ export default function CollectionCardComponent({ const name = data.is_component ? "Component" : "Flow"; - const navigate = useNavigate(); - function handleInstall() { setLoading(true); getComponent(data.id).then((res) => { const newFlow = cloneFLowWithParent(res, res.id, data.is_component); - addFlow(true, newFlow).then((id) => { - setSuccessData({ title: `${name} Installed` }); - setLoading(false); - if (!data.is_component) navigate("/flow/" + id); - }); + addFlow(true, newFlow) + .then((id) => { + setSuccessData({ title: `${name} Installed` }); + setLoading(false); + }) + .catch((error) => { + setLoading(false); + setErrorData({ + title: `There was an error installing the ${name}`, + list: [error["response"]["data"]["detail"]], + }); + }); }); } @@ -70,26 +74,19 @@ export default function CollectionCardComponent({ } else { setLikes_count((prev) => prev - 1); } - console.log(data.id); postLikeComponent(data.id) .then((response) => { setLoadingLike(false); - setLikes_count(response.likes_count); - setLiked_by_user(response.liked_by_user); + setLikes_count(response.data.likes_count); + setLiked_by_user(response.data.liked_by_user); }) .catch((error) => { setLoadingLike(false); setLikes_count(tempNum); setLiked_by_user(temp); - if (error.response.status === 403 || error.response.status === 401) { - setValidApiKey(false); - } else { - console.error(error); - setErrorData({ - title: `Error liking ${name}.`, - list: [error["response"]["data"]["detail"]], - }); - } + + setValidApiKey(false); + console.error(error); }); } } diff --git a/src/frontend/src/contexts/flowsContext.tsx b/src/frontend/src/contexts/flowsContext.tsx index d147c41ba..75096e012 100644 --- a/src/frontend/src/contexts/flowsContext.tsx +++ b/src/frontend/src/contexts/flowsContext.tsx @@ -554,16 +554,17 @@ export function FlowsProvider({ children }: { children: ReactNode }) { }; const updateEdges = (edges: Edge[]) => { - edges.forEach((edge) => { - const targetHandleObject: targetHandleType = scapeJSONParse( - edge.targetHandle! - ); - edge.className = - (targetHandleObject.type === "Text" - ? "stroke-gray-800 " - : "stroke-gray-900 ") + " stroke-connection"; - edge.animated = targetHandleObject.type === "Text"; - }); + if (edges) + edges.forEach((edge) => { + const targetHandleObject: targetHandleType = scapeJSONParse( + edge.targetHandle! + ); + edge.className = + (targetHandleObject.type === "Text" + ? "stroke-gray-800 " + : "stroke-gray-900 ") + " stroke-connection"; + edge.animated = targetHandleObject.type === "Text"; + }); }; const updateNodes = (nodes: Node[], edges: Edge[]) => { diff --git a/src/frontend/src/controllers/API/index.ts b/src/frontend/src/controllers/API/index.ts index d7f17a028..1934811ea 100644 --- a/src/frontend/src/controllers/API/index.ts +++ b/src/frontend/src/controllers/API/index.ts @@ -789,16 +789,6 @@ export async function getStoreTags() { } } -export async function postLikeComponent(componentId: string) { - try { - const res = await api.post( - `${BASE_URL_API}store/users/likes/${componentId}` - ); - if (res.status === 200) { - return res.data; - } - } catch (error) { - console.log("Error:", error); - throw error; - } -} +export const postLikeComponent = (componentId: string) => { + return api.post(`${BASE_URL_API}store/users/likes/${componentId}`); +}; diff --git a/src/frontend/src/utils/reactflowUtils.ts b/src/frontend/src/utils/reactflowUtils.ts index 2328ecc56..74b5366f6 100644 --- a/src/frontend/src/utils/reactflowUtils.ts +++ b/src/frontend/src/utils/reactflowUtils.ts @@ -163,46 +163,50 @@ export function updateIds( ) { let idsMap = {}; - newFlow.nodes.forEach((node: NodeType) => { - // Generate a unique node ID - let newId = getNodeId(node.data.node?.flow ? "GroupNode" : node.data.type); - idsMap[node.id] = newId; - node.id = newId; - node.data.id = newId; - // Add the new node to the list of nodes in state - }); + if (newFlow.nodes) + newFlow.nodes.forEach((node: NodeType) => { + // Generate a unique node ID + let newId = getNodeId( + node.data.node?.flow ? "GroupNode" : node.data.type + ); + idsMap[node.id] = newId; + node.id = newId; + node.data.id = newId; + // Add the new node to the list of nodes in state + }); - newFlow.edges.forEach((edge: Edge) => { - edge.source = idsMap[edge.source]; - edge.target = idsMap[edge.target]; - const sourceHandleObject: sourceHandleType = scapeJSONParse( - edge.sourceHandle! - ); - edge.sourceHandle = scapedJSONStringfy({ - ...sourceHandleObject, - id: edge.source, + if (newFlow.edges) + newFlow.edges.forEach((edge: Edge) => { + edge.source = idsMap[edge.source]; + edge.target = idsMap[edge.target]; + const sourceHandleObject: sourceHandleType = scapeJSONParse( + edge.sourceHandle! + ); + edge.sourceHandle = scapedJSONStringfy({ + ...sourceHandleObject, + id: edge.source, + }); + if (edge.data?.sourceHandle?.id) { + edge.data.sourceHandle.id = edge.source; + } + const targetHandleObject: targetHandleType = scapeJSONParse( + edge.targetHandle! + ); + edge.targetHandle = scapedJSONStringfy({ + ...targetHandleObject, + id: edge.target, + }); + if (edge.data?.targetHandle?.id) { + edge.data.targetHandle.id = edge.target; + } + edge.id = + "reactflow__edge-" + + edge.source + + edge.sourceHandle + + "-" + + edge.target + + edge.targetHandle; }); - if (edge.data?.sourceHandle?.id) { - edge.data.sourceHandle.id = edge.source; - } - const targetHandleObject: targetHandleType = scapeJSONParse( - edge.targetHandle! - ); - edge.targetHandle = scapedJSONStringfy({ - ...targetHandleObject, - id: edge.target, - }); - if (edge.data?.targetHandle?.id) { - edge.data.targetHandle.id = edge.target; - } - edge.id = - "reactflow__edge-" + - edge.source + - edge.sourceHandle + - "-" + - edge.target + - edge.targetHandle; - }); return idsMap; }