diff --git a/src/app/components/board/task/task.component.ts b/src/app/components/board/task/task.component.ts index 32cfe83..d6dbd6b 100644 --- a/src/app/components/board/task/task.component.ts +++ b/src/app/components/board/task/task.component.ts @@ -29,8 +29,8 @@ export class TaskComponent { // Subtasks completedSubtasks() { - const subtasks = this.task.subtasksDone; - return subtasks.filter((subtask: boolean) => subtask === true).length; + return this.task.subtasksDone.filter((subtask: boolean) => subtask === true) + .length; } completedSubtasksPercent(): number { diff --git a/src/app/interfaces/user.interface.ts b/src/app/interfaces/user.interface.ts new file mode 100644 index 0000000..fb16657 --- /dev/null +++ b/src/app/interfaces/user.interface.ts @@ -0,0 +1,4 @@ +export interface User { + id?: string; + name: string; +} diff --git a/src/app/services/user.service.ts b/src/app/services/user.service.ts new file mode 100644 index 0000000..611fb4f --- /dev/null +++ b/src/app/services/user.service.ts @@ -0,0 +1,36 @@ +import { Injectable, inject } from '@angular/core'; +import { Firestore, collection, onSnapshot } from '@angular/fire/firestore'; +import { User } from '../interfaces/user.interface'; + +@Injectable({ + providedIn: 'root', +}) +export class UserService { + firestore: Firestore = inject(Firestore); + + allUsers: User[] = []; + + unsubUser; + + constructor() { + this.unsubUser = this.subUserList(); + } + + subUserList() { + return onSnapshot(this.getUserRef(), (list) => { + this.allUsers = []; + list.forEach((element) => { + const taskData = { ...(element.data() as User), id: element.id }; + this.allUsers.push(taskData); + }); + }); + } + + getUserRef() { + return collection(this.firestore, 'users'); + } + + ngOnDestroy() { + this.unsubUser; + } +}