diff --git a/lib/actions/siwe-actions.js b/lib/actions/siwe-actions.js --- a/lib/actions/siwe-actions.js +++ b/lib/actions/siwe-actions.js @@ -1,12 +1,12 @@ // @flow -import { mergeUserInfos } from './user-actions.js'; import threadWatcher from '../shared/thread-watcher.js'; import { type LogInResult, logInActionSources, } from '../types/account-types.js'; import type { SIWEAuthServerCall } from '../types/siwe-types.js'; +import { mergeUserInfos } from '../utils/action-utils.js'; import type { CallServerEndpoint, CallServerEndpointOptions, diff --git a/lib/actions/user-actions.js b/lib/actions/user-actions.js --- a/lib/actions/user-actions.js +++ b/lib/actions/user-actions.js @@ -39,15 +39,12 @@ SubscriptionUpdateResult, } from '../types/subscription-types.js'; import type { LegacyRawThreadInfos } from '../types/thread-types'; -import type { - UserInfo, - PasswordUpdate, - LoggedOutUserInfo, -} from '../types/user-types.js'; +import type { PasswordUpdate, LoggedOutUserInfo } from '../types/user-types.js'; import { extractKeyserverIDFromID, sortThreadIDsPerKeyserver, sortCalendarQueryPerKeyserver, + mergeUserInfos, } from '../utils/action-utils.js'; import type { CallServerEndpoint, @@ -187,22 +184,6 @@ }; }; -function mergeUserInfos( - ...userInfoArrays: Array<$ReadOnlyArray> -): UserInfo[] { - const merged: { [string]: UserInfo } = {}; - for (const userInfoArray of userInfoArrays) { - for (const userInfo of userInfoArray) { - merged[userInfo.id] = userInfo; - } - } - const flattened = []; - for (const id in merged) { - flattened.push(merged[id]); - } - return flattened; -} - type WritableGenericMessagesResult = { messageInfos: RawMessageInfo[], truncationStatus: MessageTruncationStatuses, @@ -504,7 +485,6 @@ getSessionPublicKeys, getOlmSessionInitializationDataActionTypes, getOlmSessionInitializationData, - mergeUserInfos, logIn as logInRawAction, useLogIn, logInActionTypes, diff --git a/lib/utils/action-utils.js b/lib/utils/action-utils.js --- a/lib/utils/action-utils.js +++ b/lib/utils/action-utils.js @@ -37,7 +37,7 @@ PreRequestUserState, } from '../types/session-types.js'; import type { ConnectionStatus } from '../types/socket-types.js'; -import type { CurrentUserInfo } from '../types/user-types.js'; +import type { CurrentUserInfo, UserInfo } from '../types/user-types.js'; function extractKeyserverIDFromID(id: string): string { return id.split('|')[0]; @@ -594,6 +594,22 @@ return results; } +function mergeUserInfos( + ...userInfoArrays: Array<$ReadOnlyArray> +): UserInfo[] { + const merged: { [string]: UserInfo } = {}; + for (const userInfoArray of userInfoArrays) { + for (const userInfo of userInfoArray) { + merged[userInfo.id] = userInfo; + } + } + const flattened = []; + for (const id in merged) { + flattened.push(merged[id]); + } + return flattened; +} + export { useDispatchActionPromise, setNewSessionActionType, @@ -605,4 +621,5 @@ extractKeyserverIDFromID, sortThreadIDsPerKeyserver, sortCalendarQueryPerKeyserver, + mergeUserInfos, };