fonction disconnect

This commit is contained in:
NicolasCantu 2025-02-19 16:30:50 +01:00
parent a3542a48e9
commit a16e984ecd
2 changed files with 41 additions and 1 deletions

View File

@ -181,3 +181,40 @@ async function createBackUp() {
}
(window as any).createBackUp = createBackUp;
async function disconnect() {
console.log('Disconnecting...');
try {
localStorage.clear();
await new Promise<void>((resolve, reject) => {
const request = indexedDB.deleteDatabase('4nk');
request.onsuccess = () => {
console.log('IndexedDB deleted successfully');
resolve();
};
request.onerror = () => reject(request.error);
request.onblocked = () => {
console.log('Database deletion was blocked');
resolve();
};
});
const registrations = await navigator.serviceWorker.getRegistrations();
await Promise.all(registrations.map(registration => registration.unregister()));
console.log('Service worker unregistered');
navigate('home');
setTimeout(() => {
window.location.href = window.location.origin;
}, 100);
} catch (error) {
console.error('Error during disconnect:', error);
// force reload
window.location.href = window.location.origin;
}
}
(window as any).disconnect = disconnect;

View File

@ -5,12 +5,15 @@ export function cleanSubscriptions(): void {
for (const sub of subscriptions) {
const el = sub.element;
const eventHandler = sub.eventHandler;
el.removeEventListener(sub.event, eventHandler);
if (el) {
el.removeEventListener(sub.event, eventHandler);
}
}
subscriptions = [];
}
export function addSubscription(element: Element | Document, event: any, eventHandler: EventListenerOrEventListenerObject): void {
if (!element) return;
subscriptions.push({ element, event, eventHandler });
element.addEventListener(event, eventHandler);
}