import type { FC } from 'react' import React from 'react' import type { Variable } from '@/app/components/workflow/types' type OutputVariablesContentProps = { variables?: Variable[] } // Define the display order for variable labels to match the table order in the UI const LABEL_ORDER = { raw: 0, param: 1, header: 2, body: 3 } as const const getLabelPrefix = (label: string): string => { const prefixMap: Record = { raw: 'payload', param: 'query_params', header: 'header_params', body: 'req_body_params', } return prefixMap[label] || label } type VarItemProps = { prefix: string name: string type: string } const VarItem: FC = ({ prefix, name, type }) => { return (
{prefix}. {name} {type}
) } export const OutputVariablesContent: FC = ({ variables = [] }) => { if (!variables || variables.length === 0) { return (
No output variables
) } // Sort variables by label to match the table display order: param → header → body // Unknown labels are placed at the end (order value 999) const sortedVariables = [...variables].sort((a, b) => { const labelA = typeof a.label === 'string' ? a.label : '' const labelB = typeof b.label === 'string' ? b.label : '' return (LABEL_ORDER[labelA as keyof typeof LABEL_ORDER] || 999) - (LABEL_ORDER[labelB as keyof typeof LABEL_ORDER] || 999) }) return (
{sortedVariables.map((variable, index) => { const label = typeof variable.label === 'string' ? variable.label : '' const varName = typeof variable.variable === 'string' ? variable.variable : '' return ( ) })}
) }