export default class Loader {
   static selector = ".js-loader";
   static activeClass = "is-active";

   // Показать конкретный лоадер или глобальный
   static show(container = document) {
      const loader = container.querySelector(this.selector);
      loader?.classList.add(this.activeClass);
   }

   // Скрыть конкретный лоадер или глобальный
   static hide(container = document) {
      const loader = container.querySelector(this.selector);
      loader?.classList.remove(this.activeClass);
   }

   // Показать лоадер на кнопке сабмита
   static showButtonLoader(form) {
      const btn = form.querySelector('[type="submit"]');
      if (!btn) return;

      btn.disabled = true;
      btn.dataset.originalText = btn.textContent;
      btn.classList.add("is-loading");
   }

   static hideButtonLoader(form) {
      const btn = form.querySelector('[type="submit"]');
      if (!btn) return;

      btn.disabled = false;
      btn.textContent = btn.dataset.originalText ?? btn.textContent;
      btn.classList.remove("is-loading");
   }
}
