balibabu commited on
Commit
3f568cf
·
1 Parent(s): 4ac524c

Fix: Fixed the issue that the graph could not display the grouping #4180 (#4306)

Browse files

### What problem does this PR solve?

Fix: Fixed the issue that the graph could not display the grouping #4180

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

web/src/pages/add-knowledge/components/knowledge-chunk/components/knowledge-graph/force-graph.tsx CHANGED
@@ -50,6 +50,9 @@ const ForceGraph = ({ data, show }: IProps) => {
50
  enterable: true,
51
  getContent: (e: IElementEvent, items: ElementDatum) => {
52
  if (Array.isArray(items)) {
 
 
 
53
  let result = ``;
54
  items.forEach((item) => {
55
  result += `<section style="color:${TooltipColorMap[e['targetType'] as keyof typeof TooltipColorMap]};"><h3>${item?.id}</h3>`;
 
50
  enterable: true,
51
  getContent: (e: IElementEvent, items: ElementDatum) => {
52
  if (Array.isArray(items)) {
53
+ if (items.some((x) => x?.isCombo)) {
54
+ return `<p style="font-weight:600;color:red">${items?.[0]?.data?.label}</p>`;
55
+ }
56
  let result = ``;
57
  items.forEach((item) => {
58
  result += `<section style="color:${TooltipColorMap[e['targetType'] as keyof typeof TooltipColorMap]};"><h3>${item?.id}</h3>`;
web/src/pages/add-knowledge/components/knowledge-chunk/components/knowledge-graph/util.ts CHANGED
@@ -63,12 +63,18 @@ export const isDataExist = (data: any) => {
63
  );
64
  };
65
 
 
 
 
 
 
66
  export const buildNodesAndCombos = (nodes: any[]) => {
67
  const combos: any[] = [];
68
  nodes.forEach((x) => {
69
- const combo = Array.isArray(x?.communities) ? x.communities[0] : undefined;
70
  if (combo && combos.every((y) => y.data.label !== combo)) {
71
  combos.push({
 
72
  id: uuid(),
73
  data: {
74
  label: combo,
@@ -80,7 +86,7 @@ export const buildNodesAndCombos = (nodes: any[]) => {
80
  const nextNodes = nodes.map((x) => {
81
  return {
82
  ...x,
83
- combo: combos.find((y) => y.data.label === x.id)?.id,
84
  };
85
  });
86
 
 
63
  );
64
  };
65
 
66
+ const findCombo = (communities: string[]) => {
67
+ const combo = Array.isArray(communities) ? communities[0] : undefined;
68
+ return combo;
69
+ };
70
+
71
  export const buildNodesAndCombos = (nodes: any[]) => {
72
  const combos: any[] = [];
73
  nodes.forEach((x) => {
74
+ const combo = findCombo(x?.communities);
75
  if (combo && combos.every((y) => y.data.label !== combo)) {
76
  combos.push({
77
+ isCombo: true,
78
  id: uuid(),
79
  data: {
80
  label: combo,
 
86
  const nextNodes = nodes.map((x) => {
87
  return {
88
  ...x,
89
+ combo: combos.find((y) => y.data.label === findCombo(x?.communities))?.id,
90
  };
91
  });
92