Changeset View
Changeset View
Standalone View
Standalone View
native/redux/redux-utils.js
// @flow | // @flow | ||||
import { useSelector as reactReduxUseSelector } from 'react-redux'; | import { useSelector as reactReduxUseSelector } from 'react-redux'; | ||||
import { communityStoreOpsHandlers } from 'lib/ops/community-store-ops.js'; | import { communityStoreOpsHandlers } from 'lib/ops/community-store-ops.js'; | ||||
import { integrityStoreOpsHandlers } from 'lib/ops/integrity-store-ops.js'; | import { integrityStoreOpsHandlers } from 'lib/ops/integrity-store-ops.js'; | ||||
import { | import { | ||||
keyserverStoreOpsHandlers, | keyserverStoreOpsHandlers, | ||||
getKeyserversToRemoveFromNotifsStore, | getKeyserversToRemoveFromNotifsStore, | ||||
} from 'lib/ops/keyserver-store-ops.js'; | } from 'lib/ops/keyserver-store-ops.js'; | ||||
import { messageStoreOpsHandlers } from 'lib/ops/message-store-ops.js'; | import { messageStoreOpsHandlers } from 'lib/ops/message-store-ops.js'; | ||||
import { reportStoreOpsHandlers } from 'lib/ops/report-store-ops.js'; | import { reportStoreOpsHandlers } from 'lib/ops/report-store-ops.js'; | ||||
import { syncedMetadataStoreOpsHandlers } from 'lib/ops/synced-metadata-store-ops.js'; | |||||
import { threadStoreOpsHandlers } from 'lib/ops/thread-store-ops.js'; | import { threadStoreOpsHandlers } from 'lib/ops/thread-store-ops.js'; | ||||
import { userStoreOpsHandlers } from 'lib/ops/user-store-ops.js'; | import { userStoreOpsHandlers } from 'lib/ops/user-store-ops.js'; | ||||
import type { StoreOperations } from 'lib/types/store-ops-types.js'; | import type { StoreOperations } from 'lib/types/store-ops-types.js'; | ||||
import type { AppState } from './state-types.js'; | import type { AppState } from './state-types.js'; | ||||
import { commCoreModule } from '../native-modules.js'; | import { commCoreModule } from '../native-modules.js'; | ||||
import { isTaskCancelledError } from '../utils/error-handling.js'; | import { isTaskCancelledError } from '../utils/error-handling.js'; | ||||
Show All 11 Lines | const { | ||||
draftStoreOperations, | draftStoreOperations, | ||||
threadStoreOperations, | threadStoreOperations, | ||||
messageStoreOperations, | messageStoreOperations, | ||||
reportStoreOperations, | reportStoreOperations, | ||||
userStoreOperations, | userStoreOperations, | ||||
keyserverStoreOperations, | keyserverStoreOperations, | ||||
integrityStoreOperations, | integrityStoreOperations, | ||||
communityStoreOperations, | communityStoreOperations, | ||||
syncedMetadataStoreOperations, | |||||
} = storeOperations; | } = storeOperations; | ||||
const convertedThreadStoreOperations = | const convertedThreadStoreOperations = | ||||
threadStoreOpsHandlers.convertOpsToClientDBOps(threadStoreOperations); | threadStoreOpsHandlers.convertOpsToClientDBOps(threadStoreOperations); | ||||
const convertedMessageStoreOperations = | const convertedMessageStoreOperations = | ||||
messageStoreOpsHandlers.convertOpsToClientDBOps(messageStoreOperations); | messageStoreOpsHandlers.convertOpsToClientDBOps(messageStoreOperations); | ||||
const convertedReportStoreOperations = | const convertedReportStoreOperations = | ||||
reportStoreOpsHandlers.convertOpsToClientDBOps(reportStoreOperations); | reportStoreOpsHandlers.convertOpsToClientDBOps(reportStoreOperations); | ||||
const convertedUserStoreOperations = | const convertedUserStoreOperations = | ||||
userStoreOpsHandlers.convertOpsToClientDBOps(userStoreOperations); | userStoreOpsHandlers.convertOpsToClientDBOps(userStoreOperations); | ||||
const convertedKeyserverStoreOperations = | const convertedKeyserverStoreOperations = | ||||
keyserverStoreOpsHandlers.convertOpsToClientDBOps(keyserverStoreOperations); | keyserverStoreOpsHandlers.convertOpsToClientDBOps(keyserverStoreOperations); | ||||
const convertedCommunityStoreOperations = | const convertedCommunityStoreOperations = | ||||
communityStoreOpsHandlers.convertOpsToClientDBOps(communityStoreOperations); | communityStoreOpsHandlers.convertOpsToClientDBOps(communityStoreOperations); | ||||
const convertedSyncedMetadataStoreOperations = | |||||
syncedMetadataStoreOpsHandlers.convertOpsToClientDBOps( | |||||
syncedMetadataStoreOperations, | |||||
); | |||||
const keyserversToRemoveFromNotifsStore = | const keyserversToRemoveFromNotifsStore = | ||||
getKeyserversToRemoveFromNotifsStore(keyserverStoreOperations); | getKeyserversToRemoveFromNotifsStore(keyserverStoreOperations); | ||||
const convertedIntegrityStoreOperations = | const convertedIntegrityStoreOperations = | ||||
integrityStoreOpsHandlers.convertOpsToClientDBOps(integrityStoreOperations); | integrityStoreOpsHandlers.convertOpsToClientDBOps(integrityStoreOperations); | ||||
try { | try { | ||||
const promises = []; | const promises = []; | ||||
if (convertedThreadStoreOperations.length > 0) { | if (convertedThreadStoreOperations.length > 0) { | ||||
▲ Show 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | try { | ||||
} | } | ||||
if (convertedIntegrityStoreOperations.length > 0) { | if (convertedIntegrityStoreOperations.length > 0) { | ||||
promises.push( | promises.push( | ||||
commCoreModule.processIntegrityStoreOperations( | commCoreModule.processIntegrityStoreOperations( | ||||
convertedIntegrityStoreOperations, | convertedIntegrityStoreOperations, | ||||
), | ), | ||||
); | ); | ||||
} | } | ||||
if (convertedSyncedMetadataStoreOperations.length > 0) { | |||||
promises.push( | |||||
commCoreModule.processSyncedMetadataStoreOperations( | |||||
convertedSyncedMetadataStoreOperations, | |||||
), | |||||
); | |||||
} | |||||
await Promise.all(promises); | await Promise.all(promises); | ||||
} catch (e) { | } catch (e) { | ||||
if (isTaskCancelledError(e)) { | if (isTaskCancelledError(e)) { | ||||
return; | return; | ||||
} | } | ||||
// this code will make an entry in SecureStore and cause re-creating | // this code will make an entry in SecureStore and cause re-creating | ||||
// database when user will open app again | // database when user will open app again | ||||
commCoreModule.reportDBOperationsFailure(); | commCoreModule.reportDBOperationsFailure(); | ||||
commCoreModule.terminate(); | commCoreModule.terminate(); | ||||
} | } | ||||
} | } | ||||
export { useSelector, processDBStoreOperations }; | export { useSelector, processDBStoreOperations }; |