import { Component, OnInit, signal } from '@angular/core'; import { CommonModule } from '@angular/common'; import { MatTableModule } from '@angular/material/table'; import { MatChipsModule } from '@angular/material/chips'; import { MatCardModule } from '@angular/material/card'; import { ApiService } from '../../../core/services/api.service'; import { NotificationService } from '../../../core/services/notification.service'; @Component({ selector: 'app-user-list', standalone: true, imports: [CommonModule, MatTableModule, MatChipsModule, MatCardModule], template: ` All Users
Name {{ user.name }} Email {{ user.email }} Role {{ user.role }} Wallet {{ user.walletAddress }}
`, styles: [` .full-width { width: 100%; } .wallet-addr { font-size: 0.75rem; } `] }) export class UserListComponent implements OnInit { users: any[] = []; displayedColumns = ['name', 'email', 'role', 'wallet']; readonly loading = signal(false); constructor(private api: ApiService, private notification: NotificationService) {} async ngOnInit() { this.loading.set(true); try { this.users = await this.api.get('/admin/users').toPromise() || []; } catch (error) { this.loading.set(false); this.notification.error('Failed to load users. Please try again.'); console.error('Error:', error); } finally { this.loading.set(false); } } }