Skip to content

Commit 055bb49

Browse files
authored
feat(passport): ID-3934: Render the headless login / embedded login prompt (#2705)
1 parent 775781a commit 055bb49

18 files changed

+1066
-116
lines changed

packages/passport/sdk/src/Passport.int.test.ts

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ const oidcConfiguration: OidcConfiguration = {
7676
logoutRedirectUri,
7777
};
7878

79-
const getZkEvmProvider = async () => {
80-
const passport = new Passport({
79+
const getPassport = () => (
80+
new Passport({
8181
baseConfig: new ImmutableConfiguration({
8282
environment: Environment.SANDBOX,
8383
}),
@@ -87,8 +87,14 @@ const getZkEvmProvider = async () => {
8787
popupRedirectUri,
8888
logoutRedirectUri,
8989
scope: 'openid offline_access profile email transact',
90-
});
90+
popupOverlayOptions: {
91+
disableHeadlessLoginPromptOverlay: true,
92+
},
93+
})
94+
);
9195

96+
const getZkEvmProvider = async () => {
97+
const passport = getPassport();
9298
return await passport.connectEvm();
9399
};
94100

@@ -357,17 +363,7 @@ describe('Passport', () => {
357363
mockSigninPopup.mockResolvedValue(mockOidcUserZkevm);
358364
mockSigninSilent.mockResolvedValueOnce(mockOidcUserZkevm);
359365

360-
const passport = new Passport({
361-
baseConfig: new ImmutableConfiguration({
362-
environment: Environment.SANDBOX,
363-
}),
364-
audience: 'platform_api',
365-
clientId,
366-
redirectUri,
367-
popupRedirectUri,
368-
logoutRedirectUri,
369-
scope: 'openid offline_access profile email transact',
370-
});
366+
const passport = getPassport();
371367

372368
// user isn't logged in, so wont set signer when provider is instantiated
373369
// #doc request-accounts

packages/passport/sdk/src/Passport.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import {
2727
User,
2828
UserProfile,
2929
} from './types';
30-
import { ConfirmationScreen } from './confirmation';
30+
import { ConfirmationScreen, EmbeddedLoginPrompt } from './confirmation';
3131
import { ZkEvmProvider } from './zkEvm';
3232
import { Provider } from './zkEvm/types';
3333
import TypedEventEmitter from './utils/typedEventEmitter';
@@ -57,7 +57,8 @@ const buildImxApiClients = (passportModuleConfiguration: PassportModuleConfigura
5757

5858
export const buildPrivateVars = (passportModuleConfiguration: PassportModuleConfiguration) => {
5959
const config = new PassportConfiguration(passportModuleConfiguration);
60-
const authManager = new AuthManager(config);
60+
const embeddedLoginPrompt = new EmbeddedLoginPrompt(config);
61+
const authManager = new AuthManager(config, embeddedLoginPrompt);
6162
const magicProviderProxyFactory = new MagicProviderProxyFactory(authManager, config);
6263
const magicAdapter = new MagicAdapter(config, magicProviderProxyFactory);
6364
const confirmationScreen = new ConfirmationScreen(config);
@@ -91,6 +92,7 @@ export const buildPrivateVars = (passportModuleConfiguration: PassportModuleConf
9192
authManager,
9293
magicAdapter,
9394
confirmationScreen,
95+
embeddedLoginPrompt,
9496
immutableXClient,
9597
multiRollupApiClients,
9698
passportEventEmitter,
@@ -106,6 +108,8 @@ export class Passport {
106108

107109
private readonly confirmationScreen: ConfirmationScreen;
108110

111+
private readonly embeddedLoginPrompt: EmbeddedLoginPrompt;
112+
109113
private readonly immutableXClient: IMXClient;
110114

111115
private readonly magicAdapter: MagicAdapter;
@@ -125,6 +129,7 @@ export class Passport {
125129
this.authManager = privateVars.authManager;
126130
this.magicAdapter = privateVars.magicAdapter;
127131
this.confirmationScreen = privateVars.confirmationScreen;
132+
this.embeddedLoginPrompt = privateVars.embeddedLoginPrompt;
128133
this.immutableXClient = privateVars.immutableXClient;
129134
this.multiRollupApiClients = privateVars.multiRollupApiClients;
130135
this.passportEventEmitter = privateVars.passportEventEmitter;

0 commit comments

Comments
 (0)