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 @@ -120,7 +120,13 @@ ): ((logInInfo: LogInInfo) => Promise) => async logInInfo => { const watchedIDs = threadWatcher.getWatchedIDs(); - const { logInActionSource, ...restLogInInfo } = logInInfo; + const { + logInActionSource, + primaryIdentityPublicKeys, + notificationIdentityPublicKeys, + ...restLogInInfo + } = logInInfo; + const response = await callServerEndpoint( 'log_in', { diff --git a/lib/types/account-types.js b/lib/types/account-types.js --- a/lib/types/account-types.js +++ b/lib/types/account-types.js @@ -1,5 +1,6 @@ // @flow +import type { OLMIdentityKeys } from './crypto-types.js'; import type { PlatformDetails } from './device-types.js'; import type { CalendarQuery, @@ -104,6 +105,8 @@ +calendarQuery: CalendarQuery, +deviceTokenUpdateRequest?: ?DeviceTokenUpdateRequest, +primaryIdentityPublicKey?: string, + +primaryIdentityPublicKeys?: ?OLMIdentityKeys, + +notificationIdentityPublicKeys?: ?OLMIdentityKeys, }; export type LogInInfo = { diff --git a/web/account/traditional-login-form.react.js b/web/account/traditional-login-form.react.js --- a/web/account/traditional-login-form.react.js +++ b/web/account/traditional-login-form.react.js @@ -41,6 +41,9 @@ const primaryIdentityPublicKeys: ?OLMIdentityKeys = useSelector( state => state.cryptoStore.primaryIdentityKeys, ); + const notificationIdentityPublicKeys: ?OLMIdentityKeys = useSelector( + state => state.cryptoStore.notificationIdentityKeys, + ); const usernameInputRef = React.useRef(); React.useEffect(() => { @@ -72,12 +75,18 @@ primaryIdentityPublicKeys, 'primaryIdentityPublicKeys must be set in logInAction', ); + invariant( + notificationIdentityPublicKeys, + 'notificationIdentityPublicKeys must be set in logInAction', + ); const result = await callLogIn({ ...extraInfo, username, password, logInActionSource: logInActionSources.logInFromWebForm, primaryIdentityPublicKey: primaryIdentityPublicKeys.ed25519, + primaryIdentityPublicKeys, + notificationIdentityPublicKeys, }); modalContext.popModal(); return result; @@ -93,7 +102,14 @@ throw e; } }, - [callLogIn, modalContext, password, primaryIdentityPublicKeys, username], + [ + callLogIn, + modalContext, + notificationIdentityPublicKeys, + password, + primaryIdentityPublicKeys, + username, + ], ); const onSubmit = React.useCallback( @@ -176,6 +192,8 @@ disabled={ primaryIdentityPublicKeys === null || primaryIdentityPublicKeys === undefined || + notificationIdentityPublicKeys === null || + notificationIdentityPublicKeys === undefined || inputDisabled } onClick={onSubmit}