Lab_2 (конец)
This commit is contained in:
@@ -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}>
|
||||
|
||||
Reference in New Issue
Block a user