Files
Polaris/static/assets/js/error.js
T
2023-05-04 21:04:18 +00:00

62 lines
1.7 KiB
JavaScript

class PolarisError {
constructor(e) {
let notificationContainer = document.querySelector('.notifications');
if (!notificationContainer) {
notificationContainer = document.createElement('div');
notificationContainer.classList = 'notifications';
document.body.appendChild(notificationContainer);
}
const error = document.createElement('div');
error.classList = 'notification error';
if (e.message) {
error.innerHTML = `<span>An error occurred: ${e.message.toString()}</span>`;
} else {
error.innerHTML = `<span>An error occurred: ${e.toString()}</span>`;
}
notificationContainer.appendChild(error);
error.onclick = () => {
error.style.height = '0px';
error.style.opacity = 0;
error.style.padding = '0px';
error.firstElementChild.style.fontSize = '0px';
setTimeout(() => {
error.remove();
}, 500);
}
setTimeout(() => {
error.style.height = '0px';
error.style.opacity = 0;
error.style.padding = '0px';
error.firstElementChild.style.fontSize = '0px';
setTimeout(() => {
error.remove();
}, 500);
}, 8000);
if (e.stack) {
console.log('An error occurred:\n\n' + e.stack);
} else {
console.log('An error occurred:\n\n' + e);
}
}
}
window.onerror = (a, b, c, d, e) => {
new PolarisError(e);
}
window.console.error = (e) => {
new PolarisError(e);
}
window.onmessageerror = (e) => {
new PolarisError(e);
}
export default PolarisError;