支持文件和变更区域的根目录快捷操作

This commit is contained in:
xintaofei
2026-03-13 21:50:15 +08:00
parent bf14a99168
commit 3376974d0f
4 changed files with 252 additions and 59 deletions

View File

@@ -1236,15 +1236,60 @@ export function GitChangesTab() {
expanded={expandedTrackedPaths}
onExpandedChange={setExpandedTrackedPaths}
>
<FileTreeFolder
path={TRACKED_ROOT_PATH}
name={folderName}
suffix={`(${trackedChanges.length})`}
suffixClassName="text-muted-foreground/45"
title={folderName}
>
{trackedTreeNodes.map(renderTrackedNode)}
</FileTreeFolder>
<ContextMenu>
<ContextMenuTrigger asChild>
<FileTreeFolder
path={TRACKED_ROOT_PATH}
name={folderName}
suffix={`(${trackedChanges.length})`}
suffixClassName="text-muted-foreground/45"
title={folderName}
>
{trackedTreeNodes.map(renderTrackedNode)}
</FileTreeFolder>
</ContextMenuTrigger>
<ContextMenuContent>
<ContextMenuItem
onSelect={() => {
handleOpenCommitWindow()
}}
>
{t("actions.commitCode")}
</ContextMenuItem>
<ContextMenuItem
onSelect={() => {
void openWorkingTreeDiff(".", {
mode: "overview",
})
}}
>
{tCommon("viewDiff")}
</ContextMenuItem>
<ContextMenuItem
onSelect={() => {
handleRequestRollback({
kind: "dir",
path: "",
name: folderName,
})
}}
variant="destructive"
>
{t("actions.rollback")}
</ContextMenuItem>
<ContextMenuItem
onSelect={() => {
void handleAddToVcs({
kind: "dir",
path: "",
name: folderName,
})
}}
>
{t("actions.addToVcs")}
</ContextMenuItem>
</ContextMenuContent>
</ContextMenu>
</FileTree>
</section>
)}
@@ -1284,15 +1329,60 @@ export function GitChangesTab() {
expanded={expandedUntrackedPaths}
onExpandedChange={setExpandedUntrackedPaths}
>
<FileTreeFolder
path={UNTRACKED_ROOT_PATH}
name={folderName}
suffix={`(${untrackedChanges.length})`}
suffixClassName="text-muted-foreground/45"
title={folderName}
>
{untrackedTreeNodes.map(renderUntrackedNode)}
</FileTreeFolder>
<ContextMenu>
<ContextMenuTrigger asChild>
<FileTreeFolder
path={UNTRACKED_ROOT_PATH}
name={folderName}
suffix={`(${untrackedChanges.length})`}
suffixClassName="text-muted-foreground/45"
title={folderName}
>
{untrackedTreeNodes.map(renderUntrackedNode)}
</FileTreeFolder>
</ContextMenuTrigger>
<ContextMenuContent>
<ContextMenuItem
onSelect={() => {
handleOpenCommitWindow()
}}
>
{t("actions.commitCode")}
</ContextMenuItem>
<ContextMenuItem
onSelect={() => {
void openWorkingTreeDiff(".", {
mode: "overview",
})
}}
>
{tCommon("viewDiff")}
</ContextMenuItem>
<ContextMenuItem
onSelect={() => {
handleRequestRollback({
kind: "dir",
path: "",
name: folderName,
})
}}
variant="destructive"
>
{t("actions.rollback")}
</ContextMenuItem>
<ContextMenuItem
onSelect={() => {
void handleAddToVcs({
kind: "dir",
path: "",
name: folderName,
})
}}
>
{t("actions.addToVcs")}
</ContextMenuItem>
</ContextMenuContent>
</ContextMenu>
</FileTree>
</section>
)}