const base64ToJPEG = (base64String, fileName) => {
  // Remova a parte inicial "data:image/jpeg;base64,"
  const base64WithoutHeader = base64String.replace(
    /^data:image\/jpeg;base64,/,
    ""
  );

  // Converte a string base64 para um array de bytes
  const byteCharacters = atob(base64WithoutHeader);
  const byteNumbers = new Array(byteCharacters.length);
  for (let i = 0; i < byteCharacters.length; i++) {
    byteNumbers[i] = byteCharacters.charCodeAt(i);
  }
  const byteArray = new Uint8Array(byteNumbers);

  // Cria um objeto Blob contendo os dados da imagem
  const blob = new Blob([byteArray], { type: "image/png" });

  // Cria um link para download
  const link = document.createElement("a");
  link.href = URL.createObjectURL(blob);
  link.download = fileName || "image.png";

  // Adiciona o link ao documento, clica nele e remove-o
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
};

const base64ToPNG = (base64String, fileName) => {
  // Remova a parte inicial "data:image/jpeg;base64,"
  const base64WithoutHeader = base64String.replace(
    /^data:image\/png;base64,/,
    ""
  );

  // Converte a string base64 para um array de bytes
  const byteCharacters = atob(base64WithoutHeader);
  const byteNumbers = new Array(byteCharacters.length);
  for (let i = 0; i < byteCharacters.length; i++) {
    byteNumbers[i] = byteCharacters.charCodeAt(i);
  }
  const byteArray = new Uint8Array(byteNumbers);

  // Cria um objeto Blob contendo os dados da imagem
  const blob = new Blob([byteArray], { type: "image/png" });

  // Cria um link para download
  const link = document.createElement("a");
  link.href = URL.createObjectURL(blob);
  link.download = fileName || "image.png";

  // Adiciona o link ao documento, clica nele e remove-o
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
}

export { base64ToJPEG, base64ToPNG };
