From f4e85fe980ac19dcb5c838d3239413ff1aaa67fb Mon Sep 17 00:00:00 2001 From: Primakov Alexandr Date: Sun, 14 Dec 2025 14:12:32 +0300 Subject: [PATCH] Update LoginPage layout for improved spacing and enhance storage utility with new clearAllChainProgress function. Adjust clearAll method to retain workplace number while ensuring all chain progress data is removed upon logout. --- src/pages/login/LoginPage.tsx | 2 +- src/utils/storage.ts | 21 +++++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) 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)) }, // Очистка данных сессии (цепочка, задание) без выхода