在提交区域添加“刷新”和“推送”右键快捷操作

This commit is contained in:
xintaofei
2026-03-21 20:48:04 +08:00
parent d9032f1c82
commit 8432475ca6
11 changed files with 79 additions and 20 deletions

View File

@@ -21,6 +21,7 @@ import {
GitBranchPlus, GitBranchPlus,
GitCompare, GitCompare,
RefreshCw, RefreshCw,
Upload,
} from "lucide-react" } from "lucide-react"
import { import {
Commit, Commit,
@@ -82,6 +83,7 @@ import {
gitListAllBranches, gitListAllBranches,
gitLog, gitLog,
gitNewBranch, gitNewBranch,
openPushWindow,
} from "@/lib/tauri" } from "@/lib/tauri"
import type { GitBranchList, GitLogEntry, GitLogFileChange } from "@/lib/types" import type { GitBranchList, GitLogEntry, GitLogFileChange } from "@/lib/types"
import { toast } from "sonner" import { toast } from "sonner"
@@ -1168,6 +1170,28 @@ export function GitLogTab() {
<GitCompare className="h-3.5 w-3.5" /> <GitCompare className="h-3.5 w-3.5" />
{tCommon("viewDiff")} {tCommon("viewDiff")}
</ContextMenuItem> </ContextMenuItem>
<ContextMenuItem
onSelect={() => {
void fetchLog()
}}
>
<RefreshCw className="size-3.5" />
{tCommon("refresh")}
</ContextMenuItem>
<ContextMenuItem
onSelect={() => {
if (!folder) return
openPushWindow(folder.id).catch((err) => {
const msg = toErrorMessage(err)
toast.error(t("toasts.openPushWindowFailed"), {
description: msg,
})
})
}}
>
<Upload className="size-3.5" />
{tCommon("push")}
</ContextMenuItem>
</ContextMenuContent> </ContextMenuContent>
</ContextMenu> </ContextMenu>
) )
@@ -1180,8 +1204,23 @@ export function GitLogTab() {
void fetchLog() void fetchLog()
}} }}
> >
<RefreshCw className="size-3.5" />
{tCommon("refresh")} {tCommon("refresh")}
</ContextMenuItem> </ContextMenuItem>
<ContextMenuItem
onSelect={() => {
if (!folder) return
openPushWindow(folder.id).catch((err) => {
const msg = toErrorMessage(err)
toast.error(t("toasts.openPushWindowFailed"), {
description: msg,
})
})
}}
>
<Upload className="size-3.5" />
{tCommon("push")}
</ContextMenuItem>
</ContextMenuContent> </ContextMenuContent>
</ContextMenu> </ContextMenu>

View File

@@ -678,7 +678,8 @@
"create": "إنشاء", "create": "إنشاء",
"createAndSwitch": "إنشاء والتبديل", "createAndSwitch": "إنشاء والتبديل",
"openFile": "فتح الملف", "openFile": "فتح الملف",
"viewDiff": "عرض Diff" "viewDiff": "عرض Diff",
"push": "دفع..."
}, },
"modes": { "modes": {
"conversation": "وضع المحادثة", "conversation": "وضع المحادثة",
@@ -1083,7 +1084,8 @@
"toasts": { "toasts": {
"createdAndSwitchedNewBranch": "تم إنشاء فرع جديد والتبديل إليه", "createdAndSwitchedNewBranch": "تم إنشاء فرع جديد والتبديل إليه",
"newBranchFromCommit": "{name} (من {shortHash})", "newBranchFromCommit": "{name} (من {shortHash})",
"createBranchFailed": "فشل إنشاء الفرع" "createBranchFailed": "فشل إنشاء الفرع",
"openPushWindowFailed": "فشل فتح نافذة الدفع"
}, },
"branchSelector": { "branchSelector": {
"selectBranchPlaceholder": "اختر فرعًا...", "selectBranchPlaceholder": "اختر فرعًا...",

View File

@@ -678,7 +678,8 @@
"create": "Erstellen", "create": "Erstellen",
"createAndSwitch": "Erstellen und wechseln", "createAndSwitch": "Erstellen und wechseln",
"openFile": "Datei öffnen", "openFile": "Datei öffnen",
"viewDiff": "Diff anzeigen" "viewDiff": "Diff anzeigen",
"push": "Pushen..."
}, },
"modes": { "modes": {
"conversation": "Konversationsmodus", "conversation": "Konversationsmodus",
@@ -1083,7 +1084,8 @@
"toasts": { "toasts": {
"createdAndSwitchedNewBranch": "Neuen Branch erstellt und gewechselt", "createdAndSwitchedNewBranch": "Neuen Branch erstellt und gewechselt",
"newBranchFromCommit": "{name} (aus {shortHash})", "newBranchFromCommit": "{name} (aus {shortHash})",
"createBranchFailed": "Branch konnte nicht erstellt werden" "createBranchFailed": "Branch konnte nicht erstellt werden",
"openPushWindowFailed": "Push-Fenster konnte nicht geöffnet werden"
}, },
"branchSelector": { "branchSelector": {
"selectBranchPlaceholder": "Branch auswählen...", "selectBranchPlaceholder": "Branch auswählen...",

View File

@@ -678,7 +678,8 @@
"create": "Create", "create": "Create",
"createAndSwitch": "Create and Switch", "createAndSwitch": "Create and Switch",
"openFile": "Open File", "openFile": "Open File",
"viewDiff": "View Diff" "viewDiff": "View Diff",
"push": "Push..."
}, },
"modes": { "modes": {
"conversation": "Conversation Mode", "conversation": "Conversation Mode",
@@ -1083,7 +1084,8 @@
"toasts": { "toasts": {
"createdAndSwitchedNewBranch": "Created and switched to new branch", "createdAndSwitchedNewBranch": "Created and switched to new branch",
"newBranchFromCommit": "{name} (from {shortHash})", "newBranchFromCommit": "{name} (from {shortHash})",
"createBranchFailed": "Failed to create branch" "createBranchFailed": "Failed to create branch",
"openPushWindowFailed": "Failed to open push window"
}, },
"branchSelector": { "branchSelector": {
"selectBranchPlaceholder": "Select branch...", "selectBranchPlaceholder": "Select branch...",

View File

@@ -678,7 +678,8 @@
"create": "Crear", "create": "Crear",
"createAndSwitch": "Crear y cambiar", "createAndSwitch": "Crear y cambiar",
"openFile": "Abrir archivo", "openFile": "Abrir archivo",
"viewDiff": "Ver Diff" "viewDiff": "Ver Diff",
"push": "Enviar..."
}, },
"modes": { "modes": {
"conversation": "Modo conversación", "conversation": "Modo conversación",
@@ -1083,7 +1084,8 @@
"toasts": { "toasts": {
"createdAndSwitchedNewBranch": "Nueva rama creada y activada", "createdAndSwitchedNewBranch": "Nueva rama creada y activada",
"newBranchFromCommit": "{name} (desde {shortHash})", "newBranchFromCommit": "{name} (desde {shortHash})",
"createBranchFailed": "No se pudo crear la rama" "createBranchFailed": "No se pudo crear la rama",
"openPushWindowFailed": "No se pudo abrir la ventana de envío"
}, },
"branchSelector": { "branchSelector": {
"selectBranchPlaceholder": "Seleccionar rama...", "selectBranchPlaceholder": "Seleccionar rama...",

View File

@@ -678,7 +678,8 @@
"create": "Créer", "create": "Créer",
"createAndSwitch": "Créer et basculer", "createAndSwitch": "Créer et basculer",
"openFile": "Ouvrir le fichier", "openFile": "Ouvrir le fichier",
"viewDiff": "Voir le Diff" "viewDiff": "Voir le Diff",
"push": "Pousser..."
}, },
"modes": { "modes": {
"conversation": "Mode conversation", "conversation": "Mode conversation",
@@ -1083,7 +1084,8 @@
"toasts": { "toasts": {
"createdAndSwitchedNewBranch": "Nouvelle branche créée et activée", "createdAndSwitchedNewBranch": "Nouvelle branche créée et activée",
"newBranchFromCommit": "{name} (depuis {shortHash})", "newBranchFromCommit": "{name} (depuis {shortHash})",
"createBranchFailed": "Échec de la création de la branche" "createBranchFailed": "Échec de la création de la branche",
"openPushWindowFailed": "Échec de l'ouverture de la fenêtre de push"
}, },
"branchSelector": { "branchSelector": {
"selectBranchPlaceholder": "Sélectionner une branche...", "selectBranchPlaceholder": "Sélectionner une branche...",

View File

@@ -678,7 +678,8 @@
"create": "作成", "create": "作成",
"createAndSwitch": "作成して切り替え", "createAndSwitch": "作成して切り替え",
"openFile": "ファイルを開く", "openFile": "ファイルを開く",
"viewDiff": "差分を見る" "viewDiff": "差分を見る",
"push": "プッシュ..."
}, },
"modes": { "modes": {
"conversation": "会話モード", "conversation": "会話モード",
@@ -1083,7 +1084,8 @@
"toasts": { "toasts": {
"createdAndSwitchedNewBranch": "新しいブランチを作成して切り替えました", "createdAndSwitchedNewBranch": "新しいブランチを作成して切り替えました",
"newBranchFromCommit": "{name}{shortHash} から)", "newBranchFromCommit": "{name}{shortHash} から)",
"createBranchFailed": "ブランチ作成に失敗しました" "createBranchFailed": "ブランチ作成に失敗しました",
"openPushWindowFailed": "プッシュウィンドウを開けませんでした"
}, },
"branchSelector": { "branchSelector": {
"selectBranchPlaceholder": "ブランチを選択...", "selectBranchPlaceholder": "ブランチを選択...",

View File

@@ -678,7 +678,8 @@
"create": "생성", "create": "생성",
"createAndSwitch": "생성 후 전환", "createAndSwitch": "생성 후 전환",
"openFile": "파일 열기", "openFile": "파일 열기",
"viewDiff": "Diff 보기" "viewDiff": "Diff 보기",
"push": "푸시..."
}, },
"modes": { "modes": {
"conversation": "대화 모드", "conversation": "대화 모드",
@@ -1083,7 +1084,8 @@
"toasts": { "toasts": {
"createdAndSwitchedNewBranch": "새 브랜치를 생성하고 전환했습니다", "createdAndSwitchedNewBranch": "새 브랜치를 생성하고 전환했습니다",
"newBranchFromCommit": "{name} ({shortHash}에서 생성)", "newBranchFromCommit": "{name} ({shortHash}에서 생성)",
"createBranchFailed": "브랜치 생성에 실패했습니다" "createBranchFailed": "브랜치 생성에 실패했습니다",
"openPushWindowFailed": "푸시 창을 열지 못했습니다"
}, },
"branchSelector": { "branchSelector": {
"selectBranchPlaceholder": "브랜치 선택...", "selectBranchPlaceholder": "브랜치 선택...",

View File

@@ -678,7 +678,8 @@
"create": "Criar", "create": "Criar",
"createAndSwitch": "Criar e alternar", "createAndSwitch": "Criar e alternar",
"openFile": "Abrir arquivo", "openFile": "Abrir arquivo",
"viewDiff": "Ver Diff" "viewDiff": "Ver Diff",
"push": "Enviar..."
}, },
"modes": { "modes": {
"conversation": "Modo conversa", "conversation": "Modo conversa",
@@ -1083,7 +1084,8 @@
"toasts": { "toasts": {
"createdAndSwitchedNewBranch": "Nova branch criada e selecionada", "createdAndSwitchedNewBranch": "Nova branch criada e selecionada",
"newBranchFromCommit": "{name} (de {shortHash})", "newBranchFromCommit": "{name} (de {shortHash})",
"createBranchFailed": "Falha ao criar branch" "createBranchFailed": "Falha ao criar branch",
"openPushWindowFailed": "Falha ao abrir a janela de push"
}, },
"branchSelector": { "branchSelector": {
"selectBranchPlaceholder": "Selecionar branch...", "selectBranchPlaceholder": "Selecionar branch...",

View File

@@ -678,7 +678,8 @@
"create": "创建", "create": "创建",
"createAndSwitch": "创建并切换", "createAndSwitch": "创建并切换",
"openFile": "打开文件", "openFile": "打开文件",
"viewDiff": "查看差异" "viewDiff": "查看差异",
"push": "推送..."
}, },
"modes": { "modes": {
"conversation": "会话模式", "conversation": "会话模式",
@@ -1083,7 +1084,8 @@
"toasts": { "toasts": {
"createdAndSwitchedNewBranch": "已创建并切换到新分支", "createdAndSwitchedNewBranch": "已创建并切换到新分支",
"newBranchFromCommit": "{name}(来自 {shortHash}", "newBranchFromCommit": "{name}(来自 {shortHash}",
"createBranchFailed": "新建分支失败" "createBranchFailed": "新建分支失败",
"openPushWindowFailed": "打开推送窗口失败"
}, },
"branchSelector": { "branchSelector": {
"selectBranchPlaceholder": "选择分支...", "selectBranchPlaceholder": "选择分支...",

View File

@@ -678,7 +678,8 @@
"create": "建立", "create": "建立",
"createAndSwitch": "建立並切換", "createAndSwitch": "建立並切換",
"openFile": "打開檔案", "openFile": "打開檔案",
"viewDiff": "查看差異" "viewDiff": "查看差異",
"push": "推送..."
}, },
"modes": { "modes": {
"conversation": "會話模式", "conversation": "會話模式",
@@ -1083,7 +1084,8 @@
"toasts": { "toasts": {
"createdAndSwitchedNewBranch": "已建立並切換到新分支", "createdAndSwitchedNewBranch": "已建立並切換到新分支",
"newBranchFromCommit": "{name}(來自 {shortHash}", "newBranchFromCommit": "{name}(來自 {shortHash}",
"createBranchFailed": "新增分支失敗" "createBranchFailed": "新增分支失敗",
"openPushWindowFailed": "開啟推送視窗失敗"
}, },
"branchSelector": { "branchSelector": {
"selectBranchPlaceholder": "選擇分支...", "selectBranchPlaceholder": "選擇分支...",