diff --git a/apps/web/src/app-effects.tsx b/apps/web/src/app-effects.tsx index 0469126c5..75f5d2d0e 100644 --- a/apps/web/src/app-effects.tsx +++ b/apps/web/src/app-effects.tsx @@ -50,6 +50,7 @@ export default function AppEffects() { const isFocusMode = useStore((store) => store.isFocusMode); const initUser = useUserStore((store) => store.init); const initStore = useStore((store) => store.init); + const initSettingStore = useSettingStore((store) => store.init); const setIsVaultCreated = useStore((store) => store.setIsVaultCreated); const initEditorStore = useEditorStore((store) => store.init); const dialogAnnouncements = useAnnouncementStore( @@ -59,6 +60,7 @@ export default function AppEffects() { useEffect( function initializeApp() { initStore(); + initSettingStore(); (async function () { await initEditorStore(); diff --git a/apps/web/src/stores/setting-store.ts b/apps/web/src/stores/setting-store.ts index 47132b1fb..d8fe0e003 100644 --- a/apps/web/src/stores/setting-store.ts +++ b/apps/web/src/stores/setting-store.ts @@ -23,7 +23,7 @@ import { desktop } from "../common/desktop-bridge"; import createStore from "../common/store"; import Config from "../utils/config"; import BaseStore from "./index"; -import { TimeFormat, DayFormat, WeekFormat } from "@notesnook/core"; +import { TimeFormat, DayFormat, WeekFormat, EVENTS } from "@notesnook/core"; import { Profile, TrashCleanupInterval } from "@notesnook/core"; import { showToast } from "../utils/toast"; import { ConfirmDialog } from "../dialogs/confirm"; @@ -93,6 +93,14 @@ class SettingStore extends BaseStore { proxyRules?: string; isInboxEnabled = false; + init = () => { + db.eventManager.subscribe(EVENTS.userFetched, async () => { + this.set({ + isInboxEnabled: await db.user.hasInboxKeys() + }); + }); + }; + refresh = async () => { this.set({ dateFormat: db.settings.getDateFormat(), diff --git a/packages/core/src/api/index.ts b/packages/core/src/api/index.ts index fea4fd6f6..86adc4cde 100644 --- a/packages/core/src/api/index.ts +++ b/packages/core/src/api/index.ts @@ -431,6 +431,18 @@ class Database { this.eventManager.publish(EVENTS.userEmailConfirmed); break; } + case "triggerSync": { + this.eventManager.publish( + EVENTS.databaseSyncRequested, + true, + false + ); + break; + } + case "inboxUpdated": { + await this.user.fetchUser(); + break; + } } } catch (e) { logger.error("SSE: Unsupported message. Message = ", event.data);