) {
- let image: JSX.Element = ; // <== whatever you want here
-
- var ghost = document.createElement("div");
- ghost.style.transform = "translate(-10000px, -10000px)";
- ghost.style.position = "absolute";
- document.body.appendChild(ghost);
- event.dataTransfer.setDragImage(ghost, 0, 0);
- const root = createRoot(ghost);
- root.render(image);
- const flow = getFlowById(data.id);
- if (flow) {
- event.dataTransfer.setData("flow", JSON.stringify(data));
- }
- }
+ const { onDragStart } = useDragStart(data);
return (
<>
@@ -264,7 +197,7 @@ export default function CollectionCardComponent({
- {likes_count ?? 0}
+ {likesCount ?? 0}
@@ -275,7 +208,7 @@ export default function CollectionCardComponent({
className="h-4 w-4"
/>
- {downloads_count ?? 0}
+ {downloadsCount ?? 0}
@@ -324,20 +257,7 @@ export default function CollectionCardComponent({
)}
)}
-
- {/* {data.tags &&
- data.tags.length > 0 &&
- data.tags.map((tag, index) => (
-
- {tag.name}
-
- ))} */}
-
+
@@ -457,7 +377,7 @@ export default function CollectionCardComponent({
name="Heart"
className={cn(
"h-5 w-5",
- liked_by_user
+ likedByUser
? "fill-destructive stroke-destructive"
: "",
!authorized ? "text-ring" : "",
diff --git a/src/frontend/src/pages/MainPage/components/componentsComponent/components/collectionCard/index.tsx b/src/frontend/src/pages/MainPage/components/componentsComponent/components/collectionCard/index.tsx
new file mode 100644
index 000000000..1c9c0799e
--- /dev/null
+++ b/src/frontend/src/pages/MainPage/components/componentsComponent/components/collectionCard/index.tsx
@@ -0,0 +1,58 @@
+import React from "react";
+import { Link, useNavigate } from "react-router-dom";
+import CollectionCardComponent from "../../../../../../components/cardComponent";
+import IconComponent from "../../../../../../components/genericIconComponent";
+import { Button } from "../../../../../../components/ui/button";
+const CollectionCard = ({ item, type, isLoading, control }) => {
+ const navigate = useNavigate();
+ const isComponent = item.is_component ?? false;
+ const editFlowLink = `/flow/${item.id}`;
+ const editFlowButtonTestId = `edit-flow-button-${item.id}`;
+
+ const handleClick = () => {
+ if (!isComponent) {
+ navigate(editFlowLink);
+ }
+ };
+
+ const renderButton = () => {
+ if (!isComponent) {
+ return (
+
+
+
+ );
+ }
+ return null;
+ };
+
+ return (
+
+ );
+};
+
+export default CollectionCard;
diff --git a/src/frontend/src/pages/MainPage/components/componentsComponent/index.tsx b/src/frontend/src/pages/MainPage/components/componentsComponent/index.tsx
index af13e2bb4..d60bf3a05 100644
--- a/src/frontend/src/pages/MainPage/components/componentsComponent/index.tsx
+++ b/src/frontend/src/pages/MainPage/components/componentsComponent/index.tsx
@@ -19,6 +19,7 @@ import { getNameByType } from "../../utils/get-name-by-type";
import { sortFlows } from "../../utils/sort-flows";
import EmptyComponent from "../emptyComponent";
import HeaderComponent from "../headerComponent";
+import CollectionCard from "./components/collectionCard";
import useDeleteMultipleFlows from "./hooks/use-delete-multiple";
import useDescriptionModal from "./hooks/use-description-modal";
import useFilteredFlows from "./hooks/use-filtered-flows";
@@ -61,7 +62,6 @@ export default function ComponentsComponent({
const [handleFileDrop] = useFileDrop(uploadFlow, type)!;
const [pageSize, setPageSize] = useState(20);
const [pageIndex, setPageIndex] = useState(1);
- const navigate = useNavigate();
const location = useLocation();
const all: FlowType[] = sortFlows(allFlows, type);
const start = (pageIndex - 1) * pageSize;
@@ -205,43 +205,10 @@ export default function ComponentsComponent({
{data?.map((item) => (