47 lines
1.7 KiB
TypeScript
47 lines
1.7 KiB
TypeScript
import {Component, inject, OnInit, Signal} from "@angular/core";
|
|
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
|
import { MyPublicationsService } from "./my-publications.service";
|
|
import { Observable } from "rxjs";
|
|
import { PublicationListComponent } from "../../components/publication-list/publication-list.component";
|
|
import { Publication } from "../../core/rest-services/publications/model/publication";
|
|
import { CommonModule } from "@angular/common";
|
|
import { RouterModule } from "@angular/router";
|
|
import { MatTooltipModule } from "@angular/material/tooltip";
|
|
import { MatRippleModule } from "@angular/material/core";
|
|
import {toSignal} from "@angular/core/rxjs-interop";
|
|
|
|
|
|
@Component({
|
|
selector: 'app-my-component',
|
|
templateUrl: './my-publications.component.html',
|
|
styleUrl: './my-publications.component.scss',
|
|
imports: [
|
|
CommonModule,
|
|
MatProgressSpinnerModule,
|
|
MatRippleModule,
|
|
MatTooltipModule,
|
|
PublicationListComponent,
|
|
RouterModule
|
|
],
|
|
providers: [MyPublicationsService]
|
|
})
|
|
export class MyPublicationsComponent implements OnInit {
|
|
private readonly myPublicationsService = inject(MyPublicationsService);
|
|
|
|
get publications(): Signal<Publication[]> {
|
|
return toSignal(this.myPublicationsService.publications$, { initialValue: [] });
|
|
}
|
|
|
|
get isLoading(): Signal<boolean> {
|
|
return toSignal(this.myPublicationsService.isLoading$, { initialValue: false });
|
|
}
|
|
|
|
get isLoaded(): Signal<boolean> {
|
|
return toSignal(this.myPublicationsService.isLoaded$, { initialValue: false });
|
|
}
|
|
|
|
ngOnInit(): void {
|
|
this.myPublicationsService.loadAuthenticatedUserPublications();
|
|
}
|
|
}
|