diff --git a/src/frontend/src/components/dropdownComponent/index.tsx b/src/frontend/src/components/dropdownComponent/index.tsx index 67b9c5d82..c3407aba8 100644 --- a/src/frontend/src/components/dropdownComponent/index.tsx +++ b/src/frontend/src/components/dropdownComponent/index.tsx @@ -1,3 +1,4 @@ +import { PopoverAnchor } from "@radix-ui/react-popover"; import { useRef, useState } from "react"; import { DropDownComponentType } from "../../types/components"; import { cn } from "../../utils/utils"; @@ -13,6 +14,7 @@ import { } from "../ui/command"; import { Popover, + PopoverContent, PopoverContentWithoutPortal, PopoverTrigger, } from "../ui/popover"; @@ -25,50 +27,57 @@ export default function Dropdown({ onSelect, editNode = false, id = "", + children, }: DropDownComponentType): JSX.Element { - const [open, setOpen] = useState(false); + const [open, setOpen] = useState(children ? true : false); const refButton = useRef(null); + const PopoverContentDropdown = children ? PopoverContent : PopoverContentWithoutPortal; + return ( <> {Object.keys(options)?.length > 0 ? ( <> - - - - - + + + )} + @@ -98,7 +107,7 @@ export default function Dropdown({ - + ) : ( diff --git a/src/frontend/src/pages/SettingsPage/pages/GlobalVariablesPage/index.tsx b/src/frontend/src/pages/SettingsPage/pages/GlobalVariablesPage/index.tsx index 99e1a58a8..ad88bc6f2 100644 --- a/src/frontend/src/pages/SettingsPage/pages/GlobalVariablesPage/index.tsx +++ b/src/frontend/src/pages/SettingsPage/pages/GlobalVariablesPage/index.tsx @@ -4,6 +4,7 @@ import { Button } from "../../../../components/ui/button"; import { ColDef, ColGroupDef, SelectionChangedEvent } from "ag-grid-community"; import { useState } from "react"; import AddNewVariableButton from "../../../../components/addNewVariableButtonComponent/addNewVariableButton"; +import Dropdown from "../../../../components/dropdownComponent"; import ForwardedIconComponent from "../../../../components/genericIconComponent"; import TableComponent from "../../../../components/tableComponent"; import { Badge } from "../../../../components/ui/badge"; @@ -19,6 +20,14 @@ export default function GlobalVariablesPage() { ); }; + + const DropdownEditor = ({ options, value, onValueChange }) => { + return ( + +
+
+ ); + }; // Column Definitions: Defines the columns to be displayed. const [colDefs, setColDefs] = useState<(ColDef | ColGroupDef)[]>([ { @@ -32,10 +41,9 @@ export default function GlobalVariablesPage() { { field: "type", cellRenderer: BadgeRenderer, - cellEditor: "agSelectCellEditor", + cellEditor: DropdownEditor, cellEditorParams: { - values: ["Prompt", "Credential"], - valueListGap: 10, + options: ["Prompt", "Credential"], }, flex: 1, editable: true, diff --git a/src/frontend/src/types/components/index.ts b/src/frontend/src/types/components/index.ts index 4fb2ca1b7..353443572 100644 --- a/src/frontend/src/types/components/index.ts +++ b/src/frontend/src/types/components/index.ts @@ -45,6 +45,7 @@ export type DropDownComponentType = { onSelect: (value: string) => void; editNode?: boolean; id?: string; + children?: ReactNode; }; export type ParameterComponentType = { data: NodeDataType; @@ -80,15 +81,6 @@ export type InputGlobalComponentType = { editNode?: boolean; }; -export type InputGlobalComponentType = { - disabled: boolean; - onChange: (value: string) => void; - setDb: (value: boolean) => void; - name: string; - data: NodeDataType; - editNode?: boolean; -}; - export type KeyPairListComponentType = { value: any; onChange: (value: Object[]) => void;