import {Component, inject, OnInit, Signal} from "@angular/core"; import {MatProgressSpinnerModule} from "@angular/material/progress-spinner"; import {MyPublicationsService} from "./my-publications.service"; 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 { return toSignal(this.myPublicationsService.publications$, {initialValue: []}); } get isLoading(): Signal { return toSignal(this.myPublicationsService.isLoading$, {initialValue: false}); } get isLoaded(): Signal { return toSignal(this.myPublicationsService.isLoaded$, {initialValue: false}); } ngOnInit(): void { this.myPublicationsService.loadAuthenticatedUserPublications(); } }