From d950b6e2528e30f1f77fa1cda045e965cdda11e8 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Mon, 2 Oct 2023 18:19:43 -0300 Subject: [PATCH] refactor(extraSidebarComponent): extract SidebarDraggableComponent to a separate file for reusability and better organization The `ExtraSidebar` component in `extraSidebarComponent/index.tsx` has been refactored to extract the `SidebarDraggableComponent` into a separate file. This was done to improve code organization and reusability. The extracted component takes props such as `display_name`, `itemName`, `error`, `color`, and `onDragStart` to render the draggable sidebar component. --- .../extraSidebarComponent/index.tsx | 57 ++++++------------- .../sideBarDraggableComponent/index.tsx | 42 ++++++++++++++ 2 files changed, 60 insertions(+), 39 deletions(-) create mode 100644 src/frontend/src/pages/FlowPage/components/extraSidebarComponent/sideBarDraggableComponent/index.tsx diff --git a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx index 04936f3de..d24f95d10 100644 --- a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx @@ -17,6 +17,7 @@ import { } from "../../../../utils/styleUtils"; import { classNames, removeCountFromString } from "../../../../utils/utils"; import DisclosureComponent from "../DisclosureComponent"; +import SidebarDraggableComponent from "./sideBarDraggableComponent"; export default function ExtraSidebar(): JSX.Element { const { data, templates, getFilterEdge, setFilterEdge } = @@ -242,45 +243,23 @@ export default function ExtraSidebar(): JSX.Element { side="right" key={index} > -
-
- onDragStart(event, { - //split type to remove type in nodes saved with same name removing it's - type: removeCountFromString(SBItemName), - node: data[SBSectionName][SBItemName], - }) - } - onDragEnd={() => { - document.body.removeChild( - document.getElementsByClassName( - "cursor-grabbing" - )[0] - ); - }} - > -
- - {data[SBSectionName][SBItemName].display_name} - - -
-
-
+ + onDragStart(event, { + //split type to remove type in nodes saved with same name removing it's + type: removeCountFromString(SBItemName), + node: data[SBSectionName][SBItemName], + }) + } + color={nodeColors[SBSectionName]} + itemName={SBItemName} + //convert error to boolean + error={!!data[SBSectionName][SBItemName].error} + display_name={ + data[SBSectionName][SBItemName].display_name + } + /> ))} diff --git a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/sideBarDraggableComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/sideBarDraggableComponent/index.tsx new file mode 100644 index 000000000..7d9351af4 --- /dev/null +++ b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/sideBarDraggableComponent/index.tsx @@ -0,0 +1,42 @@ +import { DragEventHandler } from "react"; +import IconComponent from "../../../../../components/genericIconComponent"; + +export default function SidebarDraggableComponent({ + display_name, + itemName, + error, + color, + onDragStart, +}: { + display_name: string; + itemName: string; + error: boolean; + color: string; + onDragStart: DragEventHandler; +}) { + return ( +
+
{ + document.body.removeChild( + document.getElementsByClassName("cursor-grabbing")[0] + ); + }} + > +
+ {display_name} + +
+
+
+ ); +}