Skip to content

Commit a45d4ec

Browse files
committed
fix: prevent double clipboard alert on copy action
render-facade.js could be loaded more than once (registered under multiple handles when charts from different libraries appear on the same page). The copy ClipboardJS instance had no guard against double-initialization, causing the success alert to fire twice. Added vizClipboard2 guard to mirror the existing vizClipboard1 pattern already used for the shortcode copy button.
1 parent 13b7677 commit a45d4ec

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

js/render-facade.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
/* global visualizer */
33
/* global jQuery */
44
var vizClipboard1=null;
5+
var vizClipboard2=null;
56
(function($, visualizer){
67

78
function initActionsButtons(v) {
@@ -13,12 +14,12 @@ var vizClipboard1=null;
1314
});
1415
}
1516

16-
if($('a.visualizer-action[data-visualizer-type=copy]').length > 0) {
17+
if($('a.visualizer-action[data-visualizer-type=copy]').length > 0 && vizClipboard2 === null) {
1718
$('a.visualizer-action[data-visualizer-type=copy]').on('click', function(e) {
1819
e.preventDefault();
1920
});
20-
var clipboard = new ClipboardJS('a.visualizer-action[data-visualizer-type=copy]'); // jshint ignore:line
21-
clipboard.on('success', function(e) {
21+
vizClipboard2 = new ClipboardJS('a.visualizer-action[data-visualizer-type=copy]'); // jshint ignore:line
22+
vizClipboard2.on('success', function(e) {
2223
window.alert(v.i10n['copied']);
2324
});
2425
}

0 commit comments

Comments
 (0)