import { Component, computed, inject, input } from '@angular/core'; import { Router } from '@angular/router'; import { PageShellComponent } from '@shared/ui/templates/page-shell.component'; import { AsyncComponent } from '@shared/ui/molecules/async.component'; import { fromResource } from '@shared/application/remote-data'; import { UserListComponent } from '@users/ui/organisms/user-list.component'; import { UserDetailComponent } from '@users/ui/organisms/user-detail.component'; import { usersResource } from '@users/application/users.resource'; import { isEmptyUserList } from '@users/domain/user'; @Component({ selector: 'app-users-page', imports: [PageShellComponent, AsyncComponent, UserListComponent, UserDetailComponent], template: ` @if (selectedUserId(); as id) { } @else { @let list = listData(); @if (list.tag === 'Success' && list.value) { } } `, }) export class UsersPage { protected router = inject(Router); userId = input(); protected selectedUserId = computed(() => { const id = this.userId(); return id ? Number(id) : null; }); protected usersResource = usersResource(); protected listData = computed(() => fromResource(this.usersResource, isEmptyUserList)); }