From f458a4b86a41840ce9407dc9df62b969fdf054a8 Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Wed, 14 Aug 2024 09:36:06 +0500 Subject: [PATCH] web: check unsynced changes and ask for backup before logout --- apps/web/src/dialogs/settings/profile-settings.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/apps/web/src/dialogs/settings/profile-settings.ts b/apps/web/src/dialogs/settings/profile-settings.ts index e5282e25e..4c5881e87 100644 --- a/apps/web/src/dialogs/settings/profile-settings.ts +++ b/apps/web/src/dialogs/settings/profile-settings.ts @@ -23,9 +23,10 @@ import { showPasswordDialog } from "../../dialogs/password-dialog"; import { db } from "../../common/db"; import { showToast } from "../../utils/toast"; import { UserProfile } from "./components/user-profile"; -import { verifyAccount } from "../../common"; +import { createBackup, verifyAccount } from "../../common"; import { EmailChangeDialog } from "../email-change-dialog"; import { + ConfirmDialog, showClearSessionsConfirmation, showLogoutConfirmation } from "../confirm"; @@ -141,6 +142,17 @@ export const ProfileSettings: SettingsGroup[] = [ variant: "errorSecondary", title: "Logout", action: async () => { + if (await db.hasUnsyncedChanges()) { + const backup = await ConfirmDialog.show({ + title: "You have unsynced changes", + message: + "Do you want to take a backup before logging out to prevent data loss?", + negativeButtonText: "No", + positiveButtonText: "Yes" + }); + if (backup) await createBackup({ mode: "partial" }); + } + if (await showLogoutConfirmation()) { await TaskManager.startTask({ type: "modal",