Lab_2 (конец)

This commit is contained in:
2025-12-15 21:04:09 +04:00
parent 75c6762acf
commit cb94a4459b

View File

@@ -46,18 +46,20 @@ const CatalogPage = () => {
const handleFormSubmit = async (eventData) => {
try {
const url = currentEvent ? `${API_URL}/${currentEvent.id}` : API_URL;
const method = currentEvent ? 'PUT' : 'POST';
console.log('Отправляемые данные:', eventData); // для отладки
// Преобразуем данные в новый формат Rq DTO
// ПРАВИЛЬНОЕ ФОРМИРОВАНИЕ ДАННЫХ
const requestData = {
title: eventData.title,
description: eventData.description,
imageUrl: eventData.imageUrl,
categoryId: 1, // Фиксированные значения для демонстрации
typeId: 1 // В реальном приложении нужно получать из формы
categoryId: eventData.category.id || eventData.categoryId,
typeId: eventData.type.id || eventData.typeId
};
const url = currentEvent ? `${API_URL}/${currentEvent.id}` : API_URL;
const method = currentEvent ? 'PUT' : 'POST';
const response = await fetch(url, {
method: method,
headers: {
@@ -67,10 +69,12 @@ const CatalogPage = () => {
});
if (!response.ok) {
throw new Error(`Ошибка ${method === 'POST' ? 'создания' : 'обновления'}: ${response.status}`);
const errorText = await response.text();
throw new Error(`Ошибка ${response.status}: ${errorText}`);
}
const result = await response.json();
console.log('Ответ от сервера:', result); // для отладки
if (currentEvent) {
setEvents(events.map(e => e.id === currentEvent.id ? result : e));
@@ -79,6 +83,7 @@ const CatalogPage = () => {
}
setIsFormOpen(false);
setCurrentEvent(null);
} catch (error) {
console.error('Ошибка при сохранении события:', error);
alert('Ошибка при сохранении события: ' + error.message);
@@ -106,12 +111,12 @@ const CatalogPage = () => {
const handleFormClose = () => {
setIsFormOpen(false);
setCurrentEvent(null);
};
const handleSortAsc = () => setSortOrder('asc');
const handleSortDesc = () => setSortOrder('desc');
// Функция сортировки
const getSortedEvents = (eventsList, order) => {
if (!eventsList || !Array.isArray(eventsList)) return [];
return [...eventsList].sort((a, b) => {
@@ -150,7 +155,6 @@ const CatalogPage = () => {
<h1>Каталог стримов и событий</h1>
<p>Выбирай из нашего ассортимента уникальных стримов, концертов и кибермероприятий.</p>
{/* Кнопки сортировки */}
<div className="mb-3">
<button className={`btn btn-sort ${sortOrder === 'asc' ? 'btn-sort-active' : 'btn-sort-inactive'}`}
onClick={handleSortAsc}>