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 @@ -22,8 +22,6 @@ type DatabaseStatus = $Values; -const isSafari = isDesktopSafari(); - class DatabaseModule { worker: SharedWorker; workerProxy: WorkerConnectionProxy; @@ -36,7 +34,7 @@ : preloadedState.currentUserInfo?.id; const isSupported = isSQLiteSupported(currentLoggedInUserID); - if (!isSupported || isSafari) { + if (!isSupported || isDesktopSafari) { this.status = databaseStatuses.notSupported; } else { this.init(); 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 @@ -17,8 +17,6 @@ import { useSelector } from '../redux/redux-utils.js'; import { workerRequestMessageTypes } from '../types/worker-types.js'; -const isSafari = isDesktopSafari(); - async function getSafariEncryptionKey(): Promise { const encryptionKey = await localforage.getItem(SQLITE_ENCRYPTION_KEY); if (encryptionKey) { @@ -69,7 +67,7 @@ (async () => { if (currentLoggedInUserID) { let databaseEncryptionKeyJWK = null; - if (isSafari) { + if (isDesktopSafari) { databaseEncryptionKeyJWK = await getSafariEncryptionKey(); } await databaseModule.initDBForLoggedInUser( diff --git a/web/database/utils/db-utils.js b/web/database/utils/db-utils.js --- a/web/database/utils/db-utils.js +++ b/web/database/utils/db-utils.js @@ -8,6 +8,8 @@ import { DB_SUPPORTED_BROWSERS, DB_SUPPORTED_OS } from './constants.js'; +const browser = detectBrowser(); + function parseSQLiteQueryResult(result: QueryExecResult): T[] { const { columns, values } = result; return values.map(rowResult => { @@ -38,16 +40,13 @@ return false; } - const browser = detectBrowser(); return ( DB_SUPPORTED_OS.includes(browser.os) && DB_SUPPORTED_BROWSERS.includes(browser.name) ); } -function isDesktopSafari(): boolean { - const browser = detectBrowser(); - return browser.name === 'safari' && browser.os === 'Mac OS'; -} +const isDesktopSafari: boolean = + browser && browser.name === 'safari' && browser.os === 'Mac OS'; export { parseMultiStatementSQLiteResult, isSQLiteSupported, isDesktopSafari };