import {Component, inject, OnInit, signal} from '@angular/core'; import {NzTableComponent} from "ng-zorro-antd/table"; import {Modal} from "../modal/modal"; import {DatePipe} from "@angular/common"; import {UpdateUser} from "../update-user/update-user"; import {GetUserDto, UsersService} from "../../services/api"; import {NzNotificationService} from "ng-zorro-antd/notification"; import {firstValueFrom} from "rxjs"; import {NzDividerComponent} from "ng-zorro-antd/divider"; import {ModalIcon} from "../modal-icon/modal-icon"; import {NzIconDirective} from "ng-zorro-antd/icon"; @Component({ selector: 'app-user-table', imports: [ DatePipe, Modal, NzTableComponent, UpdateUser, NzDividerComponent, ModalIcon, NzIconDirective, ], templateUrl: './user-table.html', styleUrl: './user-table.css', }) export class UserTable implements OnInit { private usersService = inject(UsersService); private notificationService = inject(NzNotificationService) users = signal([]); usersLoading = signal(false); async ngOnInit() { await this.fetchUsers(); } async fetchUsers() { this.usersLoading.set(true) try { const users = await firstValueFrom(this.usersService.getAllUsersEndpoint()) this.users.set(users); } catch (e) { this.notificationService.error( 'Erreur', 'Erreur de communication avec l\'API' ) } this.usersLoading.set(false) } delete() { return } }