diff --git a/src/pages/login/LoginPage.tsx b/src/pages/login/LoginPage.tsx index 9625ab8..f6f1c6a 100644 --- a/src/pages/login/LoginPage.tsx +++ b/src/pages/login/LoginPage.tsx @@ -120,7 +120,7 @@ export const LoginPage = () => { - + { if (!isBrowser()) return localStorage.removeItem(STORAGE_KEYS.USER_ID) localStorage.removeItem(STORAGE_KEYS.NICKNAME) - localStorage.removeItem(STORAGE_KEYS.WORKPLACE_NUMBER) + // Номер рабочего места НЕ удаляем localStorage.removeItem(STORAGE_KEYS.SELECTED_CHAIN_ID) localStorage.removeItem(STORAGE_KEYS.SELECTED_TASK_ID) + + // Очищаем все прогрессы по цепочкам + storage.clearAllChainProgress() + }, + + // Очистка всех прогрессов по цепочкам + clearAllChainProgress: (): void => { + if (!isBrowser()) return + // Перебираем все ключи localStorage и удаляем те, что начинаются с challengeFurthestTask_ + const keysToRemove: string[] = [] + for (let i = 0; i < localStorage.length; i++) { + const key = localStorage.key(i) + if (key && key.startsWith('challengeFurthestTask_')) { + keysToRemove.push(key) + } + } + keysToRemove.forEach(key => localStorage.removeItem(key)) }, // Очистка данных сессии (цепочка, задание) без выхода