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