diff --git a/packages/console/package.json b/packages/console/package.json
index db5ad95bf..5315d2f0e 100644
--- a/packages/console/package.json
+++ b/packages/console/package.json
@@ -1,6 +1,6 @@
{
"name": "@flyteorg/console",
- "version": "0.0.14",
+ "version": "0.0.15",
"description": "Flyteconsole main app module",
"main": "./dist/index.js",
"module": "./lib/index.js",
diff --git a/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx b/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx
index 40cb0a87b..179c7151b 100644
--- a/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx
+++ b/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx
@@ -495,6 +495,7 @@ export const NodeExecutionDetailsPanelContent: React.FC<
phase={taskPhase}
taskTemplate={details?.taskTemplate}
onTaskSelected={setSelectedTaskExecution}
+ taskIndex={selectedTaskExecution?.taskIndex!}
/>
) : null;
diff --git a/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionTabs/NodeExecutionInputs.tsx b/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionTabs/NodeExecutionInputs.tsx
index e4059f153..02c92329f 100644
--- a/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionTabs/NodeExecutionInputs.tsx
+++ b/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionTabs/NodeExecutionInputs.tsx
@@ -6,14 +6,18 @@ import { NodeExecution } from 'models/Execution/types';
import * as React from 'react';
/** Fetches and renders the input data for a given `NodeExecution` */
-export const NodeExecutionInputs: React.FC<{ execution: NodeExecution }> = ({
- execution,
-}) => {
+export const NodeExecutionInputs: React.FC<{
+ execution: NodeExecution;
+ taskIndex?: number;
+}> = ({ execution, taskIndex }) => {
const executionData = useNodeExecutionData(execution.id);
return (
-
+
);
diff --git a/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionTabs/NodeExecutionOutputs.tsx b/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionTabs/NodeExecutionOutputs.tsx
index 42f7429a1..0aa836661 100644
--- a/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionTabs/NodeExecutionOutputs.tsx
+++ b/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionTabs/NodeExecutionOutputs.tsx
@@ -6,14 +6,18 @@ import { NodeExecution } from 'models/Execution/types';
import * as React from 'react';
/** Fetches and renders the output data for a given `NodeExecution` */
-export const NodeExecutionOutputs: React.FC<{ execution: NodeExecution }> = ({
- execution,
-}) => {
+export const NodeExecutionOutputs: React.FC<{
+ execution: NodeExecution;
+ taskIndex?: number;
+}> = ({ execution, taskIndex }) => {
const executionData = useNodeExecutionData(execution.id);
return (
-
+
);
diff --git a/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionTabs/index.tsx b/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionTabs/index.tsx
index 3a289b0c0..100d6cd58 100644
--- a/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionTabs/index.tsx
+++ b/packages/console/src/components/Executions/ExecutionDetails/NodeExecutionTabs/index.tsx
@@ -47,12 +47,14 @@ export const NodeExecutionTabs: React.FC<{
onTaskSelected: (val: MapTaskExecution) => void;
phase?: TaskExecutionPhase;
taskTemplate?: TaskTemplate | null;
+ taskIndex?: number;
}> = ({
nodeExecution,
selectedTaskExecution,
onTaskSelected,
taskTemplate,
phase,
+ taskIndex,
}) => {
const styles = useStyles();
const tabState = useTabState(tabIds, defaultTab);
@@ -80,11 +82,15 @@ export const NodeExecutionTabs: React.FC<{
break;
}
case tabIds.inputs: {
- tabContent = ;
+ tabContent = (
+
+ );
break;
}
case tabIds.outputs: {
- tabContent = ;
+ tabContent = (
+
+ );
break;
}
case tabIds.task: {
diff --git a/packages/console/src/components/Executions/TaskExecutionsList/utils.ts b/packages/console/src/components/Executions/TaskExecutionsList/utils.ts
index f12397eed..e56951146 100644
--- a/packages/console/src/components/Executions/TaskExecutionsList/utils.ts
+++ b/packages/console/src/components/Executions/TaskExecutionsList/utils.ts
@@ -66,8 +66,8 @@ export const getGroupedLogs = (
// for user to understand which array items are in this state
const newLogs =
item.logs.length > 0
- ? item.logs.map(l => ({ ...l, index: item.index }))
- : [{ name: item.externalId, index: item.index }];
+ ? item.logs.map(l => ({ ...l, index: item.index || 0 }))
+ : [{ name: item.externalId }];
logsByPhase.set(
phase,
currentValue ? [...currentValue, ...newLogs] : [...newLogs],
diff --git a/packages/console/src/components/Literals/LiteralMapViewer.tsx b/packages/console/src/components/Literals/LiteralMapViewer.tsx
index 77be18da2..a09fd9ae5 100644
--- a/packages/console/src/components/Literals/LiteralMapViewer.tsx
+++ b/packages/console/src/components/Literals/LiteralMapViewer.tsx
@@ -17,7 +17,8 @@ export const LiteralMapViewer: React.FC<{
className?: string;
map: LiteralMap | null;
showBrackets?: boolean;
-}> = ({ map }) => {
+ mapTaskIndex?: number;
+}> = ({ map, mapTaskIndex }) => {
if (!map) {
return ;
}
@@ -28,7 +29,7 @@ export const LiteralMapViewer: React.FC<{
return ;
}
- const transformedLiterals = transformLiterals(literals);
+ const transformedLiterals = transformLiterals(literals, mapTaskIndex);
return ;
};
diff --git a/packages/console/src/components/Literals/helpers.ts b/packages/console/src/components/Literals/helpers.ts
index 22e9c844a..53a8ccb5b 100644
--- a/packages/console/src/components/Literals/helpers.ts
+++ b/packages/console/src/components/Literals/helpers.ts
@@ -146,7 +146,7 @@ function processUnionType(union?: Core.IUnionType | null, shortString = false) {
}
function processUnion(union: Core.IUnion) {
- return DEFAULT_UNSUPPORTED;
+ return { union: processLiteral(union.value!) };
}
/* eslint-enable @typescript-eslint/no-unused-vars */
@@ -351,27 +351,37 @@ function processScalar(
}
}
-function processCollection(collection?: Core.ILiteralCollection | null) {
- const literals = collection?.literals;
+function processCollection(
+ collection?: Core.ILiteralCollection | null,
+ mapTaskIndex?: number,
+) {
+ let literals = collection?.literals;
if (!literals) {
return 'invalid collection';
}
- return literals?.map(literal => processLiteral(literal));
+ if (!isNaN(mapTaskIndex!)) {
+ literals = (literals || []).splice(mapTaskIndex!, 1);
+ }
+
+ return literals?.map(literal => processLiteral(literal, mapTaskIndex));
}
-function processMap(map?: Core.ILiteralMap | null) {
+function processMap(map?: Core.ILiteralMap | null, mapTaskIndex?: number) {
const literals = map?.literals;
if (!literals) {
return 'invalid map';
}
- return transformLiterals(literals);
+ return transformLiterals(literals, mapTaskIndex);
}
-function processLiteral(literal?: Core.ILiteral & Pick) {
+function processLiteral(
+ literal?: Core.ILiteral & Pick,
+ mapTaskIndex?: number,
+) {
const type = literal?.value;
if (!literal) {
@@ -382,18 +392,21 @@ function processLiteral(literal?: Core.ILiteral & Pick) {
case 'scalar':
return processScalar(literal.scalar);
case 'collection':
- return processCollection(literal.collection);
+ return processCollection(literal.collection, mapTaskIndex);
case 'map':
- return processMap(literal.map);
+ return processMap(literal.map, mapTaskIndex);
default:
return DEFAULT_UNSUPPORTED;
}
}
-export function transformLiterals(json: { [k: string]: Core.ILiteral }) {
+export function transformLiterals(
+ json: { [k: string]: Core.ILiteral },
+ mapTaskIndex?: number,
+) {
const obj = Object.entries(json)
.map(([key, literal]) => ({
- [key]: processLiteral(literal),
+ [key]: processLiteral(literal, mapTaskIndex),
}))
.reduce(
(acc, cur) => ({
diff --git a/packages/console/src/components/common/MapTaskExecutionsList/TaskNameList.tsx b/packages/console/src/components/common/MapTaskExecutionsList/TaskNameList.tsx
index fd7ce0461..c68acee91 100644
--- a/packages/console/src/components/common/MapTaskExecutionsList/TaskNameList.tsx
+++ b/packages/console/src/components/common/MapTaskExecutionsList/TaskNameList.tsx
@@ -60,7 +60,7 @@ export const TaskNameList = ({
// Use the resource's index instead of the log index
onTaskSelected({
...taskExecution,
- taskIndex: (log as any).index || 0,
+ taskIndex: (log as any).index,
});
};
diff --git a/website/package.json b/website/package.json
index f77846c17..ee73c71ff 100644
--- a/website/package.json
+++ b/website/package.json
@@ -37,7 +37,7 @@
},
"dependencies": {
"@flyteorg/common": "^0.0.3",
- "@flyteorg/console": "^0.0.14",
+ "@flyteorg/console": "^0.0.15",
"long": "^4.0.0",
"protobufjs": "~6.11.3",
"react-ga4": "^1.4.1",
diff --git a/yarn.lock b/yarn.lock
index 9e9a32076..f6f3db62c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1995,7 +1995,7 @@ __metadata:
resolution: "@flyteconsole/client-app@workspace:website"
dependencies:
"@flyteorg/common": ^0.0.3
- "@flyteorg/console": ^0.0.14
+ "@flyteorg/console": ^0.0.15
"@types/long": ^3.0.32
long: ^4.0.0
protobufjs: ~6.11.3
@@ -2034,7 +2034,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@flyteorg/console@^0.0.14, @flyteorg/console@workspace:packages/console":
+"@flyteorg/console@^0.0.15, @flyteorg/console@workspace:packages/console":
version: 0.0.0-use.local
resolution: "@flyteorg/console@workspace:packages/console"
dependencies: