Skip to content

Commit 56031ad

Browse files
committed
fix
1 parent cc38f11 commit 56031ad

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

packages/site-kit/src/lib/components/Text.svelte

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,31 @@
2323
update();
2424
}
2525
}
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+
}
2646
</script>
2747

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>
2951

3052
<style>
3153
.text :global {

0 commit comments

Comments
 (0)