use-node-help-link.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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.Iteration]: 'iteration',
  26. [BlockEnum.ParameterExtractor]: 'parameter_extractor',
  27. [BlockEnum.HttpRequest]: 'http_request',
  28. [BlockEnum.Tool]: 'tools',
  29. }
  30. }
  31. return {
  32. [BlockEnum.Start]: 'start',
  33. [BlockEnum.End]: 'end',
  34. [BlockEnum.Answer]: 'answer',
  35. [BlockEnum.LLM]: 'llm',
  36. [BlockEnum.KnowledgeRetrieval]: 'knowledge-retrieval',
  37. [BlockEnum.QuestionClassifier]: 'question-classifier',
  38. [BlockEnum.IfElse]: 'if-else',
  39. [BlockEnum.Code]: 'code',
  40. [BlockEnum.TemplateTransform]: 'template',
  41. [BlockEnum.VariableAssigner]: 'variable-assigner',
  42. [BlockEnum.VariableAggregator]: 'variable-assigner',
  43. [BlockEnum.Iteration]: 'iteration',
  44. [BlockEnum.ParameterExtractor]: 'parameter-extractor',
  45. [BlockEnum.HttpRequest]: 'http-request',
  46. [BlockEnum.Tool]: 'tools',
  47. }
  48. }, [language])
  49. return `${prefixLink}${linkMap[nodeType]}`
  50. }