4.24.7: Исправлена навигация при редактировании задачи
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m6s

This commit is contained in:
poignatov
2026-02-06 16:30:54 +03:00
parent 3ce408a6b1
commit 0275d9aecf
4 changed files with 25 additions and 4 deletions

View File

@@ -1 +1 @@
4.24.6
4.24.7

View File

@@ -1,6 +1,6 @@
{
"name": "play-life-web",
"version": "4.24.6",
"version": "4.24.7",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -640,6 +640,10 @@ function AppContent() {
// Если это модальное окно, не обрабатываем здесь - компоненты сами закроют его
if (event.state && event.state.modalOpen) {
// Если модальных окон нет в DOM, это устаревшая запись — пропускаем её
if (!taskDetailModal && !wishlistDetailModal) {
window.history.back()
}
return
}

View File

@@ -197,8 +197,25 @@ function WishlistDetail({ wishlistId, onNavigate, onRefresh, boardId, onClose, p
const handleCloseDetail = (skipHistoryBack = false) => {
// Если skipHistoryBack = true (например, при навигации на форму редактирования),
// просто закрываем модальное окно без history.back()
if (!skipHistoryBack && historyPushedForTaskRef.current) {
// закрываем модальные окна без удаления записей из истории
// App.jsx сам обработает навигацию и заменит запись task-detail на task-form через replaceState
// Запись wishlist-detail останется в истории, но экран будет закрыт
if (skipHistoryBack) {
// Сохраняем флаг перед сбросом
const hadWishlistHistory = historyPushedForWishlistRef.current
// Закрываем модальные окна
historyPushedForTaskRef.current = false
setSelectedTaskForDetail(null)
historyPushedForWishlistRef.current = false
// Закрываем экран желания через onClose
// Навигация на task-form уже происходит в TaskDetail, поэтому не вызываем onNavigate здесь
// App.jsx обработает навигацию и заменит запись task-detail на task-form через replaceState
if (hadWishlistHistory && onClose) {
onClose()
}
} else if (historyPushedForTaskRef.current) {
window.history.back()
} else {
historyPushedForTaskRef.current = false