import { resolveCatalogThemeKey } from "@/themes/registry";

/*
  O tema da última loja aberta, guardado no navegador. Serve só ao
  `app/[slug]/loading.tsx`: o esqueleto de carregamento é o desenho do Padrão
  e do Vitrine, e na família Vendor ele pisca uma tela estranha antes da
  página e passa a sensação de lentidão.

  Os shells do Vendor e da Boutique gravam a chave deles; o StoreLayout grava
  a de qualquer tema. Antes só o Vendor gravava, e quem via uma loja Vendor e
  depois abria uma loja Padrão no mesmo navegador ficava sem esqueleto
  (lacuna 1.6.8 do PARIDADE).
*/
export const CHAVE_DO_TEMA_DA_LOJA = "ks_tema_da_loja";

/* Os temas que navegam sem esqueleto. */
export const TEMAS_SEM_ESQUELETO: readonly string[] = ["vendor", "boutique"];

export function gravarTemaDaLoja(tema: string | null | undefined) {
  try {
    window.localStorage.setItem(CHAVE_DO_TEMA_DA_LOJA, resolveCatalogThemeKey(tema));
  } catch {
    /* Navegador sem armazenamento: o esqueleto segue como sempre. */
  }
}

export function lerTemaDaLoja(): string | null {
  try {
    return window.localStorage.getItem(CHAVE_DO_TEMA_DA_LOJA);
  } catch {
    /* Navegador sem armazenamento: segue com o esqueleto de sempre. */
    return null;
  }
}
