@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
30 lines (29 loc) • 930 B
JavaScript
"use client";
import ActionIcon from "../ActionIcon/ActionIcon.mjs";
import { useCopied } from "../hooks/useCopied.mjs";
import { copyToClipboard } from "../utils/copyToClipboard.mjs";
import { memo } from "react";
import { jsx } from "react/jsx-runtime";
import { Check, Copy } from "lucide-react";
//#region src/CopyButton/CopyButton.tsx
const CopyButton = memo(({ active, content, size, icon, glass = true, onClick, ...rest }) => {
const { copied, setCopied } = useCopied();
const Icon = icon || Copy;
return /* @__PURE__ */ jsx(ActionIcon, {
glass,
size,
title: "Copy",
...rest,
active: active || copied,
icon: copied ? Check : Icon,
onClick: async (e) => {
await copyToClipboard(typeof content === "function" ? content() : content);
setCopied();
onClick?.(e);
}
});
});
CopyButton.displayName = "CopyButton";
//#endregion
export { CopyButton as default };
//# sourceMappingURL=CopyButton.mjs.map