diff --git a/src/App.tsx b/src/App.tsx index e4ea3d6a..5f8a4cc7 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1631,8 +1631,6 @@ function MainApp() { useTabActivationGuard({ activeTab, - activeWorkspace, - isPhone, isTablet, setActiveTab, }); diff --git a/src/features/app/hooks/useTabActivationGuard.test.tsx b/src/features/app/hooks/useTabActivationGuard.test.tsx new file mode 100644 index 00000000..7802d871 --- /dev/null +++ b/src/features/app/hooks/useTabActivationGuard.test.tsx @@ -0,0 +1,34 @@ +// @vitest-environment jsdom +import { renderHook } from "@testing-library/react"; +import { describe, expect, it, vi } from "vitest"; +import { useTabActivationGuard } from "./useTabActivationGuard"; + +describe("useTabActivationGuard", () => { + it("does not force home tab on phone when no workspace is selected", () => { + const setActiveTab = vi.fn(); + + renderHook(() => + useTabActivationGuard({ + activeTab: "git", + isTablet: false, + setActiveTab, + }), + ); + + expect(setActiveTab).not.toHaveBeenCalled(); + }); + + it("redirects tablet home tab selection to codex", () => { + const setActiveTab = vi.fn(); + + renderHook(() => + useTabActivationGuard({ + activeTab: "home", + isTablet: true, + setActiveTab, + }), + ); + + expect(setActiveTab).toHaveBeenCalledWith("codex"); + }); +}); diff --git a/src/features/app/hooks/useTabActivationGuard.ts b/src/features/app/hooks/useTabActivationGuard.ts index f5299839..55463dd1 100644 --- a/src/features/app/hooks/useTabActivationGuard.ts +++ b/src/features/app/hooks/useTabActivationGuard.ts @@ -1,32 +1,18 @@ import { useEffect } from "react"; -import type { WorkspaceInfo } from "../../../types"; type AppTab = "home" | "projects" | "codex" | "git" | "log"; type UseTabActivationGuardOptions = { activeTab: AppTab; - activeWorkspace: WorkspaceInfo | null; - isPhone: boolean; isTablet: boolean; setActiveTab: (tab: AppTab) => void; }; export function useTabActivationGuard({ activeTab, - activeWorkspace, - isPhone, isTablet, setActiveTab, }: UseTabActivationGuardOptions) { - useEffect(() => { - if (!isPhone) { - return; - } - if (!activeWorkspace && activeTab !== "home" && activeTab !== "projects") { - setActiveTab("home"); - } - }, [activeTab, activeWorkspace, isPhone, setActiveTab]); - useEffect(() => { if (!isTablet) { return;