From ae4eed3b7de5cc4fd90e29d57b6f711707b765e8 Mon Sep 17 00:00:00 2001 From: Jiayuan Zhang Date: Sun, 12 Apr 2026 17:04:25 +0800 Subject: [PATCH] fix(auth): preserve last workspace ID across re-login MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The logout handler was clearing `multica_workspace_id` from storage, so re-login always defaulted to the first workspace. The workspace ID is a user preference, not session-sensitive data — keep it so both web and desktop restore the correct workspace after re-authentication. Also pass `lastWorkspaceId` in the desktop login page, which was previously missing. --- apps/desktop/src/renderer/src/pages/login.tsx | 3 +++ packages/core/auth/store.ts | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/renderer/src/pages/login.tsx b/apps/desktop/src/renderer/src/pages/login.tsx index 8877634901..8c5d0e19f6 100644 --- a/apps/desktop/src/renderer/src/pages/login.tsx +++ b/apps/desktop/src/renderer/src/pages/login.tsx @@ -2,6 +2,8 @@ import { LoginPage } from "@multica/views/auth"; import { MulticaIcon } from "@multica/ui/components/common/multica-icon"; export function DesktopLoginPage() { + const lastWorkspaceId = localStorage.getItem("multica_workspace_id"); + return (
{/* Traffic light inset */} @@ -11,6 +13,7 @@ export function DesktopLoginPage() { /> } + lastWorkspaceId={lastWorkspaceId} onSuccess={() => { // Auth store update triggers AppContent re-render → shows DesktopShell }} diff --git a/packages/core/auth/store.ts b/packages/core/auth/store.ts index 6632cd13ec..bc534c9a84 100644 --- a/packages/core/auth/store.ts +++ b/packages/core/auth/store.ts @@ -72,7 +72,6 @@ export function createAuthStore(options: AuthStoreOptions) { logout: () => { storage.removeItem("multica_token"); - storage.removeItem("multica_workspace_id"); api.setToken(null); api.setWorkspaceId(null); onLogout?.();