@@ -10,8 +10,9 @@ import "./clipboard.css";
10
10
* Setup trigger element to toggle showing / hiding clipboard element
11
11
* @param {Element } trigger
12
12
* @param {Element } clipboard
13
+ * @param {Array[Element] } closers array of elements that should close the clipboard if clicked
13
14
*/
14
- export function setupClipboard ( trigger , clipboard , parent ) {
15
+ export function setupClipboard ( trigger , clipboard , closers ) {
15
16
const arrowElement = clipboard . querySelector ( ".arrow" ) ;
16
17
function updatePosition ( ) {
17
18
computePosition ( trigger , clipboard , {
@@ -61,10 +62,12 @@ export function setupClipboard(trigger, clipboard, parent) {
61
62
e . stopPropagation ( ) ;
62
63
} ) ;
63
64
// 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
+ } ) ;
69
72
} ) ;
70
73
}
0 commit comments