Оптимизация wishlist: раздельные запросы и копирование
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m14s

This commit is contained in:
poignatov
2026-01-13 20:55:44 +03:00
parent db3b2640a8
commit ce7e0e584a
8 changed files with 943 additions and 185 deletions

View File

@@ -6,7 +6,7 @@ import './TaskForm.css'
const API_URL = '/api/tasks'
const PROJECTS_API_URL = '/projects'
function TaskForm({ onNavigate, taskId, wishlistId, isTest: isTestFromProps = false }) {
function TaskForm({ onNavigate, taskId, wishlistId, isTest: isTestFromProps = false, returnTo, returnWishlistId }) {
const { authFetch } = useAuth()
const [name, setName] = useState('')
const [progressionBase, setProgressionBase] = useState('')
@@ -678,11 +678,28 @@ function TaskForm({ onNavigate, taskId, wishlistId, isTest: isTestFromProps = fa
throw new Error(errorMessage)
}
// Получаем сохранённую задачу из ответа
const savedTask = await response.json()
// Сервер возвращает Task напрямую, поэтому используем savedTask.id
const newTaskId = savedTask.id
console.log('[TaskForm] Task saved, returnTo:', returnTo, 'returnWishlistId:', returnWishlistId, 'newTaskId:', newTaskId)
// Очищаем форму после успешного сохранения
resetForm()
// Возвращаемся к списку задач
onNavigate?.('tasks')
// Если был returnTo, возвращаемся на форму желания с ID новой задачи
if (returnTo === 'wishlist-form') {
console.log('[TaskForm] Navigating back to wishlist-form with newTaskId:', newTaskId)
onNavigate?.(returnTo, {
wishlistId: returnWishlistId,
newTaskId: newTaskId,
})
} else {
console.log('[TaskForm] No returnTo, navigating to tasks')
// Стандартное поведение - возврат к списку задач
onNavigate?.('tasks')
}
} catch (err) {
setToastMessage({ text: err.message || 'Ошибка при сохранении задачи', type: 'error' })
console.error('Error saving task:', err)