| '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 |
|
|