diff --git a/CHANGELOG.md b/CHANGELOG.md index 251a51d93..717cf2813 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Changed + +- Migrated the login with access token dialog from `ngModel` to form control + ## 2.193.0 - 2025-08-22 ### Added diff --git a/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.component.ts b/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.component.ts index 9ee0adcdc..4f11f1025 100644 --- a/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.component.ts +++ b/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.component.ts @@ -6,6 +6,7 @@ import { import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service'; import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; +import { FormControl, Validators } from '@angular/forms'; import { MatCheckboxChange } from '@angular/material/checkbox'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Router } from '@angular/router'; @@ -20,6 +21,10 @@ import { eyeOffOutline, eyeOutline } from 'ionicons/icons'; standalone: false }) export class LoginWithAccessTokenDialog { + public accessTokenFormControl = new FormControl( + this.data.accessToken, + Validators.required + ); public isAccessTokenHidden = true; public constructor( @@ -45,8 +50,10 @@ export class LoginWithAccessTokenDialog { } public onLoginWithAccessToken() { - if (this.data.accessToken) { - this.dialogRef.close(this.data); + if (this.accessTokenFormControl.valid) { + this.dialogRef.close({ + accessToken: this.accessTokenFormControl.value + }); } } diff --git a/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html b/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html index 77191db8e..dca06f970 100644 --- a/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html +++ b/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -11,9 +11,8 @@ Security Token diff --git a/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.module.ts b/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.module.ts index d6035ae52..fcced81aa 100644 --- a/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.module.ts +++ b/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.module.ts @@ -1,7 +1,7 @@ import { TextFieldModule } from '@angular/cdk/text-field'; import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { ReactiveFormsModule } from '@angular/forms'; import { MatButtonModule } from '@angular/material/button'; import { MatCheckboxModule } from '@angular/material/checkbox'; import { MatDialogModule } from '@angular/material/dialog'; @@ -16,7 +16,6 @@ import { LoginWithAccessTokenDialog } from './login-with-access-token-dialog.com declarations: [LoginWithAccessTokenDialog], imports: [ CommonModule, - FormsModule, GfDialogHeaderModule, IonIcon, MatButtonModule,