oswilno/crates/web-assets/assets/app.js
2023-09-12 18:03:42 +02:00

42 lines
1.3 KiB
JavaScript

import './elements/oswilno-price.js';
import './elements/oswilno-error.js';
import './elements/oswilno-parking-space.js';
import("https://unpkg.com/htmx.org@1.9.4/dist/htmx.min.js");
const READ_AUTH_HEADER = 'Authorization';
const AUTH_HEADER = 'ACX-Authorization';
const REFRESH_HEADER = 'ACX-Refresh';
const body = document.body;
body.addEventListener('htmx:beforeOnLoad', function (evt) {
const detail = evt.detail;
const xhr = detail.xhr;
const status = xhr.status;
const successful = detail.successful;
if (status === 200) {
const bearer = xhr.getResponseHeader(READ_AUTH_HEADER);
if (bearer) {
console.log(xhr);
localStorage.setItem('jwt', bearer.replace(/^Bearer /i, ''));
}
const refresh = xhr.getResponseHeader(REFRESH_HEADER);
if (refresh) {
localStorage.setItem('refresh', bearer.replace(/^Bearer /i, ''));
}
} else if (status === 401) {
localStorage.removeItem('jwt');
}
if (status === 422 || status === 400) {
detail.shouldSwap = true;
detail.isError = false;
}
});
body.addEventListener('htmx:configRequest', function (evt) {
if (localStorage.getItem('jwt')) {
evt.detail.headers[AUTH_HEADER] = 'Bearer ' + (localStorage.getItem('jwt') || '');
evt.detail.headers[READ_AUTH_HEADER] = 'Bearer ' + (localStorage.getItem('jwt') || '');
evt.detail.headers[REFRESH_HEADER] = (localStorage.getItem('refresh') || '');
}
});