Spaces:
				
			
			
	
			
			
		Paused
		
	
	
	
			
			
	
	
	
	
		
		
		Paused
		
	| 'use client' | |
| import React, { useState } from 'react' | |
| import { useTranslation } from 'react-i18next' | |
| import { debounce } from 'lodash-es' | |
| import copy from 'copy-to-clipboard' | |
| import copyStyle from './style.module.css' | |
| import Tooltip from '@/app/components/base/tooltip' | |
| type Props = { | |
| content: string | |
| className?: string | |
| } | |
| const prefixEmbedded = 'appOverview.overview.appInfo.embedded' | |
| const CopyFeedback = ({ content, className }: Props) => { | |
| const { t } = useTranslation() | |
| const [isCopied, setIsCopied] = useState<boolean>(false) | |
| const onClickCopy = debounce(() => { | |
| copy(content) | |
| setIsCopied(true) | |
| }, 100) | |
| const onMouseLeave = debounce(() => { | |
| setIsCopied(false) | |
| }, 100) | |
| return ( | |
| <Tooltip | |
| popupContent={ | |
| (isCopied | |
| ? t(`${prefixEmbedded}.copied`) | |
| : t(`${prefixEmbedded}.copy`)) || '' | |
| } | |
| > | |
| <div | |
| className={`w-8 h-8 cursor-pointer hover:bg-gray-100 rounded-lg ${ | |
| className ?? '' | |
| }`} | |
| > | |
| <div | |
| onClick={onClickCopy} | |
| onMouseLeave={onMouseLeave} | |
| className={`w-full h-full ${copyStyle.copyIcon} ${ | |
| isCopied ? copyStyle.copied : '' | |
| }`} | |
| ></div> | |
| </div> | |
| </Tooltip> | |
| ) | |
| } | |
| export default CopyFeedback | |
| export const CopyFeedbackNew = ({ content, className }: Pick<Props, 'className' | 'content'>) => { | |
| const { t } = useTranslation() | |
| const [isCopied, setIsCopied] = useState<boolean>(false) | |
| const onClickCopy = debounce(() => { | |
| copy(content) | |
| setIsCopied(true) | |
| }, 100) | |
| const onMouseLeave = debounce(() => { | |
| setIsCopied(false) | |
| }, 100) | |
| return ( | |
| <Tooltip | |
| popupContent={ | |
| (isCopied | |
| ? t(`${prefixEmbedded}.copied`) | |
| : t(`${prefixEmbedded}.copy`)) || '' | |
| } | |
| > | |
| <div | |
| className={`w-8 h-8 cursor-pointer hover:bg-gray-100 rounded-lg ${ | |
| className ?? '' | |
| }`} | |
| > | |
| <div | |
| onClick={onClickCopy} | |
| onMouseLeave={onMouseLeave} | |
| className={`w-full h-full ${copyStyle.copyIcon} ${ | |
| isCopied ? copyStyle.copied : '' | |
| }`} | |
| ></div> | |
| </div> | |
| </Tooltip> | |
| ) | |
| } | |
