import clsx from 'clsx'; import React from 'react'; import { MdOutlineCloudDownload, MdOutlineCloudUpload, MdOutlineDelete, MdOutlineEdit, } from 'react-icons/md'; import { Book } from '@/types/book'; import { BookMetadata } from '@/libs/document'; import { useTranslation } from '@/hooks/useTranslation'; import { formatAuthors, formatDate, formatBytes, formatLanguage, formatPublisher, formatTitle, } from '@/utils/book'; import BookCover from '@/components/BookCover'; import Dropdown from '../Dropdown'; import MenuItem from '../MenuItem'; interface BookDetailViewProps { book: Book; metadata: BookMetadata; fileSize: number | null; onEdit?: () => void; onDelete?: () => void; onDeleteCloudBackup?: () => void; onDeleteLocalCopy?: () => void; onDownload?: () => void; onUpload?: () => void; } const BookDetailView: React.FC = ({ book, metadata, fileSize, onEdit, onDelete, onDeleteCloudBackup, onDeleteLocalCopy, onDownload, onUpload, }) => { const _ = useTranslation(); return (

{formatTitle(book.title) || _('Untitled')}

{formatAuthors(book.author, book.primaryLanguage) || _('Unknown')}

{onEdit && ( )} {onDelete && ( } >
)} {book.uploadedAt && onDownload && ( )} {book.downloadedAt && onUpload && ( )}
{_('Publisher')}

{formatPublisher(metadata.publisher || '') || _('Unknown')}

{_('Published')}

{formatDate(metadata.published, true) || _('Unknown')}

{_('Updated')}

{formatDate(book.updatedAt) || ''}

{_('Added')}

{formatDate(book.createdAt) || ''}

{_('Language')}

{formatLanguage(metadata.language) || _('Unknown')}

{_('Subjects')}

{formatAuthors(metadata.subject || '') || _('Unknown')}

{_('Format')}

{book.format || _('Unknown')}

{_('File Size')}

{formatBytes(fileSize) || _('Unknown')}

{_('Description')}

); }; export default BookDetailView;