From e3a7e91adee12c100b54da689b4edfa4cd4251dc Mon Sep 17 00:00:00 2001 From: Yuri Roncella Date: Tue, 24 Jul 2018 13:43:23 -0700 Subject: [PATCH] Fix CollapseOne action. Fix #229 Signed-off-by: Yuri Roncella --- .../src/components/TracePage/TraceTimelineViewer/duck.js | 4 +++- .../src/components/TracePage/TraceTimelineViewer/duck.test.js | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/duck.js b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/duck.js index d4e1db9b49..a7180127a6 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/duck.js +++ b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/duck.js @@ -138,7 +138,9 @@ export function collapseOne(state, { payload }) { const childrenHiddenIDs = spans.reduce((res, curSpan) => { if (nearestCollapsedAncestor && curSpan.depth <= nearestCollapsedAncestor.depth) { res.add(nearestCollapsedAncestor.spanID); - nearestCollapsedAncestor = curSpan; + if (curSpan.hasChildren) { + nearestCollapsedAncestor = curSpan; + } } else if (curSpan.hasChildren && !res.has(curSpan.spanID)) { nearestCollapsedAncestor = curSpan; } diff --git a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/duck.test.js b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/duck.test.js index 499a668fb3..855fef08b7 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/duck.test.js +++ b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/duck.test.js @@ -135,12 +135,14 @@ describe('TraceTimelineViewer/duck', () => { // --- 2 // - 3 // --- 4 + // - 5 const spans = [ { spanID: 0, depth: 0, hasChildren: true }, { spanID: 1, depth: 1, hasChildren: true }, { spanID: 2, depth: 2, hasChildren: false }, { spanID: 3, depth: 1, hasChildren: true }, { spanID: 4, depth: 2, hasChildren: false }, + { spanID: 5, depth: 1, hasChildren: false }, ]; const oneSpanCollapsed = new Set([1]);