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:
@@ -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 для восстановления при "Назад"
|
||||
window.history.pushState({ tab, params, previousTab }, '', url)
|
||||
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)
|
||||
}
|
||||
|
||||
// Загружаем данные при открытии таба (когда таб становится активным)
|
||||
|
||||
@@ -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}`, {
|
||||
|
||||
Reference in New Issue
Block a user