import {
ChangeDetectionStrategy,
Component,
OnInit,
inject,
signal,
} from '@angular/core';
import { CommonModule } from '@angular/common';
import { AdminService, AdminUser } from '../../core/services/admin.service';
@Component({
selector: 'app-admin-users',
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [CommonModule],
template: `
Admin area
Loading users...
{{ error() }}
-
{{ u.username }} ({{ u.role }})
`,
})
export class AdminUsersComponent implements OnInit {
private readonly admin = inject(AdminService);
readonly users = signal([]);
readonly loading = signal(false);
readonly error = signal(null);
async ngOnInit(): Promise {
this.loading.set(true);
this.error.set(null);
try {
const list = await this.admin.listUsers();
this.users.set(list);
} catch (e: any) {
this.error.set(e?.error?.message ?? e?.message ?? 'Failed to load users');
} finally {
this.loading.set(false);
}
}
}