import { useEffect, useMemo, useState } from 'react' import type { Book } from '../../types' import { fetchBooks, updateBook } from '../../api/books' import MetadataForm from '../../components/MetadataForm/MetadataForm' import s from './Metadata.module.css' export default function Metadata() { const [books, setBooks] = useState([]) const [selected, setSelected] = useState(null) const [query, setQuery] = useState('') useEffect(() => { fetchBooks().then(list => { setBooks(list) if (list.length > 0) setSelected(list[0]) }) }, []) const filtered = useMemo(() => books.filter(b => !query || b.title.toLowerCase().includes(query.toLowerCase()) || b.authors.some(a => a.name.toLowerCase().includes(query.toLowerCase())) ), [books, query]) function handleSave(patch: Partial) { if (!selected) return updateBook(selected.id, patch).then(updated => { setBooks(bs => bs.map(b => b.id === updated.id ? updated : b)) setSelected(updated) }) } return (
{selected ? ( <>
{selected.title[0]}

{selected.title}

{selected.authors.map(a => a.name).join(', ')}

) : (
Select a book to edit metadata
)}
) }