Отключены подзадачи для задач-тестов
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m27s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m27s
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "play-life-web",
|
||||
"version": "3.13.0",
|
||||
"version": "3.14.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
|
||||
@@ -508,4 +508,3 @@
|
||||
color: #6b7280;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
|
||||
@@ -311,7 +311,11 @@ function TaskForm({ onNavigate, taskId, wishlistId, isTest: isTestFromProps = fa
|
||||
use_progression: r.use_progression
|
||||
})))
|
||||
|
||||
// Загружаем подзадачи
|
||||
// Загружаем подзадачи (только если задача не является тестом)
|
||||
if (data.task.config_id) {
|
||||
// Для задач-тестов не загружаем подзадачи
|
||||
setSubtasks([])
|
||||
} else {
|
||||
setSubtasks(data.subtasks.map(st => ({
|
||||
id: st.task.id,
|
||||
name: st.task.name || '',
|
||||
@@ -323,6 +327,7 @@ function TaskForm({ onNavigate, taskId, wishlistId, isTest: isTestFromProps = fa
|
||||
use_progression: r.use_progression
|
||||
}))
|
||||
})))
|
||||
}
|
||||
|
||||
// Загружаем информацию о связанном желании, если есть
|
||||
if (data.task.wishlist_id) {
|
||||
@@ -368,6 +373,8 @@ function TaskForm({ onNavigate, taskId, wishlistId, isTest: isTestFromProps = fa
|
||||
}
|
||||
// Тесты не могут иметь прогрессию
|
||||
setProgressionBase('')
|
||||
// Тесты не могут иметь подзадачи - очищаем их
|
||||
setSubtasks([])
|
||||
} else {
|
||||
setIsTest(false)
|
||||
setWordsCount('10')
|
||||
@@ -381,6 +388,13 @@ function TaskForm({ onNavigate, taskId, wishlistId, isTest: isTestFromProps = fa
|
||||
}
|
||||
}
|
||||
|
||||
// Очистка подзадач при переключении задачи в режим теста
|
||||
useEffect(() => {
|
||||
if (isTest && subtasks.length > 0) {
|
||||
setSubtasks([])
|
||||
}
|
||||
}, [isTest])
|
||||
|
||||
// Пересчет rewards при изменении reward_message (debounce)
|
||||
useEffect(() => {
|
||||
if (debounceTimer.current) {
|
||||
@@ -644,7 +658,7 @@ function TaskForm({ onNavigate, taskId, wishlistId, isTest: isTestFromProps = fa
|
||||
value: parseFloat(r.value) || 0,
|
||||
use_progression: !!(progressionBase && r.use_progression)
|
||||
})),
|
||||
subtasks: subtasks.map(st => ({
|
||||
subtasks: isTest ? [] : subtasks.map(st => ({
|
||||
id: st.id || undefined,
|
||||
name: st.name.trim() || null,
|
||||
reward_message: st.reward_message.trim() || null,
|
||||
@@ -1058,6 +1072,7 @@ function TaskForm({ onNavigate, taskId, wishlistId, isTest: isTestFromProps = fa
|
||||
)}
|
||||
</div>
|
||||
|
||||
{!isTest && (
|
||||
<div className="form-group">
|
||||
<div className="subtasks-header">
|
||||
<label>Подзадачи</label>
|
||||
@@ -1160,6 +1175,7 @@ function TaskForm({ onNavigate, taskId, wishlistId, isTest: isTestFromProps = fa
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Показываем ошибку валидации только если это ошибка валидации, не ошибка действия */}
|
||||
{error && (error.includes('обязательно') || error.includes('должны быть заполнены') || error.includes('нельзя одновременно')) && (
|
||||
|
||||
@@ -609,4 +609,3 @@
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 4px 12px rgba(52, 152, 219, 0.3);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user