diff --git a/draftlogs/6684_fix.md b/draftlogs/6684_fix.md new file mode 100644 index 00000000000..dcce83be95a --- /dev/null +++ b/draftlogs/6684_fix.md @@ -0,0 +1,2 @@ + - Fix unhide isolated traces in multi legend cases (regression introduced in 2.24.3) [[#6684](https://github.com/plotly/plotly.js/pull/6684)] + diff --git a/src/components/legend/handle_click.js b/src/components/legend/handle_click.js index ebd51c1dc09..c711b5bfb43 100644 --- a/src/components/legend/handle_click.js +++ b/src/components/legend/handle_click.js @@ -198,7 +198,7 @@ module.exports = function handleClick(g, gd, numClicks) { isInGroup = (hasLegendgroup && fullData[i].legendgroup === legendgroup); - if(!isInGroup && fullData[i].visible === true && !Registry.traceIs(fullData[i], 'notLegendIsolatable')) { + if(fullData[i].legend === thisLegend && !isInGroup && fullData[i].visible === true && !Registry.traceIs(fullData[i], 'notLegendIsolatable')) { isIsolated = false; break; } diff --git a/test/jasmine/tests/legend_test.js b/test/jasmine/tests/legend_test.js index 54232bee1c0..398598d11dc 100644 --- a/test/jasmine/tests/legend_test.js +++ b/test/jasmine/tests/legend_test.js @@ -1915,6 +1915,14 @@ describe('legend interaction', function() { Promise.resolve() .then(click(0, 2)) .then(assertVisible([false, true, true, false, 'legendonly', true])) + + // isolate it + .then(click(0, 2)) + .then(assertVisible([false, true, 'legendonly', false, 'legendonly', true])) + + // unhide it again + .then(click(0, 2)) + .then(assertVisible([false, true, true, false, 'legendonly', true])) .then(done, done.fail); }); });