page.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. import Link from "next/link";
  2. import { demoBooks } from "@/data/demo-books";
  3. export default function LibraryPage() {
  4. return (
  5. <main className="page-shell">
  6. <section className="library-shell">
  7. <div className="library-grid">
  8. {demoBooks.map((book) => (
  9. <article className="book-card" key={book.id}>
  10. <div className="book-cover" style={{ ["--cover" as string]: book.coverStyle }}>
  11. <div className="book-cover__chip">{book.category}</div>
  12. <h2 className="book-cover__title">{book.title}</h2>
  13. <p className="book-cover__author">{book.author}</p>
  14. </div>
  15. <div className="book-body">
  16. <div className="chip-row">
  17. <span className="chip">{book.wordCount}</span>
  18. <span className="chip">{book.chapters.length} 章演示内容</span>
  19. </div>
  20. <p>{book.description}</p>
  21. <Link className="button button--primary" href={`/reader/${book.id}`}>
  22. 开始阅读
  23. </Link>
  24. </div>
  25. </article>
  26. ))}
  27. </div>
  28. </section>
  29. </main>
  30. );
  31. }