From 221bf31259405e72913bdad0120da1031b39efd5 Mon Sep 17 00:00:00 2001 From: Chneemann Date: Mon, 1 Apr 2024 19:06:10 +0200 Subject: [PATCH] completed deleted contact --- .../contact-delete/contact-delete.component.html | 2 +- .../contact-delete/contact-delete.component.scss | 2 +- .../contact-delete/contact-delete.component.ts | 11 +++++++++-- .../contacts/contact-form/contact-form.component.ts | 5 +++-- src/app/services/user.service.ts | 13 +++++++++++-- 5 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/app/components/contacts/contact-delete/contact-delete.component.html b/src/app/components/contacts/contact-delete/contact-delete.component.html index b2af2c4..8cb8d6e 100644 --- a/src/app/components/contacts/contact-delete/contact-delete.component.html +++ b/src/app/components/contacts/contact-delete/contact-delete.component.html @@ -8,7 +8,7 @@
-
+
{{ "contact-delete-dialog.btn-delete" | translate }}
diff --git a/src/app/components/contacts/contact-delete/contact-delete.component.scss b/src/app/components/contacts/contact-delete/contact-delete.component.scss index 1619b6e..f07724a 100644 --- a/src/app/components/contacts/contact-delete/contact-delete.component.scss +++ b/src/app/components/contacts/contact-delete/contact-delete.component.scss @@ -62,7 +62,7 @@ section { } } -.btn-delete { +.btn-delete-contact { padding: 12px; margin: 12px 12px; border-radius: 10px; diff --git a/src/app/components/contacts/contact-delete/contact-delete.component.ts b/src/app/components/contacts/contact-delete/contact-delete.component.ts index 70dfdb5..aff771d 100644 --- a/src/app/components/contacts/contact-delete/contact-delete.component.ts +++ b/src/app/components/contacts/contact-delete/contact-delete.component.ts @@ -1,6 +1,8 @@ import { Component, Input } from '@angular/core'; import { SharedService } from '../../../services/shared.service'; import { TranslateModule } from '@ngx-translate/core'; +import { UserService } from '../../../services/user.service'; +import { Router } from '@angular/router'; @Component({ selector: 'app-contact-delete', @@ -12,10 +14,15 @@ import { TranslateModule } from '@ngx-translate/core'; export class ContactDeleteComponent { @Input() currentUserId!: string; - constructor(private sharedService: SharedService) {} + constructor( + private sharedService: SharedService, + private userService: UserService, + private router: Router + ) {} deleteContact() { - console.log('Contact deleted'); + this.userService.deleteUser(this.currentUserId); + this.router.navigate(['contacts']); this.sharedService.isDeleteContactDialogOpen = false; this.sharedService.isAnyDialogOpen = false; } diff --git a/src/app/components/contacts/contact-form/contact-form.component.ts b/src/app/components/contacts/contact-form/contact-form.component.ts index 0892281..33e88ef 100644 --- a/src/app/components/contacts/contact-form/contact-form.component.ts +++ b/src/app/components/contacts/contact-form/contact-form.component.ts @@ -57,8 +57,9 @@ export class ContactFormComponent implements OnChanges { } deleteContact() { - this.sharedService.isDeleteContactDialogOpen = true; - this.sharedService.isAnyDialogOpen = true; + this.userService.deleteUser(this.currentUserId); + this.sharedService.isDeleteContactDialogOpen = false; + this.sharedService.isAnyDialogOpen = false; } closeEditDialog() { diff --git a/src/app/services/user.service.ts b/src/app/services/user.service.ts index 972f729..f3c4218 100644 --- a/src/app/services/user.service.ts +++ b/src/app/services/user.service.ts @@ -2,6 +2,7 @@ import { Injectable, OnDestroy, inject } from '@angular/core'; import { Firestore, collection, + deleteDoc, doc, onSnapshot, updateDoc, @@ -50,9 +51,17 @@ export class UserService implements OnDestroy { .map((user) => user[query]); } - async updateUserData(userId: string, data: any) { + async deleteUser(docId: string) { + await deleteDoc(doc(collection(this.firestore, 'users'), docId)).catch( + (err) => { + console.error(err); + } + ); + } + + async updateUserData(docId: string, data: any) { await updateDoc( - doc(collection(this.firestore, 'users'), userId), + doc(collection(this.firestore, 'users'), docId), data ).catch((err) => { console.error(err);