mirror of
https://github.com/langgenius/dify.git
synced 2026-08-28 21:23:22 +08:00
node style
This commit is contained in:
parent
fb2e351c08
commit
524b19bb3a
@ -285,7 +285,7 @@ export const useWorkflowRun = () => {
|
|||||||
...restCallback,
|
...restCallback,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}, [store, reactflow, workflowStore])
|
}, [store, reactflow, workflowStore, handleLoadBackupDraft])
|
||||||
|
|
||||||
const handleStopRun = useCallback((taskId: string) => {
|
const handleStopRun = useCallback((taskId: string) => {
|
||||||
const appId = useAppStore.getState().appDetail?.id
|
const appId = useAppStore.getState().appDetail?.id
|
||||||
|
|||||||
@ -51,7 +51,7 @@ const BaseNode: FC<BaseNodeProps> = ({
|
|||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className={`
|
className={`
|
||||||
group relative w-[240px] bg-[#fcfdff] shadow-xs
|
group relative pb-1 w-[240px] bg-[#fcfdff] shadow-xs
|
||||||
border border-transparent rounded-[15px]
|
border border-transparent rounded-[15px]
|
||||||
${!data._runningStatus && 'hover:shadow-lg'}
|
${!data._runningStatus && 'hover:shadow-lg'}
|
||||||
${data._runningStatus === NodeRunningStatus.Running && '!border-primary-500'}
|
${data._runningStatus === NodeRunningStatus.Running && '!border-primary-500'}
|
||||||
@ -118,9 +118,7 @@ const BaseNode: FC<BaseNodeProps> = ({
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div className='pb-1'>
|
{cloneElement(children, { id, data })}
|
||||||
{cloneElement(children, { id, data })}
|
|
||||||
</div>
|
|
||||||
{
|
{
|
||||||
data.desc && (
|
data.desc && (
|
||||||
<div className='px-3 pt-1 pb-2 text-xs leading-[18px] text-gray-500 whitespace-pre-line break-words'>
|
<div className='px-3 pt-1 pb-2 text-xs leading-[18px] text-gray-500 whitespace-pre-line break-words'>
|
||||||
|
|||||||
@ -46,9 +46,14 @@ const Node: FC<NodeProps<EndNodeType>> = ({
|
|||||||
return type
|
return type
|
||||||
}
|
}
|
||||||
const { outputs } = data
|
const { outputs } = data
|
||||||
|
const filteredOutputs = (outputs as Variable[]).filter(({ value_selector }) => value_selector.length > 0)
|
||||||
|
|
||||||
|
if (!filteredOutputs.length)
|
||||||
|
return null
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='px-3 space-y-0.5'>
|
<div className='mb-1 px-3 py-1 space-y-0.5'>
|
||||||
{(outputs as Variable[]).filter(({ value_selector }) => value_selector.length > 0).map(({ value_selector }, index) => {
|
{filteredOutputs.map(({ value_selector }, index) => {
|
||||||
const node = getNode(value_selector[0])
|
const node = getNode(value_selector[0])
|
||||||
const varName = value_selector[value_selector.length - 1]
|
const varName = value_selector[value_selector.length - 1]
|
||||||
return (
|
return (
|
||||||
|
|||||||
@ -8,7 +8,7 @@ const Node: FC<NodeProps<HttpNodeType>> = ({
|
|||||||
}) => {
|
}) => {
|
||||||
const { method, url } = data
|
const { method, url } = data
|
||||||
return (
|
return (
|
||||||
<div className='px-3'>
|
<div className='mb-1 px-3 py-1'>
|
||||||
<div className='flex items-center p-1 rounded-md bg-gray-100'>
|
<div className='flex items-center p-1 rounded-md bg-gray-100'>
|
||||||
<div className='shrink-0 px-1 h-7 leading-7 rounded bg-gray-25 text-xs font-semibold text-gray-700 uppercase'>{method}</div>
|
<div className='shrink-0 px-1 h-7 leading-7 rounded bg-gray-25 text-xs font-semibold text-gray-700 uppercase'>{method}</div>
|
||||||
<div className='ml-1 w-0 grow truncate text-xs font-normal text-gray-700'>{url}</div>
|
<div className='ml-1 w-0 grow truncate text-xs font-normal text-gray-700'>{url}</div>
|
||||||
|
|||||||
@ -21,8 +21,12 @@ const Node: FC<NodeProps<KnowledgeRetrievalNodeType>> = ({
|
|||||||
}
|
}
|
||||||
})()
|
})()
|
||||||
}, [data.dataset_ids])
|
}, [data.dataset_ids])
|
||||||
|
|
||||||
|
if (!selectedDatasets.length)
|
||||||
|
return null
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='px-3'>
|
<div className='mb-1 px-3 py-1'>
|
||||||
<div className='space-y-0.5'>
|
<div className='space-y-0.5'>
|
||||||
{selectedDatasets.map(({ id, name }) => (
|
{selectedDatasets.map(({ id, name }) => (
|
||||||
<div key={id} className='flex items-center h-[26px] bg-gray-100 rounded-md px-1 text-xs font-normal text-gray-700'>
|
<div key={id} className='flex items-center h-[26px] bg-gray-100 rounded-md px-1 text-xs font-normal text-gray-700'>
|
||||||
|
|||||||
@ -15,8 +15,12 @@ const Node: FC<NodeProps<LLMNodeType>> = ({
|
|||||||
textGenerationModelList,
|
textGenerationModelList,
|
||||||
} = useTextGenerationCurrentProviderAndModelAndModelList()
|
} = useTextGenerationCurrentProviderAndModelAndModelList()
|
||||||
const hasSetModel = provider && modelId
|
const hasSetModel = provider && modelId
|
||||||
|
|
||||||
|
if (!hasSetModel)
|
||||||
|
return null
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='px-3'>
|
<div className='mb-1 px-3 py-1'>
|
||||||
{hasSetModel && (
|
{hasSetModel && (
|
||||||
<ModelSelector
|
<ModelSelector
|
||||||
defaultModel={{ provider, model: modelId }}
|
defaultModel={{ provider, model: modelId }}
|
||||||
|
|||||||
@ -24,8 +24,11 @@ const Node: FC<NodeProps<QuestionClassifierNodeType>> = (props) => {
|
|||||||
} = useTextGenerationCurrentProviderAndModelAndModelList()
|
} = useTextGenerationCurrentProviderAndModelAndModelList()
|
||||||
const hasSetModel = provider && modelId
|
const hasSetModel = provider && modelId
|
||||||
|
|
||||||
|
if (!hasSetModel && !topics.length)
|
||||||
|
return null
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='px-3'>
|
<div className='mb-1 px-3 py-1'>
|
||||||
{hasSetModel && (
|
{hasSetModel && (
|
||||||
<ModelSelector
|
<ModelSelector
|
||||||
defaultModel={{ provider, model: modelId }}
|
defaultModel={{ provider, model: modelId }}
|
||||||
|
|||||||
@ -13,8 +13,11 @@ const Node: FC<NodeProps<StartNodeType>> = ({
|
|||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
const { variables } = data
|
const { variables } = data
|
||||||
|
|
||||||
|
if (!variables.length)
|
||||||
|
return null
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='px-3'>
|
<div className='mb-1 px-3 py-1'>
|
||||||
<div className='space-y-0.5'>
|
<div className='space-y-0.5'>
|
||||||
{variables.map(variable => (
|
{variables.map(variable => (
|
||||||
<div key={variable.variable} className='flex items-center h-6 justify-between bg-gray-100 rounded-md px-1 space-x-1 text-xs font-normal text-gray-700'>
|
<div key={variable.variable} className='flex items-center h-6 justify-between bg-gray-100 rounded-md px-1 space-x-1 text-xs font-normal text-gray-700'>
|
||||||
|
|||||||
@ -50,7 +50,7 @@ const Panel: FC<NodePanelProps<StartNodeType>> = ({
|
|||||||
/>
|
/>
|
||||||
</Field>
|
</Field>
|
||||||
</div>
|
</div>
|
||||||
<Split />
|
{isChatMode && <Split />}
|
||||||
{isChatMode && (
|
{isChatMode && (
|
||||||
<div className='px-4 pt-4 pb-2'>
|
<div className='px-4 pt-4 pb-2'>
|
||||||
<OutputVars title={t(`${i18nPrefix}.builtInVar`)!}>
|
<OutputVars title={t(`${i18nPrefix}.builtInVar`)!}>
|
||||||
|
|||||||
@ -7,11 +7,15 @@ const Node: FC<NodeProps<ToolNodeType>> = ({
|
|||||||
data,
|
data,
|
||||||
}) => {
|
}) => {
|
||||||
const { tool_configurations } = data
|
const { tool_configurations } = data
|
||||||
|
const toolConfigs = Object.keys(tool_configurations || {})
|
||||||
|
|
||||||
|
if (!toolConfigs.length)
|
||||||
|
return null
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='px-3'>
|
<div className='mb-1 px-3 py-1'>
|
||||||
<div className='space-y-0.5'>
|
<div className='space-y-0.5'>
|
||||||
{Object.keys(tool_configurations || {}).map((key, index) => (
|
{toolConfigs.map((key, index) => (
|
||||||
<div key={index} className='flex items-center h-6 justify-between bg-gray-100 rounded-md px-1 space-x-1 text-xs font-normal text-gray-700'>
|
<div key={index} className='flex items-center h-6 justify-between bg-gray-100 rounded-md px-1 space-x-1 text-xs font-normal text-gray-700'>
|
||||||
<div className='text-xs font-medium text-gray-500 uppercase'>
|
<div className='text-xs font-medium text-gray-500 uppercase'>
|
||||||
{key}
|
{key}
|
||||||
|
|||||||
@ -24,7 +24,7 @@ const Node: FC<NodeProps<VariableAssignerNodeType>> = (props) => {
|
|||||||
const variables = originVariables.filter(item => item.length > 0)
|
const variables = originVariables.filter(item => item.length > 0)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='px-3'>
|
<div className='mb-1 px-3 py-1'>
|
||||||
<div className='mb-0.5 leading-4 text-xs font-medium text-gray-500 uppercase'>{t(`${i18nPrefix}.title`)}</div>
|
<div className='mb-0.5 leading-4 text-xs font-medium text-gray-500 uppercase'>{t(`${i18nPrefix}.title`)}</div>
|
||||||
{
|
{
|
||||||
variables.length === 0 && (
|
variables.length === 0 && (
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user