gitea/web_src/js/htmx.js
2024-02-16 17:50:49 +01:00

28 lines
1000 B
JavaScript

import * as htmx from 'htmx.org';
import {showErrorToast} from './modules/toast.js';
import 'htmx.org/dist/ext/ws.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) => {
// TODO: add translations
showErrorToast(`Error ${event.detail.xhr.status} when calling ${event.detail.requestConfig.path}`);
});
document.body.addEventListener('htmx:wsOpen', (evt) => {
const socket = evt.detail.socketWrapper;
socket.send(JSON.stringify({action: 'subscribe', data: {url: window.location.href}}));
});