fix: navigation under weeks switch
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,3 +20,4 @@ export default function handler(
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -32,3 +32,4 @@ export default function handler(
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -20,3 +20,4 @@ export default function handler(
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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' })
|
||||
|
||||
Reference in New Issue
Block a user