MCPcopy Create free account
hub / github.com/anomalyco/opencode / createCopyButton

Function createCopyButton

packages/session-ui/src/components/markdown.tsx:111–126  ·  view source on GitHub ↗
(labels: CopyLabels)

Source from the content-addressed store, hash-verified

109}
110
111function 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
128function MarkdownCopyButton(props: { labels: Accessor<CopyLabels>; copied: Accessor<boolean> }) {
129 const label = () => (props.copied() ? props.labels().copied : props.labels().copy)

Callers 2

ensureCodeWrapperFunction · 0.85
updateCodeBlockFunction · 0.85

Calls 2

renderFunction · 0.70
setMethod · 0.45

Tested by

no test coverage detected