fix: navigation under weeks switch

This commit is contained in:
kilyabin
2025-11-26 00:10:55 +04:00
parent 2cd392595f
commit 423178aefb
8 changed files with 123 additions and 35 deletions

View File

@@ -113,7 +113,10 @@ export default function AdminPage({ groups: initialGroups, settings: initialSett
}
const handleUpdateSettings = async (newSettings: AppSettings) => {
setLoading(true)
// Сохраняем предыдущее состояние для отката при ошибке
const previousSettings = settings
// Оптимистичное обновление UI
setSettings(newSettings)
setError(null)
try {
@@ -126,14 +129,17 @@ export default function AdminPage({ groups: initialGroups, settings: initialSett
const data = await res.json()
if (res.ok && data.success) {
// Обновляем состояние из ответа сервера (для синхронизации)
setSettings(data.settings)
} else {
// Откатываем изменения при ошибке
setSettings(previousSettings)
setError(data.error || 'Ошибка при обновлении настроек')
}
} catch (err) {
// Откатываем изменения при ошибке
setSettings(previousSettings)
setError('Ошибка соединения с сервером')
} finally {
setLoading(false)
}
}

View File

@@ -20,3 +20,4 @@ export default function handler(

View File

@@ -32,3 +32,4 @@ export default function handler(

View File

@@ -20,3 +20,4 @@ export default function handler(

View File

@@ -34,7 +34,11 @@ async function handler(
try {
saveSettings(settings)
res.status(200).json({ success: true, settings })
// Сбрасываем кеш и загружаем свежие настройки для подтверждения
const { clearSettingsCache } = await import('@/shared/data/settings-loader')
clearSettingsCache()
const savedSettings = loadSettings()
res.status(200).json({ success: true, settings: savedSettings })
} catch (error) {
console.error('Error saving settings:', error)
res.status(500).json({ error: 'Failed to save settings' })