mirror of
https://github.com/langgenius/dify.git
synced 2026-05-14 19:00:33 -04:00
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: jyong <718720800@qq.com> Co-authored-by: Yansong Zhang <916125788@qq.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: hj24 <mambahj24@gmail.com> Co-authored-by: hj24 <huangjian@dify.ai> Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Co-authored-by: CodingOnStar <hanxujiang@dify.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: 非法操作 <hjlarry@163.com> Co-authored-by: Ayush Baluni <73417844+aayushbaluni@users.noreply.github.com> Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com> Co-authored-by: jimcody1995 <jjimcody@gmail.com> Co-authored-by: James <63717587+jamesrayammons@users.noreply.github.com> Co-authored-by: Yunlu Wen <yunlu.wen@dify.ai> Co-authored-by: Stephen Zhou <hi@hyoban.cc> Co-authored-by: Coding On Star <447357187@qq.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: jerryzai <jerryzh8710@protonmail.com> Co-authored-by: NVIDIAN <speedy.hpc@hotmail.com> Co-authored-by: ai-hpc <ai-hpc@users.noreply.github.com> Co-authored-by: Asuka Minato <i@asukaminato.eu.org> Co-authored-by: Junghwan <70629228+shaun0927@users.noreply.github.com> Co-authored-by: HeYinKazune <70251095+HeYin-OS@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: yyh <yuanyouhuilyz@gmail.com> Co-authored-by: Jingyi <jingyi.qi@dify.ai> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: sxxtony <166789813+sxxtony@users.noreply.github.com>
79 lines
2.3 KiB
TypeScript
79 lines
2.3 KiB
TypeScript
import type { FC } from 'react'
|
|
import type { Variable } from '@/app/components/workflow/types'
|
|
import * as React from 'react'
|
|
|
|
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<string, string> = {
|
|
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<VarItemProps> = ({ prefix, name, type }) => {
|
|
return (
|
|
<div className="py-1">
|
|
<div className="flex items-center leading-[18px]">
|
|
<span className="code-sm-regular text-text-tertiary">
|
|
{prefix}
|
|
.
|
|
</span>
|
|
<span className="code-sm-semibold text-text-secondary">{name}</span>
|
|
<span className="ml-2 system-xs-regular text-text-tertiary">{type}</span>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export const OutputVariablesContent: FC<OutputVariablesContentProps> = ({ variables = [] }) => {
|
|
if (!variables || variables.length === 0) {
|
|
return (
|
|
<div className="py-2 system-sm-regular text-text-tertiary">
|
|
No output variables
|
|
</div>
|
|
)
|
|
}
|
|
|
|
// 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 (
|
|
<div>
|
|
{sortedVariables.map((variable, index) => {
|
|
const label = typeof variable.label === 'string' ? variable.label : ''
|
|
const varName = typeof variable.variable === 'string' ? variable.variable : ''
|
|
|
|
return (
|
|
<VarItem
|
|
key={`${label}-${varName}-${index}`}
|
|
prefix={getLabelPrefix(label)}
|
|
name={varName}
|
|
type={variable.value_type || 'string'}
|
|
/>
|
|
)
|
|
})}
|
|
</div>
|
|
)
|
|
}
|