Skip to content

Commit f111de3

Browse files
improvement(tables): show error message tooltip on errored workflow and enrichment cells (#5449)
1 parent 586b97f commit f111de3

1 file changed

Lines changed: 21 additions & 6 deletions

File tree

  • apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/table-grid/cells

apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/table-grid/cells/cell-render.tsx

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ import { SimResourceCell, type SimResourceType } from './sim-resource-cell'
1313
export type CellRenderKind =
1414
// Workflow-output cells
1515
| { kind: 'value'; text: string }
16-
| { kind: 'block-error' }
16+
| { kind: 'block-error'; message: string }
1717
| { kind: 'running' }
1818
| { kind: 'pending-upstream' }
1919
| { kind: 'queued' }
2020
| { kind: 'cancelled' }
21-
| { kind: 'error' }
21+
| { kind: 'error'; message: string | null }
2222
| { kind: 'waiting'; labels: string[] }
2323
| { kind: 'not-found' }
2424
| { kind: 'no-output' }
@@ -68,7 +68,7 @@ export function resolveCellRender({
6868
const blockRunning = blockId ? (exec?.runningBlockIds?.includes(blockId) ?? false) : false
6969
const groupHasBlockErrors = !!(exec?.blockErrors && Object.keys(exec.blockErrors).length > 0)
7070

71-
if (blockError) return { kind: 'block-error' }
71+
if (blockError) return { kind: 'block-error', message: blockError }
7272

7373
const inFlight =
7474
exec?.status === 'running' || exec?.status === 'queued' || exec?.status === 'pending'
@@ -103,7 +103,7 @@ export function resolveCellRender({
103103
return { kind: 'waiting', labels: waitingOnLabels }
104104
}
105105
if (exec?.status === 'cancelled') return { kind: 'cancelled' }
106-
if (exec?.status === 'error') return { kind: 'error' }
106+
if (exec?.status === 'error') return { kind: 'error', message: exec.error }
107107
// Enrichment ran to completion but matched nothing → "Not found".
108108
if (isEnrichmentOutput && exec?.status === 'completed') return { kind: 'not-found' }
109109
// Workflow output: the group's run completed but this block produced no
@@ -249,12 +249,27 @@ export function CellRender({ kind, isEditing }: CellRenderProps): React.ReactEle
249249
)
250250

251251
case 'block-error':
252-
case 'error':
252+
case 'error': {
253+
if (!kind.message) {
254+
return (
255+
<Wrap isEditing={isEditing}>
256+
<StatusBadge status='error' />
257+
</Wrap>
258+
)
259+
}
253260
return (
254261
<Wrap isEditing={isEditing}>
255-
<StatusBadge status='error' />
262+
<Tooltip.Root>
263+
<Tooltip.Trigger asChild>
264+
<span>
265+
<StatusBadge status='error' />
266+
</span>
267+
</Tooltip.Trigger>
268+
<Tooltip.Content side='top'>{kind.message}</Tooltip.Content>
269+
</Tooltip.Root>
256270
</Wrap>
257271
)
272+
}
258273

259274
case 'running':
260275
return (

0 commit comments

Comments
 (0)