diff --git a/src/frontend/src/CustomNodes/GenericNode/components/NodeInputField/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/NodeInputField/index.tsx index 5f5828131..271262fda 100644 --- a/src/frontend/src/CustomNodes/GenericNode/components/NodeInputField/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/components/NodeInputField/index.tsx @@ -68,6 +68,10 @@ export default function NodeInputField({ name, }); + const hasRefreshButton = useMemo(() => { + return data.node?.template[name]?.refresh_button; + }, [data.node?.template, name]); + const nodeInformationMetadata: NodeInfoType = useMemo(() => { return { flowId: currentFlow?.id ?? "", @@ -89,7 +93,8 @@ export default function NodeInputField({ const displayHandle = (!LANGFLOW_SUPPORTED_TYPES.has(type ?? "") || (optionalHandle && optionalHandle.length > 0)) && - !isToolMode; + !isToolMode && + !hasRefreshButton; const isFlexView = FLEX_VIEW_TYPES.includes(type ?? ""); diff --git a/src/frontend/src/components/core/parameterRenderComponent/components/inputComponent/components/popover/index.tsx b/src/frontend/src/components/core/parameterRenderComponent/components/inputComponent/components/popover/index.tsx index a86574eba..f7b3e77c5 100644 --- a/src/frontend/src/components/core/parameterRenderComponent/components/inputComponent/components/popover/index.tsx +++ b/src/frontend/src/components/core/parameterRenderComponent/components/inputComponent/components/popover/index.tsx @@ -185,6 +185,7 @@ const CustomInputPopover = ({ popoverWidth, commandWidth, blockAddNewGlobalVariable, + hasRefreshButton, }) => { const [isFocused, setIsFocused] = useState(false); const memoizedOptions = useMemo(() => new Set(options), [options]); @@ -254,8 +255,9 @@ const CustomInputPopover = ({ className={cn( editNode && "text-xs", nodeStyle - ? "max-w-60 rounded-[3px] px-1 font-mono" + ? "max-w-56 rounded-[3px] px-1 font-mono" : "bg-muted", + hasRefreshButton && "max-w-48", )} /> diff --git a/src/frontend/src/components/core/parameterRenderComponent/components/inputComponent/index.tsx b/src/frontend/src/components/core/parameterRenderComponent/components/inputComponent/index.tsx index ec7302279..b774164c5 100644 --- a/src/frontend/src/components/core/parameterRenderComponent/components/inputComponent/index.tsx +++ b/src/frontend/src/components/core/parameterRenderComponent/components/inputComponent/index.tsx @@ -42,6 +42,7 @@ export default function InputComponent({ popoverWidth, commandWidth, blockAddNewGlobalVariable = false, + hasRefreshButton = false, }: InputComponentType): JSX.Element { const [pwdVisible, setPwdVisible] = useState(false); const refInput = useRef(null); @@ -155,6 +156,7 @@ export default function InputComponent({ popoverWidth={popoverWidth} commandWidth={commandWidth} blockAddNewGlobalVariable={blockAddNewGlobalVariable} + hasRefreshButton={hasRefreshButton} /> )} diff --git a/src/frontend/src/components/core/parameterRenderComponent/components/inputGlobalComponent/index.tsx b/src/frontend/src/components/core/parameterRenderComponent/components/inputGlobalComponent/index.tsx index 268cbfe22..ac6a3bfa0 100644 --- a/src/frontend/src/components/core/parameterRenderComponent/components/inputGlobalComponent/index.tsx +++ b/src/frontend/src/components/core/parameterRenderComponent/components/inputGlobalComponent/index.tsx @@ -5,7 +5,7 @@ import { import GeneralDeleteConfirmationModal from "@/shared/components/delete-confirmation-modal"; import GeneralGlobalVariableModal from "@/shared/components/global-variable-modal"; import { useGlobalVariablesStore } from "@/stores/globalVariablesStore/globalVariables"; -import { useEffect } from "react"; +import { useEffect, useMemo } from "react"; import DeleteConfirmationModal from "../../../../../modals/deleteConfirmationModal"; import useAlertStore from "../../../../../stores/alertStore"; import { cn } from "../../../../../utils/utils"; @@ -27,6 +27,7 @@ export default function InputGlobalComponent({ editNode = false, placeholder, isToolMode = false, + hasRefreshButton = false, }: InputProps): JSX.Element { const { data: globalVariables } = useGetGlobalVariables(); const unavailableFields = useGlobalVariablesStore( @@ -115,6 +116,7 @@ export default function InputGlobalComponent({ ); }} isToolMode={isToolMode} + hasRefreshButton={hasRefreshButton} /> ); } diff --git a/src/frontend/src/components/core/parameterRenderComponent/components/strRenderComponent/index.tsx b/src/frontend/src/components/core/parameterRenderComponent/components/strRenderComponent/index.tsx index e075669a7..2b84b2e00 100644 --- a/src/frontend/src/components/core/parameterRenderComponent/components/strRenderComponent/index.tsx +++ b/src/frontend/src/components/core/parameterRenderComponent/components/strRenderComponent/index.tsx @@ -66,7 +66,7 @@ export function StrRenderComponent({ = { metadata?: any; nodeId?: string; nodeInformationMetadata?: NodeInfoType; + hasRefreshButton?: boolean; }; // Generic type for composing input props diff --git a/src/frontend/src/types/components/index.ts b/src/frontend/src/types/components/index.ts index 279b2d146..4d1ee324d 100644 --- a/src/frontend/src/types/components/index.ts +++ b/src/frontend/src/types/components/index.ts @@ -49,6 +49,7 @@ export type InputComponentType = { popoverWidth?: string; commandWidth?: string; blockAddNewGlobalVariable?: boolean; + hasRefreshButton?: boolean; }; export type DropDownComponent = { disabled?: boolean;