update task query from firebase

This commit is contained in:
Chneemann 2024-03-26 23:00:15 +01:00
parent cedcb7bc4f
commit 136f280705
3 changed files with 14 additions and 21 deletions

View file

@ -28,10 +28,6 @@ export class BoardComponent {
}); });
} }
ngOnDestroy() {
this.taskService.unsubTask();
}
getTask(status: string) { getTask(status: string) {
if (this.taskService.filteredTasks.length > 0) { if (this.taskService.filteredTasks.length > 0) {
return this.taskService.filteredTasks.filter( return this.taskService.filteredTasks.filter(

View file

@ -19,7 +19,7 @@ export class SummaryComponent {
urgentTasksDate: String = ''; urgentTasksDate: String = '';
constructor(private taskService: TaskService) { constructor(private taskService: TaskService) {
this.taskService.tasksLoaded.subscribe(() => { this.taskService.subTaskList().subscribe(() => {
this.updateTasksCount(); this.updateTasksCount();
this.updateAllTasksCount(); this.updateAllTasksCount();
this.updateUrgentTasksCount(); this.updateUrgentTasksCount();

View file

@ -7,31 +7,32 @@ import {
updateDoc, updateDoc,
} from '@angular/fire/firestore'; } from '@angular/fire/firestore';
import { Task } from '../interfaces/task.interface'; import { Task } from '../interfaces/task.interface';
import { Observable } from 'rxjs';
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',
}) })
export class TaskService { export class TaskService {
firestore: Firestore = inject(Firestore); firestore: Firestore = inject(Firestore);
tasksLoaded: EventEmitter<void> = new EventEmitter<void>();
allTasks: Task[] = []; allTasks: Task[] = [];
filteredTasks: Task[] = []; filteredTasks: Task[] = [];
unsubTask; constructor() {}
constructor() {
this.unsubTask = this.subTaskList();
}
subTaskList() { subTaskList() {
return onSnapshot(this.getTaskRef(), (list) => { return new Observable<void>((observer) => {
const unsubscribe = onSnapshot(this.getTaskRef(), (list) => {
this.allTasks = []; this.allTasks = [];
list.forEach((element) => { list.forEach((element) => {
const taskData = { ...(element.data() as Task), id: element.id }; const taskData = { ...(element.data() as Task), id: element.id };
this.allTasks.push(taskData); this.allTasks.push(taskData);
}); });
this.tasksLoaded.emit(); observer.next();
});
// Cleanup function
return () => unsubscribe();
}); });
} }
@ -56,8 +57,4 @@ export class TaskService {
status: task.status, status: task.status,
}; };
} }
ngOnDestroy() {
this.unsubTask;
}
} }