diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ChangesContent/components/FileDiffSection/FileDiffSection.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ChangesContent/components/FileDiffSection/FileDiffSection.tsx index bd05016e592..4493fd939ec 100644 --- a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ChangesContent/components/FileDiffSection/FileDiffSection.tsx +++ b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ChangesContent/components/FileDiffSection/FileDiffSection.tsx @@ -8,7 +8,7 @@ import type { ChangeCategory, ChangedFile } from "shared/changes-types"; import { getStatusColor, getStatusIndicator, -} from "../../../Sidebar/ChangesView/utils"; +} from "../../../RightSidebar/ChangesView/utils"; import { createFileKey, useScrollContext } from "../../context"; import { DiffViewer } from "../DiffViewer"; import { FileDiffHeader } from "./components/FileDiffHeader"; diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/ChangesView.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/ChangesView.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/ChangesView.tsx rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/ChangesView.tsx diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CategorySection/CategorySection.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CategorySection/CategorySection.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CategorySection/CategorySection.tsx rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CategorySection/CategorySection.tsx diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CategorySection/index.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CategorySection/index.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CategorySection/index.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CategorySection/index.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/ChangesHeader/ChangesHeader.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/ChangesHeader/ChangesHeader.tsx similarity index 81% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/ChangesHeader/ChangesHeader.tsx rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/ChangesHeader/ChangesHeader.tsx index edbc4deb96e..378ea736fa5 100644 --- a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/ChangesHeader/ChangesHeader.tsx +++ b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/ChangesHeader/ChangesHeader.tsx @@ -10,20 +10,12 @@ import { import { Tooltip, TooltipContent, TooltipTrigger } from "@superset/ui/tooltip"; import { useEffect, useRef, useState } from "react"; import { HiArrowPath, HiCheck } from "react-icons/hi2"; -import { - LuExpand, - LuGitBranch, - LuLoaderCircle, - LuShrink, - LuX, -} from "react-icons/lu"; +import { LuGitBranch, LuLoaderCircle } from "react-icons/lu"; import { VscGitStash, VscGitStashApply } from "react-icons/vsc"; -import { HotkeyTooltipContent } from "renderer/components/HotkeyTooltipContent"; import { electronTrpc } from "renderer/lib/electron-trpc"; import { PRIcon } from "renderer/screens/main/components/PRIcon"; import { usePRStatus } from "renderer/screens/main/hooks"; import { useChangesStore } from "renderer/stores/changes"; -import { SidebarMode, useSidebarStore } from "renderer/stores/sidebar-state"; import type { ChangesViewMode } from "../../types"; import { ViewModeToggle } from "../ViewModeToggle"; @@ -235,13 +227,6 @@ export function ChangesHeader({ onStashPop, isStashPending, }: ChangesHeaderProps) { - const { toggleSidebar, currentMode, setMode } = useSidebarStore(); - const isExpanded = currentMode === SidebarMode.Changes; - - const handleExpandToggle = () => { - setMode(isExpanded ? SidebarMode.Tabs : SidebarMode.Changes); - }; - return (
@@ -254,47 +239,6 @@ export function ChangesHeader({ -
- - - - - - - - - - - - - - - -
); } diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/ChangesHeader/index.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/ChangesHeader/index.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/ChangesHeader/index.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/ChangesHeader/index.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CollapsibleRow/CollapsibleRow.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CollapsibleRow/CollapsibleRow.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CollapsibleRow/CollapsibleRow.tsx rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CollapsibleRow/CollapsibleRow.tsx diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CollapsibleRow/index.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CollapsibleRow/index.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CollapsibleRow/index.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CollapsibleRow/index.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CommitInput/CommitInput.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CommitInput/CommitInput.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CommitInput/CommitInput.tsx rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CommitInput/CommitInput.tsx diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CommitInput/index.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CommitInput/index.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CommitInput/index.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CommitInput/index.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CommitItem/CommitItem.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CommitItem/CommitItem.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CommitItem/CommitItem.tsx rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CommitItem/CommitItem.tsx diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CommitItem/index.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CommitItem/index.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/CommitItem/index.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/CommitItem/index.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FileItem/FileItem.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FileItem/FileItem.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FileItem/FileItem.tsx rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FileItem/FileItem.tsx diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FileItem/index.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FileItem/index.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FileItem/index.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FileItem/index.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FileList/FileList.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FileList/FileList.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FileList/FileList.tsx rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FileList/FileList.tsx diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FileList/FileListGrouped.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FileList/FileListGrouped.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FileList/FileListGrouped.tsx rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FileList/FileListGrouped.tsx diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FileList/FileListTree.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FileList/FileListTree.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FileList/FileListTree.tsx rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FileList/FileListTree.tsx diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FileList/index.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FileList/index.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FileList/index.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FileList/index.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FolderRow/FolderRow.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FolderRow/FolderRow.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FolderRow/FolderRow.tsx rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FolderRow/FolderRow.tsx diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FolderRow/index.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FolderRow/index.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/FolderRow/index.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/FolderRow/index.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/ViewModeToggle/ViewModeToggle.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/ViewModeToggle/ViewModeToggle.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/ViewModeToggle/ViewModeToggle.tsx rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/ViewModeToggle/ViewModeToggle.tsx diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/ViewModeToggle/index.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/ViewModeToggle/index.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/components/ViewModeToggle/index.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/components/ViewModeToggle/index.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/hooks/index.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/hooks/index.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/hooks/index.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/hooks/index.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/hooks/usePathActions.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/hooks/usePathActions.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/hooks/usePathActions.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/hooks/usePathActions.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/index.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/index.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/index.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/index.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/types.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/types.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/types.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/types.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/utils/date.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/utils/date.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/utils/date.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/utils/date.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/utils/index.ts b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/utils/index.ts similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/utils/index.ts rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/utils/index.ts diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/utils/status.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/utils/status.tsx similarity index 100% rename from apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/ChangesView/utils/status.tsx rename to apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/ChangesView/utils/status.tsx diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/index.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/index.tsx new file mode 100644 index 00000000000..b7ebf528d47 --- /dev/null +++ b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/RightSidebar/index.tsx @@ -0,0 +1,189 @@ +import { Button } from "@superset/ui/button"; +import { Tooltip, TooltipContent, TooltipTrigger } from "@superset/ui/tooltip"; +import { useParams } from "@tanstack/react-router"; +import { useCallback } from "react"; +import { LuExpand, LuFile, LuGitCompareArrows, LuShrink, LuX } from "react-icons/lu"; +import { HotkeyTooltipContent } from "renderer/components/HotkeyTooltipContent"; +import { electronTrpc } from "renderer/lib/electron-trpc"; +import { + RightSidebarTab, + SidebarMode, + useSidebarStore, +} from "renderer/stores/sidebar-state"; +import { useTabsStore } from "renderer/stores/tabs/store"; +import type { ChangeCategory, ChangedFile } from "shared/changes-types"; +import { useScrollContext } from "../ChangesContent"; +import { ChangesView } from "./ChangesView"; + +function TabButton({ + isActive, + onClick, + icon, + label, +}: { + isActive: boolean; + onClick: () => void; + icon: React.ReactNode; + label: string; +}) { + return ( + + ); +} + +function FilesView() { + return ( +
+ Files view coming soon +
+ ); +} + +export function RightSidebar() { + const { workspaceId } = useParams({ strict: false }); + const { data: workspace } = electronTrpc.workspaces.get.useQuery( + { id: workspaceId ?? "" }, + { enabled: !!workspaceId }, + ); + const worktreePath = workspace?.worktreePath; + const { + currentMode, + rightSidebarTab, + setRightSidebarTab, + toggleSidebar, + setMode, + } = useSidebarStore(); + const isExpanded = currentMode === SidebarMode.Changes; + + const handleExpandToggle = () => { + setMode(isExpanded ? SidebarMode.Tabs : SidebarMode.Changes); + }; + + const addFileViewerPane = useTabsStore((s) => s.addFileViewerPane); + const trpcUtils = electronTrpc.useUtils(); + const { scrollToFile } = useScrollContext(); + + const invalidateFileContent = useCallback( + (filePath: string) => { + if (!worktreePath) return; + + Promise.all([ + trpcUtils.changes.readWorkingFile.invalidate({ + worktreePath, + filePath, + }), + trpcUtils.changes.getFileContents.invalidate({ + worktreePath, + filePath, + }), + ]).catch((error) => { + console.error( + "[RightSidebar/invalidateFileContent] Failed to invalidate file content queries:", + { worktreePath, filePath, error }, + ); + }); + }, + [worktreePath, trpcUtils], + ); + + const handleFileOpenPane = useCallback( + (file: ChangedFile, category: ChangeCategory, commitHash?: string) => { + if (!workspaceId || !worktreePath) return; + addFileViewerPane(workspaceId, { + filePath: file.path, + diffCategory: category, + commitHash, + oldPath: file.oldPath, + }); + invalidateFileContent(file.path); + }, + [workspaceId, worktreePath, addFileViewerPane, invalidateFileContent], + ); + + const handleFileScrollTo = useCallback( + (file: ChangedFile, category: ChangeCategory, commitHash?: string) => { + scrollToFile(file, category, commitHash); + }, + [scrollToFile], + ); + + const handleFileOpen = + workspaceId && worktreePath + ? isExpanded + ? handleFileScrollTo + : handleFileOpenPane + : undefined; + + return ( + + ); +} diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/index.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/index.tsx deleted file mode 100644 index d024bbcffbc..00000000000 --- a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/Sidebar/index.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { useParams } from "@tanstack/react-router"; -import { useCallback } from "react"; -import { electronTrpc } from "renderer/lib/electron-trpc"; -import { SidebarMode, useSidebarStore } from "renderer/stores/sidebar-state"; -import { useTabsStore } from "renderer/stores/tabs/store"; -import type { ChangeCategory, ChangedFile } from "shared/changes-types"; -import { useScrollContext } from "../ChangesContent"; -import { ChangesView } from "./ChangesView"; - -export function Sidebar() { - const { workspaceId } = useParams({ strict: false }); - const { data: workspace } = electronTrpc.workspaces.get.useQuery( - { id: workspaceId ?? "" }, - { enabled: !!workspaceId }, - ); - const worktreePath = workspace?.worktreePath; - const { currentMode } = useSidebarStore(); - const isExpanded = currentMode === SidebarMode.Changes; - - const addFileViewerPane = useTabsStore((s) => s.addFileViewerPane); - const trpcUtils = electronTrpc.useUtils(); - const { scrollToFile } = useScrollContext(); - - const invalidateFileContent = useCallback( - (filePath: string) => { - if (!worktreePath) return; - - Promise.all([ - trpcUtils.changes.readWorkingFile.invalidate({ - worktreePath, - filePath, - }), - trpcUtils.changes.getFileContents.invalidate({ - worktreePath, - filePath, - }), - ]).catch((error) => { - console.error( - "[Sidebar/invalidateFileContent] Failed to invalidate file content queries:", - { worktreePath, filePath, error }, - ); - }); - }, - [worktreePath, trpcUtils], - ); - - const handleFileOpenPane = useCallback( - (file: ChangedFile, category: ChangeCategory, commitHash?: string) => { - if (!workspaceId || !worktreePath) return; - addFileViewerPane(workspaceId, { - filePath: file.path, - diffCategory: category, - commitHash, - oldPath: file.oldPath, - }); - invalidateFileContent(file.path); - }, - [workspaceId, worktreePath, addFileViewerPane, invalidateFileContent], - ); - - const handleFileScrollTo = useCallback( - (file: ChangedFile, category: ChangeCategory, commitHash?: string) => { - scrollToFile(file, category, commitHash); - }, - [scrollToFile], - ); - - const handleFileOpen = - workspaceId && worktreePath - ? isExpanded - ? handleFileScrollTo - : handleFileOpenPane - : undefined; - - return ( - - ); -} diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/WorkspaceLayout/WorkspaceLayout.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/WorkspaceLayout/WorkspaceLayout.tsx index 7fe3f269c14..deeef9089ec 100644 --- a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/WorkspaceLayout/WorkspaceLayout.tsx +++ b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/WorkspaceLayout/WorkspaceLayout.tsx @@ -7,7 +7,7 @@ import { import { ResizablePanel } from "../../ResizablePanel"; import { ChangesContent, ScrollProvider } from "../ChangesContent"; import { ContentView } from "../ContentView"; -import { Sidebar } from "../Sidebar"; +import { RightSidebar } from "../RightSidebar"; export function WorkspaceLayout() { const { @@ -37,7 +37,7 @@ export function WorkspaceLayout() { handleSide="left" className={isExpanded ? "border-l-0" : undefined} > - + )} diff --git a/apps/desktop/src/renderer/stores/sidebar-state.ts b/apps/desktop/src/renderer/stores/sidebar-state.ts index ea9c43f76c2..b198741e3aa 100644 --- a/apps/desktop/src/renderer/stores/sidebar-state.ts +++ b/apps/desktop/src/renderer/stores/sidebar-state.ts @@ -6,6 +6,11 @@ export enum SidebarMode { Changes = "changes", } +export enum RightSidebarTab { + Changes = "changes", + Files = "files", +} + const DEFAULT_SIDEBAR_WIDTH = 250; export const MIN_SIDEBAR_WIDTH = 200; export const MAX_SIDEBAR_WIDTH = 500; @@ -17,11 +22,13 @@ interface SidebarState { currentMode: SidebarMode; lastMode: SidebarMode; isResizing: boolean; + rightSidebarTab: RightSidebarTab; toggleSidebar: () => void; setSidebarOpen: (open: boolean) => void; setSidebarWidth: (width: number) => void; setMode: (mode: SidebarMode) => void; setIsResizing: (isResizing: boolean) => void; + setRightSidebarTab: (tab: RightSidebarTab) => void; } export const useSidebarStore = create()( @@ -34,6 +41,7 @@ export const useSidebarStore = create()( currentMode: SidebarMode.Tabs, lastMode: SidebarMode.Tabs, isResizing: false, + rightSidebarTab: RightSidebarTab.Changes, toggleSidebar: () => { const { isSidebarOpen, lastOpenSidebarWidth, currentMode, lastMode } = @@ -102,6 +110,10 @@ export const useSidebarStore = create()( setIsResizing: (isResizing) => { set({ isResizing }); }, + + setRightSidebarTab: (tab) => { + set({ rightSidebarTab: tab }); + }, }), { name: "sidebar-store",