Skip to content

Commit 137ee30

Browse files
committed
Reset workspace mode when an account leaves
1 parent 3f9cc8f commit 137ee30

6 files changed

Lines changed: 25 additions & 0 deletions

File tree

frontend/src/components/GuestPaymentWarningDialog.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
restoreMapleApiAuthForUser,
1616
stopAgentRuntimeForUser
1717
} from "@/services/agentRuntimeService";
18+
import { resetWorkspaceModePreference } from "@/services/workspaceModePreference";
1819
import { useState } from "react";
1920
import { getBillingService } from "@/billing/billingService";
2021

@@ -69,6 +70,7 @@ export function GuestPaymentWarningDialog({ open, onOpenChange }: GuestPaymentWa
6970
nativeAuthCleared = true;
7071
await os.signOut();
7172
signedOut = true;
73+
resetWorkspaceModePreference();
7274
queryClient.clear();
7375
} catch (error) {
7476
console.error("Error during sign out:", error);

frontend/src/components/VerificationModal.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
restoreMapleApiAuthForUser,
2020
stopAgentRuntimeForUser
2121
} from "@/services/agentRuntimeService";
22+
import { resetWorkspaceModePreference } from "@/services/workspaceModePreference";
2223
import { getBillingService } from "@/billing/billingService";
2324
import { navigateToSafeInternalRedirect } from "@/utils/internalRedirect";
2425

@@ -148,6 +149,7 @@ export function VerificationModal() {
148149
nativeAuthCleared = true;
149150
await os.signOut();
150151
signedOut = true;
152+
resetWorkspaceModePreference();
151153
queryClient.clear();
152154
} catch (error) {
153155
console.error("Error during sign out:", error);

frontend/src/components/settings/DeleteAccountSettings.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
clearMapleApiAuthForUser,
1515
restoreMapleApiAuthForUser
1616
} from "@/services/agentRuntimeService";
17+
import { resetWorkspaceModePreference } from "@/services/workspaceModePreference";
1718
import { SettingsPage, SettingsSection } from "./SettingsPage";
1819

1920
export function DeleteAccountSettings() {
@@ -90,6 +91,8 @@ export function DeleteAccountSettings() {
9091
cleanupBlockRef.current.retainUntilNextSession();
9192
}
9293

94+
resetWorkspaceModePreference();
95+
9396
try {
9497
getBillingService().clearToken();
9598
} catch (clearError) {

frontend/src/components/settings/SettingsLayout.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import {
3333
restoreMapleApiAuthForUser,
3434
stopAgentRuntimeForUser
3535
} from "@/services/agentRuntimeService";
36+
import { resetWorkspaceModePreference } from "@/services/workspaceModePreference";
3637
import { useLocalState } from "@/state/useLocalState";
3738
import type { TeamStatus } from "@/types/team";
3839
import { isIOS } from "@/utils/platform";
@@ -328,6 +329,7 @@ function SettingsLayoutContent() {
328329
nativeAuthCleared = true;
329330
await os.signOut();
330331
signedOut = true;
332+
resetWorkspaceModePreference();
331333
queryClient.clear();
332334
await router.invalidate();
333335
await router.navigate({ to: "/" });

frontend/src/services/workspaceModePreference.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
getLaunchWorkspacePath,
55
getStoredWorkspaceMode,
66
rememberWorkspaceMode,
7+
resetWorkspaceModePreference,
78
WORKSPACE_MODE_STORAGE_KEY
89
} from "./workspaceModePreference";
910

@@ -42,6 +43,15 @@ describe("workspace mode preference", () => {
4243
expect(getStoredWorkspaceMode(storage)).toBe("agent");
4344
});
4445

46+
test("resets the launch preference to Chat when an account leaves", () => {
47+
const storage = new MemoryStorage();
48+
rememberWorkspaceMode("agent", storage);
49+
50+
resetWorkspaceModePreference(storage);
51+
52+
expect(getStoredWorkspaceMode(storage)).toBe("chat");
53+
});
54+
4555
test("ignores unavailable storage", () => {
4656
const unreadableStorage = {
4757
getItem: () => {

frontend/src/services/workspaceModePreference.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ export function rememberWorkspaceMode(
4646
}
4747
}
4848

49+
export function resetWorkspaceModePreference(
50+
storage: WorkspaceModeStorage | null = getBrowserStorage()
51+
): void {
52+
rememberWorkspaceMode("chat", storage);
53+
}
54+
4955
export function getLaunchWorkspacePath(
5056
location: LaunchLocation,
5157
storage: WorkspaceModeStorage | null = getBrowserStorage()

0 commit comments

Comments
 (0)