@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
1 lines • 1.52 kB
Source Map (JSON)
{"version":3,"file":"CopyButton.mjs","names":["ActionIcon"],"sources":["../../src/CopyButton/CopyButton.tsx"],"sourcesContent":["'use client';\n\nimport { Check, Copy } from 'lucide-react';\nimport { memo } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport { useCopied } from '@/hooks/useCopied';\nimport { copyToClipboard } from '@/utils/copyToClipboard';\n\nimport type { CopyButtonProps } from './type';\n\nconst CopyButton = memo<CopyButtonProps>(\n ({ active, content, size, icon, glass = true, onClick, ...rest }) => {\n const { copied, setCopied } = useCopied();\n const Icon = icon || Copy;\n\n return (\n <ActionIcon\n glass={glass}\n size={size}\n title={'Copy'}\n {...rest}\n active={active || copied}\n icon={copied ? Check : Icon}\n onClick={async (e) => {\n const resolvedContent = typeof content === 'function' ? content() : content;\n await copyToClipboard(resolvedContent);\n setCopied();\n onClick?.(e);\n }}\n />\n );\n },\n);\n\nCopyButton.displayName = 'CopyButton';\n\nexport default CopyButton;\n"],"mappings":";;;;;;;;;;AAWA,MAAM,aAAa,MAChB,EAAE,QAAQ,SAAS,MAAM,MAAM,QAAQ,MAAM,SAAS,GAAG,WAAW;CACnE,MAAM,EAAE,QAAQ,cAAc,WAAW;CACzC,MAAM,OAAO,QAAQ;AAErB,QACE,oBAACA;EACQ;EACD;EACN,OAAO;EACP,GAAI;EACJ,QAAQ,UAAU;EAClB,MAAM,SAAS,QAAQ;EACvB,SAAS,OAAO,MAAM;AAEpB,SAAM,gBADkB,OAAO,YAAY,aAAa,SAAS,GAAG,QAC9B;AACtC,cAAW;AACX,aAAU,EAAE;;GAEd;EAGP;AAED,WAAW,cAAc;AAEzB,yBAAe"}