fix: update hide outputs behavior to show current state, update disabled button UI (#7917)

* Fixed hidden to be output.hidden

* Fixed disabled Hide button to look disabled

* Fixed lastInput being true to all fields

* Changed text

* fixed multiple renders

* fixed show hidden
This commit is contained in:
Lucas Oliveira 2025-05-07 20:20:50 -03:00 • committed by GitHub
commit ad82222ecc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 32 additions and 17 deletions

View file

@ -73,10 +73,15 @@ const HideShowButton = memo(
unstyled unstyled
onClick={onClick} onClick={onClick}
data-testid={`input-inspection-${title.toLowerCase()}`} data-testid={`input-inspection-${title.toLowerCase()}`}
className="cursor-pointer"
> >
<ShadTooltip <ShadTooltip
content={disabled ? null : hidden ? "Show output" : "Hide output"} content={
disabled
? "Connected outputs can't be hidden."
: hidden
? "Show output"
: "Hide output"
}
> >
<div> <div>
<EyeIcon <EyeIcon
@ -84,9 +89,7 @@ const HideShowButton = memo(
className={cn( className={cn(
"icon-size", "icon-size",
disabled disabled
? isToolMode ? "text-placeholder-foreground opacity-60"
? "text-placeholder-foreground opacity-60"
: "text-placeholder-foreground hover:text-foreground"
: isToolMode : isToolMode
? "text-background hover:text-secondary-hover" ? "text-background hover:text-secondary-hover"
: "text-placeholder-foreground hover:text-primary-hover", : "text-placeholder-foreground hover:text-primary-hover",

View file

@ -28,6 +28,17 @@ const RenderInputParameters = ({
); );
}, [data.node?.template, data.node?.field_order, isToolMode]); }, [data.node?.template, data.node?.field_order, isToolMode]);
const shownTemplateFields = useMemo(() => {
return templateFields.filter((templateField) => {
const template = data.node?.template[templateField];
return (
template?.show &&
!template?.advanced &&
!(template?.tool_mode && isToolMode)
);
});
}, [templateFields, data.node?.template, isToolMode]);
const memoizedColors = useMemo(() => { const memoizedColors = useMemo(() => {
const colorMap = new Map(); const colorMap = new Map();
@ -74,24 +85,19 @@ const RenderInputParameters = ({
return keyMap; return keyMap;
}, [templateFields, data.id, data.node?.template]); }, [templateFields, data.id, data.node?.template]);
const renderInputParameter = templateFields.map( const renderInputParameter = shownTemplateFields.map(
(templateField: string, idx) => { (templateField: string, idx: number) => {
const template = data.node?.template[templateField]; const template = data.node?.template[templateField];
if (
!template?.show ||
template?.advanced ||
(template?.tool_mode && isToolMode)
) {
return null;
}
const memoizedColor = memoizedColors.get(templateField); const memoizedColor = memoizedColors.get(templateField);
const memoizedKey = memoizedKeys.get(templateField); const memoizedKey = memoizedKeys.get(templateField);
return ( return (
<NodeInputField <NodeInputField
lastInput={!(shownOutputs.length > 0 || showHiddenOutputs)} lastInput={
!(shownOutputs.length > 0 || showHiddenOutputs) &&
idx === shownTemplateFields.length - 1
}
key={memoizedKey} key={memoizedKey}
data={data} data={data}
colors={memoizedColor.colors} colors={memoizedColor.colors}

View file

@ -233,7 +233,13 @@ function GenericNode({
showNode={showNode} showNode={showNode}
isToolMode={isToolMode} isToolMode={isToolMode}
showHiddenOutputs={showHiddenOutputs} showHiddenOutputs={showHiddenOutputs}
hidden={key === "hidden"} hidden={
key === "hidden"
? showHiddenOutputs
? output.hidden
: true
: false
}
/> />
)); ));
}, },