diff --git a/Lab/src/App.jsx b/Lab/src/App.jsx index 69e3c46..f025263 100644 --- a/Lab/src/App.jsx +++ b/Lab/src/App.jsx @@ -10,6 +10,8 @@ function App() { const [authors] = useState(data.authors); const [statuses] = useState(data.statuses); const [editingBook, setEditingBook] = useState(null); + const [statusFilter, setStatusFilter] = useState(""); // пусто — все книги + // Загрузка книг с сервера useEffect(() => { @@ -54,11 +56,34 @@ function App() { }); }; + // Фильтрация книг по статусу + const filteredBooks = statusFilter + ? books.filter( + book => + statuses.find(s => String(s.id) === String(book.statusId))?.name === statusFilter + ) + : books; + + return ( <> Книги + {/* --- Фильтр по статусу --- */} + + setStatusFilter(e.target.value)} + > + Все статусы + {statuses.map(s => ( + {s.name} + ))} + + + {/* --- Форма добавления/редактирования --- */} setEditingBook(null)} /> + {/* --- Список книг (фильтрованные) --- */} {book.title}