public static changeTree()

in src/views/dashboard/related/trace/utils/trace-table.ts [26:53]


  public static changeTree(data: Span[], currentTraceId: string) {
    const segmentIdList: Span[] = [];
    const traceTreeRef: Recordable = this.changeTreeCore(data);
    traceTreeRef.segmentIdGroup.forEach((segmentId: string) => {
      if (traceTreeRef.segmentMap.get(segmentId).refs) {
        traceTreeRef.segmentMap.get(segmentId).refs.forEach((ref: Ref) => {
          if (ref.traceId === currentTraceId) {
            this.traverseTree(
              traceTreeRef.segmentMap.get(ref.parentSegmentId) as Span,
              ref.parentSpanId,
              ref.parentSegmentId,
              traceTreeRef.segmentMap.get(segmentId) as Span,
            );
          }
        });
      }
    });
    // set a breakpoint at this line
    traceTreeRef.segmentMap.forEach((value: Span) => {
      if ((value.refs && value.refs.length === 0) || !value.refs) {
        segmentIdList.push(value as Span);
      }
    });
    segmentIdList.forEach((segmentId: Span) => {
      this.collapse(segmentId);
    });
    return segmentIdList;
  }