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