File tree Expand file tree Collapse file tree 1 file changed +23
-1
lines changed
packages/site-kit/src/lib/components Expand file tree Collapse file tree 1 file changed +23
-1
lines changed Original file line number Diff line number Diff line change 23
23
update ();
24
24
}
25
25
}
26
+
27
+ async function copy(e : Event ) {
28
+ if ((e .target as HTMLButtonElement ).classList .contains (' copy-to-clipboard' )) {
29
+ const parent = e
30
+ .composedPath ()
31
+ .find ((node ) => (node as HTMLElement ).classList .contains (' code-block' )) as HTMLElement ;
32
+
33
+ const ts = !! parent .querySelector (' .ts-toggle:checked' );
34
+ const code = parent .querySelector (` pre:${ts ? ' last' : ' first' }-of-type code ` ) as HTMLElement ;
35
+
36
+ let result = ' ' ;
37
+ for (const node of code .childNodes ?? []) {
38
+ if (! (node as HTMLElement ).classList .contains (' deleted' )) {
39
+ result += node .textContent ! .trimEnd () + ' \n ' ;
40
+ }
41
+ }
42
+
43
+ navigator .clipboard .writeText (result .trim ());
44
+ }
45
+ }
26
46
</script >
27
47
28
- <div onchangecapture ={toggle } bind:this ={container } class ="text" >{@render children ()}</div >
48
+ <div onclickcapture ={copy } onchangecapture ={toggle } bind:this ={container } class =" text" >
49
+ {@render children ()}
50
+ </div >
29
51
30
52
<style >
31
53
.text :global {
You can’t perform that action at this time.
0 commit comments