diff --git a/src/frontend/src/CustomNodes/GenericNode/components/outputModal/components/switchOutputView/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/outputModal/components/switchOutputView/index.tsx index 0986df108..a1bcc5249 100644 --- a/src/frontend/src/CustomNodes/GenericNode/components/outputModal/components/switchOutputView/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/components/outputModal/components/switchOutputView/index.tsx @@ -25,13 +25,15 @@ const SwitchOutputView: React.FC = ({ type, }) => { const flowPool = useFlowStore((state) => state.flowPool); + const flowPoolNode = (flowPool[nodeId] ?? [])[ (flowPool[nodeId]?.length ?? 1) - 1 ]; + let results: OutputLogType | LogsLogType = (type === "Outputs" - ? flowPoolNode?.data?.outputs[outputName] - : flowPoolNode?.data?.logs[outputName]) ?? {}; + ? flowPoolNode?.data?.outputs?.[outputName] + : flowPoolNode?.data?.logs?.[outputName]) ?? {}; const resultType = results?.type; let resultMessage = results?.message ?? {}; const RECORD_TYPES = ["data", "object", "array", "message"]; @@ -40,18 +42,20 @@ const SwitchOutputView: React.FC = ({ } const resultMessageMemoized = useMemo(() => { + if (!resultMessage) return ""; + if ( typeof resultMessage === "string" && resultMessage.length > MAX_TEXT_LENGTH ) { - resultMessage = `${resultMessage.substring(0, MAX_TEXT_LENGTH)}...`; + return `${resultMessage.substring(0, MAX_TEXT_LENGTH)}...`; } if (Array.isArray(resultMessage)) { - resultMessage = resultMessage.map((item) => { - if (item && typeof item.data === "object") { + return resultMessage.map((item) => { + if (item?.data && typeof item?.data === "object") { const truncatedData = Object.fromEntries( - Object.entries(item.data).map(([key, value]) => { + Object.entries(item?.data).map(([key, value]) => { if (typeof value === "string" && value.length > MAX_TEXT_LENGTH) { return [key, `${value.substring(0, MAX_TEXT_LENGTH)}...`]; } @@ -74,8 +78,8 @@ const SwitchOutputView: React.FC = ({ + value={`${resultMessageMemoized?.errorMessage}\n\n${resultMessageMemoized?.stackTrace}`} + /> @@ -86,10 +90,14 @@ const SwitchOutputView: React.FC = ({ ).every((item) => item.data) - ? (resultMessageMemoized as Array).map((item) => item.data) + ? (resultMessageMemoized as Array).every( + (item) => item?.data, + ) + ? (resultMessageMemoized as Array).map( + (item) => item?.data, + ) : resultMessageMemoized - : Object.keys(resultMessageMemoized).length > 0 + : Object.keys(resultMessageMemoized)?.length > 0 ? [resultMessageMemoized] : [] } @@ -119,10 +127,10 @@ const SwitchOutputView: React.FC = ({ ).every((item) => item.data) - ? (results as Array).map((item) => item.data) + ? (results as Array).every((item) => item?.data) + ? (results as Array).map((item) => item?.data) : results - : Object.keys(results).length > 0 + : Object.keys(results)?.length > 0 ? [results] : [] }