готова лаб1бэк
бэйби ай эм бэк
This commit is contained in:
@@ -14,20 +14,14 @@ const ProductForm = ({ product, categories, conditions, onSubmit, onCancel, isEd
|
||||
// Заполняем форму данными товара при редактировании
|
||||
useEffect(() => {
|
||||
if (isEditing && product) {
|
||||
console.log('🔍 ProductForm - продукт для редактирования:', product);
|
||||
|
||||
setFormData({
|
||||
name: product.name || '',
|
||||
price: product.price || '',
|
||||
categoryId: product.category || product.categoryId || '',
|
||||
conditionId: product.condition || product.conditionId || '',
|
||||
categoryId: product.category || '',
|
||||
conditionId: product.condition || '',
|
||||
description: product.description || '',
|
||||
image: product.image || product.imageUrl || product.imageURL || '' // ← ВАЖНО
|
||||
});
|
||||
|
||||
console.log('🔍 ProductForm - установлен formData:', {
|
||||
name: product.name,
|
||||
image: product.image || product.imageUrl || product.imageURL
|
||||
image: product.image || ''
|
||||
});
|
||||
}
|
||||
}, [product, isEditing]);
|
||||
@@ -42,21 +36,15 @@ const ProductForm = ({ product, categories, conditions, onSubmit, onCancel, isEd
|
||||
const handleSubmit = (e) => {
|
||||
e.preventDefault();
|
||||
|
||||
console.log('🔍 ProductForm - formData:', formData);
|
||||
console.log('🔍 ProductForm - image value:', formData.image);
|
||||
|
||||
const shmotkaData = {
|
||||
name: formData.name,
|
||||
price: parseFloat(formData.price),
|
||||
description: formData.description,
|
||||
image: formData.image, // ← ИСПРАВЛЕНО: используем formData.image вместо formData.imageUrl
|
||||
image: formData.image,
|
||||
categoryId: parseInt(formData.categoryId),
|
||||
conditionId: parseInt(formData.conditionId),
|
||||
inStock: true
|
||||
};
|
||||
|
||||
console.log('🔍 ProductForm - shmotkaData для отправки:', shmotkaData);
|
||||
onSubmit(shmotkaData);
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -22,18 +22,17 @@ export const useBasket = () => {
|
||||
|
||||
// Преобразуем данные в формат фронтенда
|
||||
const mappedItems = data.map(item => {
|
||||
const shmotka = item.shmotka; // Правильное поле с бэкенда
|
||||
const shmotka = item.shmotka;
|
||||
return {
|
||||
id: shmotka?.id || item.shmotkaId,
|
||||
name: shmotka?.name || 'Без названия',
|
||||
price: shmotka?.price || 0,
|
||||
description: shmotka?.description || 'Описание отсутствует',
|
||||
image: shmotka?.imageUrl || 'img/placeholder.jpg', // Правильное поле imageURL
|
||||
image: shmotka?.imageUrl || 'img/placeholder.jpg',
|
||||
category: shmotka?.category.name || 'Unknown',
|
||||
condition: shmotka?.condition.name || 'Unknown',
|
||||
categoryId: shmotka?.categoryId,
|
||||
conditionId: shmotka?.conditionId,
|
||||
// Убрано quantity, так как его нет на бэкенде
|
||||
// Сохраняем оригинальные данные для удаления
|
||||
_basketItemId: item.id
|
||||
};
|
||||
@@ -75,7 +74,7 @@ export const useBasket = () => {
|
||||
const addToBasket = async (shmotka) => {
|
||||
try {
|
||||
const basketItem = {
|
||||
shmotkaId: shmotka.id // Правильное поле для бэкенда
|
||||
shmotkaId: shmotka.id
|
||||
};
|
||||
|
||||
const response = await fetch(`${apiUrl}/basket`, {
|
||||
@@ -97,8 +96,6 @@ export const useBasket = () => {
|
||||
}
|
||||
};
|
||||
|
||||
// Убраны функции updateQuantity, так как quantity не поддерживается
|
||||
|
||||
const clearBasket = async () => {
|
||||
try {
|
||||
const response = await fetch(`${apiUrl}/basket`, {
|
||||
@@ -121,7 +118,7 @@ export const useBasket = () => {
|
||||
};
|
||||
|
||||
const getBasketCount = () => {
|
||||
return basketItems.length; // Теперь просто количество товаров, без quantity
|
||||
return basketItems.length;
|
||||
};
|
||||
|
||||
return {
|
||||
|
||||
@@ -22,13 +22,13 @@ export const useLikes = () => {
|
||||
|
||||
// Преобразуем данные в формат фронтенда
|
||||
const mappedItems = data.map(item => {
|
||||
const shmotka = item.shmotka; // Правильное поле с бэкенда
|
||||
const shmotka = item.shmotka;
|
||||
return {
|
||||
id: shmotka?.id || item.shmotkaId,
|
||||
name: shmotka?.name || 'Без названия',
|
||||
price: shmotka?.price || 0,
|
||||
description: shmotka?.description || 'Описание отсутствует',
|
||||
image: shmotka?.imageUrl || 'img/placeholder.jpg', // Правильное поле imageURL
|
||||
image: shmotka?.imageUrl || 'img/placeholder.jpg',
|
||||
category: shmotka?.category.name || 'Unknown',
|
||||
condition: shmotka?.condition.name || 'Unknown',
|
||||
categoryId: shmotka?.categoryId,
|
||||
@@ -74,7 +74,7 @@ export const useLikes = () => {
|
||||
const addToLikes = async (shmotka) => {
|
||||
try {
|
||||
const likeItem = {
|
||||
shmotkaId: shmotka.id // Правильное поле для бэкенда
|
||||
shmotkaId: shmotka.id
|
||||
};
|
||||
|
||||
const response = await fetch(`${apiUrl}/likes`, {
|
||||
|
||||
@@ -84,22 +84,17 @@ export const useProducts = () => {
|
||||
|
||||
const addShmotka = async (shmotkaData) => {
|
||||
try {
|
||||
console.log('🔍 useProducts - получены данные:', shmotkaData);
|
||||
console.log('🔍 useProducts - image:', shmotkaData.image);
|
||||
// Преобразуем данные для бэкенда - ВАЖНО: отправляем только ID
|
||||
// Преобразуем данные для бэкенда
|
||||
const newShmotka = {
|
||||
name: shmotkaData.name,
|
||||
price: parseFloat(shmotkaData.price),
|
||||
description: shmotkaData.description,
|
||||
imageUrl: shmotkaData.image, // ← ИСПРАВЛЕНО: используем shmotkaData.image
|
||||
imageUrl: shmotkaData.image,
|
||||
categoryId: parseInt(shmotkaData.categoryId || shmotkaData.category),
|
||||
conditionId: parseInt(shmotkaData.conditionId || shmotkaData.condition),
|
||||
inStock: true
|
||||
};
|
||||
|
||||
console.log('🔍 useProducts - данные для отправки на бэкенд:', newShmotka);
|
||||
console.log('🔍 useProducts - imageUrl для бэкенда:', newShmotka.imageUrl);
|
||||
|
||||
console.log('Sending to backend:', newShmotka);
|
||||
|
||||
const response = await fetch(`${apiUrl}/shmotki`, {
|
||||
@@ -136,12 +131,11 @@ export const useProducts = () => {
|
||||
|
||||
const updateShmotka = async (id, shmotkaData) => {
|
||||
try {
|
||||
// Преобразуем данные для бэкенда - ВАЖНО: отправляем только ID
|
||||
const updatedShmotka = {
|
||||
name: shmotkaData.name,
|
||||
price: parseFloat(shmotkaData.price),
|
||||
description: shmotkaData.description,
|
||||
image: shmotkaData.image,
|
||||
imageUrl: shmotkaData.image,
|
||||
categoryId: parseInt(shmotkaData.categoryId || shmotkaData.category),
|
||||
conditionId: parseInt(shmotkaData.conditionId || shmotkaData.condition),
|
||||
inStock: true
|
||||
@@ -161,13 +155,12 @@ export const useProducts = () => {
|
||||
|
||||
const result = await response.json();
|
||||
|
||||
// Маппим ответ для фронтенда
|
||||
const mappedResult = {
|
||||
id: result.id,
|
||||
name: result.name,
|
||||
price: result.price,
|
||||
description: result.description,
|
||||
image: result.imageUrl,
|
||||
image: result.imageUrl,
|
||||
category: result.categoryId,
|
||||
condition: result.conditionId,
|
||||
inStock: result.inStock
|
||||
|
||||
Reference in New Issue
Block a user