|
1 | 1 | <script lang="ts"> |
2 | | - import { IconServiceGitHub, IconServiceFigma, IconServiceSvelte, IconCheckFillCircle, IconStackCards } from '@stackoverflow/stacks-icons/icons'; |
| 2 | + import { IconServiceGitHub, IconServiceFigma, IconServiceSvelte, IconCheckFillCircle, IconLink } from '@stackoverflow/stacks-icons/icons'; |
3 | 3 | import { Icon, Button } from '@stackoverflow/stacks-svelte'; |
4 | 4 | import { resolve } from '$app/paths'; |
| 5 | + import { page } from '$app/state'; |
5 | 6 |
|
6 | 7 | import { copyToClipboard } from '$src/lib/copyToClipboard'; |
7 | 8 | import Contents from '$components/Contents.svelte'; |
8 | 9 |
|
9 | 10 | let { data } = $props(); |
10 | | - let copiedMd = $state(false); |
| 11 | + let copied = $state(false); |
11 | 12 |
|
12 | 13 | const toc = $derived(data?.metadata?.toc || []); |
13 | 14 |
|
|
21 | 22 | const pageDescription = $derived(data?.metadata?.description || `Documentation for ${data.active.title} in the Stack Overflow Design System`); |
22 | 23 |
|
23 | 24 | function copySuccess() { |
24 | | - copiedMd = true |
25 | | - |
26 | | - setTimeout(() => { |
27 | | - copiedMd = false; |
28 | | - }, 2000); |
| 25 | + copied = true; |
| 26 | + setTimeout(() => { copied = false; }, 2000); |
29 | 27 | } |
30 | 28 | </script> |
31 | 29 |
|
|
50 | 48 | {#each data.breadcrumb as crumb, index (crumb.path)} |
51 | 49 | <a href={resolve(crumb.path)} class="pr6 s-link">{crumb.label}</a>{#if index !== data.breadcrumb.length - 1}<span class="fc-black-300 mr6">/</span>{/if} |
52 | 50 | {/each} |
| 51 | + <button type="button" title="Copy link to this page" class="s-btn s-btn__xs s-btn__clear s-btn__icon ml4" use:copyToClipboard={page.url.href}> |
| 52 | + {#if copied} |
| 53 | + <Icon src={IconCheckFillCircle} class="fc-green-400" /> |
| 54 | + {:else} |
| 55 | + <Icon src={IconLink} /> |
| 56 | + {/if} |
| 57 | + </button> |
53 | 58 | </nav> |
54 | 59 |
|
55 | | - <button type="button" title="Copy to Markdown" class="s-btn s-btn__sm s-btn__clear s-btn__icon" use:copyToClipboard={data.markdown}> |
56 | | - {#if copiedMd} |
57 | | - <Icon src={IconCheckFillCircle} class="fc-green-400" /> |
58 | | - <span class="sm:d-none">Copied!</span> |
59 | | - {:else} |
60 | | - <Icon src={IconStackCards} /> |
61 | | - <span class="sm:d-none">Copy</span> |
62 | | - {/if} |
63 | | - </button> |
64 | | - |
65 | 60 | {#if data.filename} |
66 | 61 | <Button title="Edit on GitHub" size="sm" weight="clear" href={`https://github.com/StackExchange/Stacks/edit/main/packages/stacks-docs-next${data.filename}`} class="flex--item"> |
67 | 62 | <Icon src={IconServiceGitHub} /> |
|
0 commit comments