6.4.8: Фикс кнопки назад при создании словаря
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m3s

This commit is contained in:
poignatov
2026-03-08 19:56:25 +03:00
parent 2ec5860d78
commit c911950cc1
4 changed files with 14 additions and 10 deletions

View File

@@ -1 +1 @@
6.4.7
6.4.8

View File

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

View File

@@ -355,7 +355,7 @@ function AppContent() {
}, [])
// Функция для обновления URL (только для глубоких табов)
const updateUrl = useCallback((tab, params = {}, previousTab = null) => {
const updateUrl = useCallback((tab, params = {}, previousTab = null, replace = false) => {
if (!deepTabs.includes(tab)) {
// Для основных табов не обновляем URL
return
@@ -386,7 +386,11 @@ function AppContent() {
}
// Сохраняем предыдущий таб в state для восстановления при "Назад"
if (replace) {
window.history.replaceState({ tab, params, previousTab }, '', url)
} else {
window.history.pushState({ tab, params, previousTab }, '', url)
}
}, []) // deepTabs - константа, не нужно в зависимостях
// Функция для очистки URL (при возврате к основному табу)
@@ -882,7 +886,7 @@ function AppContent() {
setActiveTab('full')
}
const handleTabChange = (tab, params = {}) => {
const handleTabChange = (tab, params = {}, options = {}) => {
if (tab === 'full' && activeTab === 'full') {
// При повторном клике на "Полная статистика" сбрасываем выбранный проект
setSelectedProject(null)
@@ -941,7 +945,7 @@ function AppContent() {
window.history.replaceState({ tab, params, previousTab: activeTab }, '', url)
} else {
// Сохраняем текущий таб как предыдущий при переходе на глубокий таб
updateUrl(tab, params, activeTab)
updateUrl(tab, params, activeTab, options.replace)
}
} else if (isNewTabMain && isCurrentTabDeep) {
// При переходе с глубокого таба на основной - очищаем URL и сохраняем таб в state
@@ -1030,8 +1034,8 @@ function AppContent() {
}
// Обработчик навигации для компонентов
const handleNavigate = (tab, params = {}) => {
handleTabChange(tab, params)
const handleNavigate = (tab, params = {}, options = {}) => {
handleTabChange(tab, params, options)
}
// Загружаем данные при открытии таба (когда таб становится активным)

View File

@@ -187,8 +187,8 @@ function WordList({ onNavigate, dictionaryId, isNewDictionary, refreshTrigger =
await fetchDictionary(newDictionaryId)
await fetchWordsForDictionary(newDictionaryId)
// Update navigation to use the new dictionary ID and name
onNavigate?.('words', { dictionaryId: newDictionaryId, dictionaryName: newDict.name })
// Update navigation to use the new dictionary ID and name (replace history entry so back goes to dictionaries)
onNavigate?.('words', { dictionaryId: newDictionaryId, dictionaryName: newDict.name }, { replace: true })
} else if (hasValidDictionary(currentDictionaryId)) {
// Update existing dictionary (rename)
const response = await authFetch(`${API_URL}/dictionaries/${currentDictionaryId}`, {