aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts')
-rw-r--r--client/src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts46
1 files changed, 46 insertions, 0 deletions
diff --git a/client/src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts b/client/src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts
new file mode 100644
index 000000000..63a121f64
--- /dev/null
+++ b/client/src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts
@@ -0,0 +1,46 @@
1import { Component, Input } from '@angular/core'
2import { NotificationsService } from 'angular2-notifications'
3import { AuthService, ConfirmService, RedirectService } from '../../../core'
4import { UserService } from '../../../shared'
5import { I18n } from '@ngx-translate/i18n-polyfill'
6import { User } from '@app/shared'
7
8@Component({
9 selector: 'my-account-danger-zone',
10 templateUrl: './my-account-danger-zone.component.html',
11 styleUrls: [ './my-account-danger-zone.component.scss' ]
12})
13export class MyAccountDangerZoneComponent {
14 @Input() user: User = null
15
16 constructor (
17 private authService: AuthService,
18 private notificationsService: NotificationsService,
19 private userService: UserService,
20 private confirmService: ConfirmService,
21 private redirectService: RedirectService,
22 private i18n: I18n
23 ) { }
24
25 async deleteMe () {
26 const res = await this.confirmService.confirmWithInput(
27 this.i18n('Are you sure you want to delete your account? This will delete all you data, including channels, videos etc.'),
28 this.i18n('Type your username to confirm'),
29 this.user.username,
30 this.i18n('Delete your account'),
31 this.i18n('Delete my account')
32 )
33 if (res === false) return
34
35 this.userService.deleteMe().subscribe(
36 () => {
37 this.notificationsService.success(this.i18n('Success'), this.i18n('Your account is deleted.'))
38
39 this.authService.logout()
40 this.redirectService.redirectToHomepage()
41 },
42
43 err => this.notificationsService.error(this.i18n('Error'), err.message)
44 )
45 }
46}