/*
  A loja aberta dentro do editor da página inicial (o painel a mostra num
  quadro, com ?editar=<passagem>). Ali quem olha é o lojista montando a
  página: visita, clique e busca não contam nos relatórios da loja.
*/
export function estaNoEditorDaLoja(): boolean {
  if (typeof window === "undefined") return false;
  try {
    if (window.self === window.top) return false;
    return new URLSearchParams(window.location.search).has("editar");
  } catch {
    /* Quadro de outra origem: window.top pode recusar a leitura. */
    return new URLSearchParams(window.location.search).has("editar");
  }
}

/*
  A loja aberta pela prévia dos temas (Catálogo > Personalização): o quadro
  em miniatura de cada cartão e o "Ver em tela cheia" levam ?previa=<passagem>.
  Quem olha é o lojista escolhendo o tema: não é visita. Aqui só o parâmetro
  importa (o servidor é quem confere a passagem); quem puser ?previa= à mão só
  deixa de contar a própria visita.

  A aba da tela cheia guarda a marca (sessionStorage, só daquela aba): se o
  lojista clicar num produto dali, a página do produto, que já não leva o
  parâmetro, também não conta.
*/
const MARCA_DA_PREVIA = "ktalogu_previa_do_tema";

/** Chamada pela home quando o servidor conferiu a passagem (components/home/MarcaDaPrevia.tsx). */
export function marcarAbaDaPrevia() {
  try {
    window.sessionStorage.setItem(MARCA_DA_PREVIA, "1");
  } catch {
    /* sem sessionStorage: vale só a página com o parâmetro */
  }
}

export function estaNaPreviaDoTema(): boolean {
  if (typeof window === "undefined") return false;
  try {
    if (new URLSearchParams(window.location.search).has("previa")) return true;
    return window.sessionStorage.getItem(MARCA_DA_PREVIA) === "1";
  } catch {
    return false;
  }
}

/** Visita, clique e busca que não entram nos relatórios da loja. */
export function visitaQueNaoConta(): boolean {
  return estaNoEditorDaLoja() || estaNaPreviaDoTema();
}
