Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e7a1915

Browse files
committed
Fix pie legend item clicks breaking due to array legend lookup crash
1 parent 0223993 commit e7a1915

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

src/components/legend/draw.js

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ function drawOne(gd, opts) {
251251
const anyVisible = gd._fullData.concat(shapes).some(function(item) {
252252
const legendAttr = item.legend || 'legend';
253253
var inThisLegend = Array.isArray(legendAttr)
254-
? legendAttr.some(function(legend) { return (legend || 'legend') === legendId; })
254+
? legendAttr.includes(legendId)
255255
: legendAttr === legendId;
256256
return inThisLegend && item.visible === true;
257257
});
@@ -515,13 +515,11 @@ function getTraceWidth(d, legendObj, textGap) {
515515
}
516516

517517
function clickOrDoubleClick(gd, legend, legendItem, numClicks, evt) {
518-
var fullLayout = gd._fullLayout;
518+
var fullLayout = gd._fullLayout;
519519
var trace = legendItem.data()[0][0].trace;
520-
var legendId = trace.legend || 'legend';
521-
var legendObj = fullLayout[legendId];
522520

523-
var itemClick = legendObj.itemclick;
524-
var itemDoubleClick = legendObj.itemdoubleclick;
521+
var itemClick = legend.itemclick;
522+
var itemDoubleClick = legend.itemdoubleclick;
525523

526524
var evtData = {
527525
event: evt,
@@ -547,7 +545,7 @@ function clickOrDoubleClick(gd, legend, legendItem, numClicks, evt) {
547545
if(clickVal === false) return;
548546
legend._clickTimeout = setTimeout(function() {
549547
if(!gd._fullLayout) return;
550-
if(itemClick) handleItemClick(legendItem, gd, legendObj, itemClick);
548+
if(itemClick) handleItemClick(legendItem, gd, legend, itemClick);
551549
}, gd._context.doubleClickDelay);
552550
} else if(numClicks === 2) {
553551
if(legend._clickTimeout) clearTimeout(legend._clickTimeout);
@@ -556,7 +554,7 @@ function clickOrDoubleClick(gd, legend, legendItem, numClicks, evt) {
556554
var dblClickVal = Events.triggerHandler(gd, 'plotly_legenddoubleclick', evtData);
557555
// Activate default double click behaviour only when both single click and double click values are not false
558556
if(dblClickVal !== false && clickVal !== false && itemDoubleClick) {
559-
handleItemClick(legendItem, gd, legendObj, itemDoubleClick);
557+
handleItemClick(legendItem, gd, legend, itemDoubleClick);
560558
}
561559
}
562560
}

0 commit comments

Comments
 (0)