Page MenuHomePhorge

D14521.1767084658.diff
No OneTemporary

Size
6 KB
Referenced Files
None
Subscribers
None

D14521.1767084658.diff

diff --git a/lib/hooks/login-hooks.js b/lib/hooks/login-hooks.js
--- a/lib/hooks/login-hooks.js
+++ b/lib/hooks/login-hooks.js
@@ -13,6 +13,7 @@
} from '../actions/user-actions.js';
import { useKeyserverAuthWithRetry } from '../keyserver-conn/keyserver-auth.js';
import { logInActionSources } from '../types/account-types.js';
+import type { IdentityAuthResult } from '../types/identity-service-types.js';
import { authoritativeKeyserverID } from '../utils/authoritative-keyserver.js';
import { useDispatchActionPromise } from '../utils/redux-promise-utils.js';
import { useSelector, useDispatch } from '../utils/redux-utils.js';
@@ -27,8 +28,9 @@
| { +step: 'inactive' }
| {
+step: 'identity_login_dispatched',
- +resolve: () => void,
+ +resolve: (authResult: IdentityAuthResult) => void,
+reject: Error => void,
+ +authResult: IdentityAuthResult,
};
const inactiveStep = { step: 'inactive' };
@@ -37,24 +39,27 @@
function useLogIn(
loginFlow: LoginFlow,
-): (identityAuthPromise: Promise<mixed>) => Promise<void> {
+): (
+ identityAuthPromise: Promise<IdentityAuthResult>,
+) => Promise<IdentityAuthResult> {
const [currentStep, setCurrentStep] =
React.useState<CurrentStep>(inactiveStep);
const returnedFunc = React.useCallback(
- (promise: Promise<mixed>) =>
- new Promise<void>(
+ (promise: Promise<IdentityAuthResult>) =>
+ new Promise<IdentityAuthResult>(
// eslint-disable-next-line no-async-promise-executor
async (resolve, reject) => {
if (currentStep.step !== 'inactive') {
return;
}
try {
- await promise;
+ const authResult = await promise;
setCurrentStep({
step: 'identity_login_dispatched',
resolve,
reject,
+ authResult,
});
} catch (e) {
reject(e);
@@ -97,7 +102,7 @@
return;
}
registeringOnAuthoritativeKeyserverRef.current = true;
- const { resolve, reject } = currentStep;
+ const { resolve, reject, authResult } = currentStep;
void (async () => {
try {
await keyserverAuth({
@@ -114,7 +119,7 @@
dataLoaded: true,
},
});
- resolve();
+ resolve(authResult);
} catch (e) {
void dispatchActionPromise(logOutActionTypes, identityLogOut());
await waitUntilDatabaseDeleted();
@@ -139,7 +144,7 @@
function usePasswordLogIn(): (
username: string,
password: string,
-) => Promise<void> {
+) => Promise<IdentityAuthResult> {
const identityPasswordLogIn = useIdentityPasswordLogIn();
const dispatchActionPromise = useDispatchActionPromise();
const identityPasswordAuth = React.useCallback(
@@ -163,7 +168,7 @@
walletAddress: string,
siweMessage: string,
siweSignature: string,
-) => Promise<void> {
+) => Promise<IdentityAuthResult> {
const identityWalletLogIn = useIdentityWalletLogIn();
const dispatchActionPromise = useDispatchActionPromise();
const identityWalletAuth = React.useCallback(
@@ -187,11 +192,13 @@
);
}
-function useSecondaryDeviceLogIn(): (userID: string) => Promise<void> {
+function useSecondaryDeviceLogIn(): (
+ userID: string,
+) => Promise<IdentityAuthResult> {
const identitySecondaryDeviceLogIn = useIdentitySecondaryDeviceLogIn();
const dispatchActionPromise = useDispatchActionPromise();
const identitySecondaryDeviceAuth = React.useCallback(
- (userID: string) => {
+ (userID: string): Promise<IdentityAuthResult> => {
const promise = identitySecondaryDeviceLogIn(userID);
void dispatchActionPromise(identityLogInActionTypes, promise);
return promise;
diff --git a/native/account/log-in-panel.react.js b/native/account/log-in-panel.react.js
--- a/native/account/log-in-panel.react.js
+++ b/native/account/log-in-panel.react.js
@@ -26,6 +26,7 @@
type LegacyLogInStartingPayload,
logInActionSources,
} from 'lib/types/account-types.js';
+import type { IdentityAuthResult } from 'lib/types/identity-service-types.js';
import type { LoadingStatus } from 'lib/types/loading-types.js';
import { getMessageForException } from 'lib/utils/errors.js';
import {
@@ -70,7 +71,10 @@
+legacyLogInExtraInfo: () => Promise<LegacyLogInExtraInfo>,
+dispatchActionPromise: DispatchActionPromise,
+legacyLogIn: (logInInfo: LegacyLogInInfo) => Promise<LegacyLogInResult>,
- +identityPasswordLogIn: (username: string, password: string) => Promise<void>,
+ +identityPasswordLogIn: (
+ username: string,
+ password: string,
+ ) => Promise<IdentityAuthResult>,
+getInitialNotificationsEncryptedMessage: () => Promise<string>,
};
type State = {
diff --git a/native/account/restore.js b/native/account/restore.js
--- a/native/account/restore.js
+++ b/native/account/restore.js
@@ -14,8 +14,11 @@
useWalletLogIn,
} from 'lib/hooks/login-hooks.js';
import { IdentityClientContext } from 'lib/shared/identity-client-context.js';
-import type { SignedDeviceList } from 'lib/types/identity-service-types.js';
-import { platformToIdentityDeviceType } from 'lib/types/identity-service-types.js';
+import {
+ type IdentityAuthResult,
+ type SignedDeviceList,
+ platformToIdentityDeviceType,
+} from 'lib/types/identity-service-types.js';
import type { SignedMessage } from 'lib/types/siwe-types.js';
import { getConfig } from 'lib/utils/config.js';
import { getContentSigningKey } from 'lib/utils/crypto-utils.js';
@@ -55,7 +58,7 @@
userIdentifier: string,
secret: string,
siweSocialProof?: SignedMessage,
- ) => {
+ ): Promise<RestoreUserResult> => {
//1. Runs Key Generation
const { olmAPI } = getConfig();
await olmAPI.initializeCryptoAccount();
@@ -149,18 +152,25 @@
userIdentifier: string,
secret: string,
siweSocialProof?: SignedMessage,
-) => Promise<void> {
+) => Promise<IdentityAuthResult> {
const restoreProtocol = useRestoreProtocol();
const dispatchActionPromise = useDispatchActionPromise();
const restoreAuth = React.useCallback(
- (
+ async (
userIdentifier: string,
secret: string,
siweSocialProof?: SignedMessage,
- ) => {
+ ): Promise<IdentityAuthResult> => {
const promise = restoreProtocol(userIdentifier, secret, siweSocialProof);
void dispatchActionPromise(restoreUserActionTypes, promise);
- return promise;
+ const { userID, accessToken, username, preRequestUserState } =
+ await promise;
+ return {
+ userID,
+ accessToken,
+ username,
+ preRequestUserState,
+ };
},
[dispatchActionPromise, restoreProtocol],
);

File Metadata

Mime Type
text/plain
Expires
Tue, Dec 30, 8:50 AM (11 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5866799
Default Alt Text
D14521.1767084658.diff (6 KB)

Event Timeline