/v1.0

CopyButton

CopyButton copia una cadena dada al portapapeles del sistema usando la Clipboard API. Tras una copia exitosa, cambia al ícono de verificación durante 2 segundos y luego vuelve al ícono de copiar. Se puede mostrar una etiqueta de texto opcional junto al ícono. Úsalo junto a snippets de código, claves de API, enlaces de referido o cualquier valor que el usuario necesite copiar.

Props

| Prop | Tipo | Requerido | Por defecto | Descripción | |------|------|-----------|-------------|-------------| | textToCopy | string | Sí | — | La cadena que se escribirá en el portapapeles. | | label | string | No | — | Etiqueta de texto opcional renderizada junto al ícono. | | className | string | No | — | Nombre de clase CSS aplicado al elemento botón. |

Uso

Básico (solo ícono)

import { CopyButton } from '@/components/buttons/CopyButton';

export default function Example() {
  return (
    <CopyButton textToCopy="https://snapping.dev/referral/abc123" />
  );
}

Con etiqueta

import { CopyButton } from '@/components/buttons/CopyButton';

export default function Example() {
  return (
    <CopyButton
      textToCopy="sk-live-xxxxxxxxxxxx"
      label="Copiar clave de API"
      className="my-copy-btn"
    />
  );
}

Junto a un bloque de código

import { CopyButton } from '@/components/buttons/CopyButton';

const snippet = `npm install snapping-sdk`;

export default function CodeBlock() {
  return (
    <div style={{ position: 'relative', background: '#f4f4f4', padding: 16 }}>
      <pre>{snippet}</pre>
      <div style={{ position: 'absolute', top: 8, right: 8 }}>
        <CopyButton textToCopy={snippet} />
      </div>
    </div>
  );
}