import React from "react"; import { Heart, Star, Trash2 } from "lucide-react"; const PLACEHOLDER_IMG = "/content/cover-not-found.jpg"; const BookCard = ({ book, showShelfControls = false, isInCollection = false, onOpenBook, onRemove, onRatingChange, onStatusChange, }) => { return (
{book.title} onOpenBook(book)} onError={(e) => { e.target.onerror = null; e.target.src = PLACEHOLDER_IMG; }} /> {/* Hover highlight overlay (Discovery mode only) */} {!showShelfControls && (
onOpenBook(book)} >

{book.aiHighlight}

)} {/* Collection badge */} {isInCollection && (
)} {/* Rank Badge - Discovery mode only */} {!showShelfControls && book.rank && (
#{book.rank}
)} {/* Remove button - Bookshelf mode only */} {showShelfControls && onRemove && ( )}

onOpenBook(book)} > {book.title}

{book.author} {!showShelfControls && book.rating > 0 && (
{book.rating.toFixed(1)}
)}
{book.emotions && Object.keys(book.emotions).length > 0 ? ( {Object.entries(book.emotions).reduce((a, b) => (a[1] > b[1] ? a : b))[0]} ) : ( )}
{/* Rating and Status for Bookshelf View */} {showShelfControls && (
{/* Star Rating */}
{[1, 2, 3, 4, 5].map((star) => ( ))}
{/* Status Dropdown */}
)}
); }; export default BookCard;