diff --git a/src/app/components/add-task/add-task.component.ts b/src/app/components/add-task/add-task.component.ts index ed2982a..3476a9c 100644 --- a/src/app/components/add-task/add-task.component.ts +++ b/src/app/components/add-task/add-task.component.ts @@ -6,6 +6,7 @@ import { User } from '../../interfaces/user.interface'; import { FirebaseService } from '../../services/firebase.service'; import { Task } from '../../interfaces/task.interface'; import { OverlayService } from '../../services/overlay.service'; +import { empty } from 'rxjs'; @Component({ selector: 'app-add-task', @@ -179,12 +180,19 @@ export class AddTaskComponent { this.firebaseService.addNewTask(taskWithoutId); this.removeTaskData(); } else { - this.closeOverlay(); + if (this.getTaskData(overlayData).length > 0) { + const { id, ...taskWithoutId } = this.taskData; + this.firebaseService.replaceTaskData(overlayData, taskWithoutId); + this.closeOverlay(); + } } } } - deleteTaskData(overlayData: string) {} + deleteTaskData(overlayData: string) { + this.firebaseService.deleteTask(overlayData); + this.closeOverlay(); + } @HostListener('document:click', ['$event']) checkOpenNavbar(event: MouseEvent) { diff --git a/src/app/services/firebase.service.ts b/src/app/services/firebase.service.ts index 9c4bed8..9b673a9 100644 --- a/src/app/services/firebase.service.ts +++ b/src/app/services/firebase.service.ts @@ -7,6 +7,7 @@ import { deleteDoc, doc, onSnapshot, + setDoc, updateDoc, } from '@angular/fire/firestore'; import { Task } from '../interfaces/task.interface'; @@ -51,7 +52,7 @@ export class FirebaseService implements OnDestroy { return this.filteredTasks; } - async updateTask(taskId: any, index: number) { + async updateTask(taskId: string, index: number) { await updateDoc(doc(collection(this.firestore, 'tasks'), taskId), { status: this.allTasks[index].status, }).catch((err) => { @@ -59,7 +60,7 @@ export class FirebaseService implements OnDestroy { }); } - async updateSubTask(taskId: any, array: boolean[]) { + async updateSubTask(taskId: string, array: boolean[]) { await updateDoc(doc(collection(this.firestore, 'tasks'), taskId), { subtasksDone: array, }).catch((err) => { @@ -67,6 +68,23 @@ export class FirebaseService implements OnDestroy { }); } + async replaceTaskData(taskId: string, newData: Task) { + await setDoc( + doc(collection(this.firestore, 'tasks'), taskId), + newData + ).catch((err) => { + console.error(err); + }); + } + + async deleteTask(taskId: string) { + await deleteDoc(doc(collection(this.firestore, 'tasks'), taskId)).catch( + (err) => { + console.error(err); + } + ); + } + async addNewTask(task: Task) { await addDoc(collection(this.firestore, 'tasks'), task) .catch((err) => { diff --git a/src/app/shared/components/overlay/task-overlay/task-overlay.component.html b/src/app/shared/components/overlay/task-overlay/task-overlay.component.html index 11b6c99..f5243ef 100644 --- a/src/app/shared/components/overlay/task-overlay/task-overlay.component.html +++ b/src/app/shared/components/overlay/task-overlay/task-overlay.component.html @@ -83,7 +83,7 @@
Delete