import React, { useState } from "react"; import styled from "styled-components"; import Text from "../../components/Text/Text"; import { CopyIcon } from "../../components/Svg"; interface Props { toCopy: string; } const StyleButton = styled(Text).attrs({ role: "button" })` position: relative; display: flex; align-items: center; color: ${({ theme }) => theme.colors.primary}; `; const Tooltip = styled.div<{ isTooltipDisplayed: boolean }>` display: ${({ isTooltipDisplayed }) => (isTooltipDisplayed ? "block" : "none")}; position: absolute; bottom: -22px; right: 0; left: 0; text-align: center; background-color: ${({ theme }) => theme.colors.contrast}; color: ${({ theme }) => theme.colors.invertedContrast}; border-radius: 16px; opacity: 0.7; `; const CopyToClipboard: React.FC = ({ toCopy, children, ...props }) => { const [isTooltipDisplayed, setIsTooltipDisplayed] = useState(false); return ( { if (navigator.clipboard) { navigator.clipboard.writeText(toCopy); setIsTooltipDisplayed(true); setTimeout(() => { setIsTooltipDisplayed(false); }, 1000); } }} {...props} > {children} Copied ); }; export default CopyToClipboard;