mirror of
https://github.com/langgenius/dify.git
synced 2026-01-08 07:14:14 +00:00
fix(trigger): add default icon
This commit is contained in:
@@ -40,38 +40,45 @@ const ICON_CONTAINER_CLASSNAME_SIZE_MAP: Record<string, string> = {
|
||||
sm: 'w-5 h-5 rounded-md shadow-xs',
|
||||
md: 'w-6 h-6 rounded-lg shadow-md',
|
||||
}
|
||||
|
||||
const DEFAULT_ICON_MAP: Record<BlockEnum, React.ComponentType<{ className: string }>> = {
|
||||
[BlockEnum.Start]: Home,
|
||||
[BlockEnum.LLM]: Llm,
|
||||
[BlockEnum.Code]: Code,
|
||||
[BlockEnum.End]: End,
|
||||
[BlockEnum.IfElse]: IfElse,
|
||||
[BlockEnum.HttpRequest]: Http,
|
||||
[BlockEnum.Answer]: Answer,
|
||||
[BlockEnum.KnowledgeRetrieval]: KnowledgeRetrieval,
|
||||
[BlockEnum.QuestionClassifier]: QuestionClassifier,
|
||||
[BlockEnum.TemplateTransform]: TemplatingTransform,
|
||||
[BlockEnum.VariableAssigner]: VariableX,
|
||||
[BlockEnum.VariableAggregator]: VariableX,
|
||||
[BlockEnum.Assigner]: Assigner,
|
||||
[BlockEnum.Tool]: VariableX,
|
||||
[BlockEnum.IterationStart]: VariableX,
|
||||
[BlockEnum.Iteration]: Iteration,
|
||||
[BlockEnum.LoopStart]: VariableX,
|
||||
[BlockEnum.Loop]: Loop,
|
||||
[BlockEnum.LoopEnd]: LoopEnd,
|
||||
[BlockEnum.ParameterExtractor]: ParameterExtractor,
|
||||
[BlockEnum.DocExtractor]: DocsExtractor,
|
||||
[BlockEnum.ListFilter]: ListFilter,
|
||||
[BlockEnum.Agent]: Agent,
|
||||
[BlockEnum.KnowledgeBase]: KnowledgeBase,
|
||||
[BlockEnum.DataSource]: Datasource,
|
||||
[BlockEnum.DataSourceEmpty]: () => null,
|
||||
[BlockEnum.TriggerSchedule]: Schedule,
|
||||
[BlockEnum.TriggerWebhook]: WebhookLine,
|
||||
[BlockEnum.TriggerPlugin]: VariableX,
|
||||
}
|
||||
|
||||
const getIcon = (type: BlockEnum, className: string) => {
|
||||
return {
|
||||
[BlockEnum.Start]: <Home className={className} />,
|
||||
[BlockEnum.LLM]: <Llm className={className} />,
|
||||
[BlockEnum.Code]: <Code className={className} />,
|
||||
[BlockEnum.End]: <End className={className} />,
|
||||
[BlockEnum.IfElse]: <IfElse className={className} />,
|
||||
[BlockEnum.HttpRequest]: <Http className={className} />,
|
||||
[BlockEnum.Answer]: <Answer className={className} />,
|
||||
[BlockEnum.KnowledgeRetrieval]: <KnowledgeRetrieval className={className} />,
|
||||
[BlockEnum.QuestionClassifier]: <QuestionClassifier className={className} />,
|
||||
[BlockEnum.TemplateTransform]: <TemplatingTransform className={className} />,
|
||||
[BlockEnum.VariableAssigner]: <VariableX className={className} />,
|
||||
[BlockEnum.VariableAggregator]: <VariableX className={className} />,
|
||||
[BlockEnum.Assigner]: <Assigner className={className} />,
|
||||
[BlockEnum.Tool]: <VariableX className={className} />,
|
||||
[BlockEnum.IterationStart]: <VariableX className={className} />,
|
||||
[BlockEnum.Iteration]: <Iteration className={className} />,
|
||||
[BlockEnum.LoopStart]: <VariableX className={className} />,
|
||||
[BlockEnum.Loop]: <Loop className={className} />,
|
||||
[BlockEnum.LoopEnd]: <LoopEnd className={className} />,
|
||||
[BlockEnum.ParameterExtractor]: <ParameterExtractor className={className} />,
|
||||
[BlockEnum.DocExtractor]: <DocsExtractor className={className} />,
|
||||
[BlockEnum.ListFilter]: <ListFilter className={className} />,
|
||||
[BlockEnum.Agent]: <Agent className={className} />,
|
||||
[BlockEnum.KnowledgeBase]: <KnowledgeBase className={className} />,
|
||||
[BlockEnum.DataSource]: <Datasource className={className} />,
|
||||
[BlockEnum.DataSourceEmpty]: <></>,
|
||||
[BlockEnum.TriggerSchedule]: <Schedule className={className} />,
|
||||
[BlockEnum.TriggerWebhook]: <WebhookLine className={className} />,
|
||||
[BlockEnum.TriggerPlugin]: null,
|
||||
}[type]
|
||||
const DefaultIcon = DEFAULT_ICON_MAP[type]
|
||||
if (!DefaultIcon)
|
||||
return null
|
||||
|
||||
return <DefaultIcon className={className} />
|
||||
}
|
||||
const ICON_CONTAINER_BG_COLOR_MAP: Record<string, string> = {
|
||||
[BlockEnum.Start]: 'bg-util-colors-blue-brand-blue-brand-500',
|
||||
@@ -99,7 +106,7 @@ const ICON_CONTAINER_BG_COLOR_MAP: Record<string, string> = {
|
||||
[BlockEnum.DataSource]: 'bg-components-icon-bg-midnight-solid',
|
||||
[BlockEnum.TriggerSchedule]: 'bg-util-colors-violet-violet-500',
|
||||
[BlockEnum.TriggerWebhook]: 'bg-util-colors-blue-blue-500',
|
||||
[BlockEnum.TriggerPlugin]: 'bg-util-colors-white-white-500',
|
||||
[BlockEnum.TriggerPlugin]: 'bg-util-colors-blue-blue-500',
|
||||
}
|
||||
const BlockIcon: FC<BlockIconProps> = ({
|
||||
type,
|
||||
|
||||
@@ -2,21 +2,26 @@ import type { FC, ReactNode } from 'react'
|
||||
import { useMemo } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
export enum StartNodeTypeEnum {
|
||||
Start = 'start',
|
||||
Trigger = 'trigger',
|
||||
}
|
||||
|
||||
type EntryNodeContainerProps = {
|
||||
children: ReactNode
|
||||
customLabel?: string
|
||||
nodeType?: 'start' | 'trigger'
|
||||
nodeType?: StartNodeTypeEnum
|
||||
}
|
||||
|
||||
const EntryNodeContainer: FC<EntryNodeContainerProps> = ({
|
||||
children,
|
||||
customLabel,
|
||||
nodeType = 'trigger',
|
||||
nodeType = StartNodeTypeEnum.Trigger,
|
||||
}) => {
|
||||
const { t } = useTranslation()
|
||||
|
||||
const label = useMemo(() => {
|
||||
const translationKey = nodeType === 'start' ? 'entryNodeStatus' : 'triggerStatus'
|
||||
const translationKey = nodeType === StartNodeTypeEnum.Start ? 'entryNodeStatus' : 'triggerStatus'
|
||||
return customLabel || t(`workflow.${translationKey}.enabled`)
|
||||
}, [customLabel, nodeType, t])
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ import NodeControl from './components/node-control'
|
||||
import ErrorHandleOnNode from './components/error-handle/error-handle-on-node'
|
||||
import RetryOnNode from './components/retry/retry-on-node'
|
||||
import AddVariablePopupWithPosition from './components/add-variable-popup-with-position'
|
||||
import EntryNodeContainer from './components/entry-node-container'
|
||||
import EntryNodeContainer, { StartNodeTypeEnum } from './components/entry-node-container'
|
||||
import cn from '@/utils/classnames'
|
||||
import BlockIcon from '@/app/components/workflow/block-icon'
|
||||
import Tooltip from '@/app/components/base/tooltip'
|
||||
@@ -353,12 +353,12 @@ const BaseNode: FC<BaseNodeProps> = ({
|
||||
</div>
|
||||
)
|
||||
|
||||
const isEntryNode = TRIGGER_NODE_TYPES.includes(data.type as any) || data.type === BlockEnum.Start
|
||||
const isStartNode = data.type === BlockEnum.Start
|
||||
const isEntryNode = TRIGGER_NODE_TYPES.includes(data.type as any) || isStartNode
|
||||
|
||||
return isEntryNode ? (
|
||||
<EntryNodeContainer
|
||||
nodeType={isStartNode ? 'start' : 'trigger'}
|
||||
nodeType={isStartNode ? StartNodeTypeEnum.Start : StartNodeTypeEnum.Trigger}
|
||||
>
|
||||
{nodeContent}
|
||||
</EntryNodeContainer>
|
||||
|
||||
Reference in New Issue
Block a user