]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.ts
Add Podcast RSS feeds (#5487)
[github/Chocobozzz/PeerTube.git] / client / src / app / +my-account / my-account-settings / my-account-change-email / my-account-change-email.component.ts
index ec7cf935c7464d54c773916a0919f0362ac54cd5..ebb7ed2da301177060a36ebb7bd0f91df3a922c6 100644 (file)
@@ -1,11 +1,10 @@
-import { Component, OnInit } from '@angular/core'
-import { AuthService, Notifier, ServerService } from '@app/core'
-import { FormReactive, UserService } from '../../../shared'
-import { I18n } from '@ngx-translate/i18n-polyfill'
-import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service'
-import { UserValidatorsService } from '@app/shared/forms/form-validators/user-validators.service'
-import { User } from '../../../../../../shared'
+import { forkJoin } from 'rxjs'
 import { tap } from 'rxjs/operators'
+import { Component, OnInit } from '@angular/core'
+import { AuthService, Notifier, ServerService, UserService } from '@app/core'
+import { USER_EMAIL_VALIDATOR, USER_PASSWORD_VALIDATOR } from '@app/shared/form-validators/user-validators'
+import { FormReactive, FormReactiveService } from '@app/shared/shared-forms'
+import { HttpStatusCode, User } from '@shared/models'
 
 @Component({
   selector: 'my-account-change-email',
@@ -18,21 +17,19 @@ export class MyAccountChangeEmailComponent extends FormReactive implements OnIni
   user: User = null
 
   constructor (
-    protected formValidatorService: FormValidatorService,
-    private userValidatorsService: UserValidatorsService,
-    private notifier: Notifier,
+    protected formReactiveService: FormReactiveService,
     private authService: AuthService,
     private userService: UserService,
     private serverService: ServerService,
-    private i18n: I18n
+    private notifier: Notifier
   ) {
     super()
   }
 
   ngOnInit () {
     this.buildForm({
-      'new-email': this.userValidatorsService.USER_EMAIL,
-      'password': this.userValidatorsService.USER_PASSWORD
+      'new-email': USER_EMAIL_VALIDATOR,
+      password: USER_PASSWORD_VALIDATOR
     })
 
     this.user = this.authService.getUser()
@@ -42,32 +39,32 @@ export class MyAccountChangeEmailComponent extends FormReactive implements OnIni
     this.error = null
     this.success = null
 
-    const password = this.form.value[ 'password' ]
-    const email = this.form.value[ 'new-email' ]
-
-    this.userService.changeEmail(password, email)
-        .pipe(
-          tap(() => this.authService.refreshUserInformation())
-        )
-        .subscribe(
-          () => {
-            this.form.reset()
+    const password = this.form.value['password']
+    const email = this.form.value['new-email']
 
-            if (this.serverService.getConfig().signup.requiresEmailVerification) {
-              this.success = this.i18n('Please check your emails to verify your new email.')
-            } else {
-              this.success = this.i18n('Email updated.')
-            }
-          },
+    forkJoin([
+      this.serverService.getConfig(),
+      this.userService.changeEmail(password, email)
+    ]).pipe(tap(() => this.authService.refreshUserInformation()))
+      .subscribe({
+        next: ([ config ]) => {
+          this.form.reset()
 
-          err => {
-            if (err.status === 401) {
-              this.error = this.i18n('You current password is invalid.')
-              return
-            }
+          if (config.signup.requiresEmailVerification) {
+            this.success = $localize`Please check your emails to verify your new email.`
+          } else {
+            this.success = $localize`Email updated.`
+          }
+        },
 
-            this.error = err.message
+        error: err => {
+          if (err.status === HttpStatusCode.UNAUTHORIZED_401) {
+            this.error = $localize`You current password is invalid.`
+            return
           }
-        )
+
+          this.error = err.message
+        }
+      })
   }
 }