@@ -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}
0 commit comments