Consolidated commit message to v22 signals
This commit is contained in:
@@ -1,16 +0,0 @@
|
||||
import { DataSource } from '@angular/cdk/collections';
|
||||
import { Observable, of as observableOf } from 'rxjs';
|
||||
|
||||
import { Period } from '../period';
|
||||
|
||||
export class PeriodListDataSource extends DataSource<Period> {
|
||||
constructor(public data: Period[]) {
|
||||
super();
|
||||
}
|
||||
|
||||
connect(): Observable<Period[]> {
|
||||
return observableOf(this.data);
|
||||
}
|
||||
|
||||
disconnect() {}
|
||||
}
|
||||
@@ -6,23 +6,29 @@
|
||||
</a>
|
||||
</h2>
|
||||
|
||||
<mat-table #table [dataSource]="dataSource" aria-label="Elements">
|
||||
<!-- Valid From Column -->
|
||||
<ng-container matColumnDef="validFrom">
|
||||
<mat-header-cell *matHeaderCellDef>Valid From</mat-header-cell>
|
||||
<mat-cell *matCellDef="let row">
|
||||
<a [routerLink]="['/periods', row.id]">
|
||||
{{ row.validFrom }}
|
||||
</a>
|
||||
</mat-cell>
|
||||
</ng-container>
|
||||
@if (listResource.isLoading()) {
|
||||
<app-skeleton-loader type="table" [count]="1" />
|
||||
} @else if (listResource.error()) {
|
||||
<app-error-state [message]="'Failed to load list.'" (retryAction)="listResource.reload()" />
|
||||
} @else {
|
||||
<mat-table #table [dataSource]="dataSource()">
|
||||
<!-- Valid From Column -->
|
||||
<ng-container matColumnDef="validFrom">
|
||||
<mat-header-cell *matHeaderCellDef>Valid From</mat-header-cell>
|
||||
<mat-cell *matCellDef="let row">
|
||||
<a [routerLink]="['/periods', row.id]">
|
||||
{{ row.validFrom }}
|
||||
</a>
|
||||
</mat-cell>
|
||||
</ng-container>
|
||||
|
||||
<!-- Valid Till Column -->
|
||||
<ng-container matColumnDef="validTill">
|
||||
<mat-header-cell *matHeaderCellDef>Valid Till</mat-header-cell>
|
||||
<mat-cell *matCellDef="let row">{{ row.validTill }}</mat-cell>
|
||||
</ng-container>
|
||||
<!-- Valid Till Column -->
|
||||
<ng-container matColumnDef="validTill">
|
||||
<mat-header-cell *matHeaderCellDef>Valid Till</mat-header-cell>
|
||||
<mat-cell *matCellDef="let row">{{ row.validTill }}</mat-cell>
|
||||
</ng-container>
|
||||
|
||||
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
|
||||
<mat-row *matRowDef="let row; columns: displayedColumns"></mat-row>
|
||||
</mat-table>
|
||||
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
|
||||
<mat-row *matRowDef="let row; columns: displayedColumns"></mat-row>
|
||||
</mat-table>
|
||||
}
|
||||
|
||||
@@ -1,38 +1,27 @@
|
||||
import { Component, inject, OnInit } from '@angular/core';
|
||||
import { Component, computed, inject } from '@angular/core';
|
||||
import { MatButtonModule } from '@angular/material/button';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
import { MatTableModule } from '@angular/material/table';
|
||||
import { ActivatedRoute, RouterModule } from '@angular/router';
|
||||
import { RouterModule } from '@angular/router';
|
||||
|
||||
import { Period } from '../period';
|
||||
import { PeriodListDataSource } from './period-list-datasource';
|
||||
import { ErrorStateComponent } from '../../shared/error-state/error-state.component';
|
||||
import { SkeletonLoaderComponent } from '../../shared/skeleton-loader/skeleton-loader.component';
|
||||
import { PeriodService } from '../period.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-period-list',
|
||||
templateUrl: './period-list.component.html',
|
||||
styleUrls: ['./period-list.component.css'],
|
||||
imports: [RouterModule, MatIconModule, MatTableModule, MatButtonModule],
|
||||
|
||||
imports: [RouterModule, MatIconModule, MatTableModule, MatButtonModule, SkeletonLoaderComponent, ErrorStateComponent],
|
||||
})
|
||||
export class PeriodListComponent implements OnInit {
|
||||
private route = inject(ActivatedRoute);
|
||||
export class PeriodListComponent {
|
||||
private ser = inject(PeriodService);
|
||||
listResource = this.ser.list();
|
||||
list = computed(() => this.listResource.value() ?? []);
|
||||
|
||||
dataSource: PeriodListDataSource;
|
||||
|
||||
list: Period[] = [];
|
||||
dataSource = this.list;
|
||||
|
||||
/** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */
|
||||
displayedColumns = ['validFrom', 'validTill'];
|
||||
|
||||
constructor() {
|
||||
this.dataSource = new PeriodListDataSource(this.list);
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.route.data.subscribe((value) => {
|
||||
const data = value as { list: Period[] };
|
||||
|
||||
this.list = data.list;
|
||||
});
|
||||
this.dataSource = new PeriodListDataSource(this.list);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user