mirror of
https://github.com/streetwriters/notesnook.git
synced 2025-12-29 00:20:04 +01:00
desktop: load db before app render
This commit is contained in:
committed by
Abdullah Atta
parent
a967482c4f
commit
a971a29ff2
@@ -28,20 +28,21 @@ if (import.meta.env.NODE_ENV === "production") {
|
||||
}
|
||||
|
||||
const memory = {
|
||||
isAppLoaded: false
|
||||
isDatabaseLoaded: false
|
||||
};
|
||||
export default function useDatabase(persistence: "db" | "memory" = "db") {
|
||||
const [isAppLoaded, setIsAppLoaded] = useState(memory.isAppLoaded);
|
||||
const [isAppLoaded, setIsAppLoaded] = useState(memory.isDatabaseLoaded);
|
||||
|
||||
useEffect(() => {
|
||||
if (memory.isAppLoaded) return;
|
||||
|
||||
(async () => {
|
||||
await initializeDatabase(persistence);
|
||||
setIsAppLoaded(true);
|
||||
memory.isAppLoaded = true;
|
||||
})();
|
||||
loadDatabase(persistence).then(() => setIsAppLoaded(true));
|
||||
}, [persistence]);
|
||||
|
||||
return [isAppLoaded];
|
||||
}
|
||||
|
||||
export async function loadDatabase(persistence: "db" | "memory" = "db") {
|
||||
if (memory.isDatabaseLoaded) return;
|
||||
|
||||
await initializeDatabase(persistence);
|
||||
memory.isDatabaseLoaded = true;
|
||||
}
|
||||
@@ -26,6 +26,7 @@ import Config from "./utils/config";
|
||||
import { isTesting } from "./utils/platform";
|
||||
import { initalizeLogger, logger } from "./utils/logger";
|
||||
import { AuthProps } from "./views/auth";
|
||||
import { loadDatabase } from "./hooks/use-database";
|
||||
|
||||
initalizeLogger();
|
||||
|
||||
@@ -155,6 +156,8 @@ async function renderApp() {
|
||||
} = getRoute();
|
||||
|
||||
if (serviceWorkerWhitelist.includes(path)) await initializeServiceWorker();
|
||||
if (import.meta.env.REACT_APP_PLATFORM === "desktop")
|
||||
await loadDatabase("db");
|
||||
|
||||
logger.measure("app render");
|
||||
|
||||
@@ -171,13 +174,13 @@ async function renderApp() {
|
||||
}
|
||||
|
||||
async function initializeServiceWorker() {
|
||||
logger.info("Initializing service worker...");
|
||||
const serviceWorker = await import("./service-worker-registration");
|
||||
|
||||
// If you want your app to work offline and load faster, you can change
|
||||
// unregister() to register() below. Note this comes with some pitfalls.
|
||||
// Learn more about service workers: https://bit.ly/CRA-PWA
|
||||
if (import.meta.env.REACT_APP_PLATFORM !== "desktop") {
|
||||
logger.info("Initializing service worker...");
|
||||
const serviceWorker = await import("./service-worker-registration");
|
||||
|
||||
// If you want your app to work offline and load faster, you can change
|
||||
// unregister() to register() below. Note this comes with some pitfalls.
|
||||
// Learn more about service workers: https://bit.ly/CRA-PWA
|
||||
serviceWorker.register({
|
||||
onUpdate: async (registration: ServiceWorkerRegistration) => {
|
||||
if (!registration.waiting) return;
|
||||
@@ -191,7 +194,7 @@ async function initializeServiceWorker() {
|
||||
}
|
||||
});
|
||||
// window.addEventListener("beforeinstallprompt", () => showInstallNotice());
|
||||
} else serviceWorker.unregister();
|
||||
}
|
||||
}
|
||||
|
||||
function shouldSkipInitiation() {
|
||||
|
||||
Reference in New Issue
Block a user