Skip to content

Commit f88af7d

Browse files
committed
Clos clipboard if canvas or other element is clicked
1 parent 05c6af9 commit f88af7d

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

js/clipboard.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ import "./clipboard.css";
1010
* Setup trigger element to toggle showing / hiding clipboard element
1111
* @param {Element} trigger
1212
* @param {Element} clipboard
13+
* @param {Array[Element]} closers array of elements that should close the clipboard if clicked
1314
*/
14-
export function setupClipboard(trigger, clipboard, parent) {
15+
export function setupClipboard(trigger, clipboard, closers) {
1516
const arrowElement = clipboard.querySelector(".arrow");
1617
function updatePosition() {
1718
computePosition(trigger, clipboard, {
@@ -61,10 +62,12 @@ export function setupClipboard(trigger, clipboard, parent) {
6162
e.stopPropagation();
6263
});
6364
// Close the popup if we click outside it
64-
parent.addEventListener("click", () => {
65-
if (trigger.classList.contains("active")) {
66-
clipboard.classList.toggle("hidden");
67-
trigger.classList.toggle("active");
68-
}
65+
closers.forEach((el) => {
66+
el.addEventListener("click", () => {
67+
if (trigger.classList.contains("active")) {
68+
clipboard.classList.toggle("hidden");
69+
trigger.classList.toggle("active");
70+
}
71+
});
6972
});
7073
}

js/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ function connect() {
8585
setupClipboard(
8686
document.getElementById("clipboard-button"),
8787
document.getElementById("clipboard-container"),
88-
document.body,
88+
[document.body, document.getElementsByTagName("canvas")[0]],
8989
);
9090
}
9191

0 commit comments

Comments
 (0)