'use client' import { useClipboard } from 'foxact/use-clipboard' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' import Tooltip from '../tooltip' type Props = { content: string } const prefixEmbedded = 'overview.appInfo.embedded' const CopyIcon = ({ content }: Props) => { const { t } = useTranslation() const { copied, copy, reset } = useClipboard() const handleCopy = useCallback(() => { copy(content) }, [copy, content]) const tooltipText = copied ? t(`${prefixEmbedded}.copied`, { ns: 'appOverview' }) : t(`${prefixEmbedded}.copy`, { ns: 'appOverview' }) /* v8 ignore next -- i18n test mock always returns a non-empty string; runtime fallback is defensive. -- @preserve */ const safeTooltipText = tooltipText || '' return (
{!copied ? () : ()}
) } export default CopyIcon