From e832711a1f35c88ffeb0bbf6fad5f0c5cfbe2322 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Wed, 5 Jul 2023 17:04:32 -0300 Subject: [PATCH] first modal with subcomponents --- .../src/modals/twoColumnsModal/index.tsx | 95 +++++++++---------- 1 file changed, 45 insertions(+), 50 deletions(-) diff --git a/src/frontend/src/modals/twoColumnsModal/index.tsx b/src/frontend/src/modals/twoColumnsModal/index.tsx index 6e0628a74..b84cd2d37 100644 --- a/src/frontend/src/modals/twoColumnsModal/index.tsx +++ b/src/frontend/src/modals/twoColumnsModal/index.tsx @@ -1,17 +1,7 @@ -import { useContext, useEffect, useRef, useState } from "react"; -import { FlowType } from "../../types/flow"; -import { alertContext } from "../../contexts/alertContext"; -import { classNames, validateNodes } from "../../utils"; -import { typesContext } from "../../contexts/typesContext"; +import { ReactNode, useEffect, useRef } from "react"; import { TerminalSquare, - MessageSquare, - Variable, - Eraser, - MessageSquarePlus, } from "lucide-react"; -import { sendAllProps } from "../../types/api"; -import { ChatMessageType } from "../../types/chat"; import _ from "lodash"; import { @@ -22,38 +12,45 @@ import { DialogTitle, DialogTrigger, } from "../../components/ui/dialog"; -import { CHAT_FORM_DIALOG_SUBTITLE } from "../../constants"; -import { Label } from "../../components/ui/label"; -import { TabsContext } from "../../contexts/tabsContext"; -import { - Accordion, - AccordionContent, - AccordionItem, - AccordionTrigger, -} from "../../components/ui/accordion"; -import { Textarea } from "../../components/ui/textarea"; -import { Badge } from "../../components/ui/badge"; -import ToggleShadComponent from "../../components/toggleShadComponent"; -import Dropdown from "../../components/dropdownComponent"; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuTrigger, -} from "../../components/ui/dropdown-menu"; -import { Button } from "../../components/ui/button"; +import React from "react"; -export default function TwoColumnsModal({ +const First: React.FC<{ children: ReactNode }> = ({ children }) => { + return ( +
+ {children} +
) +} +const Second: React.FC<{ children: ReactNode }> = ({ children }) => { + return ( +
+ {children} +
) +} + +const Header: React.FC<{ children: ReactNode, description:string }> = ({ children,description }) => { + return ( + + + {children} + + {description} + + ) +} + +function TwoColumnsModal({ title, description, open, setOpen, + children, }: { + children: ReactNode; description: string; title: string; open: boolean; setOpen: Function; -}) { +}, { }) { const isOpen = useRef(open); useEffect(() => { isOpen.current = open; @@ -62,32 +59,30 @@ export default function TwoColumnsModal({ function setModalOpen(x: boolean) { setOpen(x); } + const firstChild = React.Children.toArray(children).find( + (child) => (child as React.ReactElement).type === First + ); + + const secondChild = React.Children.toArray(children).find( + (child) => (child as React.ReactElement).type === Second + ); + const headerChild = React.Children.toArray(children).find((child) => (child as React.ReactElement).type === Header); //UPDATE COLORS AND STYLE CLASSSES return ( - - - {title} - - {description} - - + {headerChild}
-
-
-
-
+ {firstChild} + {secondChild}
); } -TwoColumnsModal.first = ({children})=>
{children}
-TwoColumnsModal.second = ({children})=>
{children}
+TwoColumnsModal.First = First; +TwoColumnsModal.Second = Second; +TwoColumnsModal.Header = Header; +export default TwoColumnsModal; \ No newline at end of file