Page MenuHomePhorge

D9105.1765072739.diff
No OneTemporary

Size
5 KB
Referenced Files
None
Subscribers
None

D9105.1765072739.diff

diff --git a/web/database/database-module-provider.js b/web/database/database-module-provider.js
--- a/web/database/database-module-provider.js
+++ b/web/database/database-module-provider.js
@@ -121,6 +121,12 @@
}
}
-const databaseModule: DatabaseModule = new DatabaseModule();
+let databaseModule: ?DatabaseModule = null;
+async function getDatabaseModule(): Promise<DatabaseModule> {
+ if (!databaseModule) {
+ databaseModule = new DatabaseModule();
+ }
+ return databaseModule;
+}
-export { databaseModule };
+export { getDatabaseModule };
diff --git a/web/database/sqlite-data-handler.js b/web/database/sqlite-data-handler.js
--- a/web/database/sqlite-data-handler.js
+++ b/web/database/sqlite-data-handler.js
@@ -7,7 +7,7 @@
import { setClientDBStoreActionType } from 'lib/actions/client-db-store-actions.js';
import { reportStoreOpsHandlers } from 'lib/ops/report-store-ops.js';
-import { databaseModule } from './database-module-provider.js';
+import { getDatabaseModule } from './database-module-provider.js';
import { SQLITE_ENCRYPTION_KEY } from './utils/constants.js';
import { isDesktopSafari } from './utils/db-utils.js';
import {
@@ -39,6 +39,7 @@
);
const handleSensitiveData = React.useCallback(async () => {
+ const databaseModule = await getDatabaseModule();
try {
const currentUserData = await databaseModule.schedule({
type: workerRequestMessageTypes.GET_CURRENT_USER_ID,
@@ -65,6 +66,8 @@
React.useEffect(() => {
(async () => {
+ const databaseModule = await getDatabaseModule();
+
if (currentLoggedInUserID) {
let databaseEncryptionKeyJWK = null;
if (isDesktopSafari) {
diff --git a/web/redux/comm-redux-storage-engine.js b/web/redux/comm-redux-storage-engine.js
--- a/web/redux/comm-redux-storage-engine.js
+++ b/web/redux/comm-redux-storage-engine.js
@@ -2,11 +2,12 @@
import storage from 'redux-persist/es/storage/index.js';
-import { databaseModule } from '../database/database-module-provider.js';
+import { getDatabaseModule } from '../database/database-module-provider.js';
import { workerRequestMessageTypes } from '../types/worker-types.js';
const commReduxStorageEngine = {
getItem: async (key: string): Promise<string> => {
+ const databaseModule = await getDatabaseModule();
const isSupported = await databaseModule.isDatabaseSupported();
if (!isSupported) {
return await storage.getItem(key);
@@ -22,6 +23,7 @@
return result.item;
},
setItem: async (key: string, item: string): Promise<void> => {
+ const databaseModule = await getDatabaseModule();
const isSupported = await databaseModule.isDatabaseSupported();
if (!isSupported) {
await storage.setItem(key, item);
@@ -35,6 +37,7 @@
});
},
removeItem: async (key: string): Promise<void> => {
+ const databaseModule = await getDatabaseModule();
const isSupported = await databaseModule.isDatabaseSupported();
if (!isSupported) {
await storage.removeItem(key);
diff --git a/web/redux/persist.js b/web/redux/persist.js
--- a/web/redux/persist.js
+++ b/web/redux/persist.js
@@ -31,7 +31,7 @@
import commReduxStorageEngine from './comm-redux-storage-engine.js';
import type { AppState } from './redux-setup.js';
-import { databaseModule } from '../database/database-module-provider.js';
+import { getDatabaseModule } from '../database/database-module-provider.js';
import { isSQLiteSupported } from '../database/utils/db-utils.js';
import { workerRequestMessageTypes } from '../types/worker-types.js';
@@ -59,6 +59,7 @@
};
},
[2]: async state => {
+ const databaseModule = await getDatabaseModule();
if (!isDatabaseSupported) {
return state;
}
@@ -89,6 +90,8 @@
};
}
+ const databaseModule = await getDatabaseModule();
+
if (!isDatabaseSupported) {
return newState;
}
@@ -139,6 +142,7 @@
const rootKey = 'root';
const migrateStorageToSQLite: StorageMigrationFunction = async debug => {
+ const databaseModule = await getDatabaseModule();
const isSupported = await databaseModule.isDatabaseSupported();
if (!isSupported) {
return undefined;
diff --git a/web/redux/redux-setup.js b/web/redux/redux-setup.js
--- a/web/redux/redux-setup.js
+++ b/web/redux/redux-setup.js
@@ -53,7 +53,7 @@
import { reduceDeviceID } from './device-id-reducer.js';
import reduceNavInfo from './nav-reducer.js';
import { getVisibility } from './visibility.js';
-import { databaseModule } from '../database/database-module-provider.js';
+import { getDatabaseModule } from '../database/database-module-provider.js';
import { activeThreadSelector } from '../selectors/nav-selectors.js';
import { type NavInfo } from '../types/nav-types.js';
import { workerRequestMessageTypes } from '../types/worker-types.js';
@@ -188,6 +188,7 @@
} = baseReducerResult;
if (draftStoreOperations.length > 0 || reportStoreOperations.length > 0) {
(async () => {
+ const databaseModule = await getDatabaseModule();
const isSupported = await databaseModule.isDatabaseSupported();
if (!isSupported) {
return;

File Metadata

Mime Type
text/plain
Expires
Sun, Dec 7, 1:58 AM (16 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5842054
Default Alt Text
D9105.1765072739.diff (5 KB)

Event Timeline