/** * @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 { BooksService } from '../../services/books.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 { CommentDisplayComponent } from '../comment-display/comment-display.component'; import { Book, BookStatus, CreateBookDto, UpdateBookDto, Comment, SuggestionEntity, Link } from '@library/shared-types'; @Component({ selector: 'app-books-list', standalone: true, imports: [CommonModule, FormsModule, PaginationComponent, LikeButtonComponent, CommentDisplayComponent], template: `
No books found in this category.
📚 {{ book.series }}@if (book.seriesOrder) { #{{ book.seriesOrder }}}
} {{ getStatusLabel(book.status) }} @if (book.rating) { }ISBN: {{ book.isbn }}
} @if (book.notes) {{{ book.notes }}
} @if (book.tags && book.tags.length > 0) { } @if (book.links && book.links.length > 0) {Started: {{ formatDate(book.dateStarted) }}
} @if (book.dateFinished) {Finished: {{ formatDate(book.dateFinished) }}
} @if (book.createdAt) {Added: {{ formatDate(book.createdAt) }}
} @if (book.updatedAt) {Updated: {{ formatDate(book.updatedAt) }}
} @if (authService.isAdmin()) {