|
'use client' |
|
import { useState } from 'react' |
|
import { t } from 'i18next' |
|
import copy from 'copy-to-clipboard' |
|
import s from './style.module.css' |
|
import Tooltip from '@/app/components/base/tooltip' |
|
|
|
type ICopyBtnProps = { |
|
value: string |
|
className?: string |
|
isPlain?: boolean |
|
} |
|
|
|
const CopyBtn = ({ |
|
value, |
|
className, |
|
isPlain, |
|
}: ICopyBtnProps) => { |
|
const [isCopied, setIsCopied] = useState(false) |
|
|
|
return ( |
|
<div className={`${className}`}> |
|
<Tooltip |
|
popupContent={(isCopied ? t('appApi.copied') : t('appApi.copy'))} |
|
> |
|
<div |
|
className={'box-border p-0.5 flex items-center justify-center rounded-md bg-white cursor-pointer'} |
|
style={!isPlain |
|
? { |
|
boxShadow: '0px 4px 8px -2px rgba(16, 24, 40, 0.1), 0px 2px 4px -2px rgba(16, 24, 40, 0.06)', |
|
} |
|
: {}} |
|
onClick={() => { |
|
copy(value) |
|
setIsCopied(true) |
|
}} |
|
> |
|
<div className={`w-6 h-6 rounded-md hover:bg-gray-50 ${s.copyIcon} ${isCopied ? s.copied : ''}`}></div> |
|
</div> |
|
</Tooltip> |
|
</div> |
|
) |
|
} |
|
|
|
export default CopyBtn |
|
|