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 { 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(); } }