Не могу вывести ответ на страницу

Вот код компонента , когда делаю console.log(this.clients) получаю null больше кода на https://stackblitz.com/edit/angular-ivy-kxmq2c?file=src%2Fapp%2Fpages%2Fadmin%2Flist-client%2Flist-client.component.html

export class ListClientComponent implements OnInit {


  checkboxForm: FormGroup;

  clients: UserProfile[];

  id: Observable<number>;

  userName: any;

  userIsBlockedTrue = true;
  userIsBlockedFalse = false;

  pageNumber: number;
  pageSize: number;

  constructor(
    private store$: Store<AdminState>,
    private matDialog: MatDialog,
    private adminService: AdminService,
    private formBuilder: FormBuilder
  )
  {
    this.checkboxForm = this.formBuilder.group({
      userIsBlockedFalse: [false],
      userIsBlockedTrue: [false]
    });
  }

  ngOnInit(): void {

    this.store$.pipe(select(getPageNumber)).subscribe(
      data => {
        this.pageNumber = data;
      }
    );

    this.store$.pipe(select(getPageSize)).subscribe(
      data => {
        this.pageSize = data;
      }
    );

    this.store$.dispatch(new GetClientList({
        pageNumber: this.pageNumber,
        pageSize: this.pageSize
      }
    ));

    this.store$.pipe(select(selectProfileModel)).subscribe(
      data => {
        this.clients = data;
        console.log(this.clients);
      }
    );
    this.id = this.store$.pipe(select(selectDeleteId));

  }

Код html,


<div class="container">
    <label class="listText">Users managment</label>
    <table mat-table [dataSource]="(clients)">

        <ng-container matColumnDef="userName">
            <th class="list" mat-header-cell *matHeaderCellDef >
                User Name
                <img class="adminMenuImg" src="../../../../assets/menu.png" mat-button [matMenuTriggerFor]="menu"/>
                <mat-menu #menu="matMenu">
                    <input class="adminMenuInput" type="text" mat-menu-item [(ngModel)]="userName" (ngModelChange)="searchByName()"
                        placeholder="search"/>
                </mat-menu>
            </th>
            <td mat-cell *matCellDef="let user">{{user.firstName}} {{user.lastName}}</td>
        </ng-container>

        <ng-container matColumnDef="userEmail">
            <th class="list" mat-header-cell *matHeaderCellDef >User Email</th>
            <td mat-cell *matCellDef="let user">{{user.email}}</td>
        </ng-container>

        <ng-container matColumnDef="status">
            <th class="list" mat-header-cell *matHeaderCellDef >
                Status
                <img class="adminMenuImg" src="../../../../assets/menu.png" mat-button [matMenuTriggerFor]="menu"/>
                <mat-menu #menu="matMenu">
                    <form [formGroup]="checkboxForm">
                        <div class="divInline">
                            <div class="labelRightActive">
                                <label>Active</label>
                            </div>
                            <div class="checkboxLeft">
                                <input type="checkbox" formControlName="userIsBlockedFalse" mat-menu-item  (change)="searchByIsBlockedFalse()"/>
                            </div>          
                        </div>
                       <div>
                           <div class="labelRightBlocked">
                                <label>Blocked</label>
                           </div>
                           <div class="checkboxLeft">
                                <input type="checkbox"  formControlName="userIsBlockedTrue" mat-menu-item  (change)="searchByIsBlockedTrue()"/>
                           </div>
                       </div>
                    </form>
                </mat-menu>
            </th>
            <td class="adminSlider" mat-cell *matCellDef="let user"><mat-slide-toggle (change)="blockUnBlock(user)" [checked]="user.isBlocked" ></mat-slide-toggle></td>
        </ng-container>

        <ng-container  matColumnDef="buttons">
            <th class="adminButtons" class="list" mat-header-cell *matHeaderCellDef ></th>
            <td mat-cell *matCellDef="let user">
                <a class="listEditButton" (click)="editUser(user)"><img class="listEditImg" src="../../../../assets/edit.png"/></a>
                <a class="listDeleteButton" (click)="deleteUser(user.id)"><img class="listDeleteImg" src="../../../../assets/delete.png"/></a>               
            </td>
        </ng-container>

        <tr mat-header-row *matHeaderRowDef="['userName', 'userEmail', 'status', 'buttons']"></tr>
        <tr mat-row *matRowDef="let row; columns: ['userName', 'userEmail', 'status', 'buttons']"></tr>

    </table>
    
</div>

Action

export enum EClientListAction{
    GetClientList = '[GetClientList] GetClientList',
    GetClientListSuccess = '[GetClientList] GetClientListSuccess',
    GetClientListError = '[GetClientList] GetClientListError',
}

export class GetClientList implements Action {
    public readonly type = EClientListAction.GetClientList;
    constructor(public payload: PageQuery){}
}

export class GetClientListSuccess implements Action {
    public readonly type = EClientListAction.GetClientListSuccess;
    constructor(public payload: PageResponse){}
}

export class GetClientListError implements Action {
    public type = EClientListAction.GetClientListError;
    constructor(public payload: any){}
}


export type GetListClient =  GetClientList | GetClientListSuccess | GetClientListError;

Reducers


export const getClientRegucer = (
    state = initialClientState,
    action: GetListClient
): ListClientState => {
    switch (action.type){
        case EClientListAction.GetClientListSuccess: {
            return {
                ...state,
                pageNumber: action.payload.pageNumber,
                pageSize: action.payload.pageSize,
                nextPage: action.payload.nextPage,
                previousPage: action.payload.previousPage,
            };
        }
        default: {
            return {
                ...state
            };
        }
    }
};

Selector

export const selectProfileModel = createSelector(
    selectClient,
    (state: AdminState): UserProfile[] => state.listClientState.listClientModel
);

export const getPageSize = createSelector(
    selectClient,
    (state: AdminState) => state.listClientState.pageSize
);

export const getPageNumber = createSelector(
    selectClient,
    (state: AdminState) => state.listClientState.pageNumber
);

export const getNextPage = createSelector(
    selectClient,
    (state: AdminState) => state.listClientState.nextPage
);

export const getPreviousPage = createSelector(
    selectClient,
    (state: AdminState) => state.listClientState.previousPage
);

export const getError = createSelector(
    selectClient,
    (state: AdminState) => state.listClientState.error
);

State


export interface ListClientState{
    listClientModel: UserProfile[];
    pageNumber: number;
    pageSize: number;
    nextPage: string;
    previousPage: string;
    error: any;
}

export const initialClientState: ListClientState = {
    listClientModel: null,
    pageNumber: 1,
    pageSize: 5,
    nextPage: null,
    previousPage: null,
    error: null
};

Effect

 @Effect()
    GetClients = this.actions$.pipe(
        ofType<clientListAction.GetClientList>(clientListAction.EClientListAction.GetClientList),
        mergeMap((action: clientListAction.GetClientList) =>
            this.adminService.getClients(action.payload).pipe(
                map((model: PageResponse) => {
                    console.log(model);
                    return new clientListAction.GetClientListSuccess(model);
                }),
                catchError((error) => {
                    console.log(error);
                    return of(new clientListAction.GetClientListError(error));
                })
            ))
    )

Service метод получения пользователей

 getClients(paginationQuery: PageQuery): Observable<PageResponse>{
    let params = new HttpParams()
                                .set('pageNumber', paginationQuery.pageNumber.toString())
                                .set('pageSize', paginationQuery.pageSize.toString());
    return this.http.get<PageResponse>(`${environment.apiUrl}admin/getusers`, { params });
  }

Результат в консоле

{data: Array(3), pageNumber: 1, pageSize: 5, nextPage: "http://localhost:60397/?pageNumber=2&pageSize=5", previousPage: null}
data: Array(3)
0: {firstName: "dima", lastName: "vovk", confirmedEmail: true, isBlocked: false, id: "236f4fe0-28e8-4537-921f-3846f54a61fe", …}
1: {firstName: "Admin", lastName: "Admin", confirmedEmail: true, isBlocked: false, id: "4769fe6a-d893-40b8-b84f-05ce1a6a3df0", …}
2: {firstName: "vitalik", lastName: "basanets", confirmedEmail: true, isBlocked: false, id: "f9bbfe8c-07d5-4602-9931-b70c9babb177", …}
length: 3
__proto__: Array(0)
nextPage: "http://localhost:60397/?pageNumber=2&pageSize=5"
pageNumber: 1
pageSize: 5
previousPage: null
__proto__: Object

Ответы (0 шт):