authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-03-09 09:14:18-07:00
committergravatar for jmarminge@gmail.comJulius Marminge <jmarminge@gmail.com> 2026-03-09 09:31:39-07:00
logce7b24bfb151cc5dfee54d669c3490611e74119e
treebe7dae7b502b08c9cd9b99bae02a2c46dbd6c660
parent5c286cab8b87fa5055533c54721cca52ec32050d

Inline Electron project picker check in Sidebar

- Replace `shouldOpenProjectFolderPickerImmediately` with direct `isElectron` usage - Remove obsolete `Sidebar.logic.ts` and its tests

3 files changed, 1 insertions(+), 33 deletions(-)

apps/web/src/components/Sidebar.logic.test.ts deleted-24
...@@ -1,24 +0,0 @@
1import { describe, expect, it } from "vitest";
2import { shouldOpenProjectFolderPickerImmediately } from "./Sidebar.logic";
3
4describe("shouldOpenProjectFolderPickerImmediately", () => {
5 it("opens the folder picker immediately in Electron", () => {
6 expect(
7 shouldOpenProjectFolderPickerImmediately({
8 isElectron: true,
9 }),
10 ).toBe(true);
11 });
12
13 it("still opens the folder picker immediately for mobile-width Electron layouts", () => {
14 expect(
15 shouldOpenProjectFolderPickerImmediately({
16 isElectron: true,
17 }),
18 ).toBe(true);
19 });
20
21 it("keeps manual project entry outside Electron", () => {
22 expect(shouldOpenProjectFolderPickerImmediately({ isElectron: false })).toBe(false);
23 });
24});
apps/web/src/components/Sidebar.logic.ts deleted-5
...@@ -1,5 +0,0 @@
1export function shouldOpenProjectFolderPickerImmediately(input: {
2 isElectron: boolean;
3}): boolean {
4 return input.isElectron;
5}
apps/web/src/components/Sidebar.tsx+1-4
...@@ -49,7 +49,6 @@ import {...@@ -49,7 +49,6 @@ import {
49} from "./desktopUpdate.logic";49} from "./desktopUpdate.logic";
50import { Alert, AlertAction, AlertDescription, AlertTitle } from "./ui/alert";50import { Alert, AlertAction, AlertDescription, AlertTitle } from "./ui/alert";
51import { Button } from "./ui/button";51import { Button } from "./ui/button";
52import { shouldOpenProjectFolderPickerImmediately } from "./Sidebar.logic";
53import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./ui/collapsible";52import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./ui/collapsible";
54import { Tooltip, TooltipPopup, TooltipTrigger } from "./ui/tooltip";53import { Tooltip, TooltipPopup, TooltipTrigger } from "./ui/tooltip";
55import {54import {
...@@ -313,9 +312,7 @@ export default function Sidebar() {...@@ -313,9 +312,7 @@ export default function Sidebar() {
313 const renamingCommittedRef = useRef(false);312 const renamingCommittedRef = useRef(false);
314 const renamingInputRef = useRef<HTMLInputElement | null>(null);313 const renamingInputRef = useRef<HTMLInputElement | null>(null);
315 const [desktopUpdateState, setDesktopUpdateState] = useState<DesktopUpdateState | null>(null);314 const [desktopUpdateState, setDesktopUpdateState] = useState<DesktopUpdateState | null>(null);
316 const shouldBrowseForProjectImmediately = shouldOpenProjectFolderPickerImmediately({315 const shouldBrowseForProjectImmediately = isElectron;
317 isElectron,
318 });
319 const shouldShowProjectPathEntry = addingProject && !shouldBrowseForProjectImmediately;316 const shouldShowProjectPathEntry = addingProject && !shouldBrowseForProjectImmediately;
320 const pendingApprovalByThreadId = useMemo(() => {317 const pendingApprovalByThreadId = useMemo(() => {
321 const map = new Map<ThreadId, boolean>();318 const map = new Map<ThreadId, boolean>();