Refactor GenericNode component

This commit is contained in:
anovazzi1 2024-03-03 17:05:48 -03:00
commit c917eeec4a

View file

@ -138,9 +138,8 @@ export default function GenericNode({
const iconColor = nodeColors[types[data.type]]; const iconColor = nodeColors[types[data.type]];
const iconName = const iconName =
iconElement || (data.node?.flow ? "group_components" : name); iconElement || (data.node?.flow ? "group_components" : name);
const iconClassName = `generic-node-icon ${ const iconClassName = `generic-node-icon ${!showNode ? " absolute inset-x-6 h-12 w-12 " : ""
!showNode ? " absolute inset-x-6 h-12 w-12 " : "" }`;
}`;
if (iconElement && isEmoji) { if (iconElement && isEmoji) {
return nodeIconFragment(iconElement); return nodeIconFragment(iconElement);
} else { } else {
@ -268,7 +267,7 @@ export default function GenericNode({
numberOfHandles={handles} numberOfHandles={handles}
showNode={showNode} showNode={showNode}
openAdvancedModal={false} openAdvancedModal={false}
onCloseAdvancedModal={() => {}} onCloseAdvancedModal={() => { }}
selected={selected} selected={selected}
></NodeToolbarComponent> ></NodeToolbarComponent>
</NodeToolbar> </NodeToolbar>
@ -390,13 +389,28 @@ export default function GenericNode({
})} })}
data={data} data={data}
color={ color={
nodeColors[ data.node?.template[templateField].input_types &&
types[data.node?.template[templateField].type!] data.node?.template[templateField].input_types!
] ?? .length > 0
nodeColors[ ? nodeColors[
data.node?.template[templateField]
.input_types![data.node?.template[templateField]
.input_types!.length - 1]
] ??
nodeColors[
types[
data.node?.template[templateField]
.input_types![data.node?.template[templateField]
.input_types!.length - 1]
]
]
: nodeColors[
data.node?.template[templateField].type! data.node?.template[templateField].type!
] ?? ] ??
nodeColors.unknown nodeColors[
types[data.node?.template[templateField].type!]
] ??
nodeColors.unknown
} }
title={getFieldTitle( title={getFieldTitle(
data.node?.template!, data.node?.template!,
@ -440,7 +454,7 @@ export default function GenericNode({
color={nodeColors[types[data.type]] ?? nodeColors.unknown} color={nodeColors[types[data.type]] ?? nodeColors.unknown}
title={ title={
data.node?.output_types && data.node?.output_types &&
data.node.output_types.length > 0 data.node.output_types.length > 0
? data.node.output_types.join(" | ") ? data.node.output_types.join(" | ")
: data.type : data.type
} }
@ -479,10 +493,10 @@ export default function GenericNode({
<div className="max-h-96 overflow-auto"> <div className="max-h-96 overflow-auto">
{typeof validationStatus.params === "string" {typeof validationStatus.params === "string"
? `${durationString}\n${validationStatus.params}` ? `${durationString}\n${validationStatus.params}`
.split("\n") .split("\n")
.map((line, index) => ( .map((line, index) => (
<div key={index}>{line}</div> <div key={index}>{line}</div>
)) ))
: durationString} : durationString}
</div> </div>
) )
@ -569,7 +583,7 @@ export default function GenericNode({
}} }}
> >
{(data.node?.description === "" || !data.node?.description) && {(data.node?.description === "" || !data.node?.description) &&
nameEditable nameEditable
? "Double Click to Edit Description" ? "Double Click to Edit Description"
: data.node?.description} : data.node?.description}
</div> </div>
@ -590,7 +604,7 @@ export default function GenericNode({
.map((templateField: string, idx) => ( .map((templateField: string, idx) => (
<div key={idx}> <div key={idx}>
{data.node!.template[templateField].show && {data.node!.template[templateField].show &&
!data.node!.template[templateField].advanced ? ( !data.node!.template[templateField].advanced ? (
<ParameterComponent <ParameterComponent
index={idx.toString()} index={idx.toString()}
key={scapedJSONStringfy({ key={scapedJSONStringfy({
@ -604,25 +618,27 @@ export default function GenericNode({
data={data} data={data}
color={ color={
data.node?.template[templateField].input_types && data.node?.template[templateField].input_types &&
data.node?.template[templateField].input_types! data.node?.template[templateField].input_types!
.length > 0 .length > 0
? nodeColors[ ? nodeColors[
data.node?.template[templateField] data.node?.template[templateField]
.input_types![0] .input_types![data.node?.template[templateField]
] ?? .input_types!.length - 1]
nodeColors[ ] ??
types[ nodeColors[
data.node?.template[templateField] types[
.input_types![0] data.node?.template[templateField]
] .input_types![data.node?.template[templateField]
] .input_types!.length - 1]
]
]
: nodeColors[ : nodeColors[
data.node?.template[templateField].type! data.node?.template[templateField].type!
] ?? ] ??
nodeColors[ nodeColors[
types[data.node?.template[templateField].type!] types[data.node?.template[templateField].type!]
] ?? ] ??
nodeColors.unknown nodeColors.unknown
} }
title={getFieldTitle( title={getFieldTitle(
data.node?.template!, data.node?.template!,
@ -674,9 +690,9 @@ export default function GenericNode({
data={data} data={data}
color={ color={
(data.node?.output_types && (data.node?.output_types &&
data.node.output_types.length > 0 data.node.output_types.length > 0
? nodeColors[data.node.output_types[0]] ?? ? nodeColors[data.node.output_types[0]] ??
nodeColors[types[data.node.output_types[0]]] nodeColors[types[data.node.output_types[0]]]
: nodeColors[types[data.type]]) ?? nodeColors.unknown : nodeColors[types[data.type]]) ?? nodeColors.unknown
} }
title={ title={