From 052bf34618a6c222788a568c79d5fb1c74acbd5c Mon Sep 17 00:00:00 2001 From: thecodrr Date: Tue, 26 Oct 2021 09:37:01 +0500 Subject: [PATCH] fix: use hard navigate for auth pages navigation --- apps/web/src/app-effects.js | 4 ++++ apps/web/src/app.js | 3 +-- apps/web/src/common/reminders.js | 4 ++-- apps/web/src/components/navigation-menu/index.js | 4 ++-- apps/web/src/components/properties/toggle.js | 2 +- apps/web/src/components/status-bar/index.js | 4 ++-- apps/web/src/hooks/use-database.js | 8 +++++++- apps/web/src/interfaces/nncrypto.stub.js | 4 ++++ apps/web/src/navigation/index.js | 4 ++++ apps/web/src/views/auth.js | 15 ++++++++++----- apps/web/src/views/settings.js | 4 ++-- 11 files changed, 39 insertions(+), 17 deletions(-) diff --git a/apps/web/src/app-effects.js b/apps/web/src/app-effects.js index 53d85f9d1..55d3b21d0 100644 --- a/apps/web/src/app-effects.js +++ b/apps/web/src/app-effects.js @@ -10,6 +10,7 @@ import { registerKeyMap } from "./common/key-map"; import { isUserPremium } from "./hooks/use-is-user-premium"; import { loadTrackerScript } from "./utils/analytics"; import Modal from "react-modal"; +import useDatabase from "./hooks/use-database"; Modal.setAppElement("#root"); if (process.env.NODE_ENV === "production") { @@ -27,9 +28,11 @@ export default function AppEffects({ setShow }) { const initUser = useUserStore((store) => store.init); const initNotes = useNotesStore((store) => store.init); const setIsVaultCreated = useStore((store) => store.setIsVaultCreated); + const [isAppLoaded] = useDatabase(); useEffect( function initializeApp() { + if (!isAppLoaded) return; refreshColors(); refreshMenuPins(); initUser(); @@ -41,6 +44,7 @@ export default function AppEffects({ setShow }) { })(); }, [ + isAppLoaded, updateLastSynced, refreshColors, refreshMenuPins, diff --git a/apps/web/src/app.js b/apps/web/src/app.js index 2c62e964c..e3879f4d2 100644 --- a/apps/web/src/app.js +++ b/apps/web/src/app.js @@ -1,12 +1,11 @@ import React, { useState, Suspense } from "react"; -import { Box, Flex, Text } from "rebass"; +import { Box, Flex } from "rebass"; import ThemeProvider from "./components/theme-provider"; import { AnimatedFlex } from "./components/animated"; import NavigationMenuPlaceholder from "./components/navigationmenu/index.lite"; import StatusBarPlaceholder from "./components/statusbar/index.lite"; import useMobile from "./utils/use-mobile"; import useTablet from "./utils/use-tablet"; -import { Loading } from "./components/icons"; import { LazyMotion, domAnimation } from "framer-motion"; import useDatabase from "./hooks/use-database"; import Loader from "./components/loader"; diff --git a/apps/web/src/common/reminders.js b/apps/web/src/common/reminders.js index 4502659c1..0cb7bfed1 100644 --- a/apps/web/src/common/reminders.js +++ b/apps/web/src/common/reminders.js @@ -5,7 +5,7 @@ import { store as appStore } from "../stores/app-store"; import * as Icon from "../components/icons"; import dayjs from "dayjs"; import { showRecoveryKeyDialog } from "../common/dialog-controller"; -import { hashNavigate, navigate } from "../navigation"; +import { hardNavigate, hashNavigate } from "../navigation"; import { isDesktop } from "../utils/platform"; import saveFile from "../commands/save-file"; import { PATHS } from "@notesnook/desktop/paths"; @@ -51,7 +51,7 @@ export const Reminders = { login: { title: "Login to sync your notes", subtitle: "You are not logged in", - action: () => navigate("/login"), + action: () => hardNavigate("/login"), icon: Icon.User, }, email: { diff --git a/apps/web/src/components/navigation-menu/index.js b/apps/web/src/components/navigation-menu/index.js index fa8625949..04bb62e44 100644 --- a/apps/web/src/components/navigation-menu/index.js +++ b/apps/web/src/components/navigation-menu/index.js @@ -19,7 +19,7 @@ import { } from "../icons"; import { AnimatedFlex } from "../animated"; import NavigationItem from "./navigation-item"; -import { navigate } from "../../navigation"; +import { hardNavigate, navigate } from "../../navigation"; import { db } from "../../common/db"; import useMobile from "../../utils/use-mobile"; import { showRenameColorDialog } from "../../common/dialog-controller"; @@ -243,7 +243,7 @@ function NavigationMenu(props) { navigate("/login")} + onClick={() => hardNavigate("/login")} /> )} {bottomRoutes.map((item) => ( diff --git a/apps/web/src/components/properties/toggle.js b/apps/web/src/components/properties/toggle.js index 68eba24a1..9c6bf3d46 100644 --- a/apps/web/src/components/properties/toggle.js +++ b/apps/web/src/components/properties/toggle.js @@ -24,7 +24,7 @@ function Toggle(props) { {label} - + {}} checked={isOn} icons={false} /> ); } diff --git a/apps/web/src/components/status-bar/index.js b/apps/web/src/components/status-bar/index.js index 925dedf50..a4ebe6055 100644 --- a/apps/web/src/components/status-bar/index.js +++ b/apps/web/src/components/status-bar/index.js @@ -5,7 +5,7 @@ import { Circle, Sync, Loading, Update } from "../icons"; import { useStore as useUserStore } from "../../stores/user-store"; import { useStore as useAppStore } from "../../stores/app-store"; import TimeAgo from "timeago-react"; -import { hashNavigate, navigate } from "../../navigation"; +import { hardNavigate, hashNavigate, navigate } from "../../navigation"; import useAutoUpdater from "../../hooks/use-auto-updater"; import downloadUpdate from "../../commands/download-update"; import installUpdate from "../../commands/install-update"; @@ -73,7 +73,7 @@ function StatusBar() { diff --git a/apps/web/src/views/settings.js b/apps/web/src/views/settings.js index 7075b85eb..f77aab1bb 100644 --- a/apps/web/src/views/settings.js +++ b/apps/web/src/views/settings.js @@ -21,7 +21,7 @@ import ScrollContainer from "../components/scroll-container"; import { showLoadingDialog } from "../common/dialog-controller"; import { showToast } from "../utils/toast"; import { showPasswordDialog } from "../common/dialog-controller"; -import { hashNavigate, navigate } from "../navigation"; +import { hardNavigate, hashNavigate } from "../navigation"; import useVersion from "../utils/useVersion"; import { CHECK_IDS } from "notes-core/common"; import { openPaddleDialog } from "../common/checkout"; @@ -179,7 +179,7 @@ function Settings(props) { p={1} sx={{ borderRadius: "default", cursor: "pointer" }} onClick={async () => { - navigate("/login", { redirect: "/settings" }); + hardNavigate("/login", { redirect: "/settings" }); }} >