use-node-help-link.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { useMemo } from 'react'
  2. import { useGetLanguage } from '@/context/i18n'
  3. import { BlockEnum } from '@/app/components/workflow/types'
  4. export const useNodeHelpLink = (nodeType: BlockEnum) => {
  5. const language = useGetLanguage()
  6. const prefixLink = useMemo(() => {
  7. if (language === 'zh_Hans')
  8. return 'https://docs.dify.ai/v/zh-hans/guides/workflow/node/'
  9. return 'https://docs.dify.ai/guides/workflow/node/'
  10. }, [language])
  11. const linkMap = useMemo(() => {
  12. if (language === 'zh_Hans') {
  13. return {
  14. [BlockEnum.Start]: 'start',
  15. [BlockEnum.End]: 'end',
  16. [BlockEnum.Answer]: 'answer',
  17. [BlockEnum.LLM]: 'llm',
  18. [BlockEnum.KnowledgeRetrieval]: 'knowledge_retrieval',
  19. [BlockEnum.QuestionClassifier]: 'question_classifier',
  20. [BlockEnum.IfElse]: 'ifelse',
  21. [BlockEnum.Code]: 'code',
  22. [BlockEnum.TemplateTransform]: 'template',
  23. [BlockEnum.VariableAssigner]: 'variable_assigner',
  24. [BlockEnum.VariableAggregator]: 'variable_assigner',
  25. [BlockEnum.Assigner]: 'variable_assignment',
  26. [BlockEnum.Iteration]: 'iteration',
  27. [BlockEnum.ParameterExtractor]: 'parameter_extractor',
  28. [BlockEnum.HttpRequest]: 'http_request',
  29. [BlockEnum.Tool]: 'tools',
  30. }
  31. }
  32. return {
  33. [BlockEnum.Start]: 'start',
  34. [BlockEnum.End]: 'end',
  35. [BlockEnum.Answer]: 'answer',
  36. [BlockEnum.LLM]: 'llm',
  37. [BlockEnum.KnowledgeRetrieval]: 'knowledge-retrieval',
  38. [BlockEnum.QuestionClassifier]: 'question-classifier',
  39. [BlockEnum.IfElse]: 'if-else',
  40. [BlockEnum.Code]: 'code',
  41. [BlockEnum.TemplateTransform]: 'template',
  42. [BlockEnum.VariableAssigner]: 'variable-assigner',
  43. [BlockEnum.VariableAggregator]: 'variable-assigner',
  44. [BlockEnum.Assigner]: 'variable-assignment',
  45. [BlockEnum.Iteration]: 'iteration',
  46. [BlockEnum.ParameterExtractor]: 'parameter-extractor',
  47. [BlockEnum.HttpRequest]: 'http-request',
  48. [BlockEnum.Tool]: 'tools',
  49. }
  50. }, [language])
  51. return `${prefixLink}${linkMap[nodeType]}`
  52. }