6.4.8: Фикс кнопки назад при создании словаря
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m3s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m3s
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "play-life-web",
|
"name": "play-life-web",
|
||||||
"version": "6.4.7",
|
"version": "6.4.8",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -355,7 +355,7 @@ function AppContent() {
|
|||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
// Функция для обновления URL (только для глубоких табов)
|
// Функция для обновления URL (только для глубоких табов)
|
||||||
const updateUrl = useCallback((tab, params = {}, previousTab = null) => {
|
const updateUrl = useCallback((tab, params = {}, previousTab = null, replace = false) => {
|
||||||
if (!deepTabs.includes(tab)) {
|
if (!deepTabs.includes(tab)) {
|
||||||
// Для основных табов не обновляем URL
|
// Для основных табов не обновляем URL
|
||||||
return
|
return
|
||||||
@@ -386,7 +386,11 @@ function AppContent() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Сохраняем предыдущий таб в state для восстановления при "Назад"
|
// Сохраняем предыдущий таб в state для восстановления при "Назад"
|
||||||
|
if (replace) {
|
||||||
|
window.history.replaceState({ tab, params, previousTab }, '', url)
|
||||||
|
} else {
|
||||||
window.history.pushState({ tab, params, previousTab }, '', url)
|
window.history.pushState({ tab, params, previousTab }, '', url)
|
||||||
|
}
|
||||||
}, []) // deepTabs - константа, не нужно в зависимостях
|
}, []) // deepTabs - константа, не нужно в зависимостях
|
||||||
|
|
||||||
// Функция для очистки URL (при возврате к основному табу)
|
// Функция для очистки URL (при возврате к основному табу)
|
||||||
@@ -882,7 +886,7 @@ function AppContent() {
|
|||||||
setActiveTab('full')
|
setActiveTab('full')
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleTabChange = (tab, params = {}) => {
|
const handleTabChange = (tab, params = {}, options = {}) => {
|
||||||
if (tab === 'full' && activeTab === 'full') {
|
if (tab === 'full' && activeTab === 'full') {
|
||||||
// При повторном клике на "Полная статистика" сбрасываем выбранный проект
|
// При повторном клике на "Полная статистика" сбрасываем выбранный проект
|
||||||
setSelectedProject(null)
|
setSelectedProject(null)
|
||||||
@@ -941,7 +945,7 @@ function AppContent() {
|
|||||||
window.history.replaceState({ tab, params, previousTab: activeTab }, '', url)
|
window.history.replaceState({ tab, params, previousTab: activeTab }, '', url)
|
||||||
} else {
|
} else {
|
||||||
// Сохраняем текущий таб как предыдущий при переходе на глубокий таб
|
// Сохраняем текущий таб как предыдущий при переходе на глубокий таб
|
||||||
updateUrl(tab, params, activeTab)
|
updateUrl(tab, params, activeTab, options.replace)
|
||||||
}
|
}
|
||||||
} else if (isNewTabMain && isCurrentTabDeep) {
|
} else if (isNewTabMain && isCurrentTabDeep) {
|
||||||
// При переходе с глубокого таба на основной - очищаем URL и сохраняем таб в state
|
// При переходе с глубокого таба на основной - очищаем URL и сохраняем таб в state
|
||||||
@@ -1030,8 +1034,8 @@ function AppContent() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Обработчик навигации для компонентов
|
// Обработчик навигации для компонентов
|
||||||
const handleNavigate = (tab, params = {}) => {
|
const handleNavigate = (tab, params = {}, options = {}) => {
|
||||||
handleTabChange(tab, params)
|
handleTabChange(tab, params, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Загружаем данные при открытии таба (когда таб становится активным)
|
// Загружаем данные при открытии таба (когда таб становится активным)
|
||||||
|
|||||||
@@ -187,8 +187,8 @@ function WordList({ onNavigate, dictionaryId, isNewDictionary, refreshTrigger =
|
|||||||
await fetchDictionary(newDictionaryId)
|
await fetchDictionary(newDictionaryId)
|
||||||
await fetchWordsForDictionary(newDictionaryId)
|
await fetchWordsForDictionary(newDictionaryId)
|
||||||
|
|
||||||
// Update navigation to use the new dictionary ID and 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 })
|
onNavigate?.('words', { dictionaryId: newDictionaryId, dictionaryName: newDict.name }, { replace: true })
|
||||||
} else if (hasValidDictionary(currentDictionaryId)) {
|
} else if (hasValidDictionary(currentDictionaryId)) {
|
||||||
// Update existing dictionary (rename)
|
// Update existing dictionary (rename)
|
||||||
const response = await authFetch(`${API_URL}/dictionaries/${currentDictionaryId}`, {
|
const response = await authFetch(`${API_URL}/dictionaries/${currentDictionaryId}`, {
|
||||||
|
|||||||
Reference in New Issue
Block a user