diff --git a/lib/handlers/initial-state-sharing-handler.react.js b/lib/handlers/initial-state-sharing-handler.react.js deleted file mode 100644 --- a/lib/handlers/initial-state-sharing-handler.react.js +++ /dev/null @@ -1,95 +0,0 @@ -// @flow - -import invariant from 'invariant'; -import * as React from 'react'; - -import { useIsLoggedInToIdentityAndAuthoritativeKeyserver } from '../hooks/account-hooks.js'; -import { getOwnPeerDevices } from '../selectors/user-selectors.js'; -import { dmOperationSpecificationTypes } from '../shared/dm-ops/dm-op-types.js'; -import { useProcessAndSendDMOperation } from '../shared/dm-ops/process-dm-ops.js'; -import { IdentityClientContext } from '../shared/identity-client-context.js'; -import { getCreateThickRawThreadInfoInputFromThreadInfo } from '../shared/threads/protocols/dm-thread-protocol.js'; -import { values } from '../utils/objects.js'; -import { useSelector } from '../utils/redux-utils.js'; - -function InitialStateSharingHandler(): React.Node { - const userDeviceIDs = useSelector(state => - getOwnPeerDevices(state).map(peer => peer.deviceID), - ); - const threadInfos = useSelector(state => state.threadStore.threadInfos); - const viewerID = useSelector( - state => state.currentUserInfo && state.currentUserInfo.id, - ); - const identityContext = React.useContext(IdentityClientContext); - const processAndSendDMOperation = useProcessAndSendDMOperation(); - - const deviceIDs = React.useRef<$ReadOnlySet>(new Set(userDeviceIDs)); - - const loggedIn = useIsLoggedInToIdentityAndAuthoritativeKeyserver(); - - React.useEffect(() => { - void (async () => { - if (!loggedIn) { - return; - } - - const oldDeviceIDs = deviceIDs.current; - const newDeviceIDs = new Set(userDeviceIDs); - deviceIDs.current = newDeviceIDs; - - invariant(identityContext, 'Identity context should be set'); - const authMetadata = await identityContext.getAuthMetadata(); - if (authMetadata.deviceID !== userDeviceIDs[0] || !viewerID) { - return; - } - - const recipients = new Set(); - for (const deviceID of newDeviceIDs) { - if (!oldDeviceIDs.has(deviceID)) { - recipients.add(deviceID); - } - } - - if (recipients.size === 0) { - return; - } - - for (const threadInfo of values(threadInfos)) { - if (!threadInfo.thick) { - continue; - } - - const existingThreadDetails = - getCreateThickRawThreadInfoInputFromThreadInfo(threadInfo); - const operation = { - type: 'add_viewer_to_thread_members', - existingThreadDetails, - editorID: viewerID, - time: threadInfo.creationTime, - messageID: null, - addedUserIDs: [], - }; - void processAndSendDMOperation({ - type: dmOperationSpecificationTypes.OUTBOUND, - op: operation, - recipients: { - type: 'some_devices', - deviceIDs: [...recipients], - }, - sendOnly: true, - }); - } - })(); - }, [ - loggedIn, - identityContext, - processAndSendDMOperation, - threadInfos, - userDeviceIDs, - viewerID, - ]); - - return null; -} - -export { InitialStateSharingHandler }; diff --git a/native/root.react.js b/native/root.react.js --- a/native/root.react.js +++ b/native/root.react.js @@ -43,7 +43,6 @@ import { UserIdentityCacheProvider } from 'lib/components/user-identity-cache.react.js'; import { DBOpsHandler } from 'lib/handlers/db-ops-handler.react.js'; import { HoldersHandler } from 'lib/handlers/holders-handler.react.js'; -import { InitialStateSharingHandler } from 'lib/handlers/initial-state-sharing-handler.react.js'; import { RestoreBackupHandler } from 'lib/handlers/restore-backup-handler.react.js'; import { SyncCurrentUserInfoHandler } from 'lib/handlers/sync-current-user-info-handler.react.js'; import { SyncStoreVersionHandler } from 'lib/handlers/sync-store-version-handler.react.js'; @@ -428,7 +427,6 @@ - {navigation}