| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | 'use client'import { useState } from 'react'import { t } from 'i18next'import { debounce } from 'lodash-es'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)  const onClickCopy = debounce(() => {    copy(value)    setIsCopied(true)  }, 100)  const onMouseLeave = debounce(() => {    setIsCopied(false)  }, 100)  return (    <div className={`${className}`}>      <Tooltip        popupContent={(isCopied ? t('appApi.copied') : t('appApi.copy'))}        asChild={false}      >        <div          onMouseLeave={onMouseLeave}          className={'box-border flex cursor-pointer items-center justify-center rounded-md bg-components-button-secondary-bg p-0.5'}          style={!isPlain            ? {              boxShadow: '0px 4px 8px -2px rgba(16, 24, 40, 0.1), 0px 2px 4px -2px rgba(16, 24, 40, 0.06)',            }            : {}}          onClick={onClickCopy}        >          <div className={`h-6 w-6 rounded-md hover:bg-components-button-secondary-bg-hover  ${s.copyIcon} ${isCopied ? s.copied : ''}`}></div>        </div>      </Tooltip>    </div>  )}export default CopyBtn
 |