/*
 * Copiar um texto (o código da licença, o Pix da compra rápida).
 *
 * O jeito novo do navegador é bloqueado em vários lugares por onde o
 * comprador chega: o navegador de dentro do WhatsApp e do Instagram, abas sem
 * foco, páginas sem https. Nesses casos tenta o jeito antigo, com um campo
 * escondido; só devolve false quando os dois falham (aí a tela pede para
 * selecionar e copiar).
 */
export async function copiarTexto(texto: string): Promise<boolean> {
  if (!texto) return false;
  try {
    if (navigator.clipboard?.writeText) {
      await navigator.clipboard.writeText(texto);
      return true;
    }
  } catch {
    /* Bloqueado: tenta o jeito antigo. */
  }
  try {
    const campo = document.createElement("textarea");
    campo.value = texto;
    campo.setAttribute("readonly", "");
    campo.style.position = "fixed";
    campo.style.top = "0";
    campo.style.left = "0";
    campo.style.opacity = "0";
    campo.style.pointerEvents = "none";
    document.body.appendChild(campo);
    const foco = document.activeElement as HTMLElement | null;
    campo.select();
    campo.setSelectionRange(0, texto.length);
    const copiou = document.execCommand("copy");
    document.body.removeChild(campo);
    foco?.focus?.({ preventScroll: true });
    return copiou;
  } catch {
    return false;
  }
}
