37 lines
962 B
TypeScript
37 lines
962 B
TypeScript
import React from "react";
|
|
|
|
type Props = {
|
|
text: string;
|
|
};
|
|
|
|
const CopyButton = ({ text }: Props) => {
|
|
return (
|
|
<div
|
|
className="bi-copy text-xl text-neutral btn btn-sm btn-square btn-ghost"
|
|
onClick={() => {
|
|
try {
|
|
navigator.clipboard.writeText(text).then(() => {
|
|
const copyIcon = document.querySelector(".bi-copy");
|
|
if (copyIcon) {
|
|
copyIcon.classList.remove("bi-copy");
|
|
copyIcon.classList.add("bi-check2");
|
|
copyIcon.classList.add("text-success");
|
|
}
|
|
setTimeout(() => {
|
|
if (copyIcon) {
|
|
copyIcon.classList.remove("bi-check2");
|
|
copyIcon.classList.remove("text-success");
|
|
copyIcon.classList.add("bi-copy");
|
|
}
|
|
}, 1000);
|
|
});
|
|
} catch (err) {
|
|
console.log(err);
|
|
}
|
|
}}
|
|
></div>
|
|
);
|
|
};
|
|
|
|
export default CopyButton;
|