mirror of
https://github.com/ente-io/ente.git
synced 2025-06-26 03:40:35 +00:00
64 lines
1.8 KiB
TypeScript
64 lines
1.8 KiB
TypeScript
import ElectronAPIs from "@ente/shared/electron";
|
|
import { Events, eventBus } from "@ente/shared/events";
|
|
import { logError } from "@ente/shared/sentry";
|
|
import InMemoryStore from "@ente/shared/storage/InMemoryStore";
|
|
import { deleteAllCache } from "@ente/shared/storage/cacheStorage/helpers";
|
|
import { clearFiles } from "@ente/shared/storage/localForage/helpers";
|
|
import { clearData } from "@ente/shared/storage/localStorage";
|
|
import { clearKeys } from "@ente/shared/storage/sessionStorage";
|
|
import isElectron from "is-electron";
|
|
import router from "next/router";
|
|
import { _logout } from "../api/user";
|
|
import { PAGES } from "../constants/pages";
|
|
|
|
export const logoutUser = async () => {
|
|
try {
|
|
try {
|
|
await _logout();
|
|
} catch (e) {
|
|
// ignore
|
|
}
|
|
try {
|
|
InMemoryStore.clear();
|
|
} catch (e) {
|
|
// ignore
|
|
logError(e, "clear InMemoryStore failed");
|
|
}
|
|
try {
|
|
clearKeys();
|
|
} catch (e) {
|
|
logError(e, "clearKeys failed");
|
|
}
|
|
try {
|
|
clearData();
|
|
} catch (e) {
|
|
logError(e, "clearData failed");
|
|
}
|
|
try {
|
|
await deleteAllCache();
|
|
} catch (e) {
|
|
logError(e, "deleteAllCache failed");
|
|
}
|
|
try {
|
|
await clearFiles();
|
|
} catch (e) {
|
|
logError(e, "clearFiles failed");
|
|
}
|
|
if (isElectron()) {
|
|
try {
|
|
ElectronAPIs.clearElectronStore();
|
|
} catch (e) {
|
|
logError(e, "clearElectronStore failed");
|
|
}
|
|
}
|
|
try {
|
|
eventBus.emit(Events.LOGOUT);
|
|
} catch (e) {
|
|
logError(e, "Error in logout handlers");
|
|
}
|
|
router.push(PAGES.ROOT);
|
|
} catch (e) {
|
|
logError(e, "logoutUser failed");
|
|
}
|
|
};
|