import htmx from 'htmx.org';
import {showErrorToast} from './modules/toast.js';

// https://github.com/bigskysoftware/idiomorph#htmx
import 'idiomorph/dist/idiomorph-ext.js';

// https://htmx.org/reference/#config
htmx.config.requestClass = 'is-loading';
htmx.config.scrollIntoViewOnBoost = false;

// https://htmx.org/events/#htmx:sendError
document.body.addEventListener('htmx:sendError', (event) => {
  // TODO: add translations
  showErrorToast(`Network error when calling ${event.detail.requestConfig.path}`);
});

// https://htmx.org/events/#htmx:responseError
document.body.addEventListener('htmx:responseError', (event) => {
  // hide any previous flash message to avoid confusions (in case the
  // error toast would have been shown over a success/info message)
  const flashMsgDiv = document.getElementById('flash-message');
  if (flashMsgDiv) {
    flashMsgDiv.innerHTML = '';
    flashMsgDiv.className = '';
  }
  // TODO: add translations
  showErrorToast(`Error ${event.detail.xhr.status} when calling ${event.detail.requestConfig.path}: ${event.detail.xhr.responseText}`);
});
