/** * @copyright 2026 NHCarrigan * @license Naomi's Public License * @author Naomi Carrigan */ import { Component, OnInit, inject, signal, computed } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormsModule } from '@angular/forms'; import { MusicService } from '../../services/music.service'; import { AuthService } from '../../services/auth.service'; import { CommentsService } from '../../services/comments.service'; import { SanitizeService } from '../../services/sanitize.service'; import { SuggestionService } from '../../services/suggestion.service'; import { PaginationComponent } from '../shared/pagination.component'; import { LikeButtonComponent } from '../shared/like-button.component'; import { Music, MusicStatus, MusicType, CreateMusicDto, UpdateMusicDto, Comment, SuggestionEntity, Link } from '@library/shared-types'; @Component({ selector: 'app-music-list', standalone: true, imports: [CommonModule, FormsModule, PaginationComponent, LikeButtonComponent], template: `
No music found with these filters.
{{ music.artist }}
{{ music.notes }}
} @if (music.tags && music.tags.length > 0) { } @if (music.links && music.links.length > 0) {Started: {{ formatDate(music.dateStarted) }}
} @if (music.dateFinished) {Finished: {{ formatDate(music.dateFinished) }}
} @if (music.createdAt) {Added: {{ formatDate(music.createdAt) }}
} @if (music.updatedAt) {Updated: {{ formatDate(music.updatedAt) }}
} @if (authService.isAdmin()) {