features: add commit and push option to git commit window

- Add split button with dropdown in commit dialog supporting both
  "Commit" and "Commit and Push" actions
- Pass folderId through gitCommit/gitPush API calls so backend emits
  events that the folder window can receive for toast notifications
- Update Tauri git_commit and git_push commands to accept folder_id
  parameter with window label fallback for cross-window compatibility
- Wrap commit page with GitCredentialProvider for push authentication
- Keep commit window open when push fails so user can see the error
- Add i18n translations for all 10 locales

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
xintaofei
2026-04-02 16:22:41 +08:00
parent 1287dab37c
commit efd8e1104f
16 changed files with 184 additions and 82 deletions

View File

@@ -574,12 +574,14 @@ export async function gitPushInfo(path: string): Promise<GitPushInfo> {
export async function gitPush(
path: string,
remote?: string | null,
credentials?: GitCredentials | null
credentials?: GitCredentials | null,
folderId?: number | null
): Promise<GitPushResult> {
return getTransport().call("git_push", {
path,
remote: remote ?? null,
credentials: credentials ?? null,
folderId: folderId ?? null,
})
}
@@ -886,9 +888,15 @@ export async function gitIsTracked(
export async function gitCommit(
path: string,
message: string,
files: string[]
files: string[],
folderId?: number | null
): Promise<GitCommitResult> {
return getTransport().call("git_commit", { path, message, files })
return getTransport().call("git_commit", {
path,
message,
files,
folderId: folderId ?? null,
})
}
export async function gitRollbackFile(