diff --git a/VERSION b/VERSION index 7b59a5c..7d4ef04 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.10.2 +3.10.3 diff --git a/play-life-web/package.json b/play-life-web/package.json index f7f6288..cd2a8d2 100644 --- a/play-life-web/package.json +++ b/play-life-web/package.json @@ -1,6 +1,6 @@ { "name": "play-life-web", - "version": "3.10.2", + "version": "3.10.3", "type": "module", "scripts": { "dev": "vite", diff --git a/play-life-web/src/App.jsx b/play-life-web/src/App.jsx index 589b6c1..7753776 100644 --- a/play-life-web/src/App.jsx +++ b/play-life-web/src/App.jsx @@ -668,6 +668,7 @@ function AppContent() { } // Обновляем список желаний при возврате из экрана редактирования if (activeTab === 'wishlist-form' && tab === 'wishlist') { + setTabParams({}) // Очищаем параметры при закрытии формы setWishlistRefreshTrigger(prev => prev + 1) } // Загрузка данных произойдет в useEffect при изменении activeTab diff --git a/play-life-web/src/components/TaskList.jsx b/play-life-web/src/components/TaskList.jsx index a15b4c5..29936b0 100644 --- a/play-life-web/src/components/TaskList.jsx +++ b/play-life-web/src/components/TaskList.jsx @@ -484,19 +484,6 @@ function TaskList({ onNavigate, data, loading, backgroundLoading, error, onRetry // Одноразовая задача: когда оба поля null/undefined const isOneTime = (task.repetition_period == null || task.repetition_period === undefined) && (task.repetition_date == null || task.repetition_date === undefined) - - // Отладка для задачи "Ролик" - if (task.name === 'Ролик') { - console.log('Task "Ролик":', { - name: task.name, - repetition_period: task.repetition_period, - repetition_date: task.repetition_date, - next_show_at: task.next_show_at, - hasZeroPeriod, - hasZeroDate, - isInfinite - }) - } return (
{ return () => { resetForm() } - }, []) + }, [wishlistId]) // Открываем форму редактирования условия, если передан editConditionIndex useEffect(() => { if (editConditionIndex !== undefined && editConditionIndex !== null && unlockConditions.length > editConditionIndex) { setEditingConditionIndex(editConditionIndex) setShowConditionForm(true) + } else if (editConditionIndex === undefined || editConditionIndex === null) { + // Закрываем форму условия, если editConditionIndex сброшен + setEditingConditionIndex(null) + setShowConditionForm(false) } }, [editConditionIndex, unlockConditions]) const loadWishlist = async () => { setLoadingWishlist(true) try { + // Сначала очищаем форму, чтобы удалить старые данные + setName('') + setPrice('') + setLink('') + setImageUrl(null) + setImageFile(null) + setUnlockConditions([]) + setError('') + setShowCropper(false) + setCrop({ x: 0, y: 0 }) + setZoom(1) + setCroppedAreaPixels(null) + setShowConditionForm(false) + setEditingConditionIndex(null) + setToastMessage(null) + const response = await authFetch(`${API_URL}/${wishlistId}`) if (!response.ok) { throw new Error('Ошибка загрузки желания') @@ -102,6 +122,8 @@ function WishlistForm({ onNavigate, wishlistId, editConditionIndex }) { start_date: cond.start_date || null, display_order: idx, }))) + } else { + setUnlockConditions([]) } } catch (err) { setError(err.message)