phanpy/src/main.jsx

57 lines
1.3 KiB
React
Raw Normal View History

2022-12-12 18:41:31 +03:00
import './index.css';
2022-12-10 12:14:48 +03:00
2023-04-10 16:41:42 +03:00
import './cloak-mode.css';
2022-12-12 18:41:31 +03:00
import { render } from 'preact';
import { HashRouter } from 'react-router-dom';
2022-12-10 12:14:48 +03:00
2022-12-12 18:41:31 +03:00
import { App } from './app';
if (import.meta.env.DEV) {
import('preact/debug');
}
2022-12-10 12:14:48 +03:00
2023-10-16 16:35:56 +03:00
// AbortSignal.timeout polyfill
// Temporary fix from https://github.com/mo/abortcontroller-polyfill/issues/73#issuecomment-1541180943
// Incorrect implementation, but should be good enough for now
if ('AbortSignal' in window) {
AbortSignal.timeout =
AbortSignal.timeout ||
((duration) => {
const controller = new AbortController();
setTimeout(() => controller.abort(), duration);
return controller.signal;
});
}
render(
<HashRouter>
<App />
</HashRouter>,
document.getElementById('app'),
);
// Storage cleanup
setTimeout(() => {
try {
// Clean up iconify localStorage
Object.keys(localStorage).forEach((key) => {
if (key.startsWith('iconify')) {
localStorage.removeItem(key);
}
});
Object.keys(sessionStorage).forEach((key) => {
if (key.startsWith('iconify')) {
sessionStorage.removeItem(key);
}
});
// Clean up old settings key
localStorage.removeItem('settings:boostsCarousel');
} catch (e) {}
}, 5000);
2023-04-10 16:41:42 +03:00
window.__CLOAK__ = () => {
document.body.classList.toggle('cloak');
};