(labels: CopyLabels)
| 109 | } |
| 110 | |
| 111 | function createCopyButton(labels: CopyLabels) { |
| 112 | const host = document.createElement("div") |
| 113 | host.setAttribute("data-slot", "markdown-copy-button") |
| 114 | |
| 115 | const state: Partial<CopyButtonState> = {} |
| 116 | const dispose = render(() => { |
| 117 | const [labelState, setLabels] = createSignal(labels, { equals: false }) |
| 118 | const [copied, setCopied] = createSignal(false) |
| 119 | state.setLabels = setLabels |
| 120 | state.setCopied = setCopied |
| 121 | return <MarkdownCopyButton labels={labelState} copied={copied} /> |
| 122 | }, host) |
| 123 | state.dispose = dispose |
| 124 | copyButtonState.set(host, state as CopyButtonState) |
| 125 | return host |
| 126 | } |
| 127 | |
| 128 | function MarkdownCopyButton(props: { labels: Accessor<CopyLabels>; copied: Accessor<boolean> }) { |
| 129 | const label = () => (props.copied() ? props.labels().copied : props.labels().copy) |
no test coverage detected