diff --git a/apps/web/src/common/index.ts b/apps/web/src/common/index.ts index d8656c92a..ef69cf90b 100644 --- a/apps/web/src/common/index.ts +++ b/apps/web/src/common/index.ts @@ -20,7 +20,7 @@ along with this program. If not, see . import Config from "../utils/config"; import { hashNavigate, getCurrentHash } from "../navigation"; import { db } from "./db"; -import { sanitizeFilename } from "@notesnook/common"; +import { isFeatureAvailable, sanitizeFilename } from "@notesnook/common"; import { useStore as useUserStore } from "../stores/user-store"; import { HomePage, useStore as useSettingStore } from "../stores/setting-store"; import { showToast } from "../utils/toast"; @@ -49,6 +49,7 @@ import { ZipFile } from "../utils/streams/zip-stream"; import { ConfirmDialog, showLogoutConfirmation } from "../dialogs/confirm"; import { Home } from "../components/icons"; import { MenuItem } from "@notesnook/ui"; +import { showFeatureNotAllowedToast } from "./toasts"; export const CREATE_BUTTON_MAP = { notes: { @@ -466,8 +467,14 @@ export function createSetDefaultHomepageMenuItem( type: "button", title: strings.setAsHomepage(), isChecked: homepage?.id === id && homepage?.type === type, - onClick: () => { - useSettingStore.getState().setHomepage({ id, type }); + onClick: async () => { + if (homepage?.id === id && homepage?.type === type) + useSettingStore.getState().setHomepage(); + else { + const result = await isFeatureAvailable("customHomepage"); + if (!result.isAllowed) return showFeatureNotAllowedToast(result); + useSettingStore.getState().setHomepage({ id, type }); + } }, icon: Home.path } as MenuItem; diff --git a/apps/web/src/stores/setting-store.ts b/apps/web/src/stores/setting-store.ts index eec7a1bc0..68885ea1e 100644 --- a/apps/web/src/stores/setting-store.ts +++ b/apps/web/src/stores/setting-store.ts @@ -150,9 +150,15 @@ class SettingStore extends BaseStore { Config.set("encryptBackups", encryptBackups); }; - setHomepage = (homepage: HomePage) => { + setHomepage = (homepage?: HomePage) => { this.set({ homepage }); - Config.set("homepage-v2", homepage); + Config.set( + "homepage-v2", + homepage || { + type: "route", + id: "notes" + } + ); }; setDefaultSidebarTab = (defaultSidebarTab: "home" | "notebooks" | "tags") => {