diff --git a/frontend/projects/shared-meet-components/src/lib/pages/index.ts b/frontend/projects/shared-meet-components/src/lib/pages/index.ts index 24e34a4..58bb016 100644 --- a/frontend/projects/shared-meet-components/src/lib/pages/index.ts +++ b/frontend/projects/shared-meet-components/src/lib/pages/index.ts @@ -9,6 +9,7 @@ export * from './console/about/about.component'; export * from './console/overview/overview.component'; export * from './console/login/login.component'; export * from './room-creator/room-creator.component'; +export * from './login/login.component'; export * from './video-room/video-room.component'; export * from './participant-name-form/participant-name-form.component'; export * from './disconnected/disconnected.component'; diff --git a/frontend/projects/shared-meet-components/src/lib/pages/login/login.component.ts b/frontend/projects/shared-meet-components/src/lib/pages/login/login.component.ts index 606e562..df7d070 100644 --- a/frontend/projects/shared-meet-components/src/lib/pages/login/login.component.ts +++ b/frontend/projects/shared-meet-components/src/lib/pages/login/login.component.ts @@ -5,7 +5,7 @@ import { MatButton } from '@angular/material/button'; import { MatIcon } from '@angular/material/icon'; import { MatToolbar } from '@angular/material/toolbar'; import { MatTooltip } from '@angular/material/tooltip'; -import { Router } from '@angular/router'; +import { ActivatedRoute, Router } from '@angular/router'; import { ContextService, AuthService } from '../../services/index'; import { HttpErrorResponse } from '@angular/common/http'; @@ -26,9 +26,11 @@ export class LoginComponent { password: new FormControl('', [Validators.required, Validators.minLength(4)]) }); loginErrorMessage: string | undefined; + redirectTo = ''; // By default, redirect to RoomCreatorComponent constructor( private router: Router, + private route: ActivatedRoute, private authService: AuthService, private contextService: ContextService ) {} @@ -37,6 +39,11 @@ export class LoginComponent { this.version = this.contextService.getVersion(); this.openviduLogoUrl = this.contextService.getOpenViduLogoUrl(); this.backgroundImageUrl = this.contextService.getBackgroundImageUrl(); + const redirectParam = this.route.snapshot.queryParams['redirectTo']; + + if (redirectParam) { + this.redirectTo = redirectParam; + } } async login() { @@ -53,7 +60,7 @@ export class LoginComponent { return; } - this.router.navigate(['']); + this.router.navigate([this.redirectTo]); } catch (error) { if ((error as HttpErrorResponse).status === 429) { this.loginErrorMessage = 'Too many login attempts. Please try again later';