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);
}
}
}