11function createDOMElements ( ) {
22 const container = document . createElement ( "div" ) ;
3- container . innerHTML = "<div class='tooltip-copy'><input type='submit' value='Copy' /></div>" ;
3+ container . innerHTML =
4+ "<div class='tooltip-copy'><input type='submit' value='Copy' /></div>" ;
45 container . className = "div-copy" ;
56 return container ;
67}
78
89function attachCopyCodeFunctionality ( div ) {
910 const elementsToClean = [ ] ;
1011 document
11- . querySelectorAll ( "pre" )
12- . forEach ( function createButtonAndAttachHandlers ( pre ) {
13- let timeout = null ;
14- const copy = div . cloneNode ( true ) ;
15- pre . appendChild ( copy ) ;
16- elementsToClean . push ( pre ) ;
17- pre . onmouseleave = function mouseLeft ( ) {
18- clearTimeout ( timeout ) ;
12+ . querySelectorAll ( "pre" )
13+ . forEach ( function createButtonAndAttachHandlers ( pre ) {
14+ let timeout = null ;
15+ const copy = div . cloneNode ( true ) ;
16+ pre . appendChild ( copy ) ;
17+ elementsToClean . push ( pre ) ;
18+
19+ copy . onclick = function copyTextToClipboard ( ) {
20+ navigator . clipboard . writeText ( pre . textContent ) ;
21+ copy . classList . add ( "clicked" ) ;
22+ clearTimeout ( timeout ) ;
23+ timeout = setTimeout ( function hidePopup ( ) {
1924 copy . classList . remove ( "clicked" ) ;
20- }
21- pre . onclick = function copyTextToClipboard ( ) {
22- navigator . clipboard . writeText ( pre . textContent ) ;
23- copy . classList . add ( "clicked" ) ;
24- clearTimeout ( timeout ) ;
25- timeout = setTimeout ( function hidePopup ( ) {
26- copy . classList . remove ( "clicked" ) ;
27- } , 3000 ) ;
28- }
29- } ) ;
25+ } , 1500 ) ;
26+ } ;
27+ } ) ;
3028
3129 return elementsToClean ;
3230}
3331
3432export default function createCopyCodeFunctionality ( ) {
3533 const container = createDOMElements ( ) ;
3634 return attachCopyCodeFunctionality ( container ) ;
37- }
35+ }
0 commit comments