page.tsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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="page-title">
  7. <h1>书架</h1>
  8. <p>现在书架里放了 4 本演示书,方便你直接测试书架布局、阅读页排版,以及从书架进入阅读器的整体体验。</p>
  9. </section>
  10. <section className="library-shell">
  11. <div className="library-grid">
  12. {demoBooks.map((book) => (
  13. <article className="book-card" key={book.id}>
  14. <div className="book-cover" style={{ ["--cover" as string]: book.coverStyle }}>
  15. <div className="book-cover__chip">{book.category}</div>
  16. <h2 className="book-cover__title">{book.title}</h2>
  17. <p className="book-cover__author">{book.author}</p>
  18. </div>
  19. <div className="book-body">
  20. <div className="chip-row">
  21. <span className="chip">{book.wordCount}</span>
  22. <span className="chip">{book.chapters.length} 章演示内容</span>
  23. </div>
  24. <p>{book.description}</p>
  25. <Link className="button button--primary" href={`/reader/${book.id}`}>
  26. 开始阅读
  27. </Link>
  28. </div>
  29. </article>
  30. ))}
  31. </div>
  32. </section>
  33. </main>
  34. );
  35. }